fastjet-3.0.6+dfsg.orig/0000755000175000017500000000000012233507301013226 5ustar sunsunfastjet-3.0.6+dfsg.orig/config.h.in0000644000175000017500000000475612233506233015270 0ustar sunsun/* config.h.in. Generated from configure.ac by autoheader. */ /* The ATLASCone plugin is enabled */ #undef ENABLE_PLUGIN_ATLASCONE /* The CDFCones plugin is enabled */ #undef ENABLE_PLUGIN_CDFCONES /* The CMSIterativeCone plugin is enabled */ #undef ENABLE_PLUGIN_CMSITERATIVECONE /* The D0RunICone plugin is enabled */ #undef ENABLE_PLUGIN_D0RUNICONE /* The D0RunIICone plugin is enabled */ #undef ENABLE_PLUGIN_D0RUNIICONE /* The EECambridge plugin is enabled */ #undef ENABLE_PLUGIN_EECAMBRIDGE /* The GridJet plugin is enabled */ #undef ENABLE_PLUGIN_GRIDJET /* The Jade plugin is enabled */ #undef ENABLE_PLUGIN_JADE /* The NestedDefs plugin is enabled */ #undef ENABLE_PLUGIN_NESTEDDEFS /* The PxCone plugin is enabled */ #undef ENABLE_PLUGIN_PXCONE /* The SISCone plugin is enabled */ #undef ENABLE_PLUGIN_SISCONE /* The TrackJet plugin is enabled */ #undef ENABLE_PLUGIN_TRACKJET /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_EXECINFO_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `m' library (-lm). */ #undef HAVE_LIBM /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION fastjet-3.0.6+dfsg.orig/AUTHORS0000644000175000017500000000172711766120142014311 0ustar sunsunFastJet was written and is maintained and developed by Matteo Cacciari Gavin P. Salam Gregory Soyez See http://fastjet.fr/ for further details, and the FastJet manual at http://arxiv.org/abs/1111.6097 ---------------------------------------------------------------------- Many people have provided bug reports, suggestions for development and in some cases explicit code for plugin algorithms. We would in particular like to thank Vanya Belyaev Andy Buckley Timothy Chan Pierre-Antoine Delsart Olivier Devillers Robert Harris Joey Huston Sue Ann Koay Andreas Oehler Sal Rappoccio Juan Rojo Sebastian Sapeta Mike Seymour Jessie Shelton Torbjorn Sjostrand Lars Sonnenschein Hartmut Stadie Mark Sutton Chris Vermilion Markus Wobisch ---------------------------------------------------------------------- This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code, and CGAL: http://www.cgal.org/ fastjet-3.0.6+dfsg.orig/test-script-output-orig.txt0000644000175000017500000106107511766120142020562 0ustar sunsun#-------------------------------------------------------------------------- # FastJet release 2.4-devel # Written by M. Cacciari, G.P. Salam and G. Soyez # http://www.fastjet.fr # # Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen # clustering using fast geometric algorithms, with area measures and optional # external jet-finder plugins. # Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. # # This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM # Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code # and CGAL: http://www.cgal.org/. #------------------------------------------------------------------------- Ran Longitudinally invariant kt algorithm with R = 1 and E scheme recombination Strategy adopted by FastJet was N2Tiled Printing inclusive jets with pt > 5 GeV --------------------------------------- jet # rapidity phi pt n constituents 0 -0.86730713 2.90511470 983.38727662 35 1 0.22380471 6.04226446 910.28808604 52 2 -1.16520657 6.04589034 70.78886044 48 3 -2.34731970 1.25431317 10.72317440 18 4 -1.19479918 0.80734483 8.29342805 15 5 -1.71897064 4.01955399 8.16413672 9 6 -4.71909257 4.09173629 5.57326514 15 7 3.42713139 5.74362063 5.17254118 13 8 -4.83615264 2.20502275 5.02711586 12 Printing exclusive jets with dcut = 25 GeV^2 -------------------------------------------- jet # rapidity phi pt n constituents 0 -0.86730713 2.90511470 983.38727662 35 1 0.22093749 6.02911715 898.62586887 29 2 -1.16520657 6.04589034 70.78886044 48 3 0.36257181 0.54763129 16.65531147 23 4 -2.34731970 1.25431317 10.72317440 18 5 -1.19479918 0.80734483 8.29342805 15 6 -1.71897064 4.01955399 8.16413672 9 7 -4.71909257 4.09173629 5.57326514 15 8 3.42713139 5.74362063 5.17254118 13 9 -4.83615264 2.20502275 5.02711586 12 #-------------------------------------------------------------------------- # FastJet release 3.0.0 # Written by M. Cacciari, G.P. Salam and G. Soyez # http://www.fastjet.fr # # Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen # clustering using fast geometric algorithms, with jet areas and optional # external jet-finder plugins. If you use this code towards a scientific # publication please cite Phys. Lett. B641 (2006) [hep-ph/0512210] and # M. Cacciari, G.P. Salam and G. Soyez, http://fastjet.fr/ # # This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM # Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code. #------------------------------------------------------------------------- Jet definition was: Longitudinally invariant kt algorithm with R = 1 and E scheme recombination Area definition was: Active area (hidden ghosts) with ghosts of area 0.00997331 (had requested 0.01), placed up to y = 6, scattered wrt to perfect grid by (rel) 1, mean_ghost_pt = 1e-100, rel pt_scatter = 0.1, n repetitions of ghost distributions = 1 Strategy adopted by FastJet was N2MinHeapTiled Printing inclusive jets with pt > 5 GeV --------------------------------------- ijet rap phi Pt area +- err 0 -0.86731 2.90511 983.387 2.553 +- 0.000 1 0.22380 6.04226 910.288 4.169 +- 0.000 2 -1.16521 6.04589 70.789 4.199 +- 0.000 3 -2.34732 1.25431 10.723 2.932 +- 0.000 4 -1.19480 0.80734 8.293 2.334 +- 0.000 5 -1.71897 4.01955 8.164 2.822 +- 0.000 6 -4.71909 4.09174 5.573 4.209 +- 0.000 7 3.42713 5.74362 5.173 3.570 +- 0.000 8 -4.83615 2.20502 5.027 4.298 +- 0.000 Number of unclustered particles: 0 kt:#-------------------------------------------------------------------------- kt:# FastJet release 2.4-devel kt:# Written by M. Cacciari, G.P. Salam and G. Soyez kt:# http://www.fastjet.fr kt:# kt:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen kt:# clustering using fast geometric algorithms, with area measures and optional kt:# external jet-finder plugins. kt:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. kt:# kt:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM kt:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code kt:# and CGAL: http://www.cgal.org/. kt:#------------------------------------------------------------------------- kt:iev 0: number of particles = 354 kt:strategy used = N2Tiled kt:Algorithm: Longitudinally invariant kt algorithm with R = 0.4 and E scheme recombination (FastJet version 2.4-devel) kt: 0 -0.86683693 2.90514309 982.62071600 kt: 1 0.22030557 6.02962766 897.75337343 kt: 2 -1.17908533 6.08124171 67.60290125 kt: 3 0.24229023 0.30654370 8.88399867 kt: 4 0.34826413 0.90550241 5.22951332 kt: 5 -1.09102701 0.49479489 4.98572205 kt: 6 -1.70835143 3.89895010 4.42300623 kt: 7 -2.58954013 1.33705130 3.70169785 kt: 8 0.73214559 0.63980692 3.14339658 kt: 9 -2.56549692 0.84878570 2.95919083 kt: 10 -4.12215944 1.15696522 2.51206306 kt: 11 -1.58643411 1.19214263 2.42959198 kt: 12 -4.74243676 1.71411915 2.40989110 kt: 13 -1.74483742 4.31139803 2.19975694 kt: 14 -2.65619492 0.00869347 1.96249040 kt: 15 8.12777070 4.50033593 1.65339912 kt: 16 -2.03004782 0.68656051 1.64420492 kt: 17 -0.87938939 4.98480114 1.63199571 kt: 18 3.61834479 5.09397697 1.56474502 kt: 19 -5.28609060 4.09217344 1.51535651 kt: 20 -0.67170332 5.74247736 1.49754678 kt: 21 5.76250669 3.59085916 1.46715405 kt: 22 4.72475736 0.50254430 1.43259696 kt: 23 2.48819341 4.85093521 1.41171175 kt: 24 -4.47175148 4.54371501 1.41165455 kt: 25 -4.50319419 3.66056996 1.38335531 kt: 26 -2.03552916 1.49181291 1.37191994 kt: 27 -4.72343348 6.25683597 1.34495882 kt: 28 1.42803445 4.90129618 1.31406589 kt: 29 1.59220990 1.12160963 1.29085843 kt: 30 0.40534042 3.69495045 1.26881151 kt: 31 4.94988636 4.36120223 1.26261444 kt: 32 1.62738611 3.86526708 1.24342135 kt: 33 -2.10839838 3.09169827 1.17698972 kt: 34 -1.03504517 1.25762339 1.16808360 kt: 35 5.83349277 4.31085344 1.15482500 kt: 36 -1.12427361 3.92422371 1.10764361 kt: 37 2.98963399 5.74122296 1.09461974 kt: 38 -4.83850749 2.30229525 1.08886394 kt: 39 -3.62534898 0.72404600 1.06485310 kt: 40 6.76652121 3.05170242 1.06182081 kt: 41 -0.13319344 3.64778702 1.05346959 kt: 42 -4.22772997 0.35563462 1.03214563 kt: 43 -4.48927377 5.21631775 1.00486134 kt: 44 1.84571905 5.55537751 0.98202799 kt: 45 3.20849036 6.18492420 0.92857054 kt: 46 -7.63346998 1.88791834 0.90149649 kt: 47 5.30220485 2.79561003 0.89887610 kt: 48 1.05769277 1.19543539 0.89239365 kt: 49 -4.95272616 4.46690841 0.83958089 kt: 50 -1.49317631 5.34574969 0.81822951 kt: 51 -2.09096743 6.27425271 0.81086307 kt: 52 1.83547736 1.75040999 0.79562404 kt: 53 1.74045467 4.51637923 0.79030100 kt: 54 1.50547761 0.10665384 0.76642784 kt: 55 -3.46489188 5.22491128 0.75736110 kt: 56 -2.57544750 2.01650992 0.74812881 kt: 57 -2.08281652 2.08443079 0.73947498 kt: 58 3.30168928 0.31593164 0.73787177 kt: 59 -7.08139911 0.27488111 0.73417833 kt: 60 3.84122217 5.50038668 0.71000124 kt: 61 3.88630219 3.11476801 0.69171913 kt: 62 -2.58989888 5.84091146 0.67892958 kt: 63 -1.71670915 1.83027231 0.66196624 kt: 64 -5.02118651 2.71092610 0.65017071 kt: 65 -4.82184865 5.46980031 0.64727876 kt: 66 5.69475831 2.70645969 0.64362141 kt: 67 -4.25527633 1.55939760 0.63975079 kt: 68 6.17533205 3.56307885 0.63630228 kt: 69 4.02894078 6.26176433 0.60289486 kt: 70 6.85999506 2.63790161 0.58188721 kt: 71 4.19883453 0.53677379 0.55303764 kt: 72 0.94740386 4.36243846 0.51513674 kt: 73 -4.33539869 2.49861675 0.50220816 kt: 74 1.34612146 4.26806919 0.48436665 kt: 75 0.81045884 6.03196350 0.47584831 kt: 76 5.71058553 5.08761357 0.46317487 kt: 77 2.34896653 0.47947616 0.46165309 kt: 78 -1.31786918 3.17805771 0.46134922 kt: 79 -4.17239803 3.32710425 0.45813853 kt: 80 -7.37028044 2.63891802 0.45066932 kt: 81 6.84197794 5.07262797 0.43629714 kt: 82 4.60224805 4.59670427 0.41990416 kt: 83 -3.38190078 0.30864028 0.41555947 kt: 84 3.95162877 2.13619325 0.39747472 kt: 85 3.00384031 3.91945598 0.37901836 kt: 86 2.29736856 5.90631082 0.37240028 kt: 87 -2.54470222 3.91088804 0.36984147 kt: 88 0.37927637 4.81584020 0.36797773 kt: 89 -4.05363896 2.85373835 0.35006636 kt: 90 -7.81804817 2.31742986 0.34691123 kt: 91 -1.55979618 0.15270001 0.33949906 kt: 92 -6.95444242 3.14121630 0.33669312 kt: 93 -5.90630815 2.34308296 0.33485034 kt: 94 2.99953652 5.32331480 0.32369313 kt: 95 -3.16200526 0.91847342 0.31952512 kt: 96 -3.04151922 2.74757234 0.30511558 kt: 97 0.83760094 5.62388881 0.29160833 kt: 98 -0.34736825 1.23735075 0.27027371 kt: 99 0.51902625 1.69995477 0.25151834 kt: 100 -2.93620164 3.29089444 0.24729816 kt: 101 0.40561542 2.87893847 0.24382892 kt: 102 -1.16407350 2.42724930 0.24170838 kt: 103 -2.61605381 4.99574690 0.23782260 kt: 104 4.70142751 2.77490986 0.23233342 kt: 105 -3.66832742 1.89617405 0.23107924 kt: 106 2.25536876 0.88353124 0.22616655 kt: 107 5.40365168 4.29974868 0.21960739 kt: 108 1.12234644 2.22571396 0.21561207 kt: 109 -4.47757089 3.02433306 0.21113220 kt: 110 -5.52565280 4.62929125 0.20614848 kt: 111 -3.06249590 4.24385166 0.20128613 kt: 112 4.70894059 5.16548545 0.19745949 kt: 113 -5.66743652 3.33999913 0.18279821 kt: 114 -8.25876075 1.94973315 0.18036166 kt: 115 0.85233232 3.72772968 0.17946503 kt: 116 5.13926384 3.70347082 0.16895816 kt: 117 -5.14101988 3.27183445 0.16744970 kt: 118 5.16694688 1.91529863 0.15313809 kt: 119 -5.77760813 1.30987209 0.15262794 kt: 120 2.85806011 0.82211592 0.14988091 kt: 121 -4.03041013 4.43254080 0.14911557 kt: 122 -4.22703343 6.06844506 0.14682790 kt: 123 0.84904458 2.96987730 0.13993828 kt: 124 -4.92148792 0.41670454 0.13459880 kt: 125 -3.30599066 1.64077752 0.11948515 kt: 126 -1.68439986 2.54038112 0.11523881 kt: 127 2.12965154 2.64980311 0.09356077 kt: 128 1.24059851 1.76744063 0.09202186 kt: 129 3.80440897 3.92572632 0.07111865 kt: 130 6.64774887 1.19307942 0.06961562 kt: 131 7.94574967 5.44196494 0.06667721 kt: 132 -2.04101658 5.02079772 0.06442832 kt: 133 7.28041154 2.34495878 0.06130465 kt: 134 -8.12606625 0.31781741 0.05709689 kt: 135 -0.21935132 4.56559648 0.05471363 kt: 136 3.57931460 1.89230065 0.05238092 kt: 137 -8.25350433 4.46830907 0.03067038 kt: 138 -1.83523182 5.67155124 0.02646852 kt: 139 5.85112968 0.82301781 0.02209625 kt: 140 -7.54242519 4.71320378 0.01978933 kt: 141 4.70068958 0.98672496 0.01403051 kt: 142 6.81954469 0.60312817 0.01368451 kt: 143 -6.69612939 4.83576528 0.01280137 kt: 144 -9.48923228 4.87533276 0.01126329 kt:#-------------------------------------------------------------------------- kt:# FastJet release 2.4-devel kt:# Written by M. Cacciari, G.P. Salam and G. Soyez kt:# http://www.fastjet.fr kt:# kt:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen kt:# clustering using fast geometric algorithms, with area measures and optional kt:# external jet-finder plugins. kt:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. kt:# kt:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM kt:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code kt:# and CGAL: http://www.cgal.org/. kt:#------------------------------------------------------------------------- kt:iev 0: number of particles = 354 kt:strategy used = N2Tiled kt:Algorithm: Longitudinally invariant kt algorithm with R = 0.7 and E scheme recombination (FastJet version 2.4-devel) kt: 0 -0.86730713 2.90511470 983.38727662 kt: 1 0.22086793 6.02950080 898.49716062 kt: 2 -1.16895522 6.11108803 73.85281431 kt: 3 0.36257181 0.54763129 16.65531147 kt: 4 -2.46859216 1.03398974 7.98755167 kt: 5 -1.63742088 4.01894081 7.60023410 kt: 6 -2.09520476 1.79181955 3.40948539 kt: 7 -4.08696789 1.29286738 3.40867407 kt: 8 -2.48893071 6.20047697 3.39846776 kt: 9 1.42355884 4.61495465 3.00134227 kt: 10 -4.47515985 0.13381720 2.60184918 kt: 11 -5.16754646 4.25751388 2.50799761 kt: 12 0.21090666 3.67744153 2.50086160 kt: 13 -1.58643411 1.19214263 2.42959198 kt: 14 -4.74243676 1.71411915 2.40989110 kt: 15 5.90118350 3.59143689 2.27109917 kt: 16 3.68806210 5.21991244 2.23461061 kt: 17 1.38837335 1.15178259 2.18181440 kt: 18 -4.45447519 3.52277999 2.00508240 kt: 19 4.58645223 0.51528682 1.99789064 kt: 20 4.78752332 4.49329790 1.82378019 kt: 21 5.34972037 2.76057685 1.77331328 kt: 22 -3.48992204 0.66385983 1.76176505 kt: 23 -4.91658668 2.45438771 1.70518762 kt: 24 -0.82130915 4.97156132 1.68211928 kt: 25 6.82717104 2.88640852 1.66389607 kt: 26 8.12777070 4.50033593 1.65339912 kt: 27 -4.58775475 5.31548681 1.63951155 kt: 28 3.26519668 0.08479617 1.63130522 kt: 29 -4.42880373 4.53310946 1.55993729 kt: 30 -0.88548480 1.25381420 1.43831221 kt: 31 2.48819341 4.85093521 1.41171175 kt: 32 -7.74716245 1.99885295 1.40555457 kt: 33 2.99204410 5.64702228 1.39664800 kt: 34 5.76403009 4.30907914 1.37442101 kt: 35 1.93284770 5.65121478 1.33787065 kt: 36 1.62738611 3.86526708 1.24342135 kt: 37 -2.10839838 3.09169827 1.17698972 kt: 38 -4.22865055 2.64415428 0.83930490 kt: 39 2.43324078 0.64959400 0.82265103 kt: 40 1.83547736 1.75040999 0.79562404 kt: 41 1.50547761 0.10665384 0.76642784 kt: 42 -7.14002023 2.85294446 0.76318671 kt: 43 -3.46489188 5.22491128 0.75736110 kt: 44 -7.08139911 0.27488111 0.73417833 kt: 45 3.88630219 3.11476801 0.69171913 kt: 46 4.02894078 6.26176433 0.60289486 kt: 47 -2.72871445 4.02781810 0.56392330 kt: 48 -2.99682445 2.99008798 0.53238090 kt: 49 5.71058553 5.08761357 0.46317487 kt: 50 3.90979632 2.10798550 0.44848386 kt: 51 6.84197794 5.07262797 0.43629714 kt: 52 0.55314245 2.91209087 0.38339964 kt: 53 3.00384031 3.91945598 0.37901836 kt: 54 0.37927637 4.81584020 0.36797773 kt: 55 -5.41112050 3.30741092 0.35004490 kt: 56 -5.90630815 2.34308296 0.33485034 kt: 57 1.17399953 2.09000452 0.30090555 kt: 58 0.51902625 1.69995477 0.25151834 kt: 59 -2.61605381 4.99574690 0.23782260 kt: 60 5.16694688 1.91529863 0.15313809 kt: 61 -5.77760813 1.30987209 0.15262794 kt: 62 2.12965154 2.64980311 0.09356077 kt: 63 6.66165883 1.09935244 0.08134404 kt: 64 3.80440897 3.92572632 0.07111865 kt: 65 7.94574967 5.44196494 0.06667721 kt: 66 -8.12606625 0.31781741 0.05709689 kt: 67 -8.25350433 4.46830907 0.03067038 kt: 68 5.85112968 0.82301781 0.02209625 kt: 69 -7.54242519 4.71320378 0.01978933 kt: 70 -6.69612939 4.83576528 0.01280137 kt: 71 -9.48923228 4.87533276 0.01126329 kt:#-------------------------------------------------------------------------- kt:# FastJet release 2.4-devel kt:# Written by M. Cacciari, G.P. Salam and G. Soyez kt:# http://www.fastjet.fr kt:# kt:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen kt:# clustering using fast geometric algorithms, with area measures and optional kt:# external jet-finder plugins. kt:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. kt:# kt:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM kt:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code kt:# and CGAL: http://www.cgal.org/. kt:#------------------------------------------------------------------------- kt:iev 0: number of particles = 354 kt:strategy used = N2Tiled kt:Algorithm: Longitudinally invariant kt algorithm with R = 1 and E scheme recombination (FastJet version 2.4-devel) kt: 0 -0.86730713 2.90511470 983.38727662 kt: 1 0.22380471 6.04226446 910.28808604 kt: 2 -1.16520657 6.04589034 70.78886044 kt: 3 -2.34731970 1.25431317 10.72317440 kt: 4 -1.19479918 0.80734483 8.29342805 kt: 5 -1.71897064 4.01955399 8.16413672 kt: 6 -4.71909257 4.09173629 5.57326514 kt: 7 3.42713139 5.74362063 5.17254118 kt: 8 -4.83615264 2.20502275 5.02711586 kt: 9 -3.89394581 1.08161122 4.94315286 kt: 10 1.47874055 4.40163267 4.00212058 kt: 11 5.84218475 3.97947914 3.60941474 kt: 12 -2.49755039 6.13681715 3.49066590 kt: 13 1.40781129 1.42726421 3.36535088 kt: 14 0.25963380 3.58209511 2.79001856 kt: 15 -4.47515985 0.13381720 2.60184918 kt: 16 4.58645223 0.51528682 1.99789064 kt: 17 1.80634830 5.91579834 1.97322934 kt: 18 5.33631639 2.69954565 1.87842124 kt: 19 4.78752332 4.49329790 1.82378019 kt: 20 -2.41008112 3.06006605 1.70747884 kt: 21 8.12157221 4.53217471 1.69349505 kt: 22 6.82717104 2.88640852 1.66389607 kt: 23 -4.58775475 5.31548681 1.63951155 kt: 24 2.48819341 4.85093521 1.41171175 kt: 25 -7.74716245 1.99885295 1.40555457 kt: 26 2.43324078 0.64959400 0.82265103 kt: 27 -7.14572873 0.27797856 0.79122639 kt: 28 -7.14002023 2.85294446 0.76318671 kt: 29 -3.46489188 5.22491128 0.75736110 kt: 30 3.88630219 3.11476801 0.69171913 kt: 31 3.13795559 3.92044665 0.45013583 kt: 32 3.90979632 2.10798550 0.44848386 kt: 33 6.84197794 5.07262797 0.43629714 kt: 34 -5.77760813 1.30987209 0.15262794 kt: 35 6.56144436 1.04066330 0.10277895 kt: 36 -7.20516402 4.76132926 0.03253234 kt: 37 -8.25350433 4.46830907 0.03067038 kt: 38 -9.48923228 4.87533276 0.01126329 cam:#-------------------------------------------------------------------------- cam:# FastJet release 2.4-devel cam:# Written by M. Cacciari, G.P. Salam and G. Soyez cam:# http://www.fastjet.fr cam:# cam:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen cam:# clustering using fast geometric algorithms, with area measures and optional cam:# external jet-finder plugins. cam:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. cam:# cam:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM cam:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code cam:# and CGAL: http://www.cgal.org/. cam:#------------------------------------------------------------------------- cam:iev 0: number of particles = 354 cam:strategy used = N2Tiled cam:Algorithm: Longitudinally invariant Cambridge/Aachen algorithm with R = 0.4 and E scheme recombination (FastJet version 2.4-devel) cam: 0 -0.86742752 2.90533849 981.29404154 cam: 1 0.22162020 6.02948874 893.72986032 cam: 2 -1.18373969 6.08211191 66.83769630 cam: 3 0.24229023 0.30654370 8.88399867 cam: 4 0.34826413 0.90550241 5.22951332 cam: 5 -1.05303087 0.48682511 4.53197266 cam: 6 -1.70835143 3.89895010 4.42300623 cam: 7 -2.58954013 1.33705130 3.70169785 cam: 8 -0.16381978 6.18578838 3.21668811 cam: 9 0.73214559 0.63980692 3.14339658 cam: 10 -2.56549692 0.84878570 2.95919083 cam: 11 -1.58643411 1.19214263 2.42959198 cam: 12 -4.74243676 1.71411915 2.40989110 cam: 13 -4.15575471 1.12626041 2.22559566 cam: 14 -1.74483742 4.31139803 2.19975694 cam: 15 -0.72008554 5.76934281 2.01354707 cam: 16 -2.65619492 0.00869347 1.96249040 cam: 17 8.12777070 4.50033593 1.65339912 cam: 18 -2.03004782 0.68656051 1.64420492 cam: 19 -0.87938939 4.98480114 1.63199571 cam: 20 3.61834479 5.09397697 1.56474502 cam: 21 -5.28609060 4.09217344 1.51535651 cam: 22 5.76250669 3.59085916 1.46715405 cam: 23 4.72475736 0.50254430 1.43259696 cam: 24 2.48819341 4.85093521 1.41171175 cam: 25 -4.47175148 4.54371501 1.41165455 cam: 26 -4.50319419 3.66056996 1.38335531 cam: 27 -2.03552916 1.49181291 1.37191994 cam: 28 -4.72343348 6.25683597 1.34495882 cam: 29 -0.44877531 2.76160663 1.34047825 cam: 30 1.42803445 4.90129618 1.31406589 cam: 31 1.59220990 1.12160963 1.29085843 cam: 32 0.40534042 3.69495045 1.26881151 cam: 33 4.94988636 4.36120223 1.26261444 cam: 34 1.62738611 3.86526708 1.24342135 cam: 35 -2.10839838 3.09169827 1.17698972 cam: 36 -1.03504517 1.25762339 1.16808360 cam: 37 5.83349277 4.31085344 1.15482500 cam: 38 -1.12427361 3.92422371 1.10764361 cam: 39 2.98963399 5.74122296 1.09461974 cam: 40 -4.83850749 2.30229525 1.08886394 cam: 41 -3.62534898 0.72404600 1.06485310 cam: 42 6.76652121 3.05170242 1.06182081 cam: 43 -0.13319344 3.64778702 1.05346959 cam: 44 -4.22772997 0.35563462 1.03214563 cam: 45 -4.48927377 5.21631775 1.00486134 cam: 46 3.20849036 6.18492420 0.92857054 cam: 47 0.36401739 5.61127454 0.92581865 cam: 48 -7.63346998 1.88791834 0.90149649 cam: 49 5.30220485 2.79561003 0.89887610 cam: 50 1.05769277 1.19543539 0.89239365 cam: 51 -2.10706239 6.25798128 0.87426989 cam: 52 1.87559753 5.51836824 0.84995851 cam: 53 -4.95272616 4.46690841 0.83958089 cam: 54 -1.49317631 5.34574969 0.81822951 cam: 55 1.74045467 4.51637923 0.79030100 cam: 56 1.50547761 0.10665384 0.76642784 cam: 57 1.85091108 1.73264160 0.75882450 cam: 58 -3.46489188 5.22491128 0.75736110 cam: 59 -2.57544750 2.01650992 0.74812881 cam: 60 -2.08281652 2.08443079 0.73947498 cam: 61 3.30168928 0.31593164 0.73787177 cam: 62 -7.08139911 0.27488111 0.73417833 cam: 63 3.84122217 5.50038668 0.71000124 cam: 64 -4.20248778 2.73159752 0.70264440 cam: 65 3.88630219 3.11476801 0.69171913 cam: 66 -1.71670915 1.83027231 0.66196624 cam: 67 -5.02118651 2.71092610 0.65017071 cam: 68 -4.82184865 5.46980031 0.64727876 cam: 69 5.69475831 2.70645969 0.64362141 cam: 70 -4.25527633 1.55939760 0.63975079 cam: 71 6.17533205 3.56307885 0.63630228 cam: 72 -2.61377521 5.81871237 0.61566717 cam: 73 4.02894078 6.26176433 0.60289486 cam: 74 6.85999506 2.63790161 0.58188721 cam: 75 4.19883453 0.53677379 0.55303764 cam: 76 0.94740386 4.36243846 0.51513674 cam: 77 1.34612146 4.26806919 0.48436665 cam: 78 0.81045884 6.03196350 0.47584831 cam: 79 5.71058553 5.08761357 0.46317487 cam: 80 2.34896653 0.47947616 0.46165309 cam: 81 -1.31786918 3.17805771 0.46134922 cam: 82 -4.17239803 3.32710425 0.45813853 cam: 83 -1.50649087 0.57420237 0.45532811 cam: 84 -7.37028044 2.63891802 0.45066932 cam: 85 6.84197794 5.07262797 0.43629714 cam: 86 4.60224805 4.59670427 0.41990416 cam: 87 -3.38190078 0.30864028 0.41555947 cam: 88 3.95162877 2.13619325 0.39747472 cam: 89 3.00384031 3.91945598 0.37901836 cam: 90 2.29736856 5.90631082 0.37240028 cam: 91 -2.54470222 3.91088804 0.36984147 cam: 92 0.37927637 4.81584020 0.36797773 cam: 93 -7.81804817 2.31742986 0.34691123 cam: 94 -1.55979618 0.15270001 0.33949906 cam: 95 -6.95444242 3.14121630 0.33669312 cam: 96 -5.90630815 2.34308296 0.33485034 cam: 97 2.99953652 5.32331480 0.32369313 cam: 98 -3.16200526 0.91847342 0.31952512 cam: 99 -3.04151922 2.74757234 0.30511558 cam: 100 0.83760094 5.62388881 0.29160833 cam: 101 -3.81406002 1.43715817 0.27189954 cam: 102 -0.34736825 1.23735075 0.27027371 cam: 103 -0.65470948 0.03127068 0.26853654 cam: 104 0.51902625 1.69995477 0.25151834 cam: 105 -2.93620164 3.29089444 0.24729816 cam: 106 0.40561542 2.87893847 0.24382892 cam: 107 -1.16407350 2.42724930 0.24170838 cam: 108 -2.61605381 4.99574690 0.23782260 cam: 109 4.70142751 2.77490986 0.23233342 cam: 110 -3.66832742 1.89617405 0.23107924 cam: 111 2.25536876 0.88353124 0.22616655 cam: 112 5.40365168 4.29974868 0.21960739 cam: 113 1.12234644 2.22571396 0.21561207 cam: 114 -4.47757089 3.02433306 0.21113220 cam: 115 -5.52565280 4.62929125 0.20614848 cam: 116 -3.06249590 4.24385166 0.20128613 cam: 117 4.70894059 5.16548545 0.19745949 cam: 118 -5.66743652 3.33999913 0.18279821 cam: 119 -8.25876075 1.94973315 0.18036166 cam: 120 0.85233232 3.72772968 0.17946503 cam: 121 5.13926384 3.70347082 0.16895816 cam: 122 -5.14101988 3.27183445 0.16744970 cam: 123 5.16694688 1.91529863 0.15313809 cam: 124 -5.77760813 1.30987209 0.15262794 cam: 125 -4.31444181 2.22933852 0.15225803 cam: 126 2.85806011 0.82211592 0.14988091 cam: 127 -4.03041013 4.43254080 0.14911557 cam: 128 -4.22703343 6.06844506 0.14682790 cam: 129 0.84904458 2.96987730 0.13993828 cam: 130 1.53361682 5.78816076 0.13632854 cam: 131 -4.92148792 0.41670454 0.13459880 cam: 132 -3.30599066 1.64077752 0.11948515 cam: 133 -1.68439986 2.54038112 0.11523881 cam: 134 2.12965154 2.64980311 0.09356077 cam: 135 1.24059851 1.76744063 0.09202186 cam: 136 3.80440897 3.92572632 0.07111865 cam: 137 6.64774887 1.19307942 0.06961562 cam: 138 7.94574967 5.44196494 0.06667721 cam: 139 -2.04101658 5.02079772 0.06442832 cam: 140 7.28041154 2.34495878 0.06130465 cam: 141 -8.12606625 0.31781741 0.05709689 cam: 142 -0.21935132 4.56559648 0.05471363 cam: 143 3.57931460 1.89230065 0.05238092 cam: 144 1.52532282 2.10054786 0.03930408 cam: 145 -8.25350433 4.46830907 0.03067038 cam: 146 -4.52437285 0.90087159 0.02710438 cam: 147 -1.83523182 5.67155124 0.02646852 cam: 148 5.85112968 0.82301781 0.02209625 cam: 149 -7.54242519 4.71320378 0.01978933 cam: 150 4.70068958 0.98672496 0.01403051 cam: 151 6.81954469 0.60312817 0.01368451 cam: 152 -6.69612939 4.83576528 0.01280137 cam: 153 -9.48923228 4.87533276 0.01126329 cam:#-------------------------------------------------------------------------- cam:# FastJet release 2.4-devel cam:# Written by M. Cacciari, G.P. Salam and G. Soyez cam:# http://www.fastjet.fr cam:# cam:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen cam:# clustering using fast geometric algorithms, with area measures and optional cam:# external jet-finder plugins. cam:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. cam:# cam:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM cam:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code cam:# and CGAL: http://www.cgal.org/. cam:#------------------------------------------------------------------------- cam:iev 0: number of particles = 354 cam:strategy used = N2Tiled cam:Algorithm: Longitudinally invariant Cambridge/Aachen algorithm with R = 0.7 and E scheme recombination (FastJet version 2.4-devel) cam: 0 -0.86730713 2.90511470 983.38727662 cam: 1 0.22086793 6.02950080 898.49716062 cam: 2 -1.16399356 6.11976501 73.21177254 cam: 3 0.36257181 0.54763129 16.65531147 cam: 4 -2.46859216 1.03398974 7.98755167 cam: 5 -1.63742088 4.01894081 7.60023410 cam: 6 -1.41260817 1.21339915 3.59598464 cam: 7 -2.09520476 1.79181955 3.40948539 cam: 8 -2.48893071 6.20047697 3.39846776 cam: 9 -4.14837926 1.23759849 3.11081218 cam: 10 1.42355884 4.61495465 3.00134227 cam: 11 -4.65559812 2.55461347 2.72083845 cam: 12 -4.47515985 0.13381720 2.60184918 cam: 13 -5.16754646 4.25751388 2.50799761 cam: 14 0.21090666 3.67744153 2.50086160 cam: 15 -4.74243676 1.71411915 2.40989110 cam: 16 3.68806210 5.21991244 2.23461061 cam: 17 1.38837335 1.15178259 2.18181440 cam: 18 5.95240354 3.58245583 2.10328507 cam: 19 4.58645223 0.51528682 1.99789064 cam: 20 -4.45038609 3.57819259 1.82243672 cam: 21 -3.48992204 0.66385983 1.76176505 cam: 22 4.79418354 4.41977128 1.67379815 cam: 23 8.12777070 4.50033593 1.65339912 cam: 24 -4.58775475 5.31548681 1.63951155 cam: 25 -0.87938939 4.98480114 1.63199571 cam: 26 3.26519668 0.08479617 1.63130522 cam: 27 6.81396895 2.90601374 1.61167002 cam: 28 -4.42880373 4.53310946 1.55993729 cam: 29 5.46689098 2.75841597 1.54100732 cam: 30 2.48819341 4.85093521 1.41171175 cam: 31 -7.74716245 1.99885295 1.40555457 cam: 32 2.99204410 5.64702228 1.39664800 cam: 33 5.76403009 4.30907914 1.37442101 cam: 34 1.93284770 5.65121478 1.33787065 cam: 35 1.62738611 3.86526708 1.24342135 cam: 36 -2.10839838 3.09169827 1.17698972 cam: 37 -1.50315367 5.35579522 0.84334819 cam: 38 2.43324078 0.64959400 0.82265103 cam: 39 1.50547761 0.10665384 0.76642784 cam: 40 -7.14002023 2.85294446 0.76318671 cam: 41 1.85091108 1.73264160 0.75882450 cam: 42 -3.46489188 5.22491128 0.75736110 cam: 43 -7.08139911 0.27488111 0.73417833 cam: 44 3.88630219 3.11476801 0.69171913 cam: 45 4.02894078 6.26176433 0.60289486 cam: 46 -2.72871445 4.02781810 0.56392330 cam: 47 -2.99682445 2.99008798 0.53238090 cam: 48 5.71058553 5.08761357 0.46317487 cam: 49 3.90979632 2.10798550 0.44848386 cam: 50 6.84197794 5.07262797 0.43629714 cam: 51 0.19924287 4.78366673 0.42120513 cam: 52 0.55314245 2.91209087 0.38339964 cam: 53 3.00384031 3.91945598 0.37901836 cam: 54 -5.41112050 3.30741092 0.35004490 cam: 55 -3.55651390 1.80932526 0.34800028 cam: 56 1.20715892 2.09122256 0.34020769 cam: 57 -5.90630815 2.34308296 0.33485034 cam: 58 -2.50416454 5.00108652 0.30223502 cam: 59 -0.34736825 1.23735075 0.27027371 cam: 60 0.51902625 1.69995477 0.25151834 cam: 61 4.70142751 2.77490986 0.23233342 cam: 62 4.70894059 5.16548545 0.19745949 cam: 63 5.13926384 3.70347082 0.16895816 cam: 64 5.16694688 1.91529863 0.15313809 cam: 65 -5.77760813 1.30987209 0.15262794 cam: 66 2.12965154 2.64980311 0.09356077 cam: 67 6.66165883 1.09935244 0.08134404 cam: 68 3.80440897 3.92572632 0.07111865 cam: 69 7.94574967 5.44196494 0.06667721 cam: 70 7.28041154 2.34495878 0.06130465 cam: 71 -8.12606625 0.31781741 0.05709689 cam: 72 -8.25350433 4.46830907 0.03067038 cam: 73 5.85112968 0.82301781 0.02209625 cam: 74 -7.54242519 4.71320378 0.01978933 cam: 75 -6.69612939 4.83576528 0.01280137 cam: 76 -9.48923228 4.87533276 0.01126329 cam:#-------------------------------------------------------------------------- cam:# FastJet release 2.4-devel cam:# Written by M. Cacciari, G.P. Salam and G. Soyez cam:# http://www.fastjet.fr cam:# cam:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen cam:# clustering using fast geometric algorithms, with area measures and optional cam:# external jet-finder plugins. cam:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. cam:# cam:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM cam:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code cam:# and CGAL: http://www.cgal.org/. cam:#------------------------------------------------------------------------- cam:iev 0: number of particles = 354 cam:strategy used = N2Tiled cam:Algorithm: Longitudinally invariant Cambridge/Aachen algorithm with R = 1 and E scheme recombination (FastJet version 2.4-devel) cam: 0 -0.86730713 2.90511470 983.38727662 cam: 1 0.22373782 6.04264502 910.16392058 cam: 2 -1.16399356 6.11976501 73.21177254 cam: 3 -2.11073870 1.24403946 14.31690526 cam: 4 -1.63742088 4.01894081 7.60023410 cam: 5 -4.35831860 1.46681053 5.69380677 cam: 6 -4.73515490 4.12552482 5.47453961 cam: 7 3.36030096 5.67947800 4.65836189 cam: 8 1.47874055 4.40163267 4.00212058 cam: 9 5.85760811 3.85826655 3.42783601 cam: 10 -2.48893071 6.20047697 3.39846776 cam: 11 1.45474237 1.37694307 3.09511555 cam: 12 0.25963380 3.58209511 2.79001856 cam: 13 -4.65559812 2.55461347 2.72083845 cam: 14 -4.47515985 0.13381720 2.60184918 cam: 15 4.45835429 0.39337304 2.53483071 cam: 16 -1.09264206 5.11058237 2.43722289 cam: 17 1.80634830 5.91579834 1.97322934 cam: 18 5.33631639 2.69954565 1.87842124 cam: 19 4.78752332 4.49329790 1.82378019 cam: 20 -3.48992204 0.66385983 1.76176505 cam: 21 -2.41008112 3.06006605 1.70747884 cam: 22 8.12157221 4.53217471 1.69349505 cam: 23 6.82717104 2.88640852 1.66389607 cam: 24 -4.58775475 5.31548681 1.63951155 cam: 25 2.48819341 4.85093521 1.41171175 cam: 26 -7.74716245 1.99885295 1.40555457 cam: 27 -3.20053342 5.16123264 1.05419370 cam: 28 2.43324078 0.64959400 0.82265103 cam: 29 -7.14002023 2.85294446 0.76318671 cam: 30 -7.08139911 0.27488111 0.73417833 cam: 31 3.88630219 3.11476801 0.69171913 cam: 32 -2.72871445 4.02781810 0.56392330 cam: 33 0.05968633 1.46018749 0.50791427 cam: 34 5.71058553 5.08761357 0.46317487 cam: 35 3.13795559 3.92044665 0.45013583 cam: 36 3.90979632 2.10798550 0.44848386 cam: 37 6.84197794 5.07262797 0.43629714 cam: 38 0.19924287 4.78366673 0.42120513 cam: 39 -5.41112050 3.30741092 0.35004490 cam: 40 -5.90630815 2.34308296 0.33485034 cam: 41 -5.77760813 1.30987209 0.15262794 cam: 42 6.56144436 1.04066330 0.10277895 cam: 43 2.12965154 2.64980311 0.09356077 cam: 44 -8.12606625 0.31781741 0.05709689 cam: 45 -7.97169238 4.56422553 0.05009953 cam: 46 -6.69612939 4.83576528 0.01280137 cam: 47 -9.48923228 4.87533276 0.01126329 antikt:#-------------------------------------------------------------------------- antikt:# FastJet release 2.4-devel antikt:# Written by M. Cacciari, G.P. Salam and G. Soyez antikt:# http://www.fastjet.fr antikt:# antikt:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen antikt:# clustering using fast geometric algorithms, with area measures and optional antikt:# external jet-finder plugins. antikt:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. antikt:# antikt:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM antikt:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code antikt:# and CGAL: http://www.cgal.org/. antikt:#------------------------------------------------------------------------- antikt:iev 0: number of particles = 354 antikt:strategy used = N2Tiled antikt:Algorithm: Longitudinally invariant anti-kt algorithm with R = 0.4 and E scheme recombination (FastJet version 2.4-devel) antikt: 0 -0.86748501 2.90530809 981.15729251 antikt: 1 0.22203222 6.02990513 895.42612230 antikt: 2 -1.19073366 6.10283910 63.37420652 antikt: 3 0.43211695 0.77338735 9.34631586 antikt: 4 -0.94343365 5.73794142 5.72893220 antikt: 5 0.24428853 0.34126491 4.83019506 antikt: 6 -1.05303087 0.48682511 4.53197266 antikt: 7 -1.69927525 3.89645856 4.32811776 antikt: 8 -0.11630008 6.24162452 4.25433054 antikt: 9 -2.58954013 1.33705130 3.70169785 antikt: 10 -2.56549692 0.84878570 2.95919083 antikt: 11 -1.58643411 1.19214263 2.42959198 antikt: 12 -4.74243676 1.71411915 2.40989110 antikt: 13 -2.64086316 6.24949207 2.26654550 antikt: 14 -4.15575471 1.12626041 2.22559566 antikt: 15 -1.74483742 4.31139803 2.19975694 antikt: 16 8.12777070 4.50033593 1.65339912 antikt: 17 -2.03004782 0.68656051 1.64420492 antikt: 18 3.61834479 5.09397697 1.56474502 antikt: 19 -5.29176513 4.10047986 1.55657262 antikt: 20 -2.02326039 1.52416812 1.55494240 antikt: 21 -0.89599023 4.95807266 1.50984421 antikt: 22 -0.45119418 2.79496388 1.47236467 antikt: 23 5.76250669 3.59085916 1.46715405 antikt: 24 3.25484136 0.14309710 1.44584828 antikt: 25 4.72475736 0.50254430 1.43259696 antikt: 26 2.48819341 4.85093521 1.41171175 antikt: 27 -4.47175148 4.54371501 1.41165455 antikt: 28 -4.50319419 3.66056996 1.38335531 antikt: 29 -4.72343348 6.25683597 1.34495882 antikt: 30 -4.62733612 5.38457197 1.32285629 antikt: 31 1.42803445 4.90129618 1.31406589 antikt: 32 1.59220990 1.12160963 1.29085843 antikt: 33 0.40534042 3.69495045 1.26881151 antikt: 34 4.94988636 4.36120223 1.26261444 antikt: 35 1.62738611 3.86526708 1.24342135 antikt: 36 -2.10839838 3.09169827 1.17698972 antikt: 37 -1.03504517 1.25762339 1.16808360 antikt: 38 5.83349277 4.31085344 1.15482500 antikt: 39 -1.12427361 3.92422371 1.10764361 antikt: 40 2.98963399 5.74122296 1.09461974 antikt: 41 -4.83850749 2.30229525 1.08886394 antikt: 42 -3.61923238 0.72609230 1.08778794 antikt: 43 6.76652121 3.05170242 1.06182081 antikt: 44 -0.13319344 3.64778702 1.05346959 antikt: 45 -4.22772997 0.35563462 1.03214563 antikt: 46 -7.63346998 1.88791834 0.90149649 antikt: 47 5.30220485 2.79561003 0.89887610 antikt: 48 1.05769277 1.19543539 0.89239365 antikt: 49 1.87559753 5.51836824 0.84995851 antikt: 50 -4.95272616 4.46690841 0.83958089 antikt: 51 -1.49317631 5.34574969 0.81822951 antikt: 52 -2.09096743 6.27425271 0.81086307 antikt: 53 1.74045467 4.51637923 0.79030100 antikt: 54 1.50547761 0.10665384 0.76642784 antikt: 55 1.85091108 1.73264160 0.75882450 antikt: 56 -3.46489188 5.22491128 0.75736110 antikt: 57 -2.57544750 2.01650992 0.74812881 antikt: 58 -2.08281652 2.08443079 0.73947498 antikt: 59 -7.08139911 0.27488111 0.73417833 antikt: 60 3.84122217 5.50038668 0.71000124 antikt: 61 -4.20248778 2.73159752 0.70264440 antikt: 62 3.88630219 3.11476801 0.69171913 antikt: 63 -5.02118651 2.71092610 0.65017071 antikt: 64 5.69475831 2.70645969 0.64362141 antikt: 65 -4.25527633 1.55939760 0.63975079 antikt: 66 6.17533205 3.56307885 0.63630228 antikt: 67 4.02894078 6.26176433 0.60289486 antikt: 68 6.85999506 2.63790161 0.58188721 antikt: 69 4.19883453 0.53677379 0.55303764 antikt: 70 0.94740386 4.36243846 0.51513674 antikt: 71 1.34612146 4.26806919 0.48436665 antikt: 72 0.81045884 6.03196350 0.47584831 antikt: 73 -1.64364428 1.85783557 0.47357279 antikt: 74 -2.46602568 3.93164376 0.46496549 antikt: 75 5.71058553 5.08761357 0.46317487 antikt: 76 2.34896653 0.47947616 0.46165309 antikt: 77 -1.31786918 3.17805771 0.46134922 antikt: 78 1.04251749 0.60928958 0.46029304 antikt: 79 -4.17239803 3.32710425 0.45813853 antikt: 80 -1.50649087 0.57420237 0.45532811 antikt: 81 -7.37028044 2.63891802 0.45066932 antikt: 82 6.84197794 5.07262797 0.43629714 antikt: 83 4.60224805 4.59670427 0.41990416 antikt: 84 -3.38190078 0.30864028 0.41555947 antikt: 85 3.95162877 2.13619325 0.39747472 antikt: 86 3.00384031 3.91945598 0.37901836 antikt: 87 2.29736856 5.90631082 0.37240028 antikt: 88 -2.62292155 5.71781169 0.36803044 antikt: 89 0.37927637 4.81584020 0.36797773 antikt: 90 -0.27892031 5.79120906 0.34841721 antikt: 91 -7.81804817 2.31742986 0.34691123 antikt: 92 -1.55979618 0.15270001 0.33949906 antikt: 93 -6.95444242 3.14121630 0.33669312 antikt: 94 -5.90630815 2.34308296 0.33485034 antikt: 95 -4.38025953 5.03735328 0.33259252 antikt: 96 2.99953652 5.32331480 0.32369313 antikt: 97 0.42216479 5.53181222 0.32238660 antikt: 98 -3.04151922 2.74757234 0.30511558 antikt: 99 -3.14916951 0.92604820 0.29660309 antikt: 100 0.83760094 5.62388881 0.29160833 antikt: 101 -3.81406002 1.43715817 0.27189954 antikt: 102 -0.34736825 1.23735075 0.27027371 antikt: 103 -0.65470948 0.03127068 0.26853654 antikt: 104 0.51902625 1.69995477 0.25151834 antikt: 105 -2.93620164 3.29089444 0.24729816 antikt: 106 0.40561542 2.87893847 0.24382892 antikt: 107 -1.16407350 2.42724930 0.24170838 antikt: 108 -2.61605381 4.99574690 0.23782260 antikt: 109 4.70142751 2.77490986 0.23233342 antikt: 110 -3.66832742 1.89617405 0.23107924 antikt: 111 2.25536876 0.88353124 0.22616655 antikt: 112 5.40365168 4.29974868 0.21960739 antikt: 113 1.12234644 2.22571396 0.21561207 antikt: 114 -4.47757089 3.02433306 0.21113220 antikt: 115 3.37707424 5.94652022 0.20593434 antikt: 116 -3.06249590 4.24385166 0.20128613 antikt: 117 4.70894059 5.16548545 0.19745949 antikt: 118 -5.66743652 3.33999913 0.18279821 antikt: 119 -8.25876075 1.94973315 0.18036166 antikt: 120 0.85233232 3.72772968 0.17946503 antikt: 121 5.13926384 3.70347082 0.16895816 antikt: 122 -5.14101988 3.27183445 0.16744970 antikt: 123 -5.53241726 4.68984119 0.16446820 antikt: 124 5.16694688 1.91529863 0.15313809 antikt: 125 -5.77760813 1.30987209 0.15262794 antikt: 126 -4.31444181 2.22933852 0.15225803 antikt: 127 2.85806011 0.82211592 0.14988091 antikt: 128 -4.03041013 4.43254080 0.14911557 antikt: 129 -4.22703343 6.06844506 0.14682790 antikt: 130 0.84904458 2.96987730 0.13993828 antikt: 131 1.53361682 5.78816076 0.13632854 antikt: 132 -4.92148792 0.41670454 0.13459880 antikt: 133 -0.66442387 5.30254202 0.12915586 antikt: 134 -3.30599066 1.64077752 0.11948515 antikt: 135 -1.68439986 2.54038112 0.11523881 antikt: 136 2.12965154 2.64980311 0.09356077 antikt: 137 1.24059851 1.76744063 0.09202186 antikt: 138 3.80440897 3.92572632 0.07111865 antikt: 139 6.64774887 1.19307942 0.06961562 antikt: 140 7.94574967 5.44196494 0.06667721 antikt: 141 -2.04101658 5.02079772 0.06442832 antikt: 142 7.28041154 2.34495878 0.06130465 antikt: 143 -8.12606625 0.31781741 0.05709689 antikt: 144 -0.21935132 4.56559648 0.05471363 antikt: 145 3.57931460 1.89230065 0.05238092 antikt: 146 1.52532282 2.10054786 0.03930408 antikt: 147 -8.25350433 4.46830907 0.03067038 antikt: 148 -4.52437285 0.90087159 0.02710438 antikt: 149 -1.83523182 5.67155124 0.02646852 antikt: 150 5.85112968 0.82301781 0.02209625 antikt: 151 -7.54242519 4.71320378 0.01978933 antikt: 152 4.70068958 0.98672496 0.01403051 antikt: 153 6.81954469 0.60312817 0.01368451 antikt: 154 -6.69612939 4.83576528 0.01280137 antikt: 155 -9.48923228 4.87533276 0.01126329 antikt:#-------------------------------------------------------------------------- antikt:# FastJet release 2.4-devel antikt:# Written by M. Cacciari, G.P. Salam and G. Soyez antikt:# http://www.fastjet.fr antikt:# antikt:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen antikt:# clustering using fast geometric algorithms, with area measures and optional antikt:# external jet-finder plugins. antikt:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. antikt:# antikt:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM antikt:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code antikt:# and CGAL: http://www.cgal.org/. antikt:#------------------------------------------------------------------------- antikt:iev 0: number of particles = 354 antikt:strategy used = N2Tiled antikt:Algorithm: Longitudinally invariant anti-kt algorithm with R = 0.7 and E scheme recombination (FastJet version 2.4-devel) antikt: 0 -0.86713954 2.90515650 983.27961921 antikt: 1 0.22089580 6.03313616 904.16761389 antikt: 2 -1.16717122 6.08565211 71.03697265 antikt: 3 0.42935634 0.74543134 10.45328748 antikt: 4 -2.37033734 1.10516914 10.44846237 antikt: 5 -1.63742088 4.01894081 7.60023410 antikt: 6 -4.74471685 1.90859013 3.51451697 antikt: 7 -1.12029982 0.55475591 3.50073645 antikt: 8 -2.48893071 6.20047697 3.39846776 antikt: 9 -4.12839580 1.20946754 3.28369179 antikt: 10 -1.41736915 1.36306324 3.16083290 antikt: 11 1.42355884 4.61495465 3.00134227 antikt: 12 1.43770441 1.25201201 2.71181173 antikt: 13 -4.47515985 0.13381720 2.60184918 antikt: 14 3.17943493 6.11831695 2.59843744 antikt: 15 3.59306705 5.23298036 2.55679312 antikt: 16 -5.16754646 4.25751388 2.50799761 antikt: 17 0.21090666 3.67744153 2.50086160 antikt: 18 -4.45462032 4.76069897 2.31964717 antikt: 19 5.95240354 3.58245583 2.10328507 antikt: 20 -4.45447519 3.52277999 2.00508240 antikt: 21 4.85594631 4.39480200 1.92918163 antikt: 22 4.64130889 0.51732465 1.83412881 antikt: 23 2.40133084 4.93254825 1.65580933 antikt: 24 8.12777070 4.50033593 1.65339912 antikt: 25 -0.87438907 4.97941546 1.65111512 antikt: 26 6.81396895 2.90601374 1.61167002 antikt: 27 5.46689098 2.75841597 1.54100732 antikt: 28 -7.74716245 1.99885295 1.40555457 antikt: 29 5.80848253 4.44323737 1.39640087 antikt: 30 -2.30000823 2.07471563 1.36098639 antikt: 31 -3.52483240 0.59182913 1.28439092 antikt: 32 -2.05107738 3.04439562 1.27658215 antikt: 33 1.62738611 3.86526708 1.24342135 antikt: 34 1.91258037 5.72289757 1.07760220 antikt: 35 2.43324078 0.64959400 0.82265103 antikt: 36 -5.04641006 2.82293016 0.79695611 antikt: 37 -4.77645643 5.47204399 0.78373756 antikt: 38 1.50547761 0.10665384 0.76642784 antikt: 39 -7.14002023 2.85294446 0.76318671 antikt: 40 -3.46489188 5.22491128 0.75736110 antikt: 41 4.00848467 0.08616718 0.74988143 antikt: 42 -7.08139911 0.27488111 0.73417833 antikt: 43 -4.20248778 2.73159752 0.70264440 antikt: 44 3.88630219 3.11476801 0.69171913 antikt: 45 -2.72871445 4.02781810 0.56392330 antikt: 46 -2.99682445 2.99008798 0.53238090 antikt: 47 3.90979632 2.10798550 0.44848386 antikt: 48 6.84197794 5.07262797 0.43629714 antikt: 49 -1.73634908 5.24004844 0.43343002 antikt: 50 0.22594070 4.79588960 0.40074803 antikt: 51 0.55314245 2.91209087 0.38339964 antikt: 52 3.00384031 3.91945598 0.37901836 antikt: 53 -3.55651390 1.80932526 0.34800028 antikt: 54 -5.90630815 2.34308296 0.33485034 antikt: 55 1.84696902 1.96882707 0.31563139 antikt: 56 0.83760094 5.62388881 0.29160833 antikt: 57 -0.34736825 1.23735075 0.27027371 antikt: 58 0.51902625 1.69995477 0.25151834 antikt: 59 -2.61605381 4.99574690 0.23782260 antikt: 60 4.70142751 2.77490986 0.23233342 antikt: 61 1.12234644 2.22571396 0.21561207 antikt: 62 4.70894059 5.16548545 0.19745949 antikt: 63 -5.66743652 3.33999913 0.18279821 antikt: 64 5.71167866 5.25799957 0.17289920 antikt: 65 5.16694688 1.91529863 0.15313809 antikt: 66 -5.77760813 1.30987209 0.15262794 antikt: 67 5.09860149 3.64334836 0.12710578 antikt: 68 2.12965154 2.64980311 0.09356077 antikt: 69 6.66165883 1.09935244 0.08134404 antikt: 70 3.80440897 3.92572632 0.07111865 antikt: 71 7.94574967 5.44196494 0.06667721 antikt: 72 7.28041154 2.34495878 0.06130465 antikt: 73 -8.12606625 0.31781741 0.05709689 antikt: 74 -8.25350433 4.46830907 0.03067038 antikt: 75 5.85112968 0.82301781 0.02209625 antikt: 76 -7.54242519 4.71320378 0.01978933 antikt: 77 -6.69612939 4.83576528 0.01280137 antikt: 78 -9.48923228 4.87533276 0.01126329 antikt:#-------------------------------------------------------------------------- antikt:# FastJet release 2.4-devel antikt:# Written by M. Cacciari, G.P. Salam and G. Soyez antikt:# http://www.fastjet.fr antikt:# antikt:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen antikt:# clustering using fast geometric algorithms, with area measures and optional antikt:# external jet-finder plugins. antikt:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. antikt:# antikt:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM antikt:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code antikt:# and CGAL: http://www.cgal.org/. antikt:#------------------------------------------------------------------------- antikt:iev 0: number of particles = 354 antikt:strategy used = N2Tiled antikt:Algorithm: Longitudinally invariant anti-kt algorithm with R = 1 and E scheme recombination (FastJet version 2.4-devel) antikt: 0 -0.86730713 2.90511470 983.38727662 antikt: 1 0.21948180 6.03486732 908.09787495 antikt: 2 -1.19083003 6.11989882 72.94286613 antikt: 3 -2.22747216 1.23595349 13.43110151 antikt: 4 0.54850093 0.88807554 8.87400681 antikt: 5 -1.72135558 3.91871676 8.64801111 antikt: 6 -4.75423237 4.23539171 5.39098337 antikt: 7 -4.02639226 0.92060213 5.19744903 antikt: 8 3.42713139 5.74362063 5.17254118 antikt: 9 -4.73421315 2.11089141 4.42218680 antikt: 10 1.47874055 4.40163267 4.00212058 antikt: 11 5.85760811 3.85826655 3.42783601 antikt: 12 0.25963380 3.58209511 2.79001856 antikt: 13 -4.65122603 5.87695461 2.65046880 antikt: 14 -2.64873063 6.18331755 2.63727771 antikt: 15 2.16899671 5.23971678 2.53254676 antikt: 16 1.69265900 1.32955625 2.27662772 antikt: 17 4.58645223 0.51528682 1.99789064 antikt: 18 5.33631639 2.69954565 1.87842124 antikt: 19 4.78752332 4.49329790 1.82378019 antikt: 20 -7.67133544 2.15001614 1.78739946 antikt: 21 -0.94910955 4.98257184 1.76305471 antikt: 22 8.12157221 4.53217471 1.69349505 antikt: 23 6.82717104 2.88640852 1.66389607 antikt: 24 -0.94535381 1.26247978 1.32228565 antikt: 25 1.82818502 0.24629378 1.20812646 antikt: 26 -3.24243592 5.02652982 1.12293419 antikt: 27 -4.12223799 3.12266361 0.78608158 antikt: 28 3.87921897 3.18426154 0.74249811 antikt: 29 -7.08139911 0.27488111 0.73417833 antikt: 30 -2.86758278 2.98959681 0.66776169 antikt: 31 5.71058553 5.08761357 0.46317487 antikt: 32 3.90979632 2.10798550 0.44848386 antikt: 33 6.84197794 5.07262797 0.43629714 antikt: 34 -5.84682553 2.15265071 0.39799133 antikt: 35 3.00384031 3.91945598 0.37901836 antikt: 36 0.37927637 4.81584020 0.36797773 antikt: 37 -5.41112050 3.30741092 0.35004490 antikt: 38 -3.55651390 1.80932526 0.34800028 antikt: 39 -6.95444242 3.14121630 0.33669312 antikt: 40 1.12234644 2.22571396 0.21561207 antikt: 41 2.85806011 0.82211592 0.14988091 antikt: 42 6.56144436 1.04066330 0.10277895 antikt: 43 2.12965154 2.64980311 0.09356077 antikt: 44 -2.04101658 5.02079772 0.06442832 antikt: 45 -5.86524701 1.15128325 0.06002593 antikt: 46 -8.12606625 0.31781741 0.05709689 antikt: 47 -7.97169238 4.56422553 0.05009953 antikt: 48 -6.69612939 4.83576528 0.01280137 antikt: 49 -9.48923228 4.87533276 0.01126329 genkt,1.0:#-------------------------------------------------------------------------- genkt,1.0:# FastJet release 2.4-devel genkt,1.0:# Written by M. Cacciari, G.P. Salam and G. Soyez genkt,1.0:# http://www.fastjet.fr genkt,1.0:# genkt,1.0:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen genkt,1.0:# clustering using fast geometric algorithms, with area measures and optional genkt,1.0:# external jet-finder plugins. genkt,1.0:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. genkt,1.0:# genkt,1.0:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM genkt,1.0:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code genkt,1.0:# and CGAL: http://www.cgal.org/. genkt,1.0:#------------------------------------------------------------------------- genkt,1.0:iev 0: number of particles = 354 genkt,1.0:strategy used = N2Tiled genkt,1.0:Algorithm: Longitudinally invariant generalised kt algorithm with R = 0.4, p = 1 and E scheme recombination (FastJet version 2.4-devel) genkt,1.0: 0 -0.86683693 2.90514309 982.62071600 genkt,1.0: 1 0.22030557 6.02962766 897.75337343 genkt,1.0: 2 -1.17908533 6.08124171 67.60290125 genkt,1.0: 3 0.24229023 0.30654370 8.88399867 genkt,1.0: 4 0.34826413 0.90550241 5.22951332 genkt,1.0: 5 -1.09102701 0.49479489 4.98572205 genkt,1.0: 6 -1.70835143 3.89895010 4.42300623 genkt,1.0: 7 -2.58954013 1.33705130 3.70169785 genkt,1.0: 8 0.73214559 0.63980692 3.14339658 genkt,1.0: 9 -2.56549692 0.84878570 2.95919083 genkt,1.0: 10 -4.12215944 1.15696522 2.51206306 genkt,1.0: 11 -1.58643411 1.19214263 2.42959198 genkt,1.0: 12 -4.74243676 1.71411915 2.40989110 genkt,1.0: 13 -1.74483742 4.31139803 2.19975694 genkt,1.0: 14 -2.65619492 0.00869347 1.96249040 genkt,1.0: 15 8.12777070 4.50033593 1.65339912 genkt,1.0: 16 -2.03004782 0.68656051 1.64420492 genkt,1.0: 17 -0.87938939 4.98480114 1.63199571 genkt,1.0: 18 3.61834479 5.09397697 1.56474502 genkt,1.0: 19 -5.28609060 4.09217344 1.51535651 genkt,1.0: 20 -0.67170332 5.74247736 1.49754678 genkt,1.0: 21 5.76250669 3.59085916 1.46715405 genkt,1.0: 22 4.72475736 0.50254430 1.43259696 genkt,1.0: 23 2.48819341 4.85093521 1.41171175 genkt,1.0: 24 -4.47175148 4.54371501 1.41165455 genkt,1.0: 25 -4.50319419 3.66056996 1.38335531 genkt,1.0: 26 -2.03552916 1.49181291 1.37191994 genkt,1.0: 27 -4.72343348 6.25683597 1.34495882 genkt,1.0: 28 1.42803445 4.90129618 1.31406589 genkt,1.0: 29 1.59220990 1.12160963 1.29085843 genkt,1.0: 30 0.40534042 3.69495045 1.26881151 genkt,1.0: 31 4.94988636 4.36120223 1.26261444 genkt,1.0: 32 1.62738611 3.86526708 1.24342135 genkt,1.0: 33 -2.10839838 3.09169827 1.17698972 genkt,1.0: 34 -1.03504517 1.25762339 1.16808360 genkt,1.0: 35 5.83349277 4.31085344 1.15482500 genkt,1.0: 36 -1.12427361 3.92422371 1.10764361 genkt,1.0: 37 2.98963399 5.74122296 1.09461974 genkt,1.0: 38 -4.83850749 2.30229525 1.08886394 genkt,1.0: 39 -3.62534898 0.72404600 1.06485310 genkt,1.0: 40 6.76652121 3.05170242 1.06182081 genkt,1.0: 41 -0.13319344 3.64778702 1.05346959 genkt,1.0: 42 -4.22772997 0.35563462 1.03214563 genkt,1.0: 43 -4.48927377 5.21631775 1.00486134 genkt,1.0: 44 1.84571905 5.55537751 0.98202799 genkt,1.0: 45 3.20849036 6.18492420 0.92857054 genkt,1.0: 46 -7.63346998 1.88791834 0.90149649 genkt,1.0: 47 5.30220485 2.79561003 0.89887610 genkt,1.0: 48 1.05769277 1.19543539 0.89239365 genkt,1.0: 49 -4.95272616 4.46690841 0.83958089 genkt,1.0: 50 -1.49317631 5.34574969 0.81822951 genkt,1.0: 51 -2.09096743 6.27425271 0.81086307 genkt,1.0: 52 1.83547736 1.75040999 0.79562404 genkt,1.0: 53 1.74045467 4.51637923 0.79030100 genkt,1.0: 54 1.50547761 0.10665384 0.76642784 genkt,1.0: 55 -3.46489188 5.22491128 0.75736110 genkt,1.0: 56 -2.57544750 2.01650992 0.74812881 genkt,1.0: 57 -2.08281652 2.08443079 0.73947498 genkt,1.0: 58 3.30168928 0.31593164 0.73787177 genkt,1.0: 59 -7.08139911 0.27488111 0.73417833 genkt,1.0: 60 3.84122217 5.50038668 0.71000124 genkt,1.0: 61 3.88630219 3.11476801 0.69171913 genkt,1.0: 62 -2.58989888 5.84091146 0.67892958 genkt,1.0: 63 -1.71670915 1.83027231 0.66196624 genkt,1.0: 64 -5.02118651 2.71092610 0.65017071 genkt,1.0: 65 -4.82184865 5.46980031 0.64727876 genkt,1.0: 66 5.69475831 2.70645969 0.64362141 genkt,1.0: 67 -4.25527633 1.55939760 0.63975079 genkt,1.0: 68 6.17533205 3.56307885 0.63630228 genkt,1.0: 69 4.02894078 6.26176433 0.60289486 genkt,1.0: 70 6.85999506 2.63790161 0.58188721 genkt,1.0: 71 4.19883453 0.53677379 0.55303764 genkt,1.0: 72 0.94740386 4.36243846 0.51513674 genkt,1.0: 73 -4.33539869 2.49861675 0.50220816 genkt,1.0: 74 1.34612146 4.26806919 0.48436665 genkt,1.0: 75 0.81045884 6.03196350 0.47584831 genkt,1.0: 76 5.71058553 5.08761357 0.46317487 genkt,1.0: 77 2.34896653 0.47947616 0.46165309 genkt,1.0: 78 -1.31786918 3.17805771 0.46134922 genkt,1.0: 79 -4.17239803 3.32710425 0.45813853 genkt,1.0: 80 -7.37028044 2.63891802 0.45066932 genkt,1.0: 81 6.84197794 5.07262797 0.43629714 genkt,1.0: 82 4.60224805 4.59670427 0.41990416 genkt,1.0: 83 -3.38190078 0.30864028 0.41555947 genkt,1.0: 84 3.95162877 2.13619325 0.39747472 genkt,1.0: 85 3.00384031 3.91945598 0.37901836 genkt,1.0: 86 2.29736856 5.90631082 0.37240028 genkt,1.0: 87 -2.54470222 3.91088804 0.36984147 genkt,1.0: 88 0.37927637 4.81584020 0.36797773 genkt,1.0: 89 -4.05363896 2.85373835 0.35006636 genkt,1.0: 90 -7.81804817 2.31742986 0.34691123 genkt,1.0: 91 -1.55979618 0.15270001 0.33949906 genkt,1.0: 92 -6.95444242 3.14121630 0.33669312 genkt,1.0: 93 -5.90630815 2.34308296 0.33485034 genkt,1.0: 94 2.99953652 5.32331480 0.32369313 genkt,1.0: 95 -3.16200526 0.91847342 0.31952512 genkt,1.0: 96 -3.04151922 2.74757234 0.30511558 genkt,1.0: 97 0.83760094 5.62388881 0.29160833 genkt,1.0: 98 -0.34736825 1.23735075 0.27027371 genkt,1.0: 99 0.51902625 1.69995477 0.25151834 genkt,1.0: 100 -2.93620164 3.29089444 0.24729816 genkt,1.0: 101 0.40561542 2.87893847 0.24382892 genkt,1.0: 102 -1.16407350 2.42724930 0.24170838 genkt,1.0: 103 -2.61605381 4.99574690 0.23782260 genkt,1.0: 104 4.70142751 2.77490986 0.23233342 genkt,1.0: 105 -3.66832742 1.89617405 0.23107924 genkt,1.0: 106 2.25536876 0.88353124 0.22616655 genkt,1.0: 107 5.40365168 4.29974868 0.21960739 genkt,1.0: 108 1.12234644 2.22571396 0.21561207 genkt,1.0: 109 -4.47757089 3.02433306 0.21113220 genkt,1.0: 110 -5.52565280 4.62929125 0.20614848 genkt,1.0: 111 -3.06249590 4.24385166 0.20128613 genkt,1.0: 112 4.70894059 5.16548545 0.19745949 genkt,1.0: 113 -5.66743652 3.33999913 0.18279821 genkt,1.0: 114 -8.25876075 1.94973315 0.18036166 genkt,1.0: 115 0.85233232 3.72772968 0.17946503 genkt,1.0: 116 5.13926384 3.70347082 0.16895816 genkt,1.0: 117 -5.14101988 3.27183445 0.16744970 genkt,1.0: 118 5.16694688 1.91529863 0.15313809 genkt,1.0: 119 -5.77760813 1.30987209 0.15262794 genkt,1.0: 120 2.85806011 0.82211592 0.14988091 genkt,1.0: 121 -4.03041013 4.43254080 0.14911557 genkt,1.0: 122 -4.22703343 6.06844506 0.14682790 genkt,1.0: 123 0.84904458 2.96987730 0.13993828 genkt,1.0: 124 -4.92148792 0.41670454 0.13459880 genkt,1.0: 125 -3.30599066 1.64077752 0.11948515 genkt,1.0: 126 -1.68439986 2.54038112 0.11523881 genkt,1.0: 127 2.12965154 2.64980311 0.09356077 genkt,1.0: 128 1.24059851 1.76744063 0.09202186 genkt,1.0: 129 3.80440897 3.92572632 0.07111865 genkt,1.0: 130 6.64774887 1.19307942 0.06961562 genkt,1.0: 131 7.94574967 5.44196494 0.06667721 genkt,1.0: 132 -2.04101658 5.02079772 0.06442832 genkt,1.0: 133 7.28041154 2.34495878 0.06130465 genkt,1.0: 134 -8.12606625 0.31781741 0.05709689 genkt,1.0: 135 -0.21935132 4.56559648 0.05471363 genkt,1.0: 136 3.57931460 1.89230065 0.05238092 genkt,1.0: 137 -8.25350433 4.46830907 0.03067038 genkt,1.0: 138 -1.83523182 5.67155124 0.02646852 genkt,1.0: 139 5.85112968 0.82301781 0.02209625 genkt,1.0: 140 -7.54242519 4.71320378 0.01978933 genkt,1.0: 141 4.70068958 0.98672496 0.01403051 genkt,1.0: 142 6.81954469 0.60312817 0.01368451 genkt,1.0: 143 -6.69612939 4.83576528 0.01280137 genkt,1.0: 144 -9.48923228 4.87533276 0.01126329 genkt,1.0:#-------------------------------------------------------------------------- genkt,1.0:# FastJet release 2.4-devel genkt,1.0:# Written by M. Cacciari, G.P. Salam and G. Soyez genkt,1.0:# http://www.fastjet.fr genkt,1.0:# genkt,1.0:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen genkt,1.0:# clustering using fast geometric algorithms, with area measures and optional genkt,1.0:# external jet-finder plugins. genkt,1.0:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. genkt,1.0:# genkt,1.0:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM genkt,1.0:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code genkt,1.0:# and CGAL: http://www.cgal.org/. genkt,1.0:#------------------------------------------------------------------------- genkt,1.0:iev 0: number of particles = 354 genkt,1.0:strategy used = N2Tiled genkt,1.0:Algorithm: Longitudinally invariant generalised kt algorithm with R = 0.7, p = 1 and E scheme recombination (FastJet version 2.4-devel) genkt,1.0: 0 -0.86730713 2.90511470 983.38727662 genkt,1.0: 1 0.22086793 6.02950080 898.49716062 genkt,1.0: 2 -1.16895522 6.11108803 73.85281431 genkt,1.0: 3 0.36257181 0.54763129 16.65531147 genkt,1.0: 4 -2.46859216 1.03398974 7.98755167 genkt,1.0: 5 -1.63742088 4.01894081 7.60023410 genkt,1.0: 6 -2.09520476 1.79181955 3.40948539 genkt,1.0: 7 -4.08696789 1.29286738 3.40867407 genkt,1.0: 8 -2.48893071 6.20047697 3.39846776 genkt,1.0: 9 1.42355884 4.61495465 3.00134227 genkt,1.0: 10 -4.47515985 0.13381720 2.60184918 genkt,1.0: 11 -5.16754646 4.25751388 2.50799761 genkt,1.0: 12 0.21090666 3.67744153 2.50086160 genkt,1.0: 13 -1.58643411 1.19214263 2.42959198 genkt,1.0: 14 -4.74243676 1.71411915 2.40989110 genkt,1.0: 15 5.90118350 3.59143689 2.27109917 genkt,1.0: 16 3.68806210 5.21991244 2.23461061 genkt,1.0: 17 1.38837335 1.15178259 2.18181440 genkt,1.0: 18 -4.45447519 3.52277999 2.00508240 genkt,1.0: 19 4.58645223 0.51528682 1.99789064 genkt,1.0: 20 4.78752332 4.49329790 1.82378019 genkt,1.0: 21 5.34972037 2.76057685 1.77331328 genkt,1.0: 22 -3.48992204 0.66385983 1.76176505 genkt,1.0: 23 -4.91658668 2.45438771 1.70518762 genkt,1.0: 24 -0.82130915 4.97156132 1.68211928 genkt,1.0: 25 6.82717104 2.88640852 1.66389607 genkt,1.0: 26 8.12777070 4.50033593 1.65339912 genkt,1.0: 27 -4.58775475 5.31548681 1.63951155 genkt,1.0: 28 3.26519668 0.08479617 1.63130522 genkt,1.0: 29 -4.42880373 4.53310946 1.55993729 genkt,1.0: 30 -0.88548480 1.25381420 1.43831221 genkt,1.0: 31 2.48819341 4.85093521 1.41171175 genkt,1.0: 32 -7.74716245 1.99885295 1.40555457 genkt,1.0: 33 2.99204410 5.64702228 1.39664800 genkt,1.0: 34 5.76403009 4.30907914 1.37442101 genkt,1.0: 35 1.93284770 5.65121478 1.33787065 genkt,1.0: 36 1.62738611 3.86526708 1.24342135 genkt,1.0: 37 -2.10839838 3.09169827 1.17698972 genkt,1.0: 38 -4.22865055 2.64415428 0.83930490 genkt,1.0: 39 2.43324078 0.64959400 0.82265103 genkt,1.0: 40 1.83547736 1.75040999 0.79562404 genkt,1.0: 41 1.50547761 0.10665384 0.76642784 genkt,1.0: 42 -7.14002023 2.85294446 0.76318671 genkt,1.0: 43 -3.46489188 5.22491128 0.75736110 genkt,1.0: 44 -7.08139911 0.27488111 0.73417833 genkt,1.0: 45 3.88630219 3.11476801 0.69171913 genkt,1.0: 46 4.02894078 6.26176433 0.60289486 genkt,1.0: 47 -2.72871445 4.02781810 0.56392330 genkt,1.0: 48 -2.99682445 2.99008798 0.53238090 genkt,1.0: 49 5.71058553 5.08761357 0.46317487 genkt,1.0: 50 3.90979632 2.10798550 0.44848386 genkt,1.0: 51 6.84197794 5.07262797 0.43629714 genkt,1.0: 52 0.55314245 2.91209087 0.38339964 genkt,1.0: 53 3.00384031 3.91945598 0.37901836 genkt,1.0: 54 0.37927637 4.81584020 0.36797773 genkt,1.0: 55 -5.41112050 3.30741092 0.35004490 genkt,1.0: 56 -5.90630815 2.34308296 0.33485034 genkt,1.0: 57 1.17399953 2.09000452 0.30090555 genkt,1.0: 58 0.51902625 1.69995477 0.25151834 genkt,1.0: 59 -2.61605381 4.99574690 0.23782260 genkt,1.0: 60 5.16694688 1.91529863 0.15313809 genkt,1.0: 61 -5.77760813 1.30987209 0.15262794 genkt,1.0: 62 2.12965154 2.64980311 0.09356077 genkt,1.0: 63 6.66165883 1.09935244 0.08134404 genkt,1.0: 64 3.80440897 3.92572632 0.07111865 genkt,1.0: 65 7.94574967 5.44196494 0.06667721 genkt,1.0: 66 -8.12606625 0.31781741 0.05709689 genkt,1.0: 67 -8.25350433 4.46830907 0.03067038 genkt,1.0: 68 5.85112968 0.82301781 0.02209625 genkt,1.0: 69 -7.54242519 4.71320378 0.01978933 genkt,1.0: 70 -6.69612939 4.83576528 0.01280137 genkt,1.0: 71 -9.48923228 4.87533276 0.01126329 genkt,1.0:#-------------------------------------------------------------------------- genkt,1.0:# FastJet release 2.4-devel genkt,1.0:# Written by M. Cacciari, G.P. Salam and G. Soyez genkt,1.0:# http://www.fastjet.fr genkt,1.0:# genkt,1.0:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen genkt,1.0:# clustering using fast geometric algorithms, with area measures and optional genkt,1.0:# external jet-finder plugins. genkt,1.0:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. genkt,1.0:# genkt,1.0:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM genkt,1.0:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code genkt,1.0:# and CGAL: http://www.cgal.org/. genkt,1.0:#------------------------------------------------------------------------- genkt,1.0:iev 0: number of particles = 354 genkt,1.0:strategy used = N2Tiled genkt,1.0:Algorithm: Longitudinally invariant generalised kt algorithm with R = 1, p = 1 and E scheme recombination (FastJet version 2.4-devel) genkt,1.0: 0 -0.86730713 2.90511470 983.38727662 genkt,1.0: 1 0.22380471 6.04226446 910.28808604 genkt,1.0: 2 -1.16520657 6.04589034 70.78886044 genkt,1.0: 3 -2.34731970 1.25431317 10.72317440 genkt,1.0: 4 -1.19479918 0.80734483 8.29342805 genkt,1.0: 5 -1.71897064 4.01955399 8.16413672 genkt,1.0: 6 -4.71909257 4.09173629 5.57326514 genkt,1.0: 7 3.42713139 5.74362063 5.17254118 genkt,1.0: 8 -4.83615264 2.20502275 5.02711586 genkt,1.0: 9 -3.89394581 1.08161122 4.94315286 genkt,1.0: 10 1.47874055 4.40163267 4.00212058 genkt,1.0: 11 5.84218475 3.97947914 3.60941474 genkt,1.0: 12 -2.49755039 6.13681715 3.49066590 genkt,1.0: 13 1.40781129 1.42726421 3.36535088 genkt,1.0: 14 0.25963380 3.58209511 2.79001856 genkt,1.0: 15 -4.47515985 0.13381720 2.60184918 genkt,1.0: 16 4.58645223 0.51528682 1.99789064 genkt,1.0: 17 1.80634830 5.91579834 1.97322934 genkt,1.0: 18 5.33631639 2.69954565 1.87842124 genkt,1.0: 19 4.78752332 4.49329790 1.82378019 genkt,1.0: 20 -2.41008112 3.06006605 1.70747884 genkt,1.0: 21 8.12157221 4.53217471 1.69349505 genkt,1.0: 22 6.82717104 2.88640852 1.66389607 genkt,1.0: 23 -4.58775475 5.31548681 1.63951155 genkt,1.0: 24 2.48819341 4.85093521 1.41171175 genkt,1.0: 25 -7.74716245 1.99885295 1.40555457 genkt,1.0: 26 2.43324078 0.64959400 0.82265103 genkt,1.0: 27 -7.14572873 0.27797856 0.79122639 genkt,1.0: 28 -7.14002023 2.85294446 0.76318671 genkt,1.0: 29 -3.46489188 5.22491128 0.75736110 genkt,1.0: 30 3.88630219 3.11476801 0.69171913 genkt,1.0: 31 3.13795559 3.92044665 0.45013583 genkt,1.0: 32 3.90979632 2.10798550 0.44848386 genkt,1.0: 33 6.84197794 5.07262797 0.43629714 genkt,1.0: 34 -5.77760813 1.30987209 0.15262794 genkt,1.0: 35 6.56144436 1.04066330 0.10277895 genkt,1.0: 36 -7.20516402 4.76132926 0.03253234 genkt,1.0: 37 -8.25350433 4.46830907 0.03067038 genkt,1.0: 38 -9.48923228 4.87533276 0.01126329 genkt,0.0:#-------------------------------------------------------------------------- genkt,0.0:# FastJet release 2.4-devel genkt,0.0:# Written by M. Cacciari, G.P. Salam and G. Soyez genkt,0.0:# http://www.fastjet.fr genkt,0.0:# genkt,0.0:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen genkt,0.0:# clustering using fast geometric algorithms, with area measures and optional genkt,0.0:# external jet-finder plugins. genkt,0.0:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. genkt,0.0:# genkt,0.0:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM genkt,0.0:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code genkt,0.0:# and CGAL: http://www.cgal.org/. genkt,0.0:#------------------------------------------------------------------------- genkt,0.0:iev 0: number of particles = 354 genkt,0.0:strategy used = N2Tiled genkt,0.0:Algorithm: Longitudinally invariant generalised kt algorithm with R = 0.4, p = 0 and E scheme recombination (FastJet version 2.4-devel) genkt,0.0: 0 -0.86742752 2.90533849 981.29404154 genkt,0.0: 1 0.22162020 6.02948874 893.72986032 genkt,0.0: 2 -1.18373969 6.08211191 66.83769630 genkt,0.0: 3 0.24229023 0.30654370 8.88399867 genkt,0.0: 4 0.34826413 0.90550241 5.22951332 genkt,0.0: 5 -1.05303087 0.48682511 4.53197266 genkt,0.0: 6 -1.70835143 3.89895010 4.42300623 genkt,0.0: 7 -2.58954013 1.33705130 3.70169785 genkt,0.0: 8 -0.16381978 6.18578838 3.21668811 genkt,0.0: 9 0.73214559 0.63980692 3.14339658 genkt,0.0: 10 -2.56549692 0.84878570 2.95919083 genkt,0.0: 11 -1.58643411 1.19214263 2.42959198 genkt,0.0: 12 -4.74243676 1.71411915 2.40989110 genkt,0.0: 13 -4.15575471 1.12626041 2.22559566 genkt,0.0: 14 -1.74483742 4.31139803 2.19975694 genkt,0.0: 15 -0.72008554 5.76934281 2.01354707 genkt,0.0: 16 -2.65619492 0.00869347 1.96249040 genkt,0.0: 17 8.12777070 4.50033593 1.65339912 genkt,0.0: 18 -2.03004782 0.68656051 1.64420492 genkt,0.0: 19 -0.87938939 4.98480114 1.63199571 genkt,0.0: 20 3.61834479 5.09397697 1.56474502 genkt,0.0: 21 -5.28609060 4.09217344 1.51535651 genkt,0.0: 22 5.76250669 3.59085916 1.46715405 genkt,0.0: 23 4.72475736 0.50254430 1.43259696 genkt,0.0: 24 2.48819341 4.85093521 1.41171175 genkt,0.0: 25 -4.47175148 4.54371501 1.41165455 genkt,0.0: 26 -4.50319419 3.66056996 1.38335531 genkt,0.0: 27 -2.03552916 1.49181291 1.37191994 genkt,0.0: 28 -4.72343348 6.25683597 1.34495882 genkt,0.0: 29 -0.44877531 2.76160663 1.34047825 genkt,0.0: 30 1.42803445 4.90129618 1.31406589 genkt,0.0: 31 1.59220990 1.12160963 1.29085843 genkt,0.0: 32 0.40534042 3.69495045 1.26881151 genkt,0.0: 33 4.94988636 4.36120223 1.26261444 genkt,0.0: 34 1.62738611 3.86526708 1.24342135 genkt,0.0: 35 -2.10839838 3.09169827 1.17698972 genkt,0.0: 36 -1.03504517 1.25762339 1.16808360 genkt,0.0: 37 5.83349277 4.31085344 1.15482500 genkt,0.0: 38 -1.12427361 3.92422371 1.10764361 genkt,0.0: 39 2.98963399 5.74122296 1.09461974 genkt,0.0: 40 -4.83850749 2.30229525 1.08886394 genkt,0.0: 41 -3.62534898 0.72404600 1.06485310 genkt,0.0: 42 6.76652121 3.05170242 1.06182081 genkt,0.0: 43 -0.13319344 3.64778702 1.05346959 genkt,0.0: 44 -4.22772997 0.35563462 1.03214563 genkt,0.0: 45 -4.48927377 5.21631775 1.00486134 genkt,0.0: 46 3.20849036 6.18492420 0.92857054 genkt,0.0: 47 0.36401739 5.61127454 0.92581865 genkt,0.0: 48 -7.63346998 1.88791834 0.90149649 genkt,0.0: 49 5.30220485 2.79561003 0.89887610 genkt,0.0: 50 1.05769277 1.19543539 0.89239365 genkt,0.0: 51 -2.10706239 6.25798128 0.87426989 genkt,0.0: 52 1.87559753 5.51836824 0.84995851 genkt,0.0: 53 -4.95272616 4.46690841 0.83958089 genkt,0.0: 54 -1.49317631 5.34574969 0.81822951 genkt,0.0: 55 1.74045467 4.51637923 0.79030100 genkt,0.0: 56 1.50547761 0.10665384 0.76642784 genkt,0.0: 57 1.85091108 1.73264160 0.75882450 genkt,0.0: 58 -3.46489188 5.22491128 0.75736110 genkt,0.0: 59 -2.57544750 2.01650992 0.74812881 genkt,0.0: 60 -2.08281652 2.08443079 0.73947498 genkt,0.0: 61 3.30168928 0.31593164 0.73787177 genkt,0.0: 62 -7.08139911 0.27488111 0.73417833 genkt,0.0: 63 3.84122217 5.50038668 0.71000124 genkt,0.0: 64 -4.20248778 2.73159752 0.70264440 genkt,0.0: 65 3.88630219 3.11476801 0.69171913 genkt,0.0: 66 -1.71670915 1.83027231 0.66196624 genkt,0.0: 67 -5.02118651 2.71092610 0.65017071 genkt,0.0: 68 -4.82184865 5.46980031 0.64727876 genkt,0.0: 69 5.69475831 2.70645969 0.64362141 genkt,0.0: 70 -4.25527633 1.55939760 0.63975079 genkt,0.0: 71 6.17533205 3.56307885 0.63630228 genkt,0.0: 72 -2.61377521 5.81871237 0.61566717 genkt,0.0: 73 4.02894078 6.26176433 0.60289486 genkt,0.0: 74 6.85999506 2.63790161 0.58188721 genkt,0.0: 75 4.19883453 0.53677379 0.55303764 genkt,0.0: 76 0.94740386 4.36243846 0.51513674 genkt,0.0: 77 1.34612146 4.26806919 0.48436665 genkt,0.0: 78 0.81045884 6.03196350 0.47584831 genkt,0.0: 79 5.71058553 5.08761357 0.46317487 genkt,0.0: 80 2.34896653 0.47947616 0.46165309 genkt,0.0: 81 -1.31786918 3.17805771 0.46134922 genkt,0.0: 82 -4.17239803 3.32710425 0.45813853 genkt,0.0: 83 -1.50649087 0.57420237 0.45532811 genkt,0.0: 84 -7.37028044 2.63891802 0.45066932 genkt,0.0: 85 6.84197794 5.07262797 0.43629714 genkt,0.0: 86 4.60224805 4.59670427 0.41990416 genkt,0.0: 87 -3.38190078 0.30864028 0.41555947 genkt,0.0: 88 3.95162877 2.13619325 0.39747472 genkt,0.0: 89 3.00384031 3.91945598 0.37901836 genkt,0.0: 90 2.29736856 5.90631082 0.37240028 genkt,0.0: 91 -2.54470222 3.91088804 0.36984147 genkt,0.0: 92 0.37927637 4.81584020 0.36797773 genkt,0.0: 93 -7.81804817 2.31742986 0.34691123 genkt,0.0: 94 -1.55979618 0.15270001 0.33949906 genkt,0.0: 95 -6.95444242 3.14121630 0.33669312 genkt,0.0: 96 -5.90630815 2.34308296 0.33485034 genkt,0.0: 97 2.99953652 5.32331480 0.32369313 genkt,0.0: 98 -3.16200526 0.91847342 0.31952512 genkt,0.0: 99 -3.04151922 2.74757234 0.30511558 genkt,0.0: 100 0.83760094 5.62388881 0.29160833 genkt,0.0: 101 -3.81406002 1.43715817 0.27189954 genkt,0.0: 102 -0.34736825 1.23735075 0.27027371 genkt,0.0: 103 -0.65470948 0.03127068 0.26853654 genkt,0.0: 104 0.51902625 1.69995477 0.25151834 genkt,0.0: 105 -2.93620164 3.29089444 0.24729816 genkt,0.0: 106 0.40561542 2.87893847 0.24382892 genkt,0.0: 107 -1.16407350 2.42724930 0.24170838 genkt,0.0: 108 -2.61605381 4.99574690 0.23782260 genkt,0.0: 109 4.70142751 2.77490986 0.23233342 genkt,0.0: 110 -3.66832742 1.89617405 0.23107924 genkt,0.0: 111 2.25536876 0.88353124 0.22616655 genkt,0.0: 112 5.40365168 4.29974868 0.21960739 genkt,0.0: 113 1.12234644 2.22571396 0.21561207 genkt,0.0: 114 -4.47757089 3.02433306 0.21113220 genkt,0.0: 115 -5.52565280 4.62929125 0.20614848 genkt,0.0: 116 -3.06249590 4.24385166 0.20128613 genkt,0.0: 117 4.70894059 5.16548545 0.19745949 genkt,0.0: 118 -5.66743652 3.33999913 0.18279821 genkt,0.0: 119 -8.25876075 1.94973315 0.18036166 genkt,0.0: 120 0.85233232 3.72772968 0.17946503 genkt,0.0: 121 5.13926384 3.70347082 0.16895816 genkt,0.0: 122 -5.14101988 3.27183445 0.16744970 genkt,0.0: 123 5.16694688 1.91529863 0.15313809 genkt,0.0: 124 -5.77760813 1.30987209 0.15262794 genkt,0.0: 125 -4.31444181 2.22933852 0.15225803 genkt,0.0: 126 2.85806011 0.82211592 0.14988091 genkt,0.0: 127 -4.03041013 4.43254080 0.14911557 genkt,0.0: 128 -4.22703343 6.06844506 0.14682790 genkt,0.0: 129 0.84904458 2.96987730 0.13993828 genkt,0.0: 130 1.53361682 5.78816076 0.13632854 genkt,0.0: 131 -4.92148792 0.41670454 0.13459880 genkt,0.0: 132 -3.30599066 1.64077752 0.11948515 genkt,0.0: 133 -1.68439986 2.54038112 0.11523881 genkt,0.0: 134 2.12965154 2.64980311 0.09356077 genkt,0.0: 135 1.24059851 1.76744063 0.09202186 genkt,0.0: 136 3.80440897 3.92572632 0.07111865 genkt,0.0: 137 6.64774887 1.19307942 0.06961562 genkt,0.0: 138 7.94574967 5.44196494 0.06667721 genkt,0.0: 139 -2.04101658 5.02079772 0.06442832 genkt,0.0: 140 7.28041154 2.34495878 0.06130465 genkt,0.0: 141 -8.12606625 0.31781741 0.05709689 genkt,0.0: 142 -0.21935132 4.56559648 0.05471363 genkt,0.0: 143 3.57931460 1.89230065 0.05238092 genkt,0.0: 144 1.52532282 2.10054786 0.03930408 genkt,0.0: 145 -8.25350433 4.46830907 0.03067038 genkt,0.0: 146 -4.52437285 0.90087159 0.02710438 genkt,0.0: 147 -1.83523182 5.67155124 0.02646852 genkt,0.0: 148 5.85112968 0.82301781 0.02209625 genkt,0.0: 149 -7.54242519 4.71320378 0.01978933 genkt,0.0: 150 4.70068958 0.98672496 0.01403051 genkt,0.0: 151 6.81954469 0.60312817 0.01368451 genkt,0.0: 152 -6.69612939 4.83576528 0.01280137 genkt,0.0: 153 -9.48923228 4.87533276 0.01126329 genkt,0.0:#-------------------------------------------------------------------------- genkt,0.0:# FastJet release 2.4-devel genkt,0.0:# Written by M. Cacciari, G.P. Salam and G. Soyez genkt,0.0:# http://www.fastjet.fr genkt,0.0:# genkt,0.0:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen genkt,0.0:# clustering using fast geometric algorithms, with area measures and optional genkt,0.0:# external jet-finder plugins. genkt,0.0:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. genkt,0.0:# genkt,0.0:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM genkt,0.0:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code genkt,0.0:# and CGAL: http://www.cgal.org/. genkt,0.0:#------------------------------------------------------------------------- genkt,0.0:iev 0: number of particles = 354 genkt,0.0:strategy used = N2Tiled genkt,0.0:Algorithm: Longitudinally invariant generalised kt algorithm with R = 0.7, p = 0 and E scheme recombination (FastJet version 2.4-devel) genkt,0.0: 0 -0.86730713 2.90511470 983.38727662 genkt,0.0: 1 0.22086793 6.02950080 898.49716062 genkt,0.0: 2 -1.16399356 6.11976501 73.21177254 genkt,0.0: 3 0.36257181 0.54763129 16.65531147 genkt,0.0: 4 -2.46859216 1.03398974 7.98755167 genkt,0.0: 5 -1.63742088 4.01894081 7.60023410 genkt,0.0: 6 -1.41260817 1.21339915 3.59598464 genkt,0.0: 7 -2.09520476 1.79181955 3.40948539 genkt,0.0: 8 -2.48893071 6.20047697 3.39846776 genkt,0.0: 9 -4.14837926 1.23759849 3.11081218 genkt,0.0: 10 1.42355884 4.61495465 3.00134227 genkt,0.0: 11 -4.65559812 2.55461347 2.72083845 genkt,0.0: 12 -4.47515985 0.13381720 2.60184918 genkt,0.0: 13 -5.16754646 4.25751388 2.50799761 genkt,0.0: 14 0.21090666 3.67744153 2.50086160 genkt,0.0: 15 -4.74243676 1.71411915 2.40989110 genkt,0.0: 16 3.68806210 5.21991244 2.23461061 genkt,0.0: 17 1.38837335 1.15178259 2.18181440 genkt,0.0: 18 5.95240354 3.58245583 2.10328507 genkt,0.0: 19 4.58645223 0.51528682 1.99789064 genkt,0.0: 20 -4.45038609 3.57819259 1.82243672 genkt,0.0: 21 -3.48992204 0.66385983 1.76176505 genkt,0.0: 22 4.79418354 4.41977128 1.67379815 genkt,0.0: 23 8.12777070 4.50033593 1.65339912 genkt,0.0: 24 -4.58775475 5.31548681 1.63951155 genkt,0.0: 25 -0.87938939 4.98480114 1.63199571 genkt,0.0: 26 3.26519668 0.08479617 1.63130522 genkt,0.0: 27 6.81396895 2.90601374 1.61167002 genkt,0.0: 28 -4.42880373 4.53310946 1.55993729 genkt,0.0: 29 5.46689098 2.75841597 1.54100732 genkt,0.0: 30 2.48819341 4.85093521 1.41171175 genkt,0.0: 31 -7.74716245 1.99885295 1.40555457 genkt,0.0: 32 2.99204410 5.64702228 1.39664800 genkt,0.0: 33 5.76403009 4.30907914 1.37442101 genkt,0.0: 34 1.93284770 5.65121478 1.33787065 genkt,0.0: 35 1.62738611 3.86526708 1.24342135 genkt,0.0: 36 -2.10839838 3.09169827 1.17698972 genkt,0.0: 37 -1.50315367 5.35579522 0.84334819 genkt,0.0: 38 2.43324078 0.64959400 0.82265103 genkt,0.0: 39 1.50547761 0.10665384 0.76642784 genkt,0.0: 40 -7.14002023 2.85294446 0.76318671 genkt,0.0: 41 1.85091108 1.73264160 0.75882450 genkt,0.0: 42 -3.46489188 5.22491128 0.75736110 genkt,0.0: 43 -7.08139911 0.27488111 0.73417833 genkt,0.0: 44 3.88630219 3.11476801 0.69171913 genkt,0.0: 45 4.02894078 6.26176433 0.60289486 genkt,0.0: 46 -2.72871445 4.02781810 0.56392330 genkt,0.0: 47 -2.99682445 2.99008798 0.53238090 genkt,0.0: 48 5.71058553 5.08761357 0.46317487 genkt,0.0: 49 3.90979632 2.10798550 0.44848386 genkt,0.0: 50 6.84197794 5.07262797 0.43629714 genkt,0.0: 51 0.19924287 4.78366673 0.42120513 genkt,0.0: 52 0.55314245 2.91209087 0.38339964 genkt,0.0: 53 3.00384031 3.91945598 0.37901836 genkt,0.0: 54 -5.41112050 3.30741092 0.35004490 genkt,0.0: 55 -3.55651390 1.80932526 0.34800028 genkt,0.0: 56 1.20715892 2.09122256 0.34020769 genkt,0.0: 57 -5.90630815 2.34308296 0.33485034 genkt,0.0: 58 -2.50416454 5.00108652 0.30223502 genkt,0.0: 59 -0.34736825 1.23735075 0.27027371 genkt,0.0: 60 0.51902625 1.69995477 0.25151834 genkt,0.0: 61 4.70142751 2.77490986 0.23233342 genkt,0.0: 62 4.70894059 5.16548545 0.19745949 genkt,0.0: 63 5.13926384 3.70347082 0.16895816 genkt,0.0: 64 5.16694688 1.91529863 0.15313809 genkt,0.0: 65 -5.77760813 1.30987209 0.15262794 genkt,0.0: 66 2.12965154 2.64980311 0.09356077 genkt,0.0: 67 6.66165883 1.09935244 0.08134404 genkt,0.0: 68 3.80440897 3.92572632 0.07111865 genkt,0.0: 69 7.94574967 5.44196494 0.06667721 genkt,0.0: 70 7.28041154 2.34495878 0.06130465 genkt,0.0: 71 -8.12606625 0.31781741 0.05709689 genkt,0.0: 72 -8.25350433 4.46830907 0.03067038 genkt,0.0: 73 5.85112968 0.82301781 0.02209625 genkt,0.0: 74 -7.54242519 4.71320378 0.01978933 genkt,0.0: 75 -6.69612939 4.83576528 0.01280137 genkt,0.0: 76 -9.48923228 4.87533276 0.01126329 genkt,0.0:#-------------------------------------------------------------------------- genkt,0.0:# FastJet release 2.4-devel genkt,0.0:# Written by M. Cacciari, G.P. Salam and G. Soyez genkt,0.0:# http://www.fastjet.fr genkt,0.0:# genkt,0.0:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen genkt,0.0:# clustering using fast geometric algorithms, with area measures and optional genkt,0.0:# external jet-finder plugins. genkt,0.0:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. genkt,0.0:# genkt,0.0:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM genkt,0.0:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code genkt,0.0:# and CGAL: http://www.cgal.org/. genkt,0.0:#------------------------------------------------------------------------- genkt,0.0:iev 0: number of particles = 354 genkt,0.0:strategy used = N2Tiled genkt,0.0:Algorithm: Longitudinally invariant generalised kt algorithm with R = 1, p = 0 and E scheme recombination (FastJet version 2.4-devel) genkt,0.0: 0 -0.86730713 2.90511470 983.38727662 genkt,0.0: 1 0.22373782 6.04264502 910.16392058 genkt,0.0: 2 -1.16399356 6.11976501 73.21177254 genkt,0.0: 3 -2.11073870 1.24403946 14.31690526 genkt,0.0: 4 -1.63742088 4.01894081 7.60023410 genkt,0.0: 5 -4.35831860 1.46681053 5.69380677 genkt,0.0: 6 -4.73515490 4.12552482 5.47453961 genkt,0.0: 7 3.36030096 5.67947800 4.65836189 genkt,0.0: 8 1.47874055 4.40163267 4.00212058 genkt,0.0: 9 5.85760811 3.85826655 3.42783601 genkt,0.0: 10 -2.48893071 6.20047697 3.39846776 genkt,0.0: 11 1.45474237 1.37694307 3.09511555 genkt,0.0: 12 0.25963380 3.58209511 2.79001856 genkt,0.0: 13 -4.65559812 2.55461347 2.72083845 genkt,0.0: 14 -4.47515985 0.13381720 2.60184918 genkt,0.0: 15 4.45835429 0.39337304 2.53483071 genkt,0.0: 16 -1.09264206 5.11058237 2.43722289 genkt,0.0: 17 1.80634830 5.91579834 1.97322934 genkt,0.0: 18 5.33631639 2.69954565 1.87842124 genkt,0.0: 19 4.78752332 4.49329790 1.82378019 genkt,0.0: 20 -3.48992204 0.66385983 1.76176505 genkt,0.0: 21 -2.41008112 3.06006605 1.70747884 genkt,0.0: 22 8.12157221 4.53217471 1.69349505 genkt,0.0: 23 6.82717104 2.88640852 1.66389607 genkt,0.0: 24 -4.58775475 5.31548681 1.63951155 genkt,0.0: 25 2.48819341 4.85093521 1.41171175 genkt,0.0: 26 -7.74716245 1.99885295 1.40555457 genkt,0.0: 27 -3.20053342 5.16123264 1.05419370 genkt,0.0: 28 2.43324078 0.64959400 0.82265103 genkt,0.0: 29 -7.14002023 2.85294446 0.76318671 genkt,0.0: 30 -7.08139911 0.27488111 0.73417833 genkt,0.0: 31 3.88630219 3.11476801 0.69171913 genkt,0.0: 32 -2.72871445 4.02781810 0.56392330 genkt,0.0: 33 0.05968633 1.46018749 0.50791427 genkt,0.0: 34 5.71058553 5.08761357 0.46317487 genkt,0.0: 35 3.13795559 3.92044665 0.45013583 genkt,0.0: 36 3.90979632 2.10798550 0.44848386 genkt,0.0: 37 6.84197794 5.07262797 0.43629714 genkt,0.0: 38 0.19924287 4.78366673 0.42120513 genkt,0.0: 39 -5.41112050 3.30741092 0.35004490 genkt,0.0: 40 -5.90630815 2.34308296 0.33485034 genkt,0.0: 41 -5.77760813 1.30987209 0.15262794 genkt,0.0: 42 6.56144436 1.04066330 0.10277895 genkt,0.0: 43 2.12965154 2.64980311 0.09356077 genkt,0.0: 44 -8.12606625 0.31781741 0.05709689 genkt,0.0: 45 -7.97169238 4.56422553 0.05009953 genkt,0.0: 46 -6.69612939 4.83576528 0.01280137 genkt,0.0: 47 -9.48923228 4.87533276 0.01126329 genkt,-1.0:#-------------------------------------------------------------------------- genkt,-1.0:# FastJet release 2.4-devel genkt,-1.0:# Written by M. Cacciari, G.P. Salam and G. Soyez genkt,-1.0:# http://www.fastjet.fr genkt,-1.0:# genkt,-1.0:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen genkt,-1.0:# clustering using fast geometric algorithms, with area measures and optional genkt,-1.0:# external jet-finder plugins. genkt,-1.0:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. genkt,-1.0:# genkt,-1.0:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM genkt,-1.0:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code genkt,-1.0:# and CGAL: http://www.cgal.org/. genkt,-1.0:#------------------------------------------------------------------------- genkt,-1.0:iev 0: number of particles = 354 genkt,-1.0:strategy used = N2Tiled genkt,-1.0:Algorithm: Longitudinally invariant generalised kt algorithm with R = 0.4, p = -1 and E scheme recombination (FastJet version 2.4-devel) genkt,-1.0: 0 -0.86748501 2.90530809 981.15729251 genkt,-1.0: 1 0.22203222 6.02990513 895.42612230 genkt,-1.0: 2 -1.19073366 6.10283910 63.37420652 genkt,-1.0: 3 0.43211695 0.77338735 9.34631586 genkt,-1.0: 4 -0.94343365 5.73794142 5.72893220 genkt,-1.0: 5 0.24428853 0.34126491 4.83019506 genkt,-1.0: 6 -1.05303087 0.48682511 4.53197266 genkt,-1.0: 7 -1.69927525 3.89645856 4.32811776 genkt,-1.0: 8 -0.11630008 6.24162452 4.25433054 genkt,-1.0: 9 -2.58954013 1.33705130 3.70169785 genkt,-1.0: 10 -2.56549692 0.84878570 2.95919083 genkt,-1.0: 11 -1.58643411 1.19214263 2.42959198 genkt,-1.0: 12 -4.74243676 1.71411915 2.40989110 genkt,-1.0: 13 -2.64086316 6.24949207 2.26654550 genkt,-1.0: 14 -4.15575471 1.12626041 2.22559566 genkt,-1.0: 15 -1.74483742 4.31139803 2.19975694 genkt,-1.0: 16 8.12777070 4.50033593 1.65339912 genkt,-1.0: 17 -2.03004782 0.68656051 1.64420492 genkt,-1.0: 18 3.61834479 5.09397697 1.56474502 genkt,-1.0: 19 -5.29176513 4.10047986 1.55657262 genkt,-1.0: 20 -2.02326039 1.52416812 1.55494240 genkt,-1.0: 21 -0.89599023 4.95807266 1.50984421 genkt,-1.0: 22 -0.45119418 2.79496388 1.47236467 genkt,-1.0: 23 5.76250669 3.59085916 1.46715405 genkt,-1.0: 24 3.25484136 0.14309710 1.44584828 genkt,-1.0: 25 4.72475736 0.50254430 1.43259696 genkt,-1.0: 26 2.48819341 4.85093521 1.41171175 genkt,-1.0: 27 -4.47175148 4.54371501 1.41165455 genkt,-1.0: 28 -4.50319419 3.66056996 1.38335531 genkt,-1.0: 29 -4.72343348 6.25683597 1.34495882 genkt,-1.0: 30 -4.62733612 5.38457197 1.32285629 genkt,-1.0: 31 1.42803445 4.90129618 1.31406589 genkt,-1.0: 32 1.59220990 1.12160963 1.29085843 genkt,-1.0: 33 0.40534042 3.69495045 1.26881151 genkt,-1.0: 34 4.94988636 4.36120223 1.26261444 genkt,-1.0: 35 1.62738611 3.86526708 1.24342135 genkt,-1.0: 36 -2.10839838 3.09169827 1.17698972 genkt,-1.0: 37 -1.03504517 1.25762339 1.16808360 genkt,-1.0: 38 5.83349277 4.31085344 1.15482500 genkt,-1.0: 39 -1.12427361 3.92422371 1.10764361 genkt,-1.0: 40 2.98963399 5.74122296 1.09461974 genkt,-1.0: 41 -4.83850749 2.30229525 1.08886394 genkt,-1.0: 42 -3.61923238 0.72609230 1.08778794 genkt,-1.0: 43 6.76652121 3.05170242 1.06182081 genkt,-1.0: 44 -0.13319344 3.64778702 1.05346959 genkt,-1.0: 45 -4.22772997 0.35563462 1.03214563 genkt,-1.0: 46 -7.63346998 1.88791834 0.90149649 genkt,-1.0: 47 5.30220485 2.79561003 0.89887610 genkt,-1.0: 48 1.05769277 1.19543539 0.89239365 genkt,-1.0: 49 1.87559753 5.51836824 0.84995851 genkt,-1.0: 50 -4.95272616 4.46690841 0.83958089 genkt,-1.0: 51 -1.49317631 5.34574969 0.81822951 genkt,-1.0: 52 -2.09096743 6.27425271 0.81086307 genkt,-1.0: 53 1.74045467 4.51637923 0.79030100 genkt,-1.0: 54 1.50547761 0.10665384 0.76642784 genkt,-1.0: 55 1.85091108 1.73264160 0.75882450 genkt,-1.0: 56 -3.46489188 5.22491128 0.75736110 genkt,-1.0: 57 -2.57544750 2.01650992 0.74812881 genkt,-1.0: 58 -2.08281652 2.08443079 0.73947498 genkt,-1.0: 59 -7.08139911 0.27488111 0.73417833 genkt,-1.0: 60 3.84122217 5.50038668 0.71000124 genkt,-1.0: 61 -4.20248778 2.73159752 0.70264440 genkt,-1.0: 62 3.88630219 3.11476801 0.69171913 genkt,-1.0: 63 -5.02118651 2.71092610 0.65017071 genkt,-1.0: 64 5.69475831 2.70645969 0.64362141 genkt,-1.0: 65 -4.25527633 1.55939760 0.63975079 genkt,-1.0: 66 6.17533205 3.56307885 0.63630228 genkt,-1.0: 67 4.02894078 6.26176433 0.60289486 genkt,-1.0: 68 6.85999506 2.63790161 0.58188721 genkt,-1.0: 69 4.19883453 0.53677379 0.55303764 genkt,-1.0: 70 0.94740386 4.36243846 0.51513674 genkt,-1.0: 71 1.34612146 4.26806919 0.48436665 genkt,-1.0: 72 0.81045884 6.03196350 0.47584831 genkt,-1.0: 73 -1.64364428 1.85783557 0.47357279 genkt,-1.0: 74 -2.46602568 3.93164376 0.46496549 genkt,-1.0: 75 5.71058553 5.08761357 0.46317487 genkt,-1.0: 76 2.34896653 0.47947616 0.46165309 genkt,-1.0: 77 -1.31786918 3.17805771 0.46134922 genkt,-1.0: 78 1.04251749 0.60928958 0.46029304 genkt,-1.0: 79 -4.17239803 3.32710425 0.45813853 genkt,-1.0: 80 -1.50649087 0.57420237 0.45532811 genkt,-1.0: 81 -7.37028044 2.63891802 0.45066932 genkt,-1.0: 82 6.84197794 5.07262797 0.43629714 genkt,-1.0: 83 4.60224805 4.59670427 0.41990416 genkt,-1.0: 84 -3.38190078 0.30864028 0.41555947 genkt,-1.0: 85 3.95162877 2.13619325 0.39747472 genkt,-1.0: 86 3.00384031 3.91945598 0.37901836 genkt,-1.0: 87 2.29736856 5.90631082 0.37240028 genkt,-1.0: 88 -2.62292155 5.71781169 0.36803044 genkt,-1.0: 89 0.37927637 4.81584020 0.36797773 genkt,-1.0: 90 -0.27892031 5.79120906 0.34841721 genkt,-1.0: 91 -7.81804817 2.31742986 0.34691123 genkt,-1.0: 92 -1.55979618 0.15270001 0.33949906 genkt,-1.0: 93 -6.95444242 3.14121630 0.33669312 genkt,-1.0: 94 -5.90630815 2.34308296 0.33485034 genkt,-1.0: 95 -4.38025953 5.03735328 0.33259252 genkt,-1.0: 96 2.99953652 5.32331480 0.32369313 genkt,-1.0: 97 0.42216479 5.53181222 0.32238660 genkt,-1.0: 98 -3.04151922 2.74757234 0.30511558 genkt,-1.0: 99 -3.14916951 0.92604820 0.29660309 genkt,-1.0: 100 0.83760094 5.62388881 0.29160833 genkt,-1.0: 101 -3.81406002 1.43715817 0.27189954 genkt,-1.0: 102 -0.34736825 1.23735075 0.27027371 genkt,-1.0: 103 -0.65470948 0.03127068 0.26853654 genkt,-1.0: 104 0.51902625 1.69995477 0.25151834 genkt,-1.0: 105 -2.93620164 3.29089444 0.24729816 genkt,-1.0: 106 0.40561542 2.87893847 0.24382892 genkt,-1.0: 107 -1.16407350 2.42724930 0.24170838 genkt,-1.0: 108 -2.61605381 4.99574690 0.23782260 genkt,-1.0: 109 4.70142751 2.77490986 0.23233342 genkt,-1.0: 110 -3.66832742 1.89617405 0.23107924 genkt,-1.0: 111 2.25536876 0.88353124 0.22616655 genkt,-1.0: 112 5.40365168 4.29974868 0.21960739 genkt,-1.0: 113 1.12234644 2.22571396 0.21561207 genkt,-1.0: 114 -4.47757089 3.02433306 0.21113220 genkt,-1.0: 115 3.37707424 5.94652022 0.20593434 genkt,-1.0: 116 -3.06249590 4.24385166 0.20128613 genkt,-1.0: 117 4.70894059 5.16548545 0.19745949 genkt,-1.0: 118 -5.66743652 3.33999913 0.18279821 genkt,-1.0: 119 -8.25876075 1.94973315 0.18036166 genkt,-1.0: 120 0.85233232 3.72772968 0.17946503 genkt,-1.0: 121 5.13926384 3.70347082 0.16895816 genkt,-1.0: 122 -5.14101988 3.27183445 0.16744970 genkt,-1.0: 123 -5.53241726 4.68984119 0.16446820 genkt,-1.0: 124 5.16694688 1.91529863 0.15313809 genkt,-1.0: 125 -5.77760813 1.30987209 0.15262794 genkt,-1.0: 126 -4.31444181 2.22933852 0.15225803 genkt,-1.0: 127 2.85806011 0.82211592 0.14988091 genkt,-1.0: 128 -4.03041013 4.43254080 0.14911557 genkt,-1.0: 129 -4.22703343 6.06844506 0.14682790 genkt,-1.0: 130 0.84904458 2.96987730 0.13993828 genkt,-1.0: 131 1.53361682 5.78816076 0.13632854 genkt,-1.0: 132 -4.92148792 0.41670454 0.13459880 genkt,-1.0: 133 -0.66442387 5.30254202 0.12915586 genkt,-1.0: 134 -3.30599066 1.64077752 0.11948515 genkt,-1.0: 135 -1.68439986 2.54038112 0.11523881 genkt,-1.0: 136 2.12965154 2.64980311 0.09356077 genkt,-1.0: 137 1.24059851 1.76744063 0.09202186 genkt,-1.0: 138 3.80440897 3.92572632 0.07111865 genkt,-1.0: 139 6.64774887 1.19307942 0.06961562 genkt,-1.0: 140 7.94574967 5.44196494 0.06667721 genkt,-1.0: 141 -2.04101658 5.02079772 0.06442832 genkt,-1.0: 142 7.28041154 2.34495878 0.06130465 genkt,-1.0: 143 -8.12606625 0.31781741 0.05709689 genkt,-1.0: 144 -0.21935132 4.56559648 0.05471363 genkt,-1.0: 145 3.57931460 1.89230065 0.05238092 genkt,-1.0: 146 1.52532282 2.10054786 0.03930408 genkt,-1.0: 147 -8.25350433 4.46830907 0.03067038 genkt,-1.0: 148 -4.52437285 0.90087159 0.02710438 genkt,-1.0: 149 -1.83523182 5.67155124 0.02646852 genkt,-1.0: 150 5.85112968 0.82301781 0.02209625 genkt,-1.0: 151 -7.54242519 4.71320378 0.01978933 genkt,-1.0: 152 4.70068958 0.98672496 0.01403051 genkt,-1.0: 153 6.81954469 0.60312817 0.01368451 genkt,-1.0: 154 -6.69612939 4.83576528 0.01280137 genkt,-1.0: 155 -9.48923228 4.87533276 0.01126329 genkt,-1.0:#-------------------------------------------------------------------------- genkt,-1.0:# FastJet release 2.4-devel genkt,-1.0:# Written by M. Cacciari, G.P. Salam and G. Soyez genkt,-1.0:# http://www.fastjet.fr genkt,-1.0:# genkt,-1.0:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen genkt,-1.0:# clustering using fast geometric algorithms, with area measures and optional genkt,-1.0:# external jet-finder plugins. genkt,-1.0:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. genkt,-1.0:# genkt,-1.0:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM genkt,-1.0:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code genkt,-1.0:# and CGAL: http://www.cgal.org/. genkt,-1.0:#------------------------------------------------------------------------- genkt,-1.0:iev 0: number of particles = 354 genkt,-1.0:strategy used = N2Tiled genkt,-1.0:Algorithm: Longitudinally invariant generalised kt algorithm with R = 0.7, p = -1 and E scheme recombination (FastJet version 2.4-devel) genkt,-1.0: 0 -0.86713954 2.90515650 983.27961921 genkt,-1.0: 1 0.22089580 6.03313616 904.16761389 genkt,-1.0: 2 -1.16717122 6.08565211 71.03697265 genkt,-1.0: 3 0.42935634 0.74543134 10.45328748 genkt,-1.0: 4 -2.37033734 1.10516914 10.44846237 genkt,-1.0: 5 -1.63742088 4.01894081 7.60023410 genkt,-1.0: 6 -4.74471685 1.90859013 3.51451697 genkt,-1.0: 7 -1.12029982 0.55475591 3.50073645 genkt,-1.0: 8 -2.48893071 6.20047697 3.39846776 genkt,-1.0: 9 -4.12839580 1.20946754 3.28369179 genkt,-1.0: 10 -1.41736915 1.36306324 3.16083290 genkt,-1.0: 11 1.42355884 4.61495465 3.00134227 genkt,-1.0: 12 1.43770441 1.25201201 2.71181173 genkt,-1.0: 13 -4.47515985 0.13381720 2.60184918 genkt,-1.0: 14 3.17943493 6.11831695 2.59843744 genkt,-1.0: 15 3.59306705 5.23298036 2.55679312 genkt,-1.0: 16 -5.16754646 4.25751388 2.50799761 genkt,-1.0: 17 0.21090666 3.67744153 2.50086160 genkt,-1.0: 18 -4.45462032 4.76069897 2.31964717 genkt,-1.0: 19 5.95240354 3.58245583 2.10328507 genkt,-1.0: 20 -4.45447519 3.52277999 2.00508240 genkt,-1.0: 21 4.85594631 4.39480200 1.92918163 genkt,-1.0: 22 4.64130889 0.51732465 1.83412881 genkt,-1.0: 23 2.40133084 4.93254825 1.65580933 genkt,-1.0: 24 8.12777070 4.50033593 1.65339912 genkt,-1.0: 25 -0.87438907 4.97941546 1.65111512 genkt,-1.0: 26 6.81396895 2.90601374 1.61167002 genkt,-1.0: 27 5.46689098 2.75841597 1.54100732 genkt,-1.0: 28 -7.74716245 1.99885295 1.40555457 genkt,-1.0: 29 5.80848253 4.44323737 1.39640087 genkt,-1.0: 30 -2.30000823 2.07471563 1.36098639 genkt,-1.0: 31 -3.52483240 0.59182913 1.28439092 genkt,-1.0: 32 -2.05107738 3.04439562 1.27658215 genkt,-1.0: 33 1.62738611 3.86526708 1.24342135 genkt,-1.0: 34 1.91258037 5.72289757 1.07760220 genkt,-1.0: 35 2.43324078 0.64959400 0.82265103 genkt,-1.0: 36 -5.04641006 2.82293016 0.79695611 genkt,-1.0: 37 -4.77645643 5.47204399 0.78373756 genkt,-1.0: 38 1.50547761 0.10665384 0.76642784 genkt,-1.0: 39 -7.14002023 2.85294446 0.76318671 genkt,-1.0: 40 -3.46489188 5.22491128 0.75736110 genkt,-1.0: 41 4.00848467 0.08616718 0.74988143 genkt,-1.0: 42 -7.08139911 0.27488111 0.73417833 genkt,-1.0: 43 -4.20248778 2.73159752 0.70264440 genkt,-1.0: 44 3.88630219 3.11476801 0.69171913 genkt,-1.0: 45 -2.72871445 4.02781810 0.56392330 genkt,-1.0: 46 -2.99682445 2.99008798 0.53238090 genkt,-1.0: 47 3.90979632 2.10798550 0.44848386 genkt,-1.0: 48 6.84197794 5.07262797 0.43629714 genkt,-1.0: 49 -1.73634908 5.24004844 0.43343002 genkt,-1.0: 50 0.22594070 4.79588960 0.40074803 genkt,-1.0: 51 0.55314245 2.91209087 0.38339964 genkt,-1.0: 52 3.00384031 3.91945598 0.37901836 genkt,-1.0: 53 -3.55651390 1.80932526 0.34800028 genkt,-1.0: 54 -5.90630815 2.34308296 0.33485034 genkt,-1.0: 55 1.84696902 1.96882707 0.31563139 genkt,-1.0: 56 0.83760094 5.62388881 0.29160833 genkt,-1.0: 57 -0.34736825 1.23735075 0.27027371 genkt,-1.0: 58 0.51902625 1.69995477 0.25151834 genkt,-1.0: 59 -2.61605381 4.99574690 0.23782260 genkt,-1.0: 60 4.70142751 2.77490986 0.23233342 genkt,-1.0: 61 1.12234644 2.22571396 0.21561207 genkt,-1.0: 62 4.70894059 5.16548545 0.19745949 genkt,-1.0: 63 -5.66743652 3.33999913 0.18279821 genkt,-1.0: 64 5.71167866 5.25799957 0.17289920 genkt,-1.0: 65 5.16694688 1.91529863 0.15313809 genkt,-1.0: 66 -5.77760813 1.30987209 0.15262794 genkt,-1.0: 67 5.09860149 3.64334836 0.12710578 genkt,-1.0: 68 2.12965154 2.64980311 0.09356077 genkt,-1.0: 69 6.66165883 1.09935244 0.08134404 genkt,-1.0: 70 3.80440897 3.92572632 0.07111865 genkt,-1.0: 71 7.94574967 5.44196494 0.06667721 genkt,-1.0: 72 7.28041154 2.34495878 0.06130465 genkt,-1.0: 73 -8.12606625 0.31781741 0.05709689 genkt,-1.0: 74 -8.25350433 4.46830907 0.03067038 genkt,-1.0: 75 5.85112968 0.82301781 0.02209625 genkt,-1.0: 76 -7.54242519 4.71320378 0.01978933 genkt,-1.0: 77 -6.69612939 4.83576528 0.01280137 genkt,-1.0: 78 -9.48923228 4.87533276 0.01126329 genkt,-1.0:#-------------------------------------------------------------------------- genkt,-1.0:# FastJet release 2.4-devel genkt,-1.0:# Written by M. Cacciari, G.P. Salam and G. Soyez genkt,-1.0:# http://www.fastjet.fr genkt,-1.0:# genkt,-1.0:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen genkt,-1.0:# clustering using fast geometric algorithms, with area measures and optional genkt,-1.0:# external jet-finder plugins. genkt,-1.0:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. genkt,-1.0:# genkt,-1.0:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM genkt,-1.0:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code genkt,-1.0:# and CGAL: http://www.cgal.org/. genkt,-1.0:#------------------------------------------------------------------------- genkt,-1.0:iev 0: number of particles = 354 genkt,-1.0:strategy used = N2Tiled genkt,-1.0:Algorithm: Longitudinally invariant generalised kt algorithm with R = 1, p = -1 and E scheme recombination (FastJet version 2.4-devel) genkt,-1.0: 0 -0.86730713 2.90511470 983.38727662 genkt,-1.0: 1 0.21948180 6.03486732 908.09787495 genkt,-1.0: 2 -1.19083003 6.11989882 72.94286613 genkt,-1.0: 3 -2.22747216 1.23595349 13.43110151 genkt,-1.0: 4 0.54850093 0.88807554 8.87400681 genkt,-1.0: 5 -1.72135558 3.91871676 8.64801111 genkt,-1.0: 6 -4.75423237 4.23539171 5.39098337 genkt,-1.0: 7 -4.02639226 0.92060213 5.19744903 genkt,-1.0: 8 3.42713139 5.74362063 5.17254118 genkt,-1.0: 9 -4.73421315 2.11089141 4.42218680 genkt,-1.0: 10 1.47874055 4.40163267 4.00212058 genkt,-1.0: 11 5.85760811 3.85826655 3.42783601 genkt,-1.0: 12 0.25963380 3.58209511 2.79001856 genkt,-1.0: 13 -4.65122603 5.87695461 2.65046880 genkt,-1.0: 14 -2.64873063 6.18331755 2.63727771 genkt,-1.0: 15 2.16899671 5.23971678 2.53254676 genkt,-1.0: 16 1.69265900 1.32955625 2.27662772 genkt,-1.0: 17 4.58645223 0.51528682 1.99789064 genkt,-1.0: 18 5.33631639 2.69954565 1.87842124 genkt,-1.0: 19 4.78752332 4.49329790 1.82378019 genkt,-1.0: 20 -7.67133544 2.15001614 1.78739946 genkt,-1.0: 21 -0.94910955 4.98257184 1.76305471 genkt,-1.0: 22 8.12157221 4.53217471 1.69349505 genkt,-1.0: 23 6.82717104 2.88640852 1.66389607 genkt,-1.0: 24 -0.94535381 1.26247978 1.32228565 genkt,-1.0: 25 1.82818502 0.24629378 1.20812646 genkt,-1.0: 26 -3.24243592 5.02652982 1.12293419 genkt,-1.0: 27 -4.12223799 3.12266361 0.78608158 genkt,-1.0: 28 3.87921897 3.18426154 0.74249811 genkt,-1.0: 29 -7.08139911 0.27488111 0.73417833 genkt,-1.0: 30 -2.86758278 2.98959681 0.66776169 genkt,-1.0: 31 5.71058553 5.08761357 0.46317487 genkt,-1.0: 32 3.90979632 2.10798550 0.44848386 genkt,-1.0: 33 6.84197794 5.07262797 0.43629714 genkt,-1.0: 34 -5.84682553 2.15265071 0.39799133 genkt,-1.0: 35 3.00384031 3.91945598 0.37901836 genkt,-1.0: 36 0.37927637 4.81584020 0.36797773 genkt,-1.0: 37 -5.41112050 3.30741092 0.35004490 genkt,-1.0: 38 -3.55651390 1.80932526 0.34800028 genkt,-1.0: 39 -6.95444242 3.14121630 0.33669312 genkt,-1.0: 40 1.12234644 2.22571396 0.21561207 genkt,-1.0: 41 2.85806011 0.82211592 0.14988091 genkt,-1.0: 42 6.56144436 1.04066330 0.10277895 genkt,-1.0: 43 2.12965154 2.64980311 0.09356077 genkt,-1.0: 44 -2.04101658 5.02079772 0.06442832 genkt,-1.0: 45 -5.86524701 1.15128325 0.06002593 genkt,-1.0: 46 -8.12606625 0.31781741 0.05709689 genkt,-1.0: 47 -7.97169238 4.56422553 0.05009953 genkt,-1.0: 48 -6.69612939 4.83576528 0.01280137 genkt,-1.0: 49 -9.48923228 4.87533276 0.01126329 eekt,-excld,2.0@single-ee-event.dat:#-------------------------------------------------------------------------- eekt,-excld,2.0@single-ee-event.dat:# FastJet release 2.4-devel eekt,-excld,2.0@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eekt,-excld,2.0@single-ee-event.dat:# http://www.fastjet.fr eekt,-excld,2.0@single-ee-event.dat:# eekt,-excld,2.0@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eekt,-excld,2.0@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eekt,-excld,2.0@single-ee-event.dat:# external jet-finder plugins. eekt,-excld,2.0@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eekt,-excld,2.0@single-ee-event.dat:# eekt,-excld,2.0@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eekt,-excld,2.0@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eekt,-excld,2.0@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eekt,-excld,2.0@single-ee-event.dat:#------------------------------------------------------------------------- eekt,-excld,2.0@single-ee-event.dat:iev 0: number of particles = 70 eekt,-excld,2.0@single-ee-event.dat:strategy used = N2Plain eekt,-excld,2.0@single-ee-event.dat:Algorithm: e+e- kt (Durham) algorithm (NB: no R) with E scheme recombination (FastJet version 2.4-devel) eekt,-excld,2.0@single-ee-event.dat: 0 0.00000000 4.71238565 0.00000000 eekt,-excld,2.0@single-ee-event.dat:Printing exclusive jets for d = 2 eekt,-excld,2.0@single-ee-event.dat: 0 -1.22150412 2.39649854 14.21270699 eekt,-excld,2.0@single-ee-event.dat: 1 1.68333725 4.63827816 5.63673066 eekt,-excld,2.0@single-ee-event.dat: 2 -1.07510047 0.35697622 4.22163607 eekt,-excld,2.0@single-ee-event.dat: 3 -0.76624776 0.08702256 4.00732584 eekt,-excld,2.0@single-ee-event.dat: 4 -1.06606066 5.21191642 2.62681159 eekt,-excld,2.0@single-ee-event.dat: 5 0.34619074 4.01601036 2.45234973 eekt,-excld,2.0@single-ee-event.dat: 6 -0.24312424 5.20032689 2.43734935 eekt,-excld,2.0@single-ee-event.dat: 7 0.70363507 5.09946070 2.36547018 eekt,-excld,2.0@single-ee-event.dat: 8 -0.94345541 1.63983885 2.33583146 eekt,-excld,2.0@single-ee-event.dat: 9 0.40124462 5.74574295 1.91326623 eekt,-excld,2.0@single-ee-event.dat: 10 0.62622111 1.49184299 1.76817740 eekt,-excld,2.0@single-ee-event.dat: 11 2.28506952 3.92187983 0.59974796 eekt,-excld,2.0@single-ee-event.dat:#-------------------------------------------------------------------------- eekt,-excld,2.0@single-ee-event.dat:# FastJet release 2.4-devel eekt,-excld,2.0@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eekt,-excld,2.0@single-ee-event.dat:# http://www.fastjet.fr eekt,-excld,2.0@single-ee-event.dat:# eekt,-excld,2.0@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eekt,-excld,2.0@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eekt,-excld,2.0@single-ee-event.dat:# external jet-finder plugins. eekt,-excld,2.0@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eekt,-excld,2.0@single-ee-event.dat:# eekt,-excld,2.0@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eekt,-excld,2.0@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eekt,-excld,2.0@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eekt,-excld,2.0@single-ee-event.dat:#------------------------------------------------------------------------- eekt,-excld,2.0@single-ee-event.dat:iev 0: number of particles = 70 eekt,-excld,2.0@single-ee-event.dat:strategy used = N2Plain eekt,-excld,2.0@single-ee-event.dat:Algorithm: e+e- kt (Durham) algorithm (NB: no R) with E scheme recombination (FastJet version 2.4-devel) eekt,-excld,2.0@single-ee-event.dat: 0 0.00000000 4.71238565 0.00000000 eekt,-excld,2.0@single-ee-event.dat:Printing exclusive jets for d = 2 eekt,-excld,2.0@single-ee-event.dat: 0 -1.22150412 2.39649854 14.21270699 eekt,-excld,2.0@single-ee-event.dat: 1 1.68333725 4.63827816 5.63673066 eekt,-excld,2.0@single-ee-event.dat: 2 -1.07510047 0.35697622 4.22163607 eekt,-excld,2.0@single-ee-event.dat: 3 -0.76624776 0.08702256 4.00732584 eekt,-excld,2.0@single-ee-event.dat: 4 -1.06606066 5.21191642 2.62681159 eekt,-excld,2.0@single-ee-event.dat: 5 0.34619074 4.01601036 2.45234973 eekt,-excld,2.0@single-ee-event.dat: 6 -0.24312424 5.20032689 2.43734935 eekt,-excld,2.0@single-ee-event.dat: 7 0.70363507 5.09946070 2.36547018 eekt,-excld,2.0@single-ee-event.dat: 8 -0.94345541 1.63983885 2.33583146 eekt,-excld,2.0@single-ee-event.dat: 9 0.40124462 5.74574295 1.91326623 eekt,-excld,2.0@single-ee-event.dat: 10 0.62622111 1.49184299 1.76817740 eekt,-excld,2.0@single-ee-event.dat: 11 2.28506952 3.92187983 0.59974796 eekt,-excld,2.0@single-ee-event.dat:#-------------------------------------------------------------------------- eekt,-excld,2.0@single-ee-event.dat:# FastJet release 2.4-devel eekt,-excld,2.0@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eekt,-excld,2.0@single-ee-event.dat:# http://www.fastjet.fr eekt,-excld,2.0@single-ee-event.dat:# eekt,-excld,2.0@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eekt,-excld,2.0@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eekt,-excld,2.0@single-ee-event.dat:# external jet-finder plugins. eekt,-excld,2.0@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eekt,-excld,2.0@single-ee-event.dat:# eekt,-excld,2.0@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eekt,-excld,2.0@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eekt,-excld,2.0@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eekt,-excld,2.0@single-ee-event.dat:#------------------------------------------------------------------------- eekt,-excld,2.0@single-ee-event.dat:iev 0: number of particles = 70 eekt,-excld,2.0@single-ee-event.dat:strategy used = N2Plain eekt,-excld,2.0@single-ee-event.dat:Algorithm: e+e- kt (Durham) algorithm (NB: no R) with E scheme recombination (FastJet version 2.4-devel) eekt,-excld,2.0@single-ee-event.dat: 0 0.00000000 4.71238565 0.00000000 eekt,-excld,2.0@single-ee-event.dat:Printing exclusive jets for d = 2 eekt,-excld,2.0@single-ee-event.dat: 0 -1.22150412 2.39649854 14.21270699 eekt,-excld,2.0@single-ee-event.dat: 1 1.68333725 4.63827816 5.63673066 eekt,-excld,2.0@single-ee-event.dat: 2 -1.07510047 0.35697622 4.22163607 eekt,-excld,2.0@single-ee-event.dat: 3 -0.76624776 0.08702256 4.00732584 eekt,-excld,2.0@single-ee-event.dat: 4 -1.06606066 5.21191642 2.62681159 eekt,-excld,2.0@single-ee-event.dat: 5 0.34619074 4.01601036 2.45234973 eekt,-excld,2.0@single-ee-event.dat: 6 -0.24312424 5.20032689 2.43734935 eekt,-excld,2.0@single-ee-event.dat: 7 0.70363507 5.09946070 2.36547018 eekt,-excld,2.0@single-ee-event.dat: 8 -0.94345541 1.63983885 2.33583146 eekt,-excld,2.0@single-ee-event.dat: 9 0.40124462 5.74574295 1.91326623 eekt,-excld,2.0@single-ee-event.dat: 10 0.62622111 1.49184299 1.76817740 eekt,-excld,2.0@single-ee-event.dat: 11 2.28506952 3.92187983 0.59974796 eegenkt,1.0@single-ee-event.dat:#-------------------------------------------------------------------------- eegenkt,1.0@single-ee-event.dat:# FastJet release 2.4-devel eegenkt,1.0@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eegenkt,1.0@single-ee-event.dat:# http://www.fastjet.fr eegenkt,1.0@single-ee-event.dat:# eegenkt,1.0@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eegenkt,1.0@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eegenkt,1.0@single-ee-event.dat:# external jet-finder plugins. eegenkt,1.0@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eegenkt,1.0@single-ee-event.dat:# eegenkt,1.0@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eegenkt,1.0@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eegenkt,1.0@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eegenkt,1.0@single-ee-event.dat:#------------------------------------------------------------------------- eegenkt,1.0@single-ee-event.dat:iev 0: number of particles = 70 eegenkt,1.0@single-ee-event.dat:strategy used = N2Plain eegenkt,1.0@single-ee-event.dat:Algorithm: e+e- generalised kt algorithm with R = 0.4, p = 1 and E scheme recombination (FastJet version 2.4-devel) eegenkt,1.0@single-ee-event.dat: 0 -1.22150412 2.39649854 14.21270699 eegenkt,1.0@single-ee-event.dat: 1 -0.94953614 0.21436466 7.94058670 eegenkt,1.0@single-ee-event.dat: 2 1.97193031 4.56500862 6.47277309 eegenkt,1.0@single-ee-event.dat: 3 -0.94345541 1.63983885 2.33583146 eegenkt,1.0@single-ee-event.dat: 4 -1.16108127 5.34176815 2.19863893 eegenkt,1.0@single-ee-event.dat: 5 0.72399425 1.39005335 1.54600851 eegenkt,1.0@single-ee-event.dat: 6 0.49272664 3.85247171 1.28152202 eegenkt,1.0@single-ee-event.dat: 7 0.44183031 4.87943619 1.23861143 eegenkt,1.0@single-ee-event.dat: 8 0.94318276 5.32904532 1.18788805 eegenkt,1.0@single-ee-event.dat: 9 0.25304820 5.56299502 1.05760667 eegenkt,1.0@single-ee-event.dat: 10 -0.18814555 5.19386348 0.98133581 eegenkt,1.0@single-ee-event.dat: 11 -0.40808145 5.53963893 0.88509287 eegenkt,1.0@single-ee-event.dat: 12 0.59603449 5.84958118 0.73095942 eegenkt,1.0@single-ee-event.dat: 13 0.60836862 4.39105689 0.71120136 eegenkt,1.0@single-ee-event.dat: 14 -0.08966201 4.76600043 0.68500603 eegenkt,1.0@single-ee-event.dat: 15 -0.78154733 4.64448202 0.52969519 eegenkt,1.0@single-ee-event.dat: 16 -0.37900770 3.91772907 0.52871188 eegenkt,1.0@single-ee-event.dat: 17 1.26966445 0.96222605 0.42181545 eegenkt,1.0@single-ee-event.dat: 18 0.12008932 2.09073964 0.27867173 eegenkt,1.0@single-ee-event.dat: 19 -0.11516045 0.61836885 0.23172570 eegenkt,1.0@single-ee-event.dat: 20 0.36327641 0.13494834 0.18693861 eegenkt,1.0@single-ee-event.dat: 21 0.76544667 3.04250140 0.13490992 eegenkt,1.0@single-ee-event.dat:#-------------------------------------------------------------------------- eegenkt,1.0@single-ee-event.dat:# FastJet release 2.4-devel eegenkt,1.0@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eegenkt,1.0@single-ee-event.dat:# http://www.fastjet.fr eegenkt,1.0@single-ee-event.dat:# eegenkt,1.0@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eegenkt,1.0@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eegenkt,1.0@single-ee-event.dat:# external jet-finder plugins. eegenkt,1.0@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eegenkt,1.0@single-ee-event.dat:# eegenkt,1.0@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eegenkt,1.0@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eegenkt,1.0@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eegenkt,1.0@single-ee-event.dat:#------------------------------------------------------------------------- eegenkt,1.0@single-ee-event.dat:iev 0: number of particles = 70 eegenkt,1.0@single-ee-event.dat:strategy used = N2Plain eegenkt,1.0@single-ee-event.dat:Algorithm: e+e- generalised kt algorithm with R = 0.7, p = 1 and E scheme recombination (FastJet version 2.4-devel) eegenkt,1.0@single-ee-event.dat: 0 -1.17795492 2.29605689 15.99176640 eegenkt,1.0@single-ee-event.dat: 1 -0.92137700 0.22553614 8.15416598 eegenkt,1.0@single-ee-event.dat: 2 1.90644767 4.57368836 6.10176939 eegenkt,1.0@single-ee-event.dat: 3 0.56578760 5.38722444 4.05982061 eegenkt,1.0@single-ee-event.dat: 4 -1.06606066 5.21191642 2.62681159 eegenkt,1.0@single-ee-event.dat: 5 -0.24312424 5.20032689 2.43734935 eegenkt,1.0@single-ee-event.dat: 6 0.53078962 4.04293728 1.92688778 eegenkt,1.0@single-ee-event.dat: 7 0.72399425 1.39005335 1.54600851 eegenkt,1.0@single-ee-event.dat: 8 -0.37900770 3.91772907 0.52871188 eegenkt,1.0@single-ee-event.dat: 9 0.12008932 2.09073964 0.27867173 eegenkt,1.0@single-ee-event.dat:#-------------------------------------------------------------------------- eegenkt,1.0@single-ee-event.dat:# FastJet release 2.4-devel eegenkt,1.0@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eegenkt,1.0@single-ee-event.dat:# http://www.fastjet.fr eegenkt,1.0@single-ee-event.dat:# eegenkt,1.0@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eegenkt,1.0@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eegenkt,1.0@single-ee-event.dat:# external jet-finder plugins. eegenkt,1.0@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eegenkt,1.0@single-ee-event.dat:# eegenkt,1.0@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eegenkt,1.0@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eegenkt,1.0@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eegenkt,1.0@single-ee-event.dat:#------------------------------------------------------------------------- eegenkt,1.0@single-ee-event.dat:iev 0: number of particles = 70 eegenkt,1.0@single-ee-event.dat:strategy used = N2Plain eegenkt,1.0@single-ee-event.dat:Algorithm: e+e- generalised kt algorithm with R = 1, p = 1 and E scheme recombination (FastJet version 2.4-devel) eegenkt,1.0@single-ee-event.dat: 0 -1.17795492 2.29605689 15.99176640 eegenkt,1.0@single-ee-event.dat: 1 -0.81824592 6.03383660 10.67883059 eegenkt,1.0@single-ee-event.dat: 2 1.21959918 4.74016372 9.33541936 eegenkt,0.0@single-ee-event.dat:#-------------------------------------------------------------------------- eegenkt,0.0@single-ee-event.dat:# FastJet release 2.4-devel eegenkt,0.0@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eegenkt,0.0@single-ee-event.dat:# http://www.fastjet.fr eegenkt,0.0@single-ee-event.dat:# eegenkt,0.0@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eegenkt,0.0@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eegenkt,0.0@single-ee-event.dat:# external jet-finder plugins. eegenkt,0.0@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eegenkt,0.0@single-ee-event.dat:# eegenkt,0.0@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eegenkt,0.0@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eegenkt,0.0@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eegenkt,0.0@single-ee-event.dat:#------------------------------------------------------------------------- eegenkt,0.0@single-ee-event.dat:iev 0: number of particles = 70 eegenkt,0.0@single-ee-event.dat:strategy used = N2Plain eegenkt,0.0@single-ee-event.dat:Algorithm: e+e- generalised kt algorithm with R = 0.4, p = 0 and E scheme recombination (FastJet version 2.4-devel) eegenkt,0.0@single-ee-event.dat: 0 -1.22694222 2.38711385 14.16022477 eegenkt,0.0@single-ee-event.dat: 1 -0.99307165 0.22488000 7.30836173 eegenkt,0.0@single-ee-event.dat: 2 2.02021308 4.59022375 6.02017520 eegenkt,0.0@single-ee-event.dat: 3 -0.94345541 1.63983885 2.33583146 eegenkt,0.0@single-ee-event.dat: 4 -1.16108127 5.34176815 2.19863893 eegenkt,0.0@single-ee-event.dat: 5 0.72399425 1.39005335 1.54600851 eegenkt,0.0@single-ee-event.dat: 6 0.44183031 4.87943619 1.23861143 eegenkt,0.0@single-ee-event.dat: 7 0.54242561 3.84198906 1.18878516 eegenkt,0.0@single-ee-event.dat: 8 0.94318276 5.32904532 1.18788805 eegenkt,0.0@single-ee-event.dat: 9 0.25304820 5.56299502 1.05760667 eegenkt,0.0@single-ee-event.dat: 10 -0.18814555 5.19386348 0.98133581 eegenkt,0.0@single-ee-event.dat: 11 -0.40808145 5.53963893 0.88509287 eegenkt,0.0@single-ee-event.dat: 12 0.59603449 5.84958118 0.73095942 eegenkt,0.0@single-ee-event.dat: 13 0.60836862 4.39105689 0.71120136 eegenkt,0.0@single-ee-event.dat: 14 -0.08966201 4.76600043 0.68500603 eegenkt,0.0@single-ee-event.dat: 15 -0.45026841 0.09347502 0.63727531 eegenkt,0.0@single-ee-event.dat: 16 -0.78154733 4.64448202 0.52969519 eegenkt,0.0@single-ee-event.dat: 17 -0.37900770 3.91772907 0.52871188 eegenkt,0.0@single-ee-event.dat: 18 1.19388007 4.24270468 0.47918577 eegenkt,0.0@single-ee-event.dat: 19 1.26966445 0.96222605 0.42181545 eegenkt,0.0@single-ee-event.dat: 20 0.12008932 2.09073964 0.27867173 eegenkt,0.0@single-ee-event.dat: 21 -0.11516045 0.61836885 0.23172570 eegenkt,0.0@single-ee-event.dat: 22 0.36327641 0.13494834 0.18693861 eegenkt,0.0@single-ee-event.dat: 23 -0.82561641 3.58710751 0.14310583 eegenkt,0.0@single-ee-event.dat: 24 0.76544667 3.04250140 0.13490992 eegenkt,0.0@single-ee-event.dat: 25 0.08626453 3.98595237 0.09363509 eegenkt,0.0@single-ee-event.dat: 26 -2.98364781 0.91697127 0.00000617 eegenkt,0.0@single-ee-event.dat:#-------------------------------------------------------------------------- eegenkt,0.0@single-ee-event.dat:# FastJet release 2.4-devel eegenkt,0.0@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eegenkt,0.0@single-ee-event.dat:# http://www.fastjet.fr eegenkt,0.0@single-ee-event.dat:# eegenkt,0.0@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eegenkt,0.0@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eegenkt,0.0@single-ee-event.dat:# external jet-finder plugins. eegenkt,0.0@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eegenkt,0.0@single-ee-event.dat:# eegenkt,0.0@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eegenkt,0.0@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eegenkt,0.0@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eegenkt,0.0@single-ee-event.dat:#------------------------------------------------------------------------- eegenkt,0.0@single-ee-event.dat:iev 0: number of particles = 70 eegenkt,0.0@single-ee-event.dat:strategy used = N2Plain eegenkt,0.0@single-ee-event.dat:Algorithm: e+e- generalised kt algorithm with R = 0.7, p = 0 and E scheme recombination (FastJet version 2.4-devel) eegenkt,0.0@single-ee-event.dat: 0 -1.18199080 2.28743458 15.95284744 eegenkt,0.0@single-ee-event.dat: 1 -0.94953342 0.21436416 7.94058199 eegenkt,0.0@single-ee-event.dat: 2 1.97193031 4.56500862 6.47277309 eegenkt,0.0@single-ee-event.dat: 3 -0.75169229 5.27194026 4.45399501 eegenkt,0.0@single-ee-event.dat: 4 0.62355711 5.53940839 2.91509241 eegenkt,0.0@single-ee-event.dat: 5 0.85702454 1.29961332 1.93772476 eegenkt,0.0@single-ee-event.dat: 6 0.53078962 4.04293728 1.92688778 eegenkt,0.0@single-ee-event.dat: 7 0.24922107 4.83905744 1.92078062 eegenkt,0.0@single-ee-event.dat: 8 -0.49850978 3.84788521 0.66569021 eegenkt,0.0@single-ee-event.dat: 9 0.12008932 2.09073964 0.27867173 eegenkt,0.0@single-ee-event.dat: 10 -0.11516045 0.61836885 0.23172570 eegenkt,0.0@single-ee-event.dat: 11 0.36327641 0.13494834 0.18693861 eegenkt,0.0@single-ee-event.dat: 12 0.76544667 3.04250140 0.13490992 eegenkt,0.0@single-ee-event.dat:#-------------------------------------------------------------------------- eegenkt,0.0@single-ee-event.dat:# FastJet release 2.4-devel eegenkt,0.0@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eegenkt,0.0@single-ee-event.dat:# http://www.fastjet.fr eegenkt,0.0@single-ee-event.dat:# eegenkt,0.0@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eegenkt,0.0@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eegenkt,0.0@single-ee-event.dat:# external jet-finder plugins. eegenkt,0.0@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eegenkt,0.0@single-ee-event.dat:# eegenkt,0.0@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eegenkt,0.0@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eegenkt,0.0@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eegenkt,0.0@single-ee-event.dat:#------------------------------------------------------------------------- eegenkt,0.0@single-ee-event.dat:iev 0: number of particles = 70 eegenkt,0.0@single-ee-event.dat:strategy used = N2Plain eegenkt,0.0@single-ee-event.dat:Algorithm: e+e- generalised kt algorithm with R = 1, p = 0 and E scheme recombination (FastJet version 2.4-devel) eegenkt,0.0@single-ee-event.dat: 0 -1.18199080 2.28743458 15.95284744 eegenkt,0.0@single-ee-event.dat: 1 1.28902515 4.72150781 11.77985821 eegenkt,0.0@single-ee-event.dat: 2 -0.87226190 6.08000690 10.33564630 eegenkt,0.0@single-ee-event.dat: 3 0.76270295 1.39222918 2.14282717 eegenkt,0.0@single-ee-event.dat: 4 -0.49850978 3.84788521 0.66569021 eegenkt,0.0@single-ee-event.dat: 5 0.10772824 0.40302532 0.40663508 eegenkt,-1.0@single-ee-event.dat:#-------------------------------------------------------------------------- eegenkt,-1.0@single-ee-event.dat:# FastJet release 2.4-devel eegenkt,-1.0@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eegenkt,-1.0@single-ee-event.dat:# http://www.fastjet.fr eegenkt,-1.0@single-ee-event.dat:# eegenkt,-1.0@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eegenkt,-1.0@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eegenkt,-1.0@single-ee-event.dat:# external jet-finder plugins. eegenkt,-1.0@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eegenkt,-1.0@single-ee-event.dat:# eegenkt,-1.0@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eegenkt,-1.0@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eegenkt,-1.0@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eegenkt,-1.0@single-ee-event.dat:#------------------------------------------------------------------------- eegenkt,-1.0@single-ee-event.dat:iev 0: number of particles = 70 eegenkt,-1.0@single-ee-event.dat:strategy used = N2Plain eegenkt,-1.0@single-ee-event.dat:Algorithm: e+e- generalised kt algorithm with R = 0.4, p = -1 and E scheme recombination (FastJet version 2.4-devel) eegenkt,-1.0@single-ee-event.dat: 0 -1.19543313 2.32344257 15.60037852 eegenkt,-1.0@single-ee-event.dat: 1 -0.99307165 0.22488000 7.30836173 eegenkt,-1.0@single-ee-event.dat: 2 2.02021308 4.59022375 6.02017520 eegenkt,-1.0@single-ee-event.dat: 3 -1.08552958 5.24534510 2.57469651 eegenkt,-1.0@single-ee-event.dat: 4 -0.29548675 5.35774654 1.83867870 eegenkt,-1.0@single-ee-event.dat: 5 0.78142960 1.32377855 1.80052863 eegenkt,-1.0@single-ee-event.dat: 6 0.44183031 4.87943619 1.23861143 eegenkt,-1.0@single-ee-event.dat: 7 0.54242561 3.84198906 1.18878516 eegenkt,-1.0@single-ee-event.dat: 8 0.94318276 5.32904532 1.18788805 eegenkt,-1.0@single-ee-event.dat: 9 0.53470405 5.72230059 1.16117957 eegenkt,-1.0@single-ee-event.dat: 10 0.60836862 4.39105689 0.71120136 eegenkt,-1.0@single-ee-event.dat: 11 -0.08966201 4.76600043 0.68500603 eegenkt,-1.0@single-ee-event.dat: 12 -0.95403727 1.28991938 0.66848414 eegenkt,-1.0@single-ee-event.dat: 13 -0.45026841 0.09347502 0.63727531 eegenkt,-1.0@single-ee-event.dat: 14 0.12934742 5.59960607 0.61268777 eegenkt,-1.0@single-ee-event.dat: 15 -0.37900770 3.91772907 0.52871188 eegenkt,-1.0@single-ee-event.dat: 16 1.19388007 4.24270468 0.47918577 eegenkt,-1.0@single-ee-event.dat: 17 0.12008932 2.09073964 0.27867173 eegenkt,-1.0@single-ee-event.dat: 18 -0.78696638 3.83867442 0.23349133 eegenkt,-1.0@single-ee-event.dat: 19 -0.11516045 0.61836885 0.23172570 eegenkt,-1.0@single-ee-event.dat: 20 0.36327641 0.13494834 0.18693861 eegenkt,-1.0@single-ee-event.dat: 21 1.55216483 0.99363640 0.14443015 eegenkt,-1.0@single-ee-event.dat: 22 0.76544667 3.04250140 0.13490992 eegenkt,-1.0@single-ee-event.dat: 23 0.08626453 3.98595237 0.09363509 eegenkt,-1.0@single-ee-event.dat: 24 -2.98364781 0.91697127 0.00000617 eegenkt,-1.0@single-ee-event.dat:#-------------------------------------------------------------------------- eegenkt,-1.0@single-ee-event.dat:# FastJet release 2.4-devel eegenkt,-1.0@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eegenkt,-1.0@single-ee-event.dat:# http://www.fastjet.fr eegenkt,-1.0@single-ee-event.dat:# eegenkt,-1.0@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eegenkt,-1.0@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eegenkt,-1.0@single-ee-event.dat:# external jet-finder plugins. eegenkt,-1.0@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eegenkt,-1.0@single-ee-event.dat:# eegenkt,-1.0@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eegenkt,-1.0@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eegenkt,-1.0@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eegenkt,-1.0@single-ee-event.dat:#------------------------------------------------------------------------- eegenkt,-1.0@single-ee-event.dat:iev 0: number of particles = 70 eegenkt,-1.0@single-ee-event.dat:strategy used = N2Plain eegenkt,-1.0@single-ee-event.dat:Algorithm: e+e- generalised kt algorithm with R = 0.7, p = -1 and E scheme recombination (FastJet version 2.4-devel) eegenkt,-1.0@single-ee-event.dat: 0 -1.18199080 2.28743458 15.95284744 eegenkt,-1.0@single-ee-event.dat: 1 -0.98111808 6.25293147 9.25200965 eegenkt,-1.0@single-ee-event.dat: 2 1.78611445 4.67566255 7.54525630 eegenkt,-1.0@single-ee-event.dat: 3 0.09845673 4.95848819 2.86137550 eegenkt,-1.0@single-ee-event.dat: 4 0.34753498 5.73082894 2.09661296 eegenkt,-1.0@single-ee-event.dat: 5 0.78142960 1.32377855 1.80052863 eegenkt,-1.0@single-ee-event.dat: 6 0.50507477 3.97772882 1.64608421 eegenkt,-1.0@single-ee-event.dat: 7 -0.63868514 4.19834838 1.10307516 eegenkt,-1.0@single-ee-event.dat: 8 -0.44821405 5.54528132 0.42638773 eegenkt,-1.0@single-ee-event.dat: 9 0.12008932 2.09073964 0.27867173 eegenkt,-1.0@single-ee-event.dat: 10 -0.11516045 0.61836885 0.23172570 eegenkt,-1.0@single-ee-event.dat: 11 0.76544667 3.04250140 0.13490992 eegenkt,-1.0@single-ee-event.dat:#-------------------------------------------------------------------------- eegenkt,-1.0@single-ee-event.dat:# FastJet release 2.4-devel eegenkt,-1.0@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eegenkt,-1.0@single-ee-event.dat:# http://www.fastjet.fr eegenkt,-1.0@single-ee-event.dat:# eegenkt,-1.0@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eegenkt,-1.0@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eegenkt,-1.0@single-ee-event.dat:# external jet-finder plugins. eegenkt,-1.0@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eegenkt,-1.0@single-ee-event.dat:# eegenkt,-1.0@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eegenkt,-1.0@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eegenkt,-1.0@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eegenkt,-1.0@single-ee-event.dat:#------------------------------------------------------------------------- eegenkt,-1.0@single-ee-event.dat:iev 0: number of particles = 70 eegenkt,-1.0@single-ee-event.dat:strategy used = N2Plain eegenkt,-1.0@single-ee-event.dat:Algorithm: e+e- generalised kt algorithm with R = 1, p = -1 and E scheme recombination (FastJet version 2.4-devel) eegenkt,-1.0@single-ee-event.dat: 0 -1.11870406 1.76013619 11.90214033 eegenkt,-1.0@single-ee-event.dat: 1 1.41005352 4.70257869 10.29280353 eegenkt,-1.0@single-ee-event.dat: 2 -0.25905952 5.21952245 3.36145914 eegenkt,-1.0@single-ee-event.dat: 3 0.62622111 1.49184299 1.76817740 eegenkt,-1.0@single-ee-event.dat: 4 -0.20307600 0.21379229 1.03204435 eegenkt,-1.0@single-ee-event.dat: 5 -0.26993636 3.92798887 0.62216189 siscone:#-------------------------------------------------------------------------- siscone:# FastJet release 2.4-devel siscone:# Written by M. Cacciari, G.P. Salam and G. Soyez siscone:# http://www.fastjet.fr siscone:# siscone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen siscone:# clustering using fast geometric algorithms, with area measures and optional siscone:# external jet-finder plugins. siscone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. siscone:# siscone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM siscone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code siscone:# and CGAL: http://www.cgal.org/. siscone:#------------------------------------------------------------------------- siscone:#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo siscone:# SISCone version 1.4.0-devel o siscone:# http://projects.hepforge.org/siscone o siscone:# o siscone:# This is SISCone: the Seedless Infrared Safe Cone Jet Algorithm o siscone:# SISCone was written by Gavin Salam and Gregory Soyez o siscone:# It is released under the terms of the GNU General Public License o siscone:# o siscone:# A description of the algorithm is available in the publication o siscone:# JHEP 05 (2007) 086 [arXiv:0704.0292 (hep-ph)]. o siscone:# Please cite it if you use SISCone. o siscone:#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo siscone: siscone:iev 0: number of particles = 354 siscone:strategy used = plugin strategy siscone:Algorithm: SISCone jet algorithm with cone_radius = 0.4, overlap_threshold = 0.5, n_pass_max = 0, protojet_ptmin = 0, split-merge uses pttilde (scalar sum of pt's), caching turned off, SM stop scale = 0, using jet-definition's own recombiner, SISCone code v1.4.0-devel (FastJet version 2.4-devel) siscone: 0 -0.86748501 2.90530809 981.15729251 siscone: 1 0.22193323 6.02933229 893.95404678 siscone: 2 -1.18652024 6.09503198 64.71983681 siscone: 3 0.34574960 0.53650228 15.93057348 siscone: 4 -1.63118707 4.01902795 7.50472376 siscone: 5 -1.81638218 1.49573705 7.39892400 siscone: 6 -2.46321531 0.99184686 7.38470952 siscone: 7 -1.05303087 0.48682511 4.53197266 siscone: 8 -0.91227277 5.74193292 4.17872995 siscone: 9 -4.42024854 1.40361713 3.48869975 siscone: 10 -0.17251041 6.16324989 3.42955292 siscone: 11 -2.51995679 6.20474828 3.18907293 siscone: 12 -1.08491522 5.14681921 2.68979571 siscone: 13 -4.88845799 2.22561069 2.60181856 siscone: 14 0.21090666 3.67744153 2.50086160 siscone: 15 -4.47115644 0.13920456 2.33463548 siscone: 16 1.50847172 1.37117487 2.27297041 siscone: 17 -4.69492968 4.51507507 2.24968279 siscone: 18 3.68806210 5.21991244 2.23461061 siscone: 19 1.40657494 4.06589371 2.18563376 siscone: 20 5.95240354 3.58245583 2.10328507 siscone: 21 -3.67411094 0.76641970 2.08173452 siscone: 22 1.55286448 4.75730187 2.06794197 siscone: 23 4.78752332 4.49329790 1.82378019 siscone: 24 -4.30010127 2.99261844 1.68356177 siscone: 25 8.12777070 4.50033593 1.65339912 siscone: 26 -4.58775475 5.31548681 1.63951155 siscone: 27 6.81396895 2.90601374 1.61167002 siscone: 28 3.04075137 5.68513511 1.59457310 siscone: 29 -5.28609060 4.09217344 1.51535651 siscone: 30 -0.45119418 2.79496388 1.47236467 siscone: 31 3.25484136 0.14309710 1.44584828 siscone: 32 4.72475736 0.50254430 1.43259696 siscone: 33 5.76403009 4.30907914 1.37442101 siscone: 34 5.51157480 2.74483378 1.31330581 siscone: 35 -7.44857799 2.58772177 1.21570084 siscone: 36 -2.10839838 3.09169827 1.17698972 siscone: 37 2.44534490 4.79348848 1.11962545 siscone: 38 1.20531786 0.56036090 1.11771628 siscone: 39 4.10788953 0.24531650 1.11128799 siscone: 40 -4.51767318 3.70912968 1.10745681 siscone: 41 2.11226666 0.72015515 1.01170094 siscone: 42 -7.63346998 1.88791834 0.90149649 siscone: 43 1.87559753 5.51836824 0.84995851 siscone: 44 1.91434443 6.00824633 0.79616452 siscone: 45 -3.46489188 5.22491128 0.75736110 siscone: 46 0.82042185 5.87755896 0.75246353 siscone: 47 -7.08139911 0.27488111 0.73417833 siscone: 48 3.88630219 3.11476801 0.69171913 siscone: 49 -2.64755137 4.02554075 0.65942582 siscone: 50 0.39858917 5.14912561 0.64679557 siscone: 51 -3.66896532 1.64634915 0.60936077 siscone: 52 -0.13814811 1.14198033 0.57307710 siscone: 53 -1.71493731 0.03821151 0.54352811 siscone: 54 -2.99682445 2.99008798 0.53238090 siscone: 55 5.71058553 5.08761357 0.46317487 siscone: 56 -1.31786918 3.17805771 0.46134922 siscone: 57 4.93126473 2.80547485 0.46063441 siscone: 58 -1.50649087 0.57420237 0.45532811 siscone: 59 3.90979632 2.10798550 0.44848386 siscone: 60 6.84197794 5.07262797 0.43629714 siscone: 61 0.55314245 2.91209087 0.38339964 siscone: 62 3.00384031 3.91945598 0.37901836 siscone: 63 -1.38767481 2.46375469 0.35644800 siscone: 64 -5.41112050 3.30741092 0.35004490 siscone: 65 1.20715892 2.09122256 0.34020769 siscone: 66 -5.90630815 2.34308296 0.33485034 siscone: 67 -3.16200526 0.91847342 0.31952512 siscone: 68 2.62910832 5.06624599 0.30088056 siscone: 69 -0.65470948 0.03127068 0.26853654 siscone: 70 0.51902625 1.69995477 0.25151834 siscone: 71 -2.61605381 4.99574690 0.23782260 siscone: 72 -5.52565280 4.62929125 0.20614848 siscone: 73 5.13926384 3.70347082 0.16895816 siscone: 74 5.16694688 1.91529863 0.15313809 siscone: 75 -5.77760813 1.30987209 0.15262794 siscone: 76 2.85806011 0.82211592 0.14988091 siscone: 77 -4.03041013 4.43254080 0.14911557 siscone: 78 -4.22703343 6.06844506 0.14682790 siscone: 79 -4.92148792 0.41670454 0.13459880 siscone: 80 2.12965154 2.64980311 0.09356077 siscone: 81 3.80440897 3.92572632 0.07111865 siscone: 82 6.64774887 1.19307942 0.06961562 siscone: 83 7.94574967 5.44196494 0.06667721 siscone: 84 7.28041154 2.34495878 0.06130465 siscone: 85 -8.12606625 0.31781741 0.05709689 siscone: 86 -0.21935132 4.56559648 0.05471363 siscone: 87 -8.25350433 4.46830907 0.03067038 siscone: 88 -4.52437285 0.90087159 0.02710438 siscone: 89 -1.83523182 5.67155124 0.02646852 siscone: 90 5.85112968 0.82301781 0.02209625 siscone: 91 -7.54242519 4.71320378 0.01978933 siscone: 92 4.70068958 0.98672496 0.01403051 siscone: 93 6.81954469 0.60312817 0.01368451 siscone: 94 -6.69612939 4.83576528 0.01280137 siscone: 95 -9.48923228 4.87533276 0.01126329 siscone:#-------------------------------------------------------------------------- siscone:# FastJet release 2.4-devel siscone:# Written by M. Cacciari, G.P. Salam and G. Soyez siscone:# http://www.fastjet.fr siscone:# siscone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen siscone:# clustering using fast geometric algorithms, with area measures and optional siscone:# external jet-finder plugins. siscone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. siscone:# siscone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM siscone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code siscone:# and CGAL: http://www.cgal.org/. siscone:#------------------------------------------------------------------------- siscone:#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo siscone:# SISCone version 1.4.0-devel o siscone:# http://projects.hepforge.org/siscone o siscone:# o siscone:# This is SISCone: the Seedless Infrared Safe Cone Jet Algorithm o siscone:# SISCone was written by Gavin Salam and Gregory Soyez o siscone:# It is released under the terms of the GNU General Public License o siscone:# o siscone:# A description of the algorithm is available in the publication o siscone:# JHEP 05 (2007) 086 [arXiv:0704.0292 (hep-ph)]. o siscone:# Please cite it if you use SISCone. o siscone:#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo siscone: siscone:iev 0: number of particles = 354 siscone:strategy used = plugin strategy siscone:Algorithm: SISCone jet algorithm with cone_radius = 0.7, overlap_threshold = 0.5, n_pass_max = 0, protojet_ptmin = 0, split-merge uses pttilde (scalar sum of pt's), caching turned off, SM stop scale = 0, using jet-definition's own recombiner, SISCone code v1.4.0-devel (FastJet version 2.4-devel) siscone: 0 -0.86714193 2.90515552 983.27462334 siscone: 1 0.22023682 6.03068706 900.44146316 siscone: 2 -1.17103708 6.07159548 69.71050689 siscone: 3 0.37165751 0.63216516 13.74566752 siscone: 4 -1.63118707 4.01902795 7.50472376 siscone: 5 -2.55310918 0.78265712 7.37305192 siscone: 6 -1.78661758 1.23402802 7.33778407 siscone: 7 -4.17998158 1.25436280 6.66642290 siscone: 8 -1.08952371 0.51673395 5.14752491 siscone: 9 3.05762711 5.47097964 5.08623145 siscone: 10 6.15955633 3.14454928 4.68063782 siscone: 11 -4.56082697 2.95578204 3.98550345 siscone: 12 -4.94371377 4.36033495 3.88273705 siscone: 13 1.58511388 4.34403190 3.21444209 siscone: 14 5.16513814 4.33699756 3.17812376 siscone: 15 1.74558899 0.06115878 3.08607720 siscone: 16 4.28315892 0.13179306 3.06553225 siscone: 17 1.44632573 1.23477865 2.63213605 siscone: 18 0.25252820 3.71238394 2.62534864 siscone: 19 -4.47515985 0.13381720 2.60184918 siscone: 20 -2.71351486 5.49157393 2.25415281 siscone: 21 -2.16615429 2.49361769 2.13798522 siscone: 22 -7.52459524 2.29192302 1.99182320 siscone: 23 8.12777070 4.50033593 1.65339912 siscone: 24 -4.58775475 5.31548681 1.63951155 siscone: 25 -0.87938939 4.98480114 1.63199571 siscone: 26 4.21602511 2.75255413 1.46532583 siscone: 27 0.71894765 4.90541012 1.29254696 siscone: 28 6.01841629 5.09566156 1.09631962 siscone: 29 -3.04511998 2.65140692 0.94259284 siscone: 30 0.79004157 2.30907687 0.85422874 siscone: 31 -2.92962452 4.09952807 0.79854518 siscone: 32 -7.08139911 0.27488111 0.73417833 siscone: 33 -5.56831296 2.51013887 0.68528134 siscone: 34 3.13795559 3.92044665 0.45013583 siscone: 35 1.88845508 1.95017074 0.27671595 siscone: 36 -0.34736825 1.23735075 0.27027371 siscone: 37 5.16694688 1.91529863 0.15313809 siscone: 38 -2.69209318 1.79249304 0.13047741 siscone: 39 2.12965154 2.64980311 0.09356077 siscone: 40 6.66165883 1.09935244 0.08134404 siscone: 41 7.94574967 5.44196494 0.06667721 siscone: 42 -7.69475000 4.61916649 0.06252619 siscone: 43 7.28041154 2.34495878 0.06130465 siscone: 44 -8.12606625 0.31781741 0.05709689 siscone: 45 5.85112968 0.82301781 0.02209625 siscone: 46 -9.48923228 4.87533276 0.01126329 siscone:#-------------------------------------------------------------------------- siscone:# FastJet release 2.4-devel siscone:# Written by M. Cacciari, G.P. Salam and G. Soyez siscone:# http://www.fastjet.fr siscone:# siscone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen siscone:# clustering using fast geometric algorithms, with area measures and optional siscone:# external jet-finder plugins. siscone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. siscone:# siscone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM siscone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code siscone:# and CGAL: http://www.cgal.org/. siscone:#------------------------------------------------------------------------- siscone:#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo siscone:# SISCone version 1.4.0-devel o siscone:# http://projects.hepforge.org/siscone o siscone:# o siscone:# This is SISCone: the Seedless Infrared Safe Cone Jet Algorithm o siscone:# SISCone was written by Gavin Salam and Gregory Soyez o siscone:# It is released under the terms of the GNU General Public License o siscone:# o siscone:# A description of the algorithm is available in the publication o siscone:# JHEP 05 (2007) 086 [arXiv:0704.0292 (hep-ph)]. o siscone:# Please cite it if you use SISCone. o siscone:#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo siscone: siscone:iev 0: number of particles = 354 siscone:strategy used = plugin strategy siscone:Algorithm: SISCone jet algorithm with cone_radius = 1, overlap_threshold = 0.5, n_pass_max = 0, protojet_ptmin = 0, split-merge uses pttilde (scalar sum of pt's), caching turned off, SM stop scale = 0, using jet-definition's own recombiner, SISCone code v1.4.0-devel (FastJet version 2.4-devel) siscone: 0 -0.86713954 2.90515650 983.27961921 siscone: 1 0.22116370 6.03528626 906.17411212 siscone: 2 -1.16467900 6.11546479 73.10916848 siscone: 3 -2.07666731 1.16216182 14.54535640 siscone: 4 -1.54247692 4.17233732 9.47322381 siscone: 5 0.52029236 0.88131530 8.25859543 siscone: 6 -4.25899265 0.78777325 7.49686018 siscone: 7 1.94474080 5.69602031 6.45491398 siscone: 8 -4.77285733 3.68613180 5.64927681 siscone: 9 0.86738017 3.92337598 4.81531799 siscone: 10 6.26104121 3.20320618 4.06068147 siscone: 11 4.06353130 0.37345158 3.25950549 siscone: 12 3.85198650 5.19969277 3.08261859 siscone: 13 5.40509406 4.38910399 2.91261754 siscone: 14 4.53641533 2.87432127 2.49590734 siscone: 15 -2.62540692 6.25684353 2.15932247 siscone: 16 -3.42326116 2.38268424 2.04618736 siscone: 17 -3.45399037 5.30064054 1.91705245 siscone: 18 8.12157221 4.53217471 1.69349505 siscone: 19 -7.69700258 2.10417619 1.64924182 siscone: 20 1.03466475 2.22199377 1.11754756 siscone: 21 1.69014583 1.39581147 1.06124059 siscone: 22 -2.72559247 3.69387559 0.86326088 siscone: 23 -7.14572873 0.27797856 0.79122639 siscone: 24 -6.67067489 2.72329423 0.77716922 siscone: 25 6.84197794 5.07262797 0.43629714 siscone: 26 5.23762593 5.20867280 0.36996427 siscone: 27 -0.43679744 1.29924700 0.15432011 siscone: 28 -5.77760813 1.30987209 0.15262794 siscone: 29 2.12965154 2.64980311 0.09356077 siscone: 30 -8.00326877 4.65801574 0.07347739 siscone: 31 7.28041154 2.34495878 0.06130465 sisconespheri:#-------------------------------------------------------------------------- sisconespheri:# FastJet release 2.4-devel sisconespheri:# Written by M. Cacciari, G.P. Salam and G. Soyez sisconespheri:# http://www.fastjet.fr sisconespheri:# sisconespheri:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen sisconespheri:# clustering using fast geometric algorithms, with area measures and optional sisconespheri:# external jet-finder plugins. sisconespheri:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. sisconespheri:# sisconespheri:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM sisconespheri:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code sisconespheri:# and CGAL: http://www.cgal.org/. sisconespheri:#------------------------------------------------------------------------- sisconespheri:#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo sisconespheri:# SISCone version 1.4.0-devel o sisconespheri:# http://projects.hepforge.org/siscone o sisconespheri:# o sisconespheri:# This is SISCone: the Seedless Infrared Safe Cone Jet Algorithm o sisconespheri:# SISCone was written by Gavin Salam and Gregory Soyez o sisconespheri:# It is released under the terms of the GNU General Public License o sisconespheri:# o sisconespheri:# !!! WARNING !!! o sisconespheri:# This is the version of SISCone using spherical coordinates o sisconespheri:# o sisconespheri:# A description of the algorithm is available in the publication o sisconespheri:# JHEP 05 (2007) 086 [arXiv:0704.0292 (hep-ph)]. o sisconespheri:# Please cite it if you use SISCone. o sisconespheri:#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo sisconespheri: sisconespheri:iev 0: number of particles = 354 sisconespheri:strategy used = plugin strategy sisconespheri:Algorithm: Spherical SISCone jet algorithm with cone_radius = 0.4, overlap_threshold = 0.5, n_pass_max = 0, protojet_Emin = 0, split-merge uses Etilde (sum of E.[1+sin^2(theta_{i,jet})]), caching turned off, SM stop scale = 0, SISCone code v1.4.0-devel (FastJet version 2.4-devel) sisconespheri: 0 -0.86726067 2.90525286 982.99627104 sisconespheri: 1 0.22193323 6.02933229 893.95404678 sisconespheri: 2 -1.18512689 6.11595502 71.59942318 sisconespheri: 3 0.34574960 0.53650228 15.93057348 sisconespheri: 4 -3.96443683 1.44203175 11.12400797 sisconespheri: 5 4.44621798 4.70394278 8.95485151 sisconespheri: 6 -0.33052372 6.06122576 5.17656400 sisconespheri: 7 1.28552766 0.90796469 2.56541889 sisconespheri: 8 0.21090666 3.67744153 2.50086160 sisconespheri: 9 -1.29999321 3.97298955 1.99823263 sisconespheri: 10 -0.82526193 4.97675624 1.66293020 sisconespheri: 11 1.37781244 4.57766156 1.62383499 sisconespheri: 12 -1.07633067 1.29482817 1.25687553 sisconespheri: 13 0.63569432 4.80276765 1.07438440 sisconespheri: 14 0.93014979 5.86385722 0.88833104 sisconespheri: 15 -0.81350010 0.52047594 0.58520622 sisconespheri: 16 0.83455151 1.95480401 0.49003022 sisconespheri: 17 0.56397059 2.92433622 0.36840141 sisconespheri: 18 0.08585456 1.05752909 0.30511901 sisconespheri: 19 -0.48008540 2.57404266 0.29434546 sisconespheri: 20 -0.34736825 1.23735075 0.27027371 sisconespheri: 21 -0.78980834 5.62193921 0.23971407 sisconespheri: 22 -0.45528340 4.54898593 0.02106444 sisconespheri: 23 0.26940868 2.62043043 0.01568841 sisconespheri: 24 -0.41908417 3.09668063 0.00508892 sisconespheri:#-------------------------------------------------------------------------- sisconespheri:# FastJet release 2.4-devel sisconespheri:# Written by M. Cacciari, G.P. Salam and G. Soyez sisconespheri:# http://www.fastjet.fr sisconespheri:# sisconespheri:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen sisconespheri:# clustering using fast geometric algorithms, with area measures and optional sisconespheri:# external jet-finder plugins. sisconespheri:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. sisconespheri:# sisconespheri:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM sisconespheri:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code sisconespheri:# and CGAL: http://www.cgal.org/. sisconespheri:#------------------------------------------------------------------------- sisconespheri:#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo sisconespheri:# SISCone version 1.4.0-devel o sisconespheri:# http://projects.hepforge.org/siscone o sisconespheri:# o sisconespheri:# This is SISCone: the Seedless Infrared Safe Cone Jet Algorithm o sisconespheri:# SISCone was written by Gavin Salam and Gregory Soyez o sisconespheri:# It is released under the terms of the GNU General Public License o sisconespheri:# o sisconespheri:# !!! WARNING !!! o sisconespheri:# This is the version of SISCone using spherical coordinates o sisconespheri:# o sisconespheri:# A description of the algorithm is available in the publication o sisconespheri:# JHEP 05 (2007) 086 [arXiv:0704.0292 (hep-ph)]. o sisconespheri:# Please cite it if you use SISCone. o sisconespheri:#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo sisconespheri: sisconespheri:iev 0: number of particles = 354 sisconespheri:strategy used = plugin strategy sisconespheri:Algorithm: Spherical SISCone jet algorithm with cone_radius = 0.7, overlap_threshold = 0.5, n_pass_max = 0, protojet_Emin = 0, split-merge uses Etilde (sum of E.[1+sin^2(theta_{i,jet})]), caching turned off, SM stop scale = 0, SISCone code v1.4.0-devel (FastJet version 2.4-devel) sisconespheri: 0 -1.70297563 2.88867928 914.99458696 sisconespheri: 1 0.22074322 6.03050829 900.95112396 sisconespheri: 2 0.41708066 0.65033075 14.87245493 sisconespheri: 3 4.20445119 4.78314426 9.28349197 sisconespheri: 4 -0.82430030 5.89126710 5.40801682 sisconespheri: 5 0.10463184 3.47324203 4.13248856 sisconespheri: 6 0.20425448 1.74680256 0.54495221 sisconespheri: 7 0.37927637 4.81584020 0.36797773 sisconespheri: 8 -0.56348317 4.67998154 0.27689412 sisconespheri: 9 -0.95966061 1.11270916 0.05904255 sisconespheri:#-------------------------------------------------------------------------- sisconespheri:# FastJet release 2.4-devel sisconespheri:# Written by M. Cacciari, G.P. Salam and G. Soyez sisconespheri:# http://www.fastjet.fr sisconespheri:# sisconespheri:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen sisconespheri:# clustering using fast geometric algorithms, with area measures and optional sisconespheri:# external jet-finder plugins. sisconespheri:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. sisconespheri:# sisconespheri:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM sisconespheri:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code sisconespheri:# and CGAL: http://www.cgal.org/. sisconespheri:#------------------------------------------------------------------------- sisconespheri:#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo sisconespheri:# SISCone version 1.4.0-devel o sisconespheri:# http://projects.hepforge.org/siscone o sisconespheri:# o sisconespheri:# This is SISCone: the Seedless Infrared Safe Cone Jet Algorithm o sisconespheri:# SISCone was written by Gavin Salam and Gregory Soyez o sisconespheri:# It is released under the terms of the GNU General Public License o sisconespheri:# o sisconespheri:# !!! WARNING !!! o sisconespheri:# This is the version of SISCone using spherical coordinates o sisconespheri:# o sisconespheri:# A description of the algorithm is available in the publication o sisconespheri:# JHEP 05 (2007) 086 [arXiv:0704.0292 (hep-ph)]. o sisconespheri:# Please cite it if you use SISCone. o sisconespheri:#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo sisconespheri: sisconespheri:iev 0: number of particles = 354 sisconespheri:strategy used = plugin strategy sisconespheri:Algorithm: Spherical SISCone jet algorithm with cone_radius = 1, overlap_threshold = 0.5, n_pass_max = 0, protojet_Emin = 0, split-merge uses Etilde (sum of E.[1+sin^2(theta_{i,jet})]), caching turned off, SM stop scale = 0, SISCone code v1.4.0-devel (FastJet version 2.4-devel) sisconespheri: 0 -1.70104735 2.88962920 911.85305070 sisconespheri: 1 0.22058741 6.03672159 909.37538602 sisconespheri: 2 4.08066474 4.80028752 8.99529811 sisconespheri: 3 0.26715514 0.93623474 5.91714493 sisconespheri: 4 0.00700793 3.37654442 3.32951063 sisconespheri: 5 0.08407016 4.92458006 0.50544022 jetclu:#-------------------------------------------------------------------------- jetclu:# FastJet release 2.4-devel jetclu:# Written by M. Cacciari, G.P. Salam and G. Soyez jetclu:# http://www.fastjet.fr jetclu:# jetclu:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen jetclu:# clustering using fast geometric algorithms, with area measures and optional jetclu:# external jet-finder plugins. jetclu:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. jetclu:# jetclu:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM jetclu:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code jetclu:# and CGAL: http://www.cgal.org/. jetclu:#------------------------------------------------------------------------- jetclu:iev 0: number of particles = 354 jetclu:strategy used = plugin strategy jetclu:Algorithm: CDF JetClu jet algorithm with seed_threshold = 1, cone_radius = 0.4, adjacency_cut = 2, max_iterations = 100, iratch = 1, overlap_threshold = 0.5 (FastJet version 2.4-devel) jetclu: 0 -0.86701302 2.90521012 982.20561641 jetclu: 1 0.22037096 6.03013895 896.56895386 jetclu: 2 -1.17222488 6.07475883 68.35693025 jetclu: 3 0.35094229 0.53406770 15.67179772 jetclu: 4 -1.71938196 4.03506179 6.49839970 jetclu: 5 -2.40988723 1.37884320 5.06164062 jetclu: 6 -1.11143718 0.49003133 4.71953385 jetclu: 7 -2.56549692 0.84878570 2.95919083 jetclu: 8 -2.50805993 6.26480864 2.86899153 jetclu: 9 -1.55168716 1.18751879 2.56636065 jetclu: 10 -2.03004782 0.68656051 1.64420492 jetclu: 11 0.40534042 3.69495045 1.26881151 jetclu: 12 2.45321496 4.80987689 1.18477647 jetclu: 13 -1.12427361 3.92422371 1.10764361 jetclu: 14 2.98963399 5.74122296 1.09461974 jetclu: 15 -0.13319344 3.64778702 1.05346959 jetclu:#-------------------------------------------------------------------------- jetclu:# FastJet release 2.4-devel jetclu:# Written by M. Cacciari, G.P. Salam and G. Soyez jetclu:# http://www.fastjet.fr jetclu:# jetclu:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen jetclu:# clustering using fast geometric algorithms, with area measures and optional jetclu:# external jet-finder plugins. jetclu:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. jetclu:# jetclu:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM jetclu:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code jetclu:# and CGAL: http://www.cgal.org/. jetclu:#------------------------------------------------------------------------- jetclu:iev 0: number of particles = 354 jetclu:strategy used = plugin strategy jetclu:Algorithm: CDF JetClu jet algorithm with seed_threshold = 1, cone_radius = 0.7, adjacency_cut = 2, max_iterations = 100, iratch = 1, overlap_threshold = 0.5 (FastJet version 2.4-devel) jetclu: 0 -0.86713954 2.90515650 983.27961921 jetclu: 1 0.22053464 6.03070306 900.82278173 jetclu: 2 -1.16960761 6.07635455 69.40714572 jetclu: 3 0.38531052 0.63069316 14.05493791 jetclu: 4 -2.41955917 1.10300909 9.63070251 jetclu: 5 -1.24427678 0.80574507 7.71450946 jetclu: 6 -1.63742088 4.01894081 7.60023410 jetclu: 7 -2.49858360 6.20468987 3.44557740 jetclu: 8 2.60773010 5.80155095 3.29198247 jetclu: 9 2.11455019 4.78675942 2.62611087 jetclu: 10 0.21090666 3.67744153 2.50086160 jetclu:#-------------------------------------------------------------------------- jetclu:# FastJet release 2.4-devel jetclu:# Written by M. Cacciari, G.P. Salam and G. Soyez jetclu:# http://www.fastjet.fr jetclu:# jetclu:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen jetclu:# clustering using fast geometric algorithms, with area measures and optional jetclu:# external jet-finder plugins. jetclu:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. jetclu:# jetclu:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM jetclu:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code jetclu:# and CGAL: http://www.cgal.org/. jetclu:#------------------------------------------------------------------------- jetclu:iev 0: number of particles = 354 jetclu:strategy used = plugin strategy jetclu:Algorithm: CDF JetClu jet algorithm with seed_threshold = 1, cone_radius = 1, adjacency_cut = 2, max_iterations = 100, iratch = 1, overlap_threshold = 0.5 (FastJet version 2.4-devel) jetclu: 0 -0.86713954 2.90515650 983.27961921 jetclu: 1 0.22326649 6.04194199 909.77811450 jetclu: 2 -1.16601802 6.10941975 74.17814632 jetclu: 3 -2.17946114 1.08312258 15.66304254 jetclu: 4 -1.72135558 3.91871676 8.64801111 jetclu: 5 1.92248451 5.02334751 4.46868411 jetclu: 6 3.37858511 5.60151797 4.43381258 jetclu: 7 0.36701702 3.70077886 3.16943147 midpoint:#-------------------------------------------------------------------------- midpoint:# FastJet release 2.4-devel midpoint:# Written by M. Cacciari, G.P. Salam and G. Soyez midpoint:# http://www.fastjet.fr midpoint:# midpoint:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen midpoint:# clustering using fast geometric algorithms, with area measures and optional midpoint:# external jet-finder plugins. midpoint:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. midpoint:# midpoint:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM midpoint:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code midpoint:# and CGAL: http://www.cgal.org/. midpoint:#------------------------------------------------------------------------- midpoint:iev 0: number of particles = 354 midpoint:strategy used = plugin strategy midpoint:Algorithm: CDF MidPoint jet algorithm, with seed_threshold = 1, cone_radius = 0.4, cone_area_fraction = 1, max_pair_size = 2, max_iterations = 100, overlap_threshold = 0.5, split-merge uses pt (FastJet version 2.4-devel) midpoint: 0 -0.86748501 2.90530809 981.15729251 midpoint: 1 0.22193323 6.02933229 893.95404678 midpoint: 2 -1.18652024 6.09503198 64.71983681 midpoint: 3 0.34574960 0.53650228 15.93057348 midpoint: 4 -2.57881012 1.12067937 6.46586674 midpoint: 5 -1.71325313 4.03540436 6.40291266 midpoint: 6 -1.05303087 0.48682511 4.53197266 midpoint: 7 -1.76965729 1.32139179 3.93241017 midpoint: 8 -4.74243676 1.71411915 2.40989110 midpoint: 9 -4.47115644 0.13920456 2.33463548 midpoint: 10 0.16011024 3.67355584 2.32164097 midpoint: 11 -2.64086316 6.24949207 2.26654550 midpoint: 12 -4.15575471 1.12626041 2.22559566 midpoint: 13 5.95240354 3.58245583 2.10328507 midpoint: 14 8.12777070 4.50033593 1.65339912 midpoint: 15 -2.03004782 0.68656051 1.64420492 midpoint: 16 3.61834479 5.09397697 1.56474502 midpoint: 17 -5.29176513 4.10047986 1.55657262 midpoint: 18 2.48819341 4.85093521 1.41171175 midpoint: 19 -4.47175148 4.54371501 1.41165455 midpoint: 20 4.94988636 4.36120223 1.26261444 midpoint: 21 5.83349277 4.31085344 1.15482500 midpoint: 22 -1.12427361 3.92422371 1.10764361 midpoint: 23 2.98963399 5.74122296 1.09461974 midpoint: 24 -4.83850749 2.30229525 1.08886394 midpoint: 25 6.76652121 3.05170242 1.06182081 midpoint:#-------------------------------------------------------------------------- midpoint:# FastJet release 2.4-devel midpoint:# Written by M. Cacciari, G.P. Salam and G. Soyez midpoint:# http://www.fastjet.fr midpoint:# midpoint:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen midpoint:# clustering using fast geometric algorithms, with area measures and optional midpoint:# external jet-finder plugins. midpoint:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. midpoint:# midpoint:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM midpoint:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code midpoint:# and CGAL: http://www.cgal.org/. midpoint:#------------------------------------------------------------------------- midpoint:iev 0: number of particles = 354 midpoint:strategy used = plugin strategy midpoint:Algorithm: CDF MidPoint jet algorithm, with seed_threshold = 1, cone_radius = 0.7, cone_area_fraction = 1, max_pair_size = 2, max_iterations = 100, overlap_threshold = 0.5, split-merge uses pt (FastJet version 2.4-devel) midpoint: 0 -0.86713954 2.90515650 983.27961921 midpoint: 1 0.22053464 6.03070306 900.82278173 midpoint: 2 -1.16480804 6.10889882 73.04424913 midpoint: 3 0.38531052 0.63069316 14.05493791 midpoint: 4 -2.46859216 1.03398974 7.98755167 midpoint: 5 -1.63742088 4.01894081 7.60023410 midpoint: 6 -4.46837491 1.59433725 6.25736018 midpoint: 7 5.80617398 3.83189179 5.90687330 midpoint: 8 -1.61554117 1.35182622 5.50772100 midpoint: 9 -4.81376154 4.49907839 4.67589207 midpoint: 10 3.29058361 5.56991821 4.60158267 midpoint: 11 -2.48893071 6.20047697 3.39846776 midpoint: 12 -4.47515985 0.13381720 2.60184918 midpoint: 13 0.21090666 3.67744153 2.50086160 midpoint: 14 2.40133084 4.93254825 1.65580933 midpoint: 15 8.12777070 4.50033593 1.65339912 midpoint:#-------------------------------------------------------------------------- midpoint:# FastJet release 2.4-devel midpoint:# Written by M. Cacciari, G.P. Salam and G. Soyez midpoint:# http://www.fastjet.fr midpoint:# midpoint:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen midpoint:# clustering using fast geometric algorithms, with area measures and optional midpoint:# external jet-finder plugins. midpoint:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. midpoint:# midpoint:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM midpoint:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code midpoint:# and CGAL: http://www.cgal.org/. midpoint:#------------------------------------------------------------------------- midpoint:iev 0: number of particles = 354 midpoint:strategy used = plugin strategy midpoint:Algorithm: CDF MidPoint jet algorithm, with seed_threshold = 1, cone_radius = 1, cone_area_fraction = 1, max_pair_size = 2, max_iterations = 100, overlap_threshold = 0.5, split-merge uses pt (FastJet version 2.4-devel) midpoint: 0 -0.86730713 2.90511470 983.38727662 midpoint: 1 0.22137401 6.03515762 906.44139699 midpoint: 2 -1.16397358 6.10522593 73.84500720 midpoint: 3 -2.18858901 1.17526448 14.17306142 midpoint: 4 -1.72135558 3.91871676 8.64801111 midpoint: 5 -4.39495614 1.24229461 8.10072287 midpoint: 6 5.74614140 3.68528880 6.78616969 midpoint: 7 1.79196592 4.73021636 5.85804125 midpoint: 8 -4.72579855 4.31742687 5.69445851 midpoint: 9 3.41458405 5.65130683 4.70863008 midpoint: 10 0.29395830 3.62298413 2.89255364 midpoint: 11 8.12157221 4.53217471 1.69349505 pxcone:#-------------------------------------------------------------------------- pxcone:# FastJet release 2.4-devel pxcone:# Written by M. Cacciari, G.P. Salam and G. Soyez pxcone:# http://www.fastjet.fr pxcone:# pxcone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen pxcone:# clustering using fast geometric algorithms, with area measures and optional pxcone:# external jet-finder plugins. pxcone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. pxcone:# pxcone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM pxcone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code pxcone:# and CGAL: http://www.cgal.org/. pxcone:#------------------------------------------------------------------------- pxcone:iev 0: number of particles = 354 pxcone:strategy used = plugin strategy pxcone:Algorithm: PxCone jet algorithm with cone_radius = 0.4, min_jet_energy = 5, overlap_threshold = 0.5, E_scheme_jets = 0 (NB: non-standard version of PxCone, containing small bug fixes by Gavin Salam) (FastJet version 2.4-devel) pxcone: pxcone: *********** PXCONE: Cone Jet-finder *********** pxcone: Written by Luis Del Pozo of OPAL pxcone: Modified for eta-phi by Mike Seymour pxcone: Includes bug fixes by Wobisch, Salam pxcone: Cone Size R = 0.40 Radians pxcone: Min Jet energy Epsilon = 5.00 GeV pxcone: Overlap fraction parameter = 0.50 pxcone: PXCONE is not a supported product and is pxcone: is provided for comparative purposes only pxcone: *********************************************** pxcone: pxcone: 0 -0.86752807 2.90530606 981.33156775 pxcone: 1 0.22196159 6.03016163 895.04182077 pxcone: 2 -1.18855471 6.09478758 64.99885389 pxcone: 3 0.41880429 0.63797150 12.97680182 pxcone: 4 -1.79345842 4.03552343 6.64303594 pxcone: 5 -2.58599384 1.16057965 6.14684857 pxcone:#-------------------------------------------------------------------------- pxcone:# FastJet release 2.4-devel pxcone:# Written by M. Cacciari, G.P. Salam and G. Soyez pxcone:# http://www.fastjet.fr pxcone:# pxcone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen pxcone:# clustering using fast geometric algorithms, with area measures and optional pxcone:# external jet-finder plugins. pxcone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. pxcone:# pxcone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM pxcone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code pxcone:# and CGAL: http://www.cgal.org/. pxcone:#------------------------------------------------------------------------- pxcone:iev 0: number of particles = 354 pxcone:strategy used = plugin strategy pxcone:Algorithm: PxCone jet algorithm with cone_radius = 0.7, min_jet_energy = 5, overlap_threshold = 0.5, E_scheme_jets = 0 (NB: non-standard version of PxCone, containing small bug fixes by Gavin Salam) (FastJet version 2.4-devel) pxcone: pxcone: *********** PXCONE: Cone Jet-finder *********** pxcone: Written by Luis Del Pozo of OPAL pxcone: Modified for eta-phi by Mike Seymour pxcone: Includes bug fixes by Wobisch, Salam pxcone: Cone Size R = 0.70 Radians pxcone: Min Jet energy Epsilon = 5.00 GeV pxcone: Overlap fraction parameter = 0.50 pxcone: PXCONE is not a supported product and is pxcone: is provided for comparative purposes only pxcone: *********************************************** pxcone: pxcone: 0 -0.86720060 2.90514996 983.52166328 pxcone: 1 0.22063360 6.03064288 901.07011563 pxcone: 2 -1.17242666 6.11484953 74.18667950 pxcone: 3 0.39761584 0.62576016 14.62451610 pxcone: 4 -2.29795205 1.11790085 12.14285478 pxcone: 5 -1.69873765 4.01961767 7.75067955 pxcone:#-------------------------------------------------------------------------- pxcone:# FastJet release 2.4-devel pxcone:# Written by M. Cacciari, G.P. Salam and G. Soyez pxcone:# http://www.fastjet.fr pxcone:# pxcone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen pxcone:# clustering using fast geometric algorithms, with area measures and optional pxcone:# external jet-finder plugins. pxcone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. pxcone:# pxcone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM pxcone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code pxcone:# and CGAL: http://www.cgal.org/. pxcone:#------------------------------------------------------------------------- pxcone:iev 0: number of particles = 354 pxcone:strategy used = plugin strategy pxcone:Algorithm: PxCone jet algorithm with cone_radius = 1, min_jet_energy = 5, overlap_threshold = 0.5, E_scheme_jets = 0 (NB: non-standard version of PxCone, containing small bug fixes by Gavin Salam) (FastJet version 2.4-devel) pxcone: pxcone: *********** PXCONE: Cone Jet-finder *********** pxcone: Written by Luis Del Pozo of OPAL pxcone: Modified for eta-phi by Mike Seymour pxcone: Includes bug fixes by Wobisch, Salam pxcone: Cone Size R = 1.00 Radians pxcone: Min Jet energy Epsilon = 5.00 GeV pxcone: Overlap fraction parameter = 0.50 pxcone: PXCONE is not a supported product and is pxcone: is provided for comparative purposes only pxcone: *********************************************** pxcone: pxcone: 0 -0.86720060 2.90514996 983.52166328 pxcone: 1 0.22155057 6.03553331 908.31953821 pxcone: 2 -1.17301574 6.10620744 75.74754349 pxcone: 3 -2.14811469 1.14481785 14.43228931 pxcone: 4 -1.77611639 3.91119659 9.16296603 pxcone: 5 -4.40186865 0.90388961 8.14879925 pxcone: 6 3.06741098 5.42699131 7.12944809 pxcone: 7 -4.94904596 4.31732621 6.24653506 pxcone: 8 1.21662156 4.26097464 6.17026436 d0runiicone:#-------------------------------------------------------------------------- d0runiicone:# FastJet release 2.4-devel d0runiicone:# Written by M. Cacciari, G.P. Salam and G. Soyez d0runiicone:# http://www.fastjet.fr d0runiicone:# d0runiicone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen d0runiicone:# clustering using fast geometric algorithms, with area measures and optional d0runiicone:# external jet-finder plugins. d0runiicone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. d0runiicone:# d0runiicone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM d0runiicone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code d0runiicone:# and CGAL: http://www.cgal.org/. d0runiicone:#------------------------------------------------------------------------- d0runiicone:iev 0: number of particles = 354 d0runiicone:strategy used = plugin strategy d0runiicone:Algorithm: D0 Run II Improved Legacy (midpoint) cone jet algorithm, with cone_radius = 0.4, min_jet_Et = 6, split_ratio = 0.5 (FastJet version 2.4-devel) d0runiicone: 0 -0.86748501 2.90530809 981.15729251 d0runiicone: 1 0.22193323 6.02933229 893.95404678 d0runiicone: 2 -1.18652024 6.09503198 64.71983681 d0runiicone: 3 0.34574960 0.53650228 15.93057348 d0runiicone: 4 -1.71325313 4.03540436 6.40291266 d0runiicone: 5 -1.05303087 0.48682511 4.53197266 d0runiicone: 6 -2.58954013 1.33705130 3.70169785 d0runiicone: 7 -2.56549692 0.84878570 2.95919083 d0runiicone:#-------------------------------------------------------------------------- d0runiicone:# FastJet release 2.4-devel d0runiicone:# Written by M. Cacciari, G.P. Salam and G. Soyez d0runiicone:# http://www.fastjet.fr d0runiicone:# d0runiicone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen d0runiicone:# clustering using fast geometric algorithms, with area measures and optional d0runiicone:# external jet-finder plugins. d0runiicone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. d0runiicone:# d0runiicone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM d0runiicone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code d0runiicone:# and CGAL: http://www.cgal.org/. d0runiicone:#------------------------------------------------------------------------- d0runiicone:iev 0: number of particles = 354 d0runiicone:strategy used = plugin strategy d0runiicone:Algorithm: D0 Run II Improved Legacy (midpoint) cone jet algorithm, with cone_radius = 0.7, min_jet_Et = 6, split_ratio = 0.5 (FastJet version 2.4-devel) d0runiicone: 0 -0.86713954 2.90515650 983.27961921 d0runiicone: 1 0.22053464 6.03070306 900.82278173 d0runiicone: 2 -1.17103708 6.07159548 69.71050689 d0runiicone: 3 0.38531052 0.63069316 14.05493791 d0runiicone: 4 -2.33839876 0.93148746 12.41157474 d0runiicone: 5 -1.63742088 4.01894081 7.60023410 d0runiicone: 6 -4.34114427 1.35326901 7.49706069 d0runiicone: 7 -1.17471965 0.75616236 7.28161784 d0runiicone: 8 -4.79069641 4.23054775 4.93194760 d0runiicone: 9 1.47874055 4.40163267 4.00212058 d0runiicone: 10 3.29170087 5.68661590 3.37602923 d0runiicone:#-------------------------------------------------------------------------- d0runiicone:# FastJet release 2.4-devel d0runiicone:# Written by M. Cacciari, G.P. Salam and G. Soyez d0runiicone:# http://www.fastjet.fr d0runiicone:# d0runiicone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen d0runiicone:# clustering using fast geometric algorithms, with area measures and optional d0runiicone:# external jet-finder plugins. d0runiicone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. d0runiicone:# d0runiicone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM d0runiicone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code d0runiicone:# and CGAL: http://www.cgal.org/. d0runiicone:#------------------------------------------------------------------------- d0runiicone:iev 0: number of particles = 354 d0runiicone:strategy used = plugin strategy d0runiicone:Algorithm: D0 Run II Improved Legacy (midpoint) cone jet algorithm, with cone_radius = 1, min_jet_Et = 6, split_ratio = 0.5 (FastJet version 2.4-devel) d0runiicone: 0 -0.86730713 2.90511470 983.38727662 d0runiicone: 1 0.22116370 6.03528626 906.17411212 d0runiicone: 2 -1.16397358 6.10522593 73.84500720 d0runiicone: 3 -2.18858901 1.17526448 14.17306142 d0runiicone: 4 -1.72135558 3.91871676 8.64801111 d0runiicone: 5 2.52511886 5.66823131 8.42918770 d0runiicone: 6 -4.38569975 1.24794107 8.21097734 d0runiicone: 7 0.92405331 4.02576467 6.10582983 d0runiicone: 8 -4.70711511 4.23008630 6.05274002 d0runiicone: 9 5.47124478 3.88348649 5.75220082 d0runiicone: 10 4.29143610 0.37641222 3.04255178 trackjet:#-------------------------------------------------------------------------- trackjet:# FastJet release 2.4-devel trackjet:# Written by M. Cacciari, G.P. Salam and G. Soyez trackjet:# http://www.fastjet.fr trackjet:# trackjet:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen trackjet:# clustering using fast geometric algorithms, with area measures and optional trackjet:# external jet-finder plugins. trackjet:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. trackjet:# trackjet:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM trackjet:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code trackjet:# and CGAL: http://www.cgal.org/. trackjet:#------------------------------------------------------------------------- trackjet:iev 0: number of particles = 354 trackjet:strategy used = plugin strategy trackjet:Algorithm: TrackJet algorithm with R = 0.4 (FastJet version 2.4-devel) trackjet: 0 -0.86752807 2.90530606 981.33156775 trackjet: 1 0.22196159 6.03016163 895.04182077 trackjet: 2 -1.19271307 6.10272885 63.56333484 trackjet: 3 0.48025274 0.74649482 9.37207502 trackjet: 4 -0.94645721 5.73806308 5.74554631 trackjet: 5 -2.53670818 1.36969304 4.74395379 trackjet: 6 -1.20291437 0.49001766 4.72509085 trackjet: 7 0.21036582 0.35724850 4.63429382 trackjet: 8 -1.70097620 4.13704163 4.57111077 trackjet: 9 -0.12031683 6.24180839 4.27472178 trackjet: 10 -2.57975567 0.84864482 2.97158474 trackjet: 11 -2.58228595 6.27070477 2.77795609 trackjet: 12 -5.29798636 3.93439368 2.56948531 trackjet: 13 -1.67271958 1.18750915 2.56941874 trackjet: 14 -4.84660568 1.71301366 2.34691279 trackjet: 15 -1.99749403 3.81155251 2.07192517 trackjet: 16 4.83895076 0.48415213 1.67230383 trackjet: 17 8.12777070 4.50033593 1.65339912 trackjet: 18 -2.03004782 0.68656051 1.64420492 trackjet: 19 -4.40152495 1.13067177 1.56844934 trackjet: 20 3.63134880 5.09400688 1.56798021 trackjet: 21 5.48448747 2.75841891 1.54275422 trackjet: 22 -0.96496532 4.95813063 1.52921026 trackjet: 23 -4.70624539 6.23829375 1.49178672 trackjet: 24 -0.45119332 2.79514634 1.48703793 trackjet: 25 5.76250669 3.59085916 1.46715405 trackjet: 26 -4.47729183 4.54371506 1.41167209 trackjet: 27 1.47437742 4.90136875 1.31915595 trackjet: 28 -1.95429859 1.98089535 1.30334685 trackjet: 29 4.94987653 4.36154663 1.26919091 trackjet: 30 0.40534042 3.69495045 1.26881151 trackjet: 31 1.66121499 3.86529595 1.24503353 trackjet: 32 3.27038970 0.10157179 1.24062129 trackjet: 33 -4.83791458 2.29603064 1.20442463 trackjet: 34 1.70902028 1.11777860 1.19583881 trackjet: 35 2.45318706 4.81007200 1.18761708 trackjet: 36 -2.10814927 3.09167715 1.17782611 trackjet: 37 -4.57410020 0.36267981 1.16674443 trackjet: 38 5.83349277 4.31085344 1.15482500 trackjet: 39 -1.12427361 3.92422371 1.10764361 trackjet: 40 2.98957011 5.74121147 1.09491505 trackjet: 41 2.39889701 5.67643143 1.07616074 trackjet: 42 6.76652121 3.05170242 1.06182081 trackjet: 43 -0.13319344 3.64778702 1.05346959 trackjet: 44 -1.02546253 1.27771393 1.03347180 trackjet: 45 1.17632150 4.31670713 0.99951962 trackjet: 46 -3.93128285 1.20101905 0.95642969 trackjet: 47 0.38941687 5.61125413 0.92738686 trackjet: 48 -7.63346998 1.88791834 0.90149649 trackjet: 49 -3.58141349 0.75462887 0.89434672 trackjet: 50 -5.29241934 2.78775192 0.86130291 trackjet: 51 1.87674739 1.73673961 0.86100350 trackjet: 52 1.74045467 4.51637923 0.79030100 trackjet: 53 -4.79464947 5.47204402 0.78374692 trackjet: 54 1.56080047 0.10651145 0.77226763 trackjet: 55 -4.32871815 3.38867272 0.77164261 trackjet: 56 -2.59598336 2.01619965 0.75206523 trackjet: 57 -7.39091928 0.27492767 0.73917641 trackjet: 58 3.84122217 5.50038668 0.71000124 trackjet: 59 -4.20249922 2.73160393 0.70780400 trackjet: 60 -4.88421354 4.46088268 0.69281056 trackjet: 61 3.96113342 3.11476803 0.69175810 trackjet: 62 7.47949112 2.60998030 0.64319186 trackjet: 63 -4.34588974 1.55939906 0.63995874 trackjet: 64 5.46524261 4.49473013 0.63951155 trackjet: 65 6.85004993 3.56307571 0.63644551 trackjet: 66 0.96164171 1.21710364 0.63484369 trackjet: 67 -1.42505645 5.37372696 0.60908159 trackjet: 68 2.49293274 1.04633425 0.58825822 trackjet: 69 2.96223936 5.21356604 0.55675709 trackjet: 70 -4.51692640 5.25893978 0.54642168 trackjet: 71 0.84397363 6.03186556 0.47712339 trackjet: 72 5.80332447 5.08781396 0.46714273 trackjet: 73 1.11939839 0.60901075 0.46428732 trackjet: 74 2.41785131 0.47943002 0.46415319 trackjet: 75 -3.47983827 5.07877625 0.46303573 trackjet: 76 -1.31786918 3.17805771 0.46134922 trackjet: 77 -7.43494075 2.63891803 0.45067439 trackjet: 78 7.06113342 5.07265319 0.43682403 trackjet: 79 0.01003649 1.08460149 0.42175939 trackjet: 80 -3.38204379 0.30862506 0.41579715 trackjet: 81 3.95162877 2.13619325 0.39747472 trackjet: 82 4.30871914 0.55540419 0.38945770 trackjet: 83 3.00384031 3.91945598 0.37901836 trackjet: 84 -2.54470222 3.91088804 0.36984147 trackjet: 85 0.62000823 2.92433996 0.36863525 trackjet: 86 -2.62292155 5.71781169 0.36803044 trackjet: 87 0.37927637 4.81584020 0.36797773 trackjet: 88 3.89309239 0.03501244 0.35674506 trackjet: 89 -2.07230353 1.50056310 0.35094775 trackjet: 90 -0.30958372 5.79118604 0.34906285 trackjet: 91 -7.81804817 2.31742986 0.34691123 trackjet: 92 -1.55979618 0.15270001 0.33949906 trackjet: 93 -6.95444242 3.14121630 0.33669312 trackjet: 94 -5.90630815 2.34308296 0.33485034 trackjet: 95 -4.38025953 5.03735328 0.33259252 trackjet: 96 -3.43192140 5.44651669 0.30676236 trackjet: 97 -3.04151922 2.74757234 0.30511558 trackjet: 98 -3.14916951 0.92604820 0.29660309 trackjet: 99 0.83760094 5.62388881 0.29160833 trackjet: 100 -1.93866201 5.20827316 0.27658618 trackjet: 101 -0.65470948 0.03127068 0.26853654 trackjet: 102 -0.69424661 0.57903600 0.26718925 trackjet: 103 0.51902625 1.69995477 0.25151834 trackjet: 104 4.21161543 6.18038703 0.24753689 trackjet: 105 -2.93620164 3.29089444 0.24729816 trackjet: 106 -1.16407350 2.42724930 0.24170838 trackjet: 107 -2.61605381 4.99574690 0.23782260 trackjet: 108 4.70142751 2.77490986 0.23233342 trackjet: 109 -3.66832742 1.89617405 0.23107924 trackjet: 110 1.12234644 2.22571396 0.21561207 trackjet: 111 -1.98411559 6.13552574 0.20986645 trackjet: 112 -5.52565340 4.62888491 0.20761346 trackjet: 113 3.37707424 5.94652022 0.20593434 trackjet: 114 -3.06249590 4.24385166 0.20128613 trackjet: 115 4.70894059 5.16548545 0.19745949 trackjet: 116 -3.75977085 0.59523241 0.19553929 trackjet: 117 -5.66743652 3.33999913 0.18279821 trackjet: 118 -8.25876075 1.94973315 0.18036166 trackjet: 119 0.85233232 3.72772968 0.17946503 trackjet: 120 -5.68300930 1.56317692 0.17005384 trackjet: 121 5.13919860 3.70368615 0.16987524 trackjet: 122 -5.14101988 3.27183445 0.16744970 trackjet: 123 3.92421776 0.49246767 0.16380829 trackjet: 124 -0.43679744 1.29924700 0.15432011 trackjet: 125 5.16694688 1.91529863 0.15313809 trackjet: 126 2.00773402 5.34765760 0.15093395 trackjet: 127 2.85806011 0.82211592 0.14988091 trackjet: 128 -4.03041013 4.43254080 0.14911557 trackjet: 129 -5.04668438 4.49534185 0.14684226 trackjet: 130 1.53361682 5.78816076 0.13632854 trackjet: 131 -0.66442387 5.30254202 0.12915586 trackjet: 132 -3.30599066 1.64077752 0.11948515 trackjet: 133 -1.68439986 2.54038112 0.11523881 trackjet: 134 -2.95178858 6.10259146 0.10844944 trackjet: 135 -1.56643473 1.74633285 0.09957891 trackjet: 136 2.12965154 2.64980311 0.09356077 trackjet: 137 3.80440897 3.92572632 0.07111865 trackjet: 138 6.64774887 1.19307942 0.06961562 trackjet: 139 7.94574967 5.44196494 0.06667721 trackjet: 140 -5.86524701 1.15128325 0.06002593 trackjet: 141 -8.12606625 0.31781741 0.05709689 trackjet: 142 -0.62165989 4.56559630 0.05471836 trackjet: 143 3.57931460 1.89230065 0.05238092 trackjet: 144 1.52532282 2.10054786 0.03930408 trackjet: 145 -4.35681679 2.20521086 0.03671142 trackjet: 146 -8.25350433 4.46830907 0.03067038 trackjet: 147 -1.83523182 5.67155124 0.02646852 trackjet: 148 -4.26809602 3.97286676 0.02331980 trackjet: 149 5.85112968 0.82301781 0.02209625 trackjet: 150 -7.54242519 4.71320378 0.01978933 trackjet: 151 0.26940868 2.62043043 0.01568841 trackjet: 152 4.70068958 0.98672496 0.01403051 trackjet: 153 6.81954469 0.60312817 0.01368451 trackjet: 154 -6.69612939 4.83576528 0.01280137 trackjet: 155 -9.48923228 4.87533276 0.01126329 trackjet:#-------------------------------------------------------------------------- trackjet:# FastJet release 2.4-devel trackjet:# Written by M. Cacciari, G.P. Salam and G. Soyez trackjet:# http://www.fastjet.fr trackjet:# trackjet:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen trackjet:# clustering using fast geometric algorithms, with area measures and optional trackjet:# external jet-finder plugins. trackjet:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. trackjet:# trackjet:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM trackjet:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code trackjet:# and CGAL: http://www.cgal.org/. trackjet:#------------------------------------------------------------------------- trackjet:iev 0: number of particles = 354 trackjet:strategy used = plugin strategy trackjet:Algorithm: TrackJet algorithm with R = 0.7 (FastJet version 2.4-devel) trackjet: 0 -0.86720060 2.90514996 983.52166328 trackjet: 1 0.22101213 6.03328725 905.22742853 trackjet: 2 -1.17242666 6.11484953 74.18667950 trackjet: 3 0.46628814 0.77285279 11.10204690 trackjet: 4 -2.55929997 1.18380753 8.49356677 trackjet: 5 -1.69873765 4.01961767 7.75067955 trackjet: 6 -4.58403127 1.48789741 4.82722041 trackjet: 7 -1.78356572 0.95128524 4.66895177 trackjet: 8 -2.57070256 6.20273736 3.51356850 trackjet: 9 2.87690688 5.80239594 3.43078559 trackjet: 10 -5.21806459 4.05077626 3.30544112 trackjet: 11 2.00497918 4.77492427 3.10223983 trackjet: 12 -4.64825108 0.13397850 2.65853115 trackjet: 13 0.21132115 3.67744167 2.50174613 trackjet: 14 -1.06794893 5.08184844 2.30643464 trackjet: 15 5.64962592 4.47436479 2.28106392 trackjet: 16 3.70266541 5.22066733 2.27798145 trackjet: 17 -4.87179556 2.46476211 2.24904440 trackjet: 18 -3.69875151 0.77857333 2.14094721 trackjet: 19 4.74986560 0.50091731 2.07579204 trackjet: 20 -2.12604366 1.99461514 2.02451358 trackjet: 21 1.71575223 1.24168231 1.93138544 trackjet: 22 -4.43721172 4.61377845 1.91669998 trackjet: 23 5.40215825 2.76057733 1.77508765 trackjet: 24 1.58276253 3.97810380 1.72940017 trackjet: 25 6.80317974 3.24334565 1.69826632 trackjet: 26 8.12777070 4.50033593 1.65339912 trackjet: 27 5.70186270 3.60256727 1.63702929 trackjet: 28 -8.03704672 2.00000878 1.42876939 trackjet: 29 -4.96260338 5.38450265 1.33016860 trackjet: 30 -2.10880250 3.04254528 1.29306492 trackjet: 31 3.80858924 0.16955456 1.27862919 trackjet: 32 -0.96700845 1.28051155 1.18779191 trackjet: 33 -4.24287060 3.22172877 1.12170897 trackjet: 34 4.93668383 4.31841484 1.07670707 trackjet: 35 2.45981899 0.79630807 1.05241141 trackjet: 36 1.55672175 0.01625516 0.90859617 trackjet: 37 -7.47714588 2.85371020 0.78736750 trackjet: 38 -3.68874324 5.22531978 0.76979809 trackjet: 39 -7.39091928 0.27492767 0.73917641 trackjet: 40 3.96113342 3.11476803 0.69175810 trackjet: 41 7.47949112 2.60998030 0.64319186 trackjet: 42 -2.72719154 4.02823653 0.57112760 trackjet: 43 -5.56992602 3.20094642 0.56138011 trackjet: 44 -3.04662470 2.99080045 0.55241374 trackjet: 45 0.98377572 4.36243839 0.51515297 trackjet: 46 3.95960727 2.10779454 0.44985564 trackjet: 47 7.06113342 5.07265319 0.43682403 trackjet: 48 -5.87563545 2.23319839 0.41106886 trackjet: 49 0.60569647 2.91193413 0.38432366 trackjet: 50 3.00384031 3.91945598 0.37901836 trackjet: 51 0.37927637 4.81584020 0.36797773 trackjet: 52 -3.64721916 1.80912558 0.35056439 trackjet: 53 1.20989649 5.03711883 0.34576815 trackjet: 54 1.93852365 1.96887346 0.31602003 trackjet: 55 -1.93294363 5.25195038 0.29772169 trackjet: 56 0.83760094 5.62388881 0.29160833 trackjet: 57 -0.69424661 0.57903600 0.26718925 trackjet: 58 0.51902625 1.69995477 0.25151834 trackjet: 59 -2.61605381 4.99574690 0.23782260 trackjet: 60 2.64067059 5.06114042 0.23306396 trackjet: 61 1.12234644 2.22571396 0.21561207 trackjet: 62 4.70894059 5.16548545 0.19745949 trackjet: 63 5.71167866 5.25799957 0.17289920 trackjet: 64 -5.53241726 4.68984119 0.16446820 trackjet: 65 -6.33306528 4.52263944 0.15964363 trackjet: 66 5.16694688 1.91529863 0.15313809 trackjet: 67 2.85806011 0.82211592 0.14988091 trackjet: 68 -0.18829565 1.15542006 0.11664038 trackjet: 69 -5.63600235 1.41106840 0.09383533 trackjet: 70 2.12965154 2.64980311 0.09356077 trackjet: 71 3.80440897 3.92572632 0.07111865 trackjet: 72 6.64774887 1.19307942 0.06961562 trackjet: 73 7.94574967 5.44196494 0.06667721 trackjet: 74 -5.86524701 1.15128325 0.06002593 trackjet: 75 -8.12606625 0.31781741 0.05709689 trackjet: 76 -8.25350433 4.46830907 0.03067038 trackjet: 77 5.85112968 0.82301781 0.02209625 trackjet: 78 -0.45528340 4.54898593 0.02106444 trackjet: 79 -7.54242519 4.71320378 0.01978933 trackjet: 80 6.81954469 0.60312817 0.01368451 trackjet: 81 -9.48923228 4.87533276 0.01126329 trackjet:#-------------------------------------------------------------------------- trackjet:# FastJet release 2.4-devel trackjet:# Written by M. Cacciari, G.P. Salam and G. Soyez trackjet:# http://www.fastjet.fr trackjet:# trackjet:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen trackjet:# clustering using fast geometric algorithms, with area measures and optional trackjet:# external jet-finder plugins. trackjet:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. trackjet:# trackjet:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM trackjet:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code trackjet:# and CGAL: http://www.cgal.org/. trackjet:#------------------------------------------------------------------------- trackjet:iev 0: number of particles = 354 trackjet:strategy used = plugin strategy trackjet:Algorithm: TrackJet algorithm with R = 1 (FastJet version 2.4-devel) trackjet: 0 -0.86720060 2.90514996 983.52166328 trackjet: 1 0.21988284 6.03523948 910.03197093 trackjet: 2 -1.18673899 6.11601350 74.49043889 trackjet: 3 -2.28644454 1.24038116 14.73170401 trackjet: 4 -1.77611639 3.91119661 9.16296603 trackjet: 5 0.51931950 0.88297480 8.82096334 trackjet: 6 -4.53749818 1.60723225 6.98396585 trackjet: 7 3.24184974 5.52116574 5.63726080 trackjet: 8 1.72971396 4.50454572 5.62473104 trackjet: 9 -4.99294984 4.14163614 5.38585499 trackjet: 10 5.51306057 4.15501859 4.99480027 trackjet: 11 -2.68788266 6.24667401 3.67023311 trackjet: 12 -4.64309085 6.23833640 3.63781736 trackjet: 13 2.00959490 1.18036865 3.10925372 trackjet: 14 0.26383816 3.57550281 2.88606979 trackjet: 15 4.56891678 0.38943757 2.84388228 trackjet: 16 6.98896054 3.06936200 2.34145818 trackjet: 17 -4.66878802 2.89003668 2.02724545 trackjet: 18 5.38347796 2.69344600 1.92822573 trackjet: 19 -7.89266690 2.15321370 1.87944378 trackjet: 20 8.25488925 4.53683733 1.72007632 trackjet: 21 -1.15186435 4.93814184 1.54141248 trackjet: 22 -3.47125885 4.95259288 1.35802239 trackjet: 23 1.77203623 6.18515320 1.28099646 trackjet: 24 -0.96700845 1.28051155 1.18779191 trackjet: 25 3.96053204 2.71796770 1.14161374 trackjet: 26 -3.54895354 0.85906591 1.01383187 trackjet: 27 -4.92269075 5.17509812 0.87901420 trackjet: 28 -2.79294563 2.92563478 0.80303365 trackjet: 29 -7.44363310 0.27800308 0.79627330 trackjet: 30 3.34783755 0.41231717 0.66041986 trackjet: 31 -5.88223660 2.57388271 0.59386707 trackjet: 32 3.13032483 3.92044665 0.45013701 trackjet: 33 7.06113342 5.07265319 0.43682403 trackjet: 34 0.37927637 4.81584020 0.36797773 trackjet: 35 -6.95444242 3.14121630 0.33669312 trackjet: 36 1.18447909 2.20641531 0.25491614 trackjet: 37 4.70894059 5.16548545 0.19745949 trackjet: 38 5.71167866 5.25799957 0.17289920 trackjet: 39 -6.33306528 4.52263944 0.15964363 trackjet: 40 -5.63600235 1.41106840 0.09383533 trackjet: 41 2.12965154 2.64980311 0.09356077 trackjet: 42 7.35011620 1.09616249 0.08330013 trackjet: 43 -5.86524701 1.15128325 0.06002593 trackjet: 44 -7.97463517 4.56435207 0.05045971 trackjet: 45 5.85112968 0.82301781 0.02209625 trackjet: 46 -9.48923228 4.87533276 0.01126329 atlascone:#-------------------------------------------------------------------------- atlascone:# FastJet release 2.4-devel atlascone:# Written by M. Cacciari, G.P. Salam and G. Soyez atlascone:# http://www.fastjet.fr atlascone:# atlascone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen atlascone:# clustering using fast geometric algorithms, with area measures and optional atlascone:# external jet-finder plugins. atlascone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. atlascone:# atlascone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM atlascone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code atlascone:# and CGAL: http://www.cgal.org/. atlascone:#------------------------------------------------------------------------- atlascone:iev 0: number of particles = 354 atlascone:strategy used = plugin strategy atlascone:Algorithm: ATLASCone plugin (FastJet version 2.4-devel) atlascone: 0 -0.86748501 2.90530809 981.15729251 atlascone: 1 0.22194635 6.03015358 894.86349408 atlascone: 2 -1.19073366 6.10283910 63.37420652 atlascone: 3 0.43582146 0.75473602 9.77983897 atlascone: 4 -1.11143718 0.49003133 4.71953385 atlascone: 5 -2.43442103 1.36980264 4.71348205 atlascone: 6 -1.64294249 4.13706421 4.50441446 atlascone:#-------------------------------------------------------------------------- atlascone:# FastJet release 2.4-devel atlascone:# Written by M. Cacciari, G.P. Salam and G. Soyez atlascone:# http://www.fastjet.fr atlascone:# atlascone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen atlascone:# clustering using fast geometric algorithms, with area measures and optional atlascone:# external jet-finder plugins. atlascone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. atlascone:# atlascone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM atlascone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code atlascone:# and CGAL: http://www.cgal.org/. atlascone:#------------------------------------------------------------------------- atlascone:iev 0: number of particles = 354 atlascone:strategy used = plugin strategy atlascone:Algorithm: ATLASCone plugin (FastJet version 2.4-devel) atlascone: 0 -0.86713954 2.90515650 983.27961921 atlascone: 1 0.22053090 6.03063634 900.68329985 atlascone: 2 -1.16361171 6.11306612 72.67956112 atlascone: 3 0.38333701 0.62578490 14.19007406 atlascone: 4 -2.49084195 1.18466588 8.15419593 atlascone: 5 -1.71938196 4.03506179 6.49839970 atlascone:#-------------------------------------------------------------------------- atlascone:# FastJet release 2.4-devel atlascone:# Written by M. Cacciari, G.P. Salam and G. Soyez atlascone:# http://www.fastjet.fr atlascone:# atlascone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen atlascone:# clustering using fast geometric algorithms, with area measures and optional atlascone:# external jet-finder plugins. atlascone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. atlascone:# atlascone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM atlascone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code atlascone:# and CGAL: http://www.cgal.org/. atlascone:#------------------------------------------------------------------------- atlascone:iev 0: number of particles = 354 atlascone:strategy used = plugin strategy atlascone:Algorithm: ATLASCone plugin (FastJet version 2.4-devel) atlascone: 0 -0.86713954 2.90515650 983.27961921 atlascone: 1 0.22137401 6.03515762 906.44139699 atlascone: 2 -1.16601802 6.10941975 74.17814632 atlascone: 3 -2.25797492 1.21679431 13.16911073 atlascone: 4 -1.72135558 3.91871676 8.64801111 cmsiterativecone:#-------------------------------------------------------------------------- cmsiterativecone:# FastJet release 2.4-devel cmsiterativecone:# Written by M. Cacciari, G.P. Salam and G. Soyez cmsiterativecone:# http://www.fastjet.fr cmsiterativecone:# cmsiterativecone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen cmsiterativecone:# clustering using fast geometric algorithms, with area measures and optional cmsiterativecone:# external jet-finder plugins. cmsiterativecone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. cmsiterativecone:# cmsiterativecone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM cmsiterativecone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code cmsiterativecone:# and CGAL: http://www.cgal.org/. cmsiterativecone:#------------------------------------------------------------------------- cmsiterativecone:iev 0: number of particles = 354 cmsiterativecone:strategy used = plugin strategy cmsiterativecone:Algorithm: CMSIterativeCone plugin (FastJet version 2.4-devel) cmsiterativecone: 0 -0.86748501 2.90530809 981.15729251 cmsiterativecone: 1 0.22194635 6.03015358 894.86349408 cmsiterativecone: 2 -1.19073366 6.10283910 63.37420652 cmsiterativecone: 3 0.45863413 0.74691237 9.22793916 cmsiterativecone: 4 -0.94343365 5.73794142 5.72893220 cmsiterativecone: 5 -1.11143718 0.49003133 4.71953385 cmsiterativecone: 6 -2.43442103 1.36980264 4.71348205 cmsiterativecone: 7 0.20545520 0.35698008 4.60875126 cmsiterativecone: 8 -1.64294249 4.13706421 4.50441446 cmsiterativecone: 9 -0.11630008 6.24162452 4.25433054 cmsiterativecone: 10 -2.56549692 0.84878570 2.95919083 cmsiterativecone: 11 -2.50805993 6.26480864 2.86899153 cmsiterativecone: 12 -1.55168716 1.18751879 2.56636065 cmsiterativecone: 13 -4.84794387 3.93481144 2.52366253 cmsiterativecone: 14 -4.72645349 1.71293309 2.33372450 cmsiterativecone: 15 -1.87655762 3.81150728 2.06888089 cmsiterativecone: 16 8.12777070 4.50033593 1.65339912 cmsiterativecone: 17 -2.03004782 0.68656051 1.64420492 cmsiterativecone: 18 -4.24567615 1.13070663 1.56772423 cmsiterativecone: 19 3.61834479 5.09397697 1.56474502 cmsiterativecone: 20 -4.65674844 6.23837318 1.48944272 cmsiterativecone: 21 -0.45119418 2.79496388 1.47236467 cmsiterativecone: 22 5.76250669 3.59085916 1.46715405 cmsiterativecone: 23 -4.47175148 4.54371501 1.41165455 cmsiterativecone: 24 0.40534042 3.69495045 1.26881151 cmsiterativecone: 25 4.94988636 4.36120223 1.26261444 cmsiterativecone: 26 -4.76086205 2.29603389 1.20420200 cmsiterativecone: 27 2.45321496 4.80987689 1.18477647 cmsiterativecone: 28 -4.29246512 0.36267683 1.16652244 cmsiterativecone: 29 5.83349277 4.31085344 1.15482500 cmsiterativecone: 30 -1.12427361 3.92422371 1.10764361 cmsiterativecone: 31 2.98963399 5.74122296 1.09461974 cmsiterativecone: 32 6.76652121 3.05170242 1.06182081 cmsiterativecone: 33 -0.13319344 3.64778702 1.05346959 cmsiterativecone:#-------------------------------------------------------------------------- cmsiterativecone:# FastJet release 2.4-devel cmsiterativecone:# Written by M. Cacciari, G.P. Salam and G. Soyez cmsiterativecone:# http://www.fastjet.fr cmsiterativecone:# cmsiterativecone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen cmsiterativecone:# clustering using fast geometric algorithms, with area measures and optional cmsiterativecone:# external jet-finder plugins. cmsiterativecone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. cmsiterativecone:# cmsiterativecone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM cmsiterativecone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code cmsiterativecone:# and CGAL: http://www.cgal.org/. cmsiterativecone:#------------------------------------------------------------------------- cmsiterativecone:iev 0: number of particles = 354 cmsiterativecone:strategy used = plugin strategy cmsiterativecone:Algorithm: CMSIterativeCone plugin (FastJet version 2.4-devel) cmsiterativecone: 0 -0.86713954 2.90515650 983.27961921 cmsiterativecone: 1 0.22089580 6.03313616 904.16761389 cmsiterativecone: 2 -1.16361171 6.11306612 72.67956112 cmsiterativecone: 3 0.41598393 0.74610714 10.30219107 cmsiterativecone: 4 -2.49084195 1.18466588 8.15419593 cmsiterativecone: 5 -1.63742088 4.01894081 7.60023410 cmsiterativecone: 6 -4.40495231 1.44878490 5.18723365 cmsiterativecone: 7 -1.70545433 0.95190347 4.50535069 cmsiterativecone: 8 -2.49858360 6.20468987 3.44557740 cmsiterativecone: 9 -4.88336595 4.08001538 3.31609472 cmsiterativecone: 10 2.63174529 5.81712762 3.17950978 cmsiterativecone: 11 2.11102490 4.81231342 2.72863245 cmsiterativecone: 12 -4.47515985 0.13381720 2.60184918 cmsiterativecone: 13 0.21090666 3.67744153 2.50086160 cmsiterativecone: 14 3.68806210 5.21991244 2.23461061 cmsiterativecone: 15 5.29002013 4.47179131 2.21966348 cmsiterativecone: 16 -4.77967341 2.46444895 2.20701636 cmsiterativecone: 17 -4.41798380 4.61221042 1.87675852 cmsiterativecone: 18 8.12777070 4.50033593 1.65339912 cmsiterativecone: 19 6.44846894 3.24197956 1.64643717 cmsiterativecone: 20 5.69498870 3.60247086 1.63515227 cmsiterativecone: 21 4.93668383 4.31841484 1.07670707 cmsiterativecone:#-------------------------------------------------------------------------- cmsiterativecone:# FastJet release 2.4-devel cmsiterativecone:# Written by M. Cacciari, G.P. Salam and G. Soyez cmsiterativecone:# http://www.fastjet.fr cmsiterativecone:# cmsiterativecone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen cmsiterativecone:# clustering using fast geometric algorithms, with area measures and optional cmsiterativecone:# external jet-finder plugins. cmsiterativecone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. cmsiterativecone:# cmsiterativecone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM cmsiterativecone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code cmsiterativecone:# and CGAL: http://www.cgal.org/. cmsiterativecone:#------------------------------------------------------------------------- cmsiterativecone:iev 0: number of particles = 354 cmsiterativecone:strategy used = plugin strategy cmsiterativecone:Algorithm: CMSIterativeCone plugin (FastJet version 2.4-devel) cmsiterativecone: 0 -0.86713954 2.90515650 983.27961921 cmsiterativecone: 1 0.21948180 6.03486732 908.09787495 cmsiterativecone: 2 -1.17794450 6.11473757 72.54685671 cmsiterativecone: 3 -2.21135433 1.23463827 13.56720356 cmsiterativecone: 4 -1.72135558 3.91871676 8.64801111 cmsiterativecone: 5 0.50917492 0.88055560 8.62446713 cmsiterativecone: 6 -4.26036406 1.20793335 7.04697159 cmsiterativecone: 7 -4.78070272 4.14633980 4.98690435 cmsiterativecone: 8 1.98981910 5.04336353 4.77888037 cmsiterativecone: 9 3.44188804 5.70976232 4.51491147 cmsiterativecone: 10 5.63730631 3.53258478 3.71346176 cmsiterativecone: 11 -2.61815422 6.24861263 3.57732875 cmsiterativecone: 12 0.36701702 3.70077886 3.16943147 cmsiterativecone: 13 -4.59681328 2.65910209 3.06566565 cmsiterativecone: 14 -4.61593182 5.75308586 2.80249629 cmsiterativecone: 15 6.59084777 3.06882696 2.19644051 cmsiterativecone: 16 4.89319381 4.56024731 2.08744965 cmsiterativecone: 17 8.12157221 4.53217471 1.69349505 eecambridge@single-ee-event.dat:#-------------------------------------------------------------------------- eecambridge@single-ee-event.dat:# FastJet release 2.4-devel eecambridge@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eecambridge@single-ee-event.dat:# http://www.fastjet.fr eecambridge@single-ee-event.dat:# eecambridge@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eecambridge@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eecambridge@single-ee-event.dat:# external jet-finder plugins. eecambridge@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eecambridge@single-ee-event.dat:# eecambridge@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eecambridge@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eecambridge@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eecambridge@single-ee-event.dat:#------------------------------------------------------------------------- eecambridge@single-ee-event.dat:iev 0: number of particles = 70 eecambridge@single-ee-event.dat:strategy used = plugin strategy eecambridge@single-ee-event.dat:Algorithm: EECambridge plugin with ycut = 0.08 (FastJet version 2.4-devel) eecambridge@single-ee-event.dat: 0 1.20533914 4.80278108 9.55011959 eecambridge@single-ee-event.dat: 1 -1.03078489 1.66118842 9.55011959 eecambridge@single-ee-event.dat:#-------------------------------------------------------------------------- eecambridge@single-ee-event.dat:# FastJet release 2.4-devel eecambridge@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eecambridge@single-ee-event.dat:# http://www.fastjet.fr eecambridge@single-ee-event.dat:# eecambridge@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eecambridge@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eecambridge@single-ee-event.dat:# external jet-finder plugins. eecambridge@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eecambridge@single-ee-event.dat:# eecambridge@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eecambridge@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eecambridge@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eecambridge@single-ee-event.dat:#------------------------------------------------------------------------- eecambridge@single-ee-event.dat:iev 0: number of particles = 70 eecambridge@single-ee-event.dat:strategy used = plugin strategy eecambridge@single-ee-event.dat:Algorithm: EECambridge plugin with ycut = 0.08 (FastJet version 2.4-devel) eecambridge@single-ee-event.dat: 0 1.20533914 4.80278108 9.55011959 eecambridge@single-ee-event.dat: 1 -1.03078489 1.66118842 9.55011959 eecambridge@single-ee-event.dat:#-------------------------------------------------------------------------- eecambridge@single-ee-event.dat:# FastJet release 2.4-devel eecambridge@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eecambridge@single-ee-event.dat:# http://www.fastjet.fr eecambridge@single-ee-event.dat:# eecambridge@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eecambridge@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eecambridge@single-ee-event.dat:# external jet-finder plugins. eecambridge@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eecambridge@single-ee-event.dat:# eecambridge@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eecambridge@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eecambridge@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eecambridge@single-ee-event.dat:#------------------------------------------------------------------------- eecambridge@single-ee-event.dat:iev 0: number of particles = 70 eecambridge@single-ee-event.dat:strategy used = plugin strategy eecambridge@single-ee-event.dat:Algorithm: EECambridge plugin with ycut = 0.08 (FastJet version 2.4-devel) eecambridge@single-ee-event.dat: 0 1.20533914 4.80278108 9.55011959 eecambridge@single-ee-event.dat: 1 -1.03078489 1.66118842 9.55011959 eecambridge,-ycut,0.01@single-ee-event.dat:#-------------------------------------------------------------------------- eecambridge,-ycut,0.01@single-ee-event.dat:# FastJet release 2.4-devel eecambridge,-ycut,0.01@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eecambridge,-ycut,0.01@single-ee-event.dat:# http://www.fastjet.fr eecambridge,-ycut,0.01@single-ee-event.dat:# eecambridge,-ycut,0.01@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eecambridge,-ycut,0.01@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eecambridge,-ycut,0.01@single-ee-event.dat:# external jet-finder plugins. eecambridge,-ycut,0.01@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eecambridge,-ycut,0.01@single-ee-event.dat:# eecambridge,-ycut,0.01@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eecambridge,-ycut,0.01@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eecambridge,-ycut,0.01@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eecambridge,-ycut,0.01@single-ee-event.dat:#------------------------------------------------------------------------- eecambridge,-ycut,0.01@single-ee-event.dat:iev 0: number of particles = 70 eecambridge,-ycut,0.01@single-ee-event.dat:strategy used = plugin strategy eecambridge,-ycut,0.01@single-ee-event.dat:Algorithm: EECambridge plugin with ycut = 0.01 (FastJet version 2.4-devel) eecambridge,-ycut,0.01@single-ee-event.dat: 0 -1.15170682 2.32911879 15.97361000 eecambridge,-ycut,0.01@single-ee-event.dat: 1 -0.87226190 6.08000690 10.33564630 eecambridge,-ycut,0.01@single-ee-event.dat: 2 1.20533914 4.80278108 9.55011959 eecambridge,-ycut,0.01@single-ee-event.dat:#-------------------------------------------------------------------------- eecambridge,-ycut,0.01@single-ee-event.dat:# FastJet release 2.4-devel eecambridge,-ycut,0.01@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eecambridge,-ycut,0.01@single-ee-event.dat:# http://www.fastjet.fr eecambridge,-ycut,0.01@single-ee-event.dat:# eecambridge,-ycut,0.01@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eecambridge,-ycut,0.01@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eecambridge,-ycut,0.01@single-ee-event.dat:# external jet-finder plugins. eecambridge,-ycut,0.01@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eecambridge,-ycut,0.01@single-ee-event.dat:# eecambridge,-ycut,0.01@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eecambridge,-ycut,0.01@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eecambridge,-ycut,0.01@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eecambridge,-ycut,0.01@single-ee-event.dat:#------------------------------------------------------------------------- eecambridge,-ycut,0.01@single-ee-event.dat:iev 0: number of particles = 70 eecambridge,-ycut,0.01@single-ee-event.dat:strategy used = plugin strategy eecambridge,-ycut,0.01@single-ee-event.dat:Algorithm: EECambridge plugin with ycut = 0.01 (FastJet version 2.4-devel) eecambridge,-ycut,0.01@single-ee-event.dat: 0 -1.15170682 2.32911879 15.97361000 eecambridge,-ycut,0.01@single-ee-event.dat: 1 -0.87226190 6.08000690 10.33564630 eecambridge,-ycut,0.01@single-ee-event.dat: 2 1.20533914 4.80278108 9.55011959 eecambridge,-ycut,0.01@single-ee-event.dat:#-------------------------------------------------------------------------- eecambridge,-ycut,0.01@single-ee-event.dat:# FastJet release 2.4-devel eecambridge,-ycut,0.01@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez eecambridge,-ycut,0.01@single-ee-event.dat:# http://www.fastjet.fr eecambridge,-ycut,0.01@single-ee-event.dat:# eecambridge,-ycut,0.01@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen eecambridge,-ycut,0.01@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional eecambridge,-ycut,0.01@single-ee-event.dat:# external jet-finder plugins. eecambridge,-ycut,0.01@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. eecambridge,-ycut,0.01@single-ee-event.dat:# eecambridge,-ycut,0.01@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM eecambridge,-ycut,0.01@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code eecambridge,-ycut,0.01@single-ee-event.dat:# and CGAL: http://www.cgal.org/. eecambridge,-ycut,0.01@single-ee-event.dat:#------------------------------------------------------------------------- eecambridge,-ycut,0.01@single-ee-event.dat:iev 0: number of particles = 70 eecambridge,-ycut,0.01@single-ee-event.dat:strategy used = plugin strategy eecambridge,-ycut,0.01@single-ee-event.dat:Algorithm: EECambridge plugin with ycut = 0.01 (FastJet version 2.4-devel) eecambridge,-ycut,0.01@single-ee-event.dat: 0 -1.15170682 2.32911879 15.97361000 eecambridge,-ycut,0.01@single-ee-event.dat: 1 -0.87226190 6.08000690 10.33564630 eecambridge,-ycut,0.01@single-ee-event.dat: 2 1.20533914 4.80278108 9.55011959 jade,-excly,0.01@single-ee-event.dat:#-------------------------------------------------------------------------- jade,-excly,0.01@single-ee-event.dat:# FastJet release 2.4-devel jade,-excly,0.01@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez jade,-excly,0.01@single-ee-event.dat:# http://www.fastjet.fr jade,-excly,0.01@single-ee-event.dat:# jade,-excly,0.01@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen jade,-excly,0.01@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional jade,-excly,0.01@single-ee-event.dat:# external jet-finder plugins. jade,-excly,0.01@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. jade,-excly,0.01@single-ee-event.dat:# jade,-excly,0.01@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM jade,-excly,0.01@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code jade,-excly,0.01@single-ee-event.dat:# and CGAL: http://www.cgal.org/. jade,-excly,0.01@single-ee-event.dat:#------------------------------------------------------------------------- jade,-excly,0.01@single-ee-event.dat:iev 0: number of particles = 70 jade,-excly,0.01@single-ee-event.dat:strategy used = plugin strategy jade,-excly,0.01@single-ee-event.dat:Algorithm: e+e- JADE algorithm plugin (FastJet version 2.4-devel) jade,-excly,0.01@single-ee-event.dat: 0 0.00000000 4.71238926 0.00000000 jade,-excly,0.01@single-ee-event.dat:Printing exclusive jets for ycut = 0.01 jade,-excly,0.01@single-ee-event.dat:FastJet WARNING: dcut and exclusive jets for jet-finders other than kt should be interpreted with care. jade,-excly,0.01@single-ee-event.dat: 0 -1.17795492 2.29605689 15.99176640 jade,-excly,0.01@single-ee-event.dat: 1 1.01976731 4.78234332 11.40383611 jade,-excly,0.01@single-ee-event.dat: 2 -0.79247455 6.08579095 10.38698316 jade,-excly,0.01@single-ee-event.dat: 3 1.64554902 1.82426319 1.49364667 jade,-excly,0.01@single-ee-event.dat:#-------------------------------------------------------------------------- jade,-excly,0.01@single-ee-event.dat:# FastJet release 2.4-devel jade,-excly,0.01@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez jade,-excly,0.01@single-ee-event.dat:# http://www.fastjet.fr jade,-excly,0.01@single-ee-event.dat:# jade,-excly,0.01@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen jade,-excly,0.01@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional jade,-excly,0.01@single-ee-event.dat:# external jet-finder plugins. jade,-excly,0.01@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. jade,-excly,0.01@single-ee-event.dat:# jade,-excly,0.01@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM jade,-excly,0.01@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code jade,-excly,0.01@single-ee-event.dat:# and CGAL: http://www.cgal.org/. jade,-excly,0.01@single-ee-event.dat:#------------------------------------------------------------------------- jade,-excly,0.01@single-ee-event.dat:iev 0: number of particles = 70 jade,-excly,0.01@single-ee-event.dat:strategy used = plugin strategy jade,-excly,0.01@single-ee-event.dat:Algorithm: e+e- JADE algorithm plugin (FastJet version 2.4-devel) jade,-excly,0.01@single-ee-event.dat: 0 0.00000000 4.71238926 0.00000000 jade,-excly,0.01@single-ee-event.dat:Printing exclusive jets for ycut = 0.01 jade,-excly,0.01@single-ee-event.dat:FastJet WARNING: dcut and exclusive jets for jet-finders other than kt should be interpreted with care. jade,-excly,0.01@single-ee-event.dat: 0 -1.17795492 2.29605689 15.99176640 jade,-excly,0.01@single-ee-event.dat: 1 1.01976731 4.78234332 11.40383611 jade,-excly,0.01@single-ee-event.dat: 2 -0.79247455 6.08579095 10.38698316 jade,-excly,0.01@single-ee-event.dat: 3 1.64554902 1.82426319 1.49364667 jade,-excly,0.01@single-ee-event.dat:#-------------------------------------------------------------------------- jade,-excly,0.01@single-ee-event.dat:# FastJet release 2.4-devel jade,-excly,0.01@single-ee-event.dat:# Written by M. Cacciari, G.P. Salam and G. Soyez jade,-excly,0.01@single-ee-event.dat:# http://www.fastjet.fr jade,-excly,0.01@single-ee-event.dat:# jade,-excly,0.01@single-ee-event.dat:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen jade,-excly,0.01@single-ee-event.dat:# clustering using fast geometric algorithms, with area measures and optional jade,-excly,0.01@single-ee-event.dat:# external jet-finder plugins. jade,-excly,0.01@single-ee-event.dat:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. jade,-excly,0.01@single-ee-event.dat:# jade,-excly,0.01@single-ee-event.dat:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM jade,-excly,0.01@single-ee-event.dat:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code jade,-excly,0.01@single-ee-event.dat:# and CGAL: http://www.cgal.org/. jade,-excly,0.01@single-ee-event.dat:#------------------------------------------------------------------------- jade,-excly,0.01@single-ee-event.dat:iev 0: number of particles = 70 jade,-excly,0.01@single-ee-event.dat:strategy used = plugin strategy jade,-excly,0.01@single-ee-event.dat:Algorithm: e+e- JADE algorithm plugin (FastJet version 2.4-devel) jade,-excly,0.01@single-ee-event.dat: 0 0.00000000 4.71238926 0.00000000 jade,-excly,0.01@single-ee-event.dat:Printing exclusive jets for ycut = 0.01 jade,-excly,0.01@single-ee-event.dat:FastJet WARNING: dcut and exclusive jets for jet-finders other than kt should be interpreted with care. jade,-excly,0.01@single-ee-event.dat: 0 -1.17795492 2.29605689 15.99176640 jade,-excly,0.01@single-ee-event.dat: 1 1.01976731 4.78234332 11.40383611 jade,-excly,0.01@single-ee-event.dat: 2 -0.79247455 6.08579095 10.38698316 jade,-excly,0.01@single-ee-event.dat: 3 1.64554902 1.82426319 1.49364667 d0runipre96cone:#-------------------------------------------------------------------------- d0runipre96cone:# FastJet release 2.5-devel d0runipre96cone:# Written by M. Cacciari, G.P. Salam and G. Soyez d0runipre96cone:# http://www.fastjet.fr d0runipre96cone:# d0runipre96cone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen d0runipre96cone:# clustering using fast geometric algorithms, with area measures and optional d0runipre96cone:# external jet-finder plugins. d0runipre96cone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. d0runipre96cone:# d0runipre96cone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM d0runipre96cone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code d0runipre96cone:# and CGAL: http://www.cgal.org/. d0runipre96cone:#------------------------------------------------------------------------- d0runipre96cone:iev 0: number of particles = 354 d0runipre96cone:strategy used = plugin strategy d0runipre96cone:Algorithm: D0 Run I (pre 96) cone jet algorithm, with cone_radius = 0.4, min_jet_Et = 1, split_fraction = 0.5 (FastJet version 2.5-devel) d0runipre96cone: 0 0.86775190 2.90531721 980.62725819 d0runipre96cone: 1 0.22227799 6.03060659 896.84256230 d0runipre96cone: 2 1.19649517 6.09724046 63.61453985 d0runipre96cone: 3 0.48660377 0.76063258 9.29901100 d0runipre96cone: 4 1.81256084 3.89453920 5.10277555 d0runipre96cone: 5 2.54401792 1.38016592 4.52139942 d0runipre96cone: 6 1.17680363 0.48816263 3.85122861 d0runipre96cone: 7 1.67503267 1.19839148 3.01986542 d0runipre96cone: 8 1.79286017 4.36609748 3.00373614 d0runipre96cone: 9 0.28600377 3.67351577 2.33783599 d0runipre96cone: 10 2.87923426 6.01686415 2.17537443 d0runipre96cone: 11 -2.03004782 0.68656051 1.64420492 d0runipre96cone: 12 1.01023459 1.25968547 1.61588684 d0runipre96cone: 13 3.63719088 5.09398070 1.56804556 d0runipre96cone: 14 -4.24143712 1.13471278 1.54134496 d0runipre96cone: 15 -4.46556894 4.54188803 1.24447610 d0runipre96cone: 16 -1.12427361 3.92422371 1.10764361 d0runipre96cone: 17 2.43961426 4.78953726 1.06223987 d0runipre96cone:#-------------------------------------------------------------------------- d0runipre96cone:# FastJet release 2.5-devel d0runipre96cone:# Written by M. Cacciari, G.P. Salam and G. Soyez d0runipre96cone:# http://www.fastjet.fr d0runipre96cone:# d0runipre96cone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen d0runipre96cone:# clustering using fast geometric algorithms, with area measures and optional d0runipre96cone:# external jet-finder plugins. d0runipre96cone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. d0runipre96cone:# d0runipre96cone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM d0runipre96cone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code d0runipre96cone:# and CGAL: http://www.cgal.org/. d0runipre96cone:#------------------------------------------------------------------------- d0runipre96cone:iev 0: number of particles = 354 d0runipre96cone:strategy used = plugin strategy d0runipre96cone:Algorithm: D0 Run I (pre 96) cone jet algorithm, with cone_radius = 0.7, min_jet_Et = 1, split_fraction = 0.5 (FastJet version 2.5-devel) d0runipre96cone: 0 0.31442656 6.04700455 982.21475611 d0runipre96cone: 1 0.86735186 2.90521916 981.67998513 d0runipre96cone: 2 2.25637160 1.14034559 13.15697202 d0runipre96cone: 3 1.76531937 4.05035265 9.21715754 d0runipre96cone: 4 3.05177013 6.00189832 6.60083962 d0runipre96cone: 5 0.28600377 3.67351577 2.33783599 d0runipre96cone: 6 2.36737371 2.49361640 2.29692823 d0runipre96cone: 7 3.73003820 5.21991439 2.27807113 d0runipre96cone: 8 4.29431170 1.12938112 2.11058387 d0runipre96cone: 9 -4.46556894 4.54188803 1.24447610 d0runipre96cone:#-------------------------------------------------------------------------- d0runipre96cone:# FastJet release 2.5-devel d0runipre96cone:# Written by M. Cacciari, G.P. Salam and G. Soyez d0runipre96cone:# http://www.fastjet.fr d0runipre96cone:# d0runipre96cone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen d0runipre96cone:# clustering using fast geometric algorithms, with area measures and optional d0runipre96cone:# external jet-finder plugins. d0runipre96cone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. d0runipre96cone:# d0runipre96cone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM d0runipre96cone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code d0runipre96cone:# and CGAL: http://www.cgal.org/. d0runipre96cone:#------------------------------------------------------------------------- d0runipre96cone:iev 0: number of particles = 354 d0runipre96cone:strategy used = plugin strategy d0runipre96cone:Algorithm: D0 Run I (pre 96) cone jet algorithm, with cone_radius = 1, min_jet_Et = 1, split_fraction = 0.5 (FastJet version 2.5-devel) d0runipre96cone: 0 0.86710022 2.90614106 982.95530970 d0runipre96cone: 1 0.30650371 6.03990470 971.97242657 d0runipre96cone: 2 2.60136762 0.65399772 21.31670706 d0runipre96cone: 3 2.07001326 3.88744463 12.15997920 d0runipre96cone: 4 4.11526498 4.98092842 3.52255132 d0runipre96cone: 5 4.16898340 1.03946344 2.78703023 d0runicone:#-------------------------------------------------------------------------- d0runicone:# FastJet release 2.5-devel d0runicone:# Written by M. Cacciari, G.P. Salam and G. Soyez d0runicone:# http://www.fastjet.fr d0runicone:# d0runicone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen d0runicone:# clustering using fast geometric algorithms, with area measures and optional d0runicone:# external jet-finder plugins. d0runicone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. d0runicone:# d0runicone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM d0runicone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code d0runicone:# and CGAL: http://www.cgal.org/. d0runicone:#------------------------------------------------------------------------- d0runicone:iev 0: number of particles = 354 d0runicone:strategy used = plugin strategy d0runicone:Algorithm: D0 Run I cone jet algorithm, with cone_radius = 0.4, min_jet_Et = 1, split_fraction = 0.5 (FastJet version 2.5-devel) d0runicone: 0 0.86752650 2.90531517 980.62725819 d0runicone: 1 0.22221129 6.03061403 896.84256230 d0runicone: 2 1.19016372 6.09699619 63.61453985 d0runicone: 3 0.47620667 0.76041856 9.29901100 d0runicone: 4 1.79234136 3.89458756 5.10277555 d0runicone: 5 2.53184221 1.38005042 4.52139942 d0runicone: 6 1.17610404 0.48815982 3.85122861 d0runicone: 7 1.67246740 1.19837950 3.01986542 d0runicone: 8 1.78683157 4.36622865 3.00373614 d0runicone: 9 0.28344416 3.67351538 2.33783599 d0runicone: 10 2.83343649 6.01671281 2.17537443 d0runicone: 11 -2.03004782 0.68656051 1.64420492 d0runicone: 12 1.00954829 1.25968258 1.61588684 d0runicone: 13 3.63134370 5.09401061 1.56804556 d0runicone: 14 -4.24143712 1.13471278 1.54134496 d0runicone: 15 -4.46556894 4.54188803 1.24447610 d0runicone: 16 -1.12427361 3.92422371 1.10764361 d0runicone: 17 2.43961426 4.78953726 1.06223987 d0runicone:#-------------------------------------------------------------------------- d0runicone:# FastJet release 2.5-devel d0runicone:# Written by M. Cacciari, G.P. Salam and G. Soyez d0runicone:# http://www.fastjet.fr d0runicone:# d0runicone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen d0runicone:# clustering using fast geometric algorithms, with area measures and optional d0runicone:# external jet-finder plugins. d0runicone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. d0runicone:# d0runicone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM d0runicone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code d0runicone:# and CGAL: http://www.cgal.org/. d0runicone:#------------------------------------------------------------------------- d0runicone:iev 0: number of particles = 354 d0runicone:strategy used = plugin strategy d0runicone:Algorithm: D0 Run I cone jet algorithm, with cone_radius = 0.7, min_jet_Et = 1, split_fraction = 0.5 (FastJet version 2.5-devel) d0runicone: 0 0.29379233 6.04895190 982.21475611 d0runicone: 1 0.86706806 2.90521700 981.67998513 d0runicone: 2 2.09602460 1.13857141 13.15697202 d0runicone: 3 1.71081411 4.05185955 9.21715754 d0runicone: 4 2.77181643 5.97614138 6.60083962 d0runicone: 5 0.28344416 3.67351538 2.33783599 d0runicone: 6 2.20859764 2.50205808 2.29692823 d0runicone: 7 3.70266153 5.22066925 2.27807113 d0runicone: 8 4.27480518 1.12938101 2.11058387 d0runicone: 9 -4.46556894 4.54188803 1.24447610 d0runicone:#-------------------------------------------------------------------------- d0runicone:# FastJet release 2.5-devel d0runicone:# Written by M. Cacciari, G.P. Salam and G. Soyez d0runicone:# http://www.fastjet.fr d0runicone:# d0runicone:# Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen d0runicone:# clustering using fast geometric algorithms, with area measures and optional d0runicone:# external jet-finder plugins. d0runicone:# Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. d0runicone:# d0runicone:# This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM d0runicone:# Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code d0runicone:# and CGAL: http://www.cgal.org/. d0runicone:#------------------------------------------------------------------------- d0runicone:iev 0: number of particles = 354 d0runicone:strategy used = plugin strategy d0runicone:Algorithm: D0 Run I cone jet algorithm, with cone_radius = 1, min_jet_Et = 1, split_fraction = 0.5 (FastJet version 2.5-devel) d0runicone: 0 0.86647200 2.90415707 982.95530970 d0runicone: 1 0.28839578 6.04046450 971.97242657 d0runicone: 2 2.17575819 0.57639582 21.31670706 d0runicone: 3 1.79211111 4.43304925 12.15997920 d0runicone: 4 3.97439606 4.98086301 3.52255132 d0runicone: 5 4.09544084 1.03863515 2.78703023 gridjet:iev 0: number of particles = 354 gridjet: 0 -0.86983441 2.90631095 952.71279659 gridjet: 1 0.22341616 6.02979625 889.74290765 gridjet: 2 -1.18241419 6.08047114 67.15794909 gridjet: 3 -0.77479787 2.86338448 30.03472069 gridjet: 4 0.36359446 0.38024499 10.76729676 gridjet: 5 -0.19969645 5.96917237 9.74304373 gridjet: 6 -2.61638493 1.15550023 6.03365339 gridjet: 7 0.34826413 0.90550241 5.22951332 gridjet: 8 -1.14110999 0.46774013 5.04115159 gridjet: 9 -4.70232060 1.89166613 3.66618490 gridjet: 10 -1.32189466 1.23772415 2.78156308 gridjet: 11 -1.98930962 1.31833021 2.39970170 gridjet: 12 -1.55836096 3.97529425 2.36893011 gridjet: 13 -1.76276818 4.29910617 2.29119634 gridjet: 14 -2.05885231 0.51692243 2.15671383 gridjet: 15 -4.60598848 4.51077134 2.12286384 gridjet: 16 -4.24732385 1.21304466 1.94290766 gridjet: 17 -1.22501586 3.67861012 1.84535476 gridjet: 18 1.34715738 1.19289904 1.84372815 gridjet: 19 4.64091383 0.51384054 1.82162690 gridjet: 20 -4.45179686 3.57321369 1.80093202 gridjet: 21 -2.67951399 6.11327498 1.79641934 gridjet: 22 3.05916579 5.94433507 1.76801004 gridjet: 23 -1.91005897 3.81457007 1.71301882 gridjet: 24 -4.58775475 5.31548681 1.63951155 gridjet: 25 3.61834479 5.09397697 1.56474502 gridjet: 26 -4.65674844 6.23837318 1.48944272 gridjet: 27 -1.16174191 5.10189648 1.48712296 gridjet: 28 4.77330450 4.39617454 1.48494330 gridjet: 29 -3.57159481 0.62187001 1.40936827 gridjet: 30 1.42803445 4.90129618 1.31406589 gridjet: 31 2.34037595 4.90463006 1.30069916 gridjet: 32 -2.59307310 0.31274395 1.28277924 gridjet: 33 -2.05107738 3.04439562 1.27658215 gridjet: 34 0.40534042 3.69495045 1.26881151 gridjet: 35 1.21699719 4.23898960 1.26553494 gridjet: 36 -0.34425960 0.38780013 1.19672477 gridjet: 37 -4.29246512 0.36267683 1.16652244 gridjet: 38 1.15097680 5.96326007 1.07801942 gridjet: 39 -0.13319344 3.64778702 1.05346959 gridjet: 40 3.65987024 0.23489151 1.01711670 gridjet: 41 1.67615094 3.83780926 0.96397635 gridjet: 42 -3.89518544 1.20050039 0.94577541 gridjet: 43 1.94766312 5.71345514 0.94160586 gridjet: 44 -2.04733629 2.01916508 0.92066902 gridjet: 45 1.22458040 0.40444422 0.91317883 gridjet: 46 3.73680868 5.59925812 0.90017545 gridjet: 47 -2.67920490 1.96552814 0.86039647 gridjet: 48 1.74045467 4.51637923 0.79030100 gridjet: 49 1.85091108 1.73264160 0.75882450 gridjet: 50 -3.46489188 5.22491128 0.75736110 gridjet: 51 3.88630219 3.11476801 0.69171913 gridjet: 52 2.79739109 5.17159005 0.67407649 gridjet: 53 -2.70205269 3.66441131 0.58891106 gridjet: 54 1.93372559 0.91305734 0.57400094 gridjet: 55 -0.75055262 5.18218587 0.55839721 gridjet: 56 -4.42602218 2.76437707 0.55763580 gridjet: 57 -1.64364428 1.85783557 0.47357279 gridjet: 58 2.34896653 0.47947616 0.46165309 gridjet: 59 3.90979632 2.10798550 0.44848386 gridjet: 60 3.00384031 3.91945598 0.37901836 gridjet: 61 0.37927637 4.81584020 0.36797773 gridjet: 62 -4.05363896 2.85373835 0.35006636 gridjet: 63 1.20715892 2.09122256 0.34020769 gridjet: 64 -3.04151922 2.74757234 0.30511558 gridjet: 65 -2.05074930 6.07797077 0.29868141 gridjet: 66 -1.79639506 5.20850882 0.27500862 gridjet: 67 -0.34736825 1.23735075 0.27027371 gridjet: 68 0.51902625 1.69995477 0.25151834 gridjet: 69 4.21161543 6.18038703 0.24753689 gridjet: 70 0.40561542 2.87893847 0.24382892 gridjet: 71 -2.61605381 4.99574690 0.23782260 gridjet: 72 4.70142751 2.77490986 0.23233342 gridjet: 73 -0.53099361 4.65418807 0.23176470 gridjet: 74 -3.66832742 1.89617405 0.23107924 gridjet: 75 3.24949695 0.36936894 0.22844266 gridjet: 76 -3.06249590 4.24385166 0.20128613 gridjet: 77 4.70894059 5.16548545 0.19745949 gridjet: 78 0.85233232 3.72772968 0.17946503 gridjet: 79 2.85806011 0.82211592 0.14988091 gridjet: 80 -4.03041013 4.43254080 0.14911557 gridjet: 81 0.84904458 2.96987730 0.13993828 gridjet: 82 2.12965154 2.64980311 0.09356077 gridjet: 83 3.80440897 3.92572632 0.07111865 gridjet: 84 4.70068958 0.98672496 0.01403051 gridjet:iev 0: number of particles = 354 gridjet: 0 -0.87198504 2.90446930 978.29689532 gridjet: 1 0.21889859 6.02876763 899.28950515 gridjet: 2 -1.18218021 6.05287870 69.07963309 gridjet: 3 0.29491800 0.54878042 16.90498277 gridjet: 4 -1.49755528 0.80653226 11.18611908 gridjet: 5 -2.71784816 0.96608352 8.15742868 gridjet: 6 -1.58172700 3.97864813 8.03624347 gridjet: 7 -0.51708267 2.80020440 6.65480200 gridjet: 8 -4.56554900 2.05086436 4.51292606 gridjet: 9 -4.15294221 0.94647389 4.13749787 gridjet: 10 2.88224283 5.48036144 4.07491899 gridjet: 11 -4.50258470 4.09751374 3.64400173 gridjet: 12 1.46527876 4.15842850 3.07956739 gridjet: 13 1.34947274 0.93746824 2.91839735 gridjet: 14 1.50236650 5.41631587 2.90990111 gridjet: 15 -4.61593182 5.75308586 2.80249629 gridjet: 16 -2.91461652 5.79479809 2.57232401 gridjet: 17 0.13540594 3.69162974 2.35637642 gridjet: 18 4.48371510 0.44418623 2.32013851 gridjet: 19 3.90469617 5.32317881 2.05176933 gridjet: 20 4.73750451 4.37535708 1.54867155 gridjet: 21 2.94801971 0.49191111 1.53892077 gridjet: 22 -2.70404056 2.29930845 1.25526075 gridjet: 23 4.04911595 2.73706410 1.23776016 gridjet: 24 1.58022620 2.00208471 1.22427546 gridjet: 25 -2.72347294 3.83136116 0.85908318 gridjet: 26 3.00384031 3.91945598 0.37901836 gridjet:iev 0: number of particles = 354 gridjet: 0 -0.86250882 2.90691779 984.79704629 gridjet: 1 0.21164052 6.02702898 904.42668102 gridjet: 2 -1.28197173 6.03134775 66.22474129 gridjet: 3 0.17969883 0.57513221 19.42807741 gridjet: 4 -1.98139750 1.03872767 17.50596325 gridjet: 5 -4.17212063 1.16050638 7.72890640 gridjet: 6 -1.72889458 3.67898353 7.48946722 gridjet: 7 2.07198297 5.14648265 6.07904206 gridjet: 8 -4.37809779 5.17898848 4.99671993 gridjet: 9 4.06059477 5.19058192 4.14368549 gridjet: 10 -4.38797193 2.98165516 3.65447485 gridjet: 11 1.68818350 1.00484277 3.54200662 gridjet: 12 4.05180108 0.43032708 3.05865370 gridjet: 13 3.83426266 3.05767766 1.44676719 gridjet: 14 1.58655999 3.59938664 1.29923714 fastjet-3.0.6+dfsg.orig/include/0000755000175000017500000000000012233507301014651 5ustar sunsunfastjet-3.0.6+dfsg.orig/include/Makefile.in0000644000175000017500000004234412233506213016726 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = . fastjet all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/include/fastjet/0000755000175000017500000000000012233507301016311 5ustar sunsunfastjet-3.0.6+dfsg.orig/include/fastjet/ClusterSequence1GhostPassiveArea.hh0000644000175000017500000000721511766120135025171 0ustar sunsun//STARTHEADER // $Id: ClusterSequence1GhostPassiveArea.hh 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CLUSTERSEQUENCE1GHOSTPASSIVEAREA_HH__ #define __FASTJET_CLUSTERSEQUENCE1GHOSTPASSIVEAREA_HH__ #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequenceAreaBase.hh" #include "fastjet/ClusterSequenceActiveArea.hh" #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //using namespace std; /// @ingroup sec_area_classes /// \class ClusterSequence1GhostPassiveArea /// Like ClusterSequence with computation of the passive jet area by /// adding a single ghost /// /// Class that behaves essentially like ClusterSequence except /// that it also provides access to the area of a jet (which /// will be a random quantity... Figure out what to do about seeds /// later...) /// /// This class should not be used directly. Rather use /// ClusterSequenceArea class ClusterSequence1GhostPassiveArea : public ClusterSequenceActiveArea { public: ClusterSequence1GhostPassiveArea() {} /// constructor based on JetDefinition and 1GhostPassiveAreaSpec template ClusterSequence1GhostPassiveArea (const std::vector & pseudojets, const JetDefinition & jet_def_in, const GhostedAreaSpec & area_spec, const bool & writeout_combinations = false) ; /// return an estimate for the number of empty jets -- one uses the /// AreaBase one rather than the ActiveArea one (which for which we /// do not have the information). virtual double n_empty_jets(const Selector & selector) const { return ClusterSequenceAreaBase::n_empty_jets(selector); } protected: /// does the initialisation and running specific to the passive /// areas class void _initialise_and_run_1GPA (const JetDefinition & jet_def_in, const GhostedAreaSpec & area_spec, const bool & writeout_combinations = false); private: void _run_1GPA(const GhostedAreaSpec & area_spec); }; template ClusterSequence1GhostPassiveArea::ClusterSequence1GhostPassiveArea (const std::vector & pseudojets, const JetDefinition & jet_def_in, const GhostedAreaSpec & area_spec, const bool & writeout_combinations) { // transfer the initial jets (type L) into our own array _transfer_input_jets(pseudojets); // run the clustering for passive areas _initialise_and_run_1GPA(jet_def_in, area_spec, writeout_combinations); } FASTJET_END_NAMESPACE #endif // __FASTJET_CLUSTERSEQUENCE1GHOSTPASSIVEAREA_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/ClusterSequenceAreaBase.hh0000644000175000017500000003225011766120136023341 0ustar sunsun//STARTHEADER // $Id: ClusterSequenceAreaBase.hh 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CLUSTERSEQUENCEAREABASE_HH__ #define __FASTJET_CLUSTERSEQUENCEAREABASE_HH__ #include "fastjet/ClusterSequence.hh" #include "fastjet/LimitedWarning.hh" #include "fastjet/Selector.hh" FASTJET_BEGIN_NAMESPACE /// @ingroup area_classes /// \class ClusterSequenceAreaBase /// base class that sets interface for extensions of ClusterSequence /// that provide information about the area of each jet /// /// the virtual functions here all return 0, since no area determination /// is implemented. class ClusterSequenceAreaBase : public ClusterSequence { public: /// a constructor which just carries out the construction of the /// parent class template ClusterSequenceAreaBase (const std::vector & pseudojets, const JetDefinition & jet_def_in, const bool & writeout_combinations = false) : ClusterSequence(pseudojets, jet_def_in, writeout_combinations) {} /// default constructor ClusterSequenceAreaBase() {} /// destructor virtual ~ClusterSequenceAreaBase() {} /// return the area associated with the given jet; this base class /// returns 0. virtual double area (const PseudoJet & ) const {return 0.0;} /// return the error (uncertainty) associated with the determination /// of the area of this jet; this base class returns 0. virtual double area_error (const PseudoJet & ) const {return 0.0;} /// return a PseudoJet whose 4-vector is defined by the following integral /// /// \int drap d\phi PseudoJet("rap,phi,pt=one") * /// * Theta("rap,phi inside jet boundary") /// /// where PseudoJet("rap,phi,pt=one") is a 4-vector with the given /// rapidity (rap), azimuth (phi) and pt=1, while Theta("rap,phi /// inside jet boundary") is a function that is 1 when rap,phi /// define a direction inside the jet boundary and 0 otherwise. /// /// This base class returns a null 4-vector. virtual PseudoJet area_4vector(const PseudoJet & ) const { return PseudoJet(0.0,0.0,0.0,0.0);} /// true if a jet is made exclusively of ghosts /// /// NB: most area classes do not give any explicit ghost jets, but /// some do, and they should replace this function with their own /// version. virtual bool is_pure_ghost(const PseudoJet & ) const { return false; } /// returns true if ghosts are explicitly included within /// jets for this ClusterSequence; /// /// Derived classes that do include explicit ghosts should provide /// an alternative version of this routine and set it properly. virtual bool has_explicit_ghosts() const { return false; } /// return the total area, corresponding to the given Selector, that /// is free of jets, in general based on the inclusive jets. /// /// The selector passed as an argument has to have a finite area and /// apply jet-by-jet (see the BackgroundEstimator and Subtractor /// tools for more generic usages) virtual double empty_area(const Selector & selector) const; /// return the total area, corresponding to the given Selector, that /// is free of jets, based on the supplied all_jets /// /// The selector passed as an argument has to have a finite area and /// apply jet-by-jet (see the BackgroundEstimator and Subtractor /// tools for more generic usages) double empty_area_from_jets(const std::vector & all_jets, const Selector & selector) const; /// return something similar to the number of pure ghost jets /// in the given selector's range in an active area case. /// For the local implementation we return empty_area/(0.55 pi R^2), /// based on measured properties of ghost jets with kt and cam /// (cf arXiv:0802.1188). /// /// Note that the number returned is a double. /// /// The selector passed as an argument has to have a finite area and /// apply jet-by-jet (see the BackgroundEstimator and Subtractor /// tools for more generic usages) virtual double n_empty_jets(const Selector & selector) const { double R = jet_def().R(); return empty_area(selector)/(0.55*pi*R*R); } /// the median of (pt/area) for jets contained within the selector /// range, making use also of the info on n_empty_jets /// /// The selector passed as an argument has to have a finite area and /// apply jet-by-jet (see the BackgroundEstimator and Subtractor /// tools for more generic usages) double median_pt_per_unit_area(const Selector & selector) const; /// the median of (pt/area_4vector) for jets contained within the /// selector range, making use also of the info on n_empty_jets /// /// The selector passed as an argument has to have a finite area and /// apply jet-by-jet double median_pt_per_unit_area_4vector(const Selector & selector) const; /// the function that does the work for median_pt_per_unit_area and /// median_pt_per_unit_area_4vector: /// - something_is_area_4vect = false -> use plain area /// - something_is_area_4vect = true -> use 4-vector area double median_pt_per_unit_something( const Selector & selector, bool use_area_4vector) const; /// using jets withing the selector range (and with 4-vector areas if /// use_area_4vector), calculate the median pt/area, as well as an /// "error" (uncertainty), which is defined as the 1-sigma /// half-width of the distribution of pt/A, obtained by looking for /// the point below which we have (1-0.6827)/2 of the jets /// (including empty jets). /// /// The subtraction for a jet with uncorrected pt pt^U and area A is /// /// pt^S = pt^U - median*A +- sigma*sqrt(A) /// /// where the error is only that associated with the fluctuations /// in the noise and not that associated with the noise having /// caused changes in the hard-particle content of the jet. /// /// The selector passed as an argument has to have a finite area and /// apply jet-by-jet (see the BackgroundEstimator and Subtractor /// tools for more generic usages) /// /// NB: subtraction may also be done with 4-vector area of course, /// and this is recommended for jets with larger values of R, as /// long as rho has also been determined with a 4-vector area; /// using a scalar area causes one to neglect terms of relative /// order $R^2/8$ in the jet $p_t$. virtual void get_median_rho_and_sigma(const Selector & selector, bool use_area_4vector, double & median, double & sigma, double & mean_area) const; /// a more advanced version of get_median_rho_and_sigma, which allows /// one to use any "view" of the event containing all jets (so that, /// e.g. one might use Cam on a different resolution scale without /// have to rerun the algorithm). /// /// By default it will assume that "all" are not inclusive jets, /// so that in dealing with empty area it has to calculate /// the number of empty jets based on the empty area and the /// the observed of jets rather than a surmised area /// /// Note that for small effective radii, this can cause problems /// because the harder jets get an area >> /// and so the estimate comes out all wrong. In these situations /// it is highly advisable to use an area with explicit ghosts, since /// then the "empty" jets are actually visible. /// /// The selector passed as an argument has to have a finite area and /// apply jet-by-jet (see the BackgroundEstimator and Subtractor /// tools for more generic usages) virtual void get_median_rho_and_sigma(const std::vector & all_jets, const Selector & selector, bool use_area_4vector, double & median, double & sigma, double & mean_area, bool all_are_inclusive = false) const; /// same as the full version of get_median_rho_and_error, but without /// access to the mean_area /// /// The selector passed as an argument has to have a finite area and /// apply jet-by-jet (see the BackgroundEstimator and Subtractor /// tools for more generic usages) virtual void get_median_rho_and_sigma(const Selector & selector, bool use_area_4vector, double & median, double & sigma) const { double mean_area; get_median_rho_and_sigma(selector, use_area_4vector, median, sigma, mean_area); } /// fits a form pt_per_unit_area(y) = a + b*y^2 in the selector range. /// exclude_above allows one to exclude large values of pt/area from fit. /// (if negative, the cut is discarded) /// use_area_4vector = true uses the 4vector areas. /// /// The selector passed as an argument has to have a finite area and /// apply jet-by-jet (see the BackgroundEstimator and Subtractor /// tools for more generic usages) virtual void parabolic_pt_per_unit_area(double & a, double & b, const Selector & selector, double exclude_above=-1.0, bool use_area_4vector=false) const; /// return a vector of all subtracted jets, using area_4vector, given rho. /// Only inclusive_jets above ptmin are subtracted and returned. /// the ordering is the same as that of sorted_by_pt(cs.inclusive_jets()), /// i.e. not necessarily ordered in pt once subtracted std::vector subtracted_jets(const double rho, const double ptmin=0.0) const; /// return a vector of subtracted jets, using area_4vector. /// Only inclusive_jets above ptmin are subtracted and returned. /// the ordering is the same as that of sorted_by_pt(cs.inclusive_jets()), /// i.e. not necessarily ordered in pt once subtracted /// /// The selector passed as an argument has to have a finite area and /// apply jet-by-jet (see the BackgroundEstimator and Subtractor /// tools for more generic usages) std::vector subtracted_jets(const Selector & selector, const double ptmin=0.0) const; /// return a subtracted jet, using area_4vector, given rho PseudoJet subtracted_jet(const PseudoJet & jet, const double rho) const; /// return a subtracted jet, using area_4vector; note /// that this is potentially inefficient if repeatedly used for many /// different jets, because rho will be recalculated each time /// around. /// /// The selector passed as an argument has to have a finite area and /// apply jet-by-jet (see the BackgroundEstimator and Subtractor /// tools for more generic usages) PseudoJet subtracted_jet(const PseudoJet & jet, const Selector & selector) const; /// return the subtracted pt, given rho double subtracted_pt(const PseudoJet & jet, const double rho, bool use_area_4vector=false) const; /// return the subtracted pt; note that this is /// potentially inefficient if repeatedly used for many different /// jets, because rho will be recalculated each time around. /// /// The selector passed as an argument has to have a finite area and /// apply jet-by-jet (see the BackgroundEstimator and Subtractor /// tools for more generic usages) double subtracted_pt(const PseudoJet & jet, const Selector & selector, bool use_area_4vector=false) const; protected: /// check the selector is suited for the computations i.e. applies jet by jet and has a finite area void _check_selector_good_for_median(const Selector &selector) const; private: /// handle warning messages static LimitedWarning _warnings; static LimitedWarning _warnings_zero_area; static LimitedWarning _warnings_empty_area; /// check the jet algorithm is suitable (and if not issue a warning) void _check_jet_alg_good_for_median() const; }; FASTJET_END_NAMESPACE #endif // __FASTJET_CLUSTERSEQUENCEAREABASE_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/CompositeJetStructure.hh0000644000175000017500000002217112127746207023177 0ustar sunsun//STARTHEADER // $Id: CompositeJetStructure.hh 3071 2013-04-01 12:52:46Z cacciari $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_COMPOSITEJET_STRUCTURE_HH__ #define __FASTJET_COMPOSITEJET_STRUCTURE_HH__ #include #include // to have access to the recombiner we need to include the JetDefinition header #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// @ingroup extra_info /// \class CompositeJetStructure /// The structure for a jet made of pieces /// /// This stores the vector of the pieces that make the jet and provide /// the methods to access them class CompositeJetStructure : public PseudoJetStructureBase{ public: // basic class info //------------------------------------------------------------------- /// default ctor CompositeJetStructure() : _area_4vector_ptr(0){}; /// ctor with initialisation CompositeJetStructure(const std::vector & initial_pieces, const JetDefinition::Recombiner * recombiner = 0); /// default dtor virtual ~CompositeJetStructure(){ if (_area_4vector_ptr) delete _area_4vector_ptr; }; /// description virtual std::string description() const; // things reimplemented from the base structure //------------------------------------------------------------------- /// true unless the jet has no pieces (see also the description of /// constituents() below) virtual bool has_constituents() const; /// return the constituents (i.e. the union of the constituents of each piece) /// /// If any of the pieces has no constituent, the piece itself is /// considered as a constituent /// Note that as a consequence, a composite jet with no pieces will /// have an empty vector as constituents virtual std::vector constituents(const PseudoJet &jet) const; //------------------------------------------------------------------- // information related to the pieces of the jet //------------------------------------------------------------------- /// true if it has pieces (always the case) virtual bool has_pieces(const PseudoJet & /*jet*/) const {return true;} /// returns the pieces virtual std::vector pieces(const PseudoJet &jet) const; // area-related material #ifndef __FJCORE__ /// check if it has a well-defined area virtual bool has_area() const; /// return the jet (scalar) area. virtual double area(const PseudoJet &reference) const; /// return the error (uncertainty) associated with the determination /// of the area of this jet. /// /// Be conservative: return the sum of the errors virtual double area_error(const PseudoJet &reference) const; /// return the jet 4-vector area. virtual PseudoJet area_4vector(const PseudoJet &reference) const; /// true if this jet is made exclusively of ghosts. /// /// In this case, it will be true if all pieces are pure ghost virtual bool is_pure_ghost(const PseudoJet &reference) const; // allow to modify the area information // (for use in join()) //------------------------------------------------------------------------------ void set_area_information(PseudoJet *area_4vector_ptr){ _area_4vector_ptr = area_4vector_ptr; } #endif // __FJCORE__ protected: std::vector _pieces; ///< the pieces building the jet PseudoJet * _area_4vector_ptr; ///< pointer to the 4-vector jet area }; // helpers to "join" jets and produce a structure derived from // CompositeJetStructure // // The template structure T must have a constructor accepting as // argument the pieces and of the composite jet // ------------------------------------------------------------------------ /// build a "CompositeJet" from the vector of its pieces with an /// extended structure of type T derived from CompositeJetStructure template PseudoJet join(const std::vector & pieces){ PseudoJet result(0.0,0.0,0.0,0.0); for (unsigned int i=0; i(cj_struct)); return result; } /// build a "CompositeJet" from a single PseudoJet with an extended /// structure of type T derived from CompositeJetStructure template PseudoJet join(const PseudoJet & j1){ return join(std::vector(1,j1)); } /// build a "CompositeJet" from two PseudoJet with an extended /// structure of type T derived from CompositeJetStructure template PseudoJet join(const PseudoJet & j1, const PseudoJet & j2){ std::vector pieces; pieces.push_back(j1); pieces.push_back(j2); return join(pieces); } /// build a "CompositeJet" from 3 PseudoJet with an extended structure /// of type T derived from CompositeJetStructure template PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const PseudoJet & j3){ std::vector pieces; pieces.push_back(j1); pieces.push_back(j2); pieces.push_back(j3); return join(pieces); } /// build a "CompositeJet" from 4 PseudoJet with an extended structure /// of type T derived from CompositeJetStructure template PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const PseudoJet & j3, const PseudoJet & j4){ std::vector pieces; pieces.push_back(j1); pieces.push_back(j2); pieces.push_back(j3); pieces.push_back(j4); return join(pieces); } // the same as above with an additional argument for a // user-defined recombiner // // The template structure T must be derived from CompositeJetStructure // and have a constructor accepting as arguments the pieces and a // pointer to the recombination scheme // ---------------------------------------------------------------------- /// build a "CompositeJet" from the vector of its pieces with an /// extended structure of type T derived from CompositeJetStructure template PseudoJet join(const std::vector & pieces, const JetDefinition::Recombiner & recombiner){ PseudoJet result; if (pieces.size()>0){ result = pieces[0]; for (unsigned int i=1; i(cj_struct)); return result; } /// build a "CompositeJet" from a single PseudoJet with an extended /// structure of type T derived from CompositeJetStructure template PseudoJet join(const PseudoJet & j1, const JetDefinition::Recombiner & recombiner){ return join(std::vector(1,j1), recombiner); } /// build a "CompositeJet" from two PseudoJet with an extended /// structure of type T derived from CompositeJetStructure template PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const JetDefinition::Recombiner & recombiner){ std::vector pieces; pieces.push_back(j1); pieces.push_back(j2); return join(pieces, recombiner); } /// build a "CompositeJet" from 3 PseudoJet with an extended structure /// of type T derived from CompositeJetStructure template PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const PseudoJet & j3, const JetDefinition::Recombiner & recombiner){ std::vector pieces; pieces.push_back(j1); pieces.push_back(j2); pieces.push_back(j3); return join(pieces, recombiner); } /// build a "CompositeJet" from 4 PseudoJet with an extended structure /// of type T derived from CompositeJetStructure template PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const PseudoJet & j3, const PseudoJet & j4, const JetDefinition::Recombiner & recombiner){ std::vector pieces; pieces.push_back(j1); pieces.push_back(j2); pieces.push_back(j3); pieces.push_back(j4); return join(pieces, recombiner); } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __FASTJET_MERGEDJET_STRUCTURE_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/Selector.hh0000644000175000017500000004427612215265366020443 0ustar sunsun#ifndef __FASTJET_SELECTOR_HH__ #define __FASTJET_SELECTOR_HH__ //STARTHEADER // $Id: Selector.hh 3203 2013-09-15 07:49:50Z salam $ // // Copyright (c) 2009-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/PseudoJet.hh" #ifndef __FJCORE__ #include "fastjet/RangeDefinition.hh" // for initialisation from a RangeDefinition #endif // __FJCORE__ #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- /// @ingroup selectors /// \class Selector /// Class that encodes information about cuts and other selection /// criteria that can be applied to PseudoJet(s). /// class Selector; //---------------------------------------------------------------------- /// @ingroup selectors /// \class SelectorWorker /// default selector worker is an abstract virtual base class /// /// The Selector class is only an interface, it is the SelectorWorker /// that really does the work. To implement various selectors, one /// thus has to overload this class. class SelectorWorker { public: //---------------------------------------------------------- // fundamental info //---------------------------------------------------------- /// default dtor virtual ~SelectorWorker() {} //---------------------------------------------------------- // basic operations for checking what gets selected //---------------------------------------------------------- /// returns true if a given object passes the selection criterion. /// This has to be overloaded by derived workers virtual bool pass(const PseudoJet & jet) const = 0; /// For each jet that does not pass the cuts, this routine sets the /// pointer to 0. /// /// It does not assume that the PseudoJet* passed as argumetn are not NULL virtual void terminator(std::vector & jets) const { for (unsigned i = 0; i < jets.size(); i++) { if (jets[i] && !pass(*jets[i])) jets[i] = NULL; } } /// returns true if this can be applied jet by jet virtual bool applies_jet_by_jet() const {return true;} /// returns a description of the worker virtual std::string description() const {return "missing description";} //---------------------------------------------------------- // operations for dealing with reference jets //---------------------------------------------------------- /// returns true if the worker is defined with respect to a reference jet virtual bool takes_reference() const { return false;} /// sets the reference jet for the selector /// NB: "reference" is commented to avoid unused-variable compiler warnings virtual void set_reference(const PseudoJet & /*reference*/){ throw Error("set_reference(...) cannot be used for a selector worker that does not take a reference"); } /// return a copy of the current object. /// /// This function is only called for objects that take a reference and need /// not be reimplemented otherwise. virtual SelectorWorker* copy(){ throw Error("this SelectorWorker has nothing to copy"); } //---------------------------------------------------------- // operations for area and extent //---------------------------------------------------------- /// returns the rapidity range for which it may return "true" virtual void get_rapidity_extent(double & rapmin, double & rapmax) const { rapmax = std::numeric_limits::infinity(); rapmin = -rapmax; } /// check if it is a geometric selector (i.e. only puts constraints /// on rapidity and azimuthal angle) virtual bool is_geometric() const { return false;} /// check if it has a finite area virtual bool has_finite_area() const; /// check if it has an analytically computable area virtual bool has_known_area() const { return false;} /// if it has a computable area, return it virtual double known_area() const{ throw Error("this selector has no computable area"); } }; //---------------------------------------------------------------------- // class Selector // // Class that encodes information about cuts that class Selector{ public: /// default constructor produces a Selector whose action is undefined /// (any attempt to use it will lead to an error) Selector() {} /// constructor that causes the Selector to use the supplied worker /// /// Note that the Selector takes ownership of the pointer to the /// worker (and so will delete automatically when appropriate). Selector(SelectorWorker * worker_in) {_worker.reset(worker_in);} #ifndef __FJCORE__ /// ctor from a RangeDefinition /// /// This is provided for backward compatibility and will be removed in /// a future major release of FastJet /// /// Watch out that the Selector will only hold a pointer to the /// range so the selector will crash if one tries to use it after /// the range has gone out of scope. We thus strongly advise against /// the direct use of this constructor. Selector(const RangeDefinition &range); #endif // __FJCORE__ /// dummy virtual dtor virtual ~Selector(){} /// return true if the jet passes the selection bool pass(const PseudoJet & jet) const { if (!validated_worker()->applies_jet_by_jet()) { throw Error("Cannot apply this selector to an individual jet"); } return _worker->pass(jet); } /// an operator way of knowing whether a given jet passes the selection or not bool operator()(const PseudoJet & jet) const { return pass(jet); } /// Return a count of the objects that pass the selection. /// /// This will often be more efficient that getting the vector of objects that /// passes and then evaluating the size of the vector unsigned int count(const std::vector & jets) const; /// sift the input jets into two vectors -- those that pass the selector /// and those that do not void sift(const std::vector & jets, std::vector & jets_that_pass, std::vector & jets_that_fail) const; /// returns true if this can be applied jet by jet bool applies_jet_by_jet() const { return validated_worker()->applies_jet_by_jet(); } /// returns a vector with the jets that pass the selection std::vector operator()(const std::vector & jets) const; /// For each jet that does not pass the cuts, this routine sets the /// pointer to 0. /// /// It is legitimate for some (or all) of the pointers that are /// passed to already be NULL. virtual void nullify_non_selected(std::vector & jets) const { validated_worker()->terminator(jets); } /// returns the rapidity range for which it may return "true" void get_rapidity_extent(double &rapmin, double &rapmax) const { return validated_worker()->get_rapidity_extent(rapmin, rapmax); } /// returns a textual description of the selector std::string description() const { return validated_worker()->description(); } /// returns true if it is a geometric selector (i.e. one that only puts /// constraints on rapidities and azimuthal angles) bool is_geometric() const{ return validated_worker()->is_geometric(); } /// returns true if it has a meaningful and finite area (i.e. the /// Selector has the property that is_geometric() returns true and /// the rapidity extent is finite). bool has_finite_area() const{ return validated_worker()->has_finite_area(); } #ifndef __FJCORE__ /// returns the rapidity-phi area associated with the Selector /// (throws InvalidArea if the area does not make sense). /// /// If the result is not known analytically, the area will be /// estimated using a pseudo Monte Carlo method (as for jet areas), /// using the default ghost area from the GhostedAreaSpec class /// (0.01). The Monte Carlo estimate involves a time penalty /// proportional to the ratio of the rapidity extent of the Selector /// divided by the ghost area. double area() const; /// returns the rapidity-phi area associated with the Selector /// (throws InvalidArea if the area does not make sense). /// /// The behaviour is the as with the area() call, but with the /// ability to additionally specify the ghost area to be used in the /// case of a Monte Carlo area evaluation. /// double area(double ghost_area) const; #endif // __FJCORE__ /// returns a (reference to) the underlying worker's shared pointer const SharedPtr & worker() const {return _worker;} /// returns a worker if there is a valid one, otherwise throws an InvalidWorker error const SelectorWorker* validated_worker() const { const SelectorWorker* worker_ptr = _worker.get(); if (worker_ptr == 0) throw InvalidWorker(); return worker_ptr; } /// returns true if this can be applied jet by jet bool takes_reference() const { return validated_worker()->takes_reference(); } /// set the reference jet for this Selector const Selector & set_reference(const PseudoJet &reference){ // if the worker does not take a reference jet, do nothing if (! validated_worker()->takes_reference()){ return *this; } // since this is a non-const operation, make sure we have a // correct behaviour with respect to shared workers _copy_worker_if_needed(); _worker->set_reference(reference); return *this; } /// class that gets throw when a Selector is applied despite it not /// having a valid underlying worker. class InvalidWorker : public Error { public: InvalidWorker() : Error("Attempt to use Selector with no valid underlying worker") {} }; /// class that gets throw when a Selector is applied despite it not /// having a valid underlying worker. class InvalidArea : public Error { public: InvalidArea() : Error("Attempt to obtain area from Selector for which this is not meaningful") {} }; // some operators (applying directly on a Selector) //---------------------------------------------------------------------- /// For 2 Selectors a and b, a &= b is eauivalent to a = a && b; Selector & operator &=(const Selector & b); /// For 2 Selectors a and b, a |= b is eauivalent to a = a || b; Selector & operator |=(const Selector & b); protected: /// Helper for copying selector workers if needed /// /// The following is needed if we want to modify a selectors that /// shares a worker with another selector. In that case, we need to /// get another copy of the worker to avoid interferences /// /// Note that any non-const operation has to call this to behave /// correctly w.r.t shared workers! void _copy_worker_if_needed(){ // do nothing if there's a sinlge user of the worker if (_worker.unique()) return; // call the worker's copy //std::cout << "will make a copy of " << description() << std::endl; _worker.reset(_worker->copy()); } private: SharedPtr _worker; ///< the underlying worker }; //---------------------------------------------------------------------- // a list of specific selectors //---------------------------------------------------------------------- /// \addtogroup selectors /// @{ // fundamental selectors //---------------------------------------------------------------------- // "identity" selector that lets everything pass Selector SelectorIdentity(); // logical operations //---------------------------------------------------------------------- /// logical not applied on a selector /// /// This will keep objects that do not pass the 's' selector Selector operator!(const Selector & s); /// logical or between two selectors /// /// this will keep the objects that are selected by s1 or s2 Selector operator ||(const Selector & s1, const Selector & s2); /// logical and between two selectors /// /// this will keep the objects that are selected by both s1 and s2 /// /// watch out: for both s1 and s2, the selection is applied on the /// original list of objects. For successive applications of two /// selectors (convolution/multiplication) see the operator * Selector operator&&(const Selector & s1, const Selector & s2); /// successive application of 2 selectors /// /// Apply the selector s2, then the selector s1. /// /// watch out: the operator * acts like an operator product i.e. does /// not commute. The order of its arguments is therefore important. /// Whenever they commute (in particluar, when they apply jet by /// jet), this would have the same effect as the logical &&. Selector operator*(const Selector & s1, const Selector & s2); // selection with kinematic cuts //---------------------------------------------------------------------- Selector SelectorPtMin(double ptmin); ///< select objects with pt >= ptmin Selector SelectorPtMax(double ptmax); ///< select objects with pt <= ptmax Selector SelectorPtRange(double ptmin, double ptmax); ///< select objects with ptmin <= pt <= ptmax Selector SelectorEtMin(double Etmin); ///< select objects with Et >= Etmin Selector SelectorEtMax(double Etmax); ///< select objects with Et <= Etmax Selector SelectorEtRange(double Etmin, double Etmax); ///< select objects with Etmin <= Et <= Etmax Selector SelectorEMin(double Emin); ///< select objects with E >= Emin Selector SelectorEMax(double Emax); ///< select objects with E <= Emax Selector SelectorERange(double Emin, double Emax); ///< select objects with Emin <= E <= Emax Selector SelectorMassMin(double Mmin); ///< select objects with Mass >= Mmin Selector SelectorMassMax(double Mmax); ///< select objects with Mass <= Mmax Selector SelectorMassRange(double Mmin, double Mmax); ///< select objects with Mmin <= Mass <= Mmax Selector SelectorRapMin(double rapmin); ///< select objects with rap >= rapmin Selector SelectorRapMax(double rapmax); ///< select objects with rap <= rapmax Selector SelectorRapRange(double rapmin, double rapmax); ///< select objects with rapmin <= rap <= rapmax Selector SelectorAbsRapMin(double absrapmin); ///< select objects with |rap| >= absrapmin Selector SelectorAbsRapMax(double absrapmax); ///< select objects with |rap| <= absrapmax Selector SelectorAbsRapRange(double absrapmin, double absrapmax); ///< select objects with absrapmin <= |rap| <= absrapmax Selector SelectorEtaMin(double etamin); ///< select objects with eta >= etamin Selector SelectorEtaMax(double etamax); ///< select objects with eta <= etamax Selector SelectorEtaRange(double etamin, double etamax); ///< select objects with etamin <= eta <= etamax Selector SelectorAbsEtaMin(double absetamin); ///< select objects with |eta| >= absetamin Selector SelectorAbsEtaMax(double absetamax); ///< select objects with |eta| <= absetamax Selector SelectorAbsEtaRange(double absetamin, double absetamax); ///< select objects with absetamin <= |eta| <= absetamax Selector SelectorPhiRange(double phimin, double phimax); ///< select objects with phimin <= phi <= phimax /// select objects with rapmin <= rap <= rapmax && phimin <= phi <= phimax /// /// Note that this is essentially a combination of SelectorRapRange /// and SelectorPhiRange. We provide it as a Selector on its own in /// order to use the known area (which would otherwise be lost by the && /// operator) Selector SelectorRapPhiRange(double rapmin, double rapmax, double phimin, double phimax); /// select the n hardest objects Selector SelectorNHardest(unsigned int n); // Selectors that take (require) a reference jet. //---------------------------------------------------------------------- /// select objets within a distance 'radius' from the location of the /// reference jet, set by Selector::set_reference(...) Selector SelectorCircle(const double & radius); /// select objets with distance from the reference jet is between 'radius_in' /// and 'radius_out'; the reference jet is set by Selector::set_reference(...) Selector SelectorDoughnut(const double & radius_in, const double & radius_out); /// select objets within a rapidity distance 'half_width' from the /// location of the reference jet, set by Selector::set_reference(...) Selector SelectorStrip(const double & half_width); /// select objets within rapidity distance 'half_rap_width' from the /// reference jet and azimuthal-angle distance within 'half_phi_width'; the /// reference jet is set by Selector::set_reference(...) Selector SelectorRectangle(const double & half_rap_width, const double & half_phi_width); /// select objects that carry at least a fraction "fraction" of the /// reference jet. The reference jet must have been set with /// Selector::set_reference(...) Selector SelectorPtFractionMin(double fraction); // additional (mostly helper) selectors //---------------------------------------------------------------------- /// select PseudoJet with 0 momentum Selector SelectorIsZero(); #ifndef __FJCORE__ /// select objects that are (or are only made of) ghosts. /// PseudoJets for which has_area() are considered non-pure-ghost. Selector SelectorIsPureGhost(); #endif // __FJCORE__ /// @} FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __FASTJET_SELECTOR_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/Error.hh0000644000175000017500000000565611766120135017745 0ustar sunsun#ifndef __FASTJET_ERROR_HH__ #define __FASTJET_ERROR_HH__ //STARTHEADER // $Id: Error.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include "fastjet/internal/base.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// @ingroup error_handling /// \class Error /// base class corresponding to errors that can be thrown by FastJet class Error { public: /// default constructors Error() {} /// ctor from an error message /// \param message to be printed /// Note: in addition to the error message, one can choose to print the /// backtrace (showing the last few calls before the error) by /// using set_print_backtrace(true). The default is "false". Error(const std::string & message); /// virtual dummy dtor virtual ~Error() {} /// the error message std::string message() const {return _message;} /// controls whether the error message (and the backtrace, if its printing is enabled) /// is printed out or not static void set_print_errors(bool print_errors) {_print_errors = print_errors;} /// controls whether the backtrace is printed out with the error message or not. /// The default is "false". static void set_print_backtrace(bool enabled) {_print_backtrace = enabled;} /// sets the default output stream for all errors; by default /// cerr; if it's null then error output is suppressed. static void set_default_stream(std::ostream * ostr) { _default_ostr = ostr; } private: std::string _message; ///< error message static bool _print_errors; ///< do we print anything? static bool _print_backtrace; ///< do we print the backtrace? static std::ostream * _default_ostr; ///< the output stream (cerr if not set) }; FASTJET_END_NAMESPACE #endif // __FASTJET_ERROR_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/PseudoJet.hh0000644000175000017500000011217312153571474020556 0ustar sunsun//STARTHEADER // $Id: PseudoJet.hh 3111 2013-05-04 08:17:27Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_PSEUDOJET_HH__ #define __FASTJET_PSEUDOJET_HH__ #include #include #include #include #include #include "fastjet/internal/numconsts.hh" #include "fastjet/internal/IsBase.hh" #include "fastjet/SharedPtr.hh" #include "fastjet/Error.hh" #include "fastjet/PseudoJetStructureBase.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //using namespace std; /// Used to protect against parton-level events where pt can be zero /// for some partons, giving rapidity=infinity. KtJet fails in those cases. const double MaxRap = 1e5; /// default value for phi, meaning it (and rapidity) have yet to be calculated) const double pseudojet_invalid_phi = -100.0; const double pseudojet_invalid_rap = -1e200; #ifndef __FJCORE__ // forward definition class ClusterSequenceAreaBase; #endif // __FJCORE__ /// @ingroup basic_classes /// \class PseudoJet /// Class to contain pseudojets, including minimal information of use to /// jet-clustering routines. class PseudoJet { public: //---------------------------------------------------------------------- /// @name Constructors and destructor //\{ /// default constructor, which as of FJ3.0 provides an object for /// which all operations are now valid and which has zero momentum /// // (cf. this is actually OK from a timing point of view and in some // cases better than just having the default constructor for the // internal shared pointer: see PJtiming.cc and the notes therein) PseudoJet() : _px(0), _py(0), _pz(0), _E(0) {_finish_init(); _reset_indices();} //PseudoJet() : _px(0), _py(0), _pz(0), _E(0), _phi(pseudojet_invalid_phi), _rap(pseudojet_invalid_rap), _kt2(0) {_reset_indices();} /// construct a pseudojet from explicit components PseudoJet(const double px, const double py, const double pz, const double E); /// constructor from any object that has px,py,pz,E = some_four_vector[0--3], template PseudoJet(const L & some_four_vector); // Constructor that performs minimal initialisation (only that of // the shared pointers), of use in certain speed-critical contexts // // NB: "dummy" is commented to avoid unused-variable compiler warnings PseudoJet(bool /* dummy */) {} /// default (virtual) destructor virtual ~PseudoJet(){}; //\} ---- end of constructors and destructors -------------------------- //---------------------------------------------------------------------- /// @name Kinematic access functions //\{ //---------------------------------------------------------------------- inline double E() const {return _E;} inline double e() const {return _E;} // like CLHEP inline double px() const {return _px;} inline double py() const {return _py;} inline double pz() const {return _pz;} /// returns phi (in the range 0..2pi) inline double phi() const {return phi_02pi();} /// returns phi in the range -pi..pi inline double phi_std() const { _ensure_valid_rap_phi(); return _phi > pi ? _phi-twopi : _phi;} /// returns phi in the range 0..2pi inline double phi_02pi() const { _ensure_valid_rap_phi(); return _phi; } /// returns the rapidity or some large value when the rapidity /// is infinite inline double rap() const { _ensure_valid_rap_phi(); return _rap; } /// the same as rap() inline double rapidity() const {return rap();} // like CLHEP /// returns the pseudo-rapidity or some large value when the /// rapidity is infinite double pseudorapidity() const; double eta() const {return pseudorapidity();} /// returns the squared transverse momentum inline double pt2() const {return _kt2;} /// returns the scalar transverse momentum inline double pt() const {return sqrt(_kt2);} /// returns the squared transverse momentum inline double perp2() const {return _kt2;} // like CLHEP /// returns the scalar transverse momentum inline double perp() const {return sqrt(_kt2);} // like CLHEP /// returns the squared transverse momentum inline double kt2() const {return _kt2;} // for bkwds compatibility /// returns the squared invariant mass // like CLHEP inline double m2() const {return (_E+_pz)*(_E-_pz)-_kt2;} /// returns the invariant mass /// (If m2() is negative then -sqrt(-m2()) is returned, as in CLHEP) inline double m() const; /// returns the squared transverse mass = kt^2+m^2 inline double mperp2() const {return (_E+_pz)*(_E-_pz);} /// returns the transverse mass = sqrt(kt^2+m^2) inline double mperp() const {return sqrt(std::abs(mperp2()));} /// returns the squared transverse mass = kt^2+m^2 inline double mt2() const {return (_E+_pz)*(_E-_pz);} /// returns the transverse mass = sqrt(kt^2+m^2) inline double mt() const {return sqrt(std::abs(mperp2()));} /// return the squared 3-vector modulus = px^2+py^2+pz^2 inline double modp2() const {return _kt2+_pz*_pz;} /// return the 3-vector modulus = sqrt(px^2+py^2+pz^2) inline double modp() const {return sqrt(_kt2+_pz*_pz);} /// return the transverse energy inline double Et() const {return (_kt2==0) ? 0.0 : _E/sqrt(1.0+_pz*_pz/_kt2);} /// return the transverse energy squared inline double Et2() const {return (_kt2==0) ? 0.0 : _E*_E/(1.0+_pz*_pz/_kt2);} /// returns component i, where X==0, Y==1, Z==2, E==3 double operator () (int i) const ; /// returns component i, where X==0, Y==1, Z==2, E==3 inline double operator [] (int i) const { return (*this)(i); }; // this too /// returns kt distance (R=1) between this jet and another double kt_distance(const PseudoJet & other) const; /// returns squared cylinder (rap-phi) distance between this jet and another double plain_distance(const PseudoJet & other) const; /// returns squared cylinder (rap-phi) distance between this jet and /// another inline double squared_distance(const PseudoJet & other) const { return plain_distance(other);} /// return the cylinder (rap-phi) distance between this jet and another, /// \f$\Delta_R = \sqrt{\Delta y^2 + \Delta \phi^2}\f$. inline double delta_R(const PseudoJet & other) const { return sqrt(squared_distance(other)); } /// returns other.phi() - this.phi(), constrained to be in /// range -pi .. pi double delta_phi_to(const PseudoJet & other) const; //// this seemed to compile except if it was used //friend inline double // kt_distance(const PseudoJet & jet1, const PseudoJet & jet2) { // return jet1.kt_distance(jet2);} /// returns distance between this jet and the beam inline double beam_distance() const {return _kt2;} /// return a valarray containing the four-momentum (components 0-2 /// are 3-mom, component 3 is energy). std::valarray four_mom() const; //\} ------- end of kinematic access functions // taken from CLHEP enum { X=0, Y=1, Z=2, T=3, NUM_COORDINATES=4, SIZE=NUM_COORDINATES }; //---------------------------------------------------------------------- /// @name Kinematic modification functions //\{ //---------------------------------------------------------------------- /// transform this jet (given in the rest frame of prest) into a jet /// in the lab frame [NOT FULLY TESTED] PseudoJet & boost(const PseudoJet & prest); /// transform this jet (given in lab) into a jet in the rest /// frame of prest [NOT FULLY TESTED] PseudoJet & unboost(const PseudoJet & prest); void operator*=(double); void operator/=(double); void operator+=(const PseudoJet &); void operator-=(const PseudoJet &); /// reset the 4-momentum according to the supplied components and /// put the user and history indices back to their default values inline void reset(double px, double py, double pz, double E); /// reset the PseudoJet to be equal to psjet (including its /// indices); NB if the argument is derived from a PseudoJet then /// the "reset" used will be the templated version /// /// Note: this is included on top of the templated version because /// PseudoJet is not "derived" from PseudoJet, so the templated /// reset would not handle this case properly. inline void reset(const PseudoJet & psjet) { (*this) = psjet; } /// reset the 4-momentum according to the supplied generic 4-vector /// (accessible via indexing, [0]==px,...[3]==E) and put the user /// and history indices back to their default values. template inline void reset(const L & some_four_vector) { // check if some_four_vector can be cast to a PseudoJet // // Note that a regular dynamic_cast would not work here because // there is no guarantee that L is polymorphic. We use a more // complex construct here that works also in such a case. As for // dynamic_cast, NULL is returned if L is not derived from // PseudoJet // // Note the explicit request for fastjet::cast_if_derived; when // combining fastjet and fjcore, this avoids ambiguity in which of // the two cast_if_derived calls to use. const PseudoJet * pj = fastjet::cast_if_derived(&some_four_vector); if (pj){ (*this) = *pj; } else { reset(some_four_vector[0], some_four_vector[1], some_four_vector[2], some_four_vector[3]); } } /// reset the PseudoJet according to the specified pt, rapidity, /// azimuth and mass (also resetting indices, etc.) /// (phi should satisfy -2pi inline void reset_momentum(const L & some_four_vector) { reset_momentum(some_four_vector[0], some_four_vector[1], some_four_vector[2], some_four_vector[3]); } /// in some cases when setting a 4-momentum, the user/program knows /// what rapidity and azimuth are associated with that 4-momentum; /// by calling this routine the user can provide the information /// directly to the PseudoJet and avoid expensive rap-phi /// recalculations. /// /// - \param rap rapidity /// - \param phi (in range -twopi...4*pi) /// /// USE WITH CAUTION: there are no checks that the rapidity and /// azimuth supplied are sensible, nor does this reset the /// 4-momentum components if things don't match. void set_cached_rap_phi(double rap, double phi); //\} --- end of kin mod functions ------------------------------------ //---------------------------------------------------------------------- /// @name User index functions /// /// To allow the user to set and access an integer index which can /// be exploited by the user to associate extra information with a /// particle/jet (for example pdg id, or an indication of a /// particle's origin within the user's analysis) // //\{ /// return the user_index, inline int user_index() const {return _user_index;} /// set the user_index, intended to allow the user to add simple /// identifying information to a particle/jet inline void set_user_index(const int index) {_user_index = index;} //\} ----- end of use index functions --------------------------------- //---------------------------------------------------------------------- /// @name User information types and functions /// /// Allows PseudoJet to carry extra user info (as an object derived from /// UserInfoBase). //\{ /// @ingroup user_info /// \class UserInfoBase /// a base class to hold extra user information in a PseudoJet /// /// This is a base class to help associate extra user information /// with a jet. The user should store their information in a class /// derived from this. This allows information of arbitrary /// complexity to be easily associated with a PseudoJet (in contrast /// to the user index). For example, in a Monte Carlo simulation, /// the user information might include the PDG ID, and the position /// of the production vertex for the particle. /// /// The PseudoJet is able to store a shared pointer to any object /// derived from UserInfo. The use of a shared pointer frees the /// user of the need to handle the memory management associated with /// the information. /// /// Having the user information derive from a common base class also /// facilitates dynamic casting, etc. /// class UserInfoBase{ public: // dummy ctor UserInfoBase(){}; // dummy virtual dtor // makes it polymorphic to allow for dynamic_cast virtual ~UserInfoBase(){}; }; /// error class to be thrown if accessing user info when it doesn't /// exist class InexistentUserInfo : public Error { public: InexistentUserInfo(); }; /// sets the internal shared pointer to the user information. /// /// Note that the PseudoJet will now _own_ the pointer, and delete /// the corresponding object when it (the jet, and any copies of the jet) /// goes out of scope. void set_user_info(UserInfoBase * user_info_in) { _user_info.reset(user_info_in); } /// returns a reference to the dynamic cast conversion of user_info /// to type L. /// /// Usage: suppose you have previously set the user info with a pointer /// to an object of type MyInfo, /// /// class MyInfo: public PseudoJet::UserInfoBase { /// MyInfo(int id) : _pdg_id(id); /// int pdg_id() const {return _pdg_id;} /// int _pdg_id; /// }; /// /// PseudoJet particle(...); /// particle.set_user_info(new MyInfo(its_pdg_id)); /// /// Then you would access that pdg_id() as /// /// particle.user_info().pdg_id(); /// /// It's overkill for just a single integer, but scales easily to /// more extensive information. /// /// Note that user_info() throws an InexistentUserInfo() error if /// there is no user info; throws a std::bad_cast if the conversion /// doesn't work /// /// If this behaviour does not fit your needs, use instead the the /// user_info_ptr() or user_info_shared_ptr() member functions. template const L & user_info() const{ if (_user_info.get() == 0) throw InexistentUserInfo(); return dynamic_cast(* _user_info.get()); } /// returns true if the PseudoJet has user information bool has_user_info() const{ return _user_info.get(); } /// returns true if the PseudoJet has user information than can be /// cast to the template argument type. template bool has_user_info() const{ return _user_info.get() && dynamic_cast(_user_info.get()); } /// retrieve a pointer to the (const) user information const UserInfoBase * user_info_ptr() const{ if (!_user_info()) return NULL; return _user_info.get(); } /// retrieve a (const) shared pointer to the user information const SharedPtr & user_info_shared_ptr() const{ return _user_info; } /// retrieve a (non-const) shared pointer to the user information; /// you can use this, for example, to set the shared pointer, eg /// /// \code /// p2.user_info_shared_ptr() = p1.user_info_shared_ptr(); /// \endcode /// /// or /// /// \code /// SharedPtr info_shared(new MyInfo(...)); /// p2.user_info_shared_ptr() = info_shared; /// \endcode SharedPtr & user_info_shared_ptr(){ return _user_info; } // \} --- end of extra info functions --------------------------------- //---------------------------------------------------------------------- /// @name Description /// /// Since a PseudoJet can have a structure that contains a variety /// of information, we provide a description that allows one to check /// exactly what kind of PseudoJet we are dealing with // //\{ /// return a string describing what kind of PseudoJet we are dealing with std::string description() const; //\} ----- end of description functions --------------------------------- //------------------------------------------------------------- /// @name Access to the associated ClusterSequence object. /// /// In addition to having kinematic information, jets may contain a /// reference to an associated ClusterSequence (this is the case, /// for example, if the jet has been returned by a ClusterSequence /// member function). //\{ //------------------------------------------------------------- /// returns true if this PseudoJet has an associated ClusterSequence. bool has_associated_cluster_sequence() const; /// shorthand for has_associated_cluster_sequence() bool has_associated_cs() const {return has_associated_cluster_sequence();} /// returns true if this PseudoJet has an associated and still /// valid(ated) ClusterSequence. bool has_valid_cluster_sequence() const; /// shorthand for has_valid_cluster_sequence() bool has_valid_cs() const {return has_valid_cluster_sequence();} /// get a (const) pointer to the parent ClusterSequence (NULL if /// inexistent) const ClusterSequence* associated_cluster_sequence() const; // shorthand for associated_cluster_sequence() const ClusterSequence* associated_cs() const {return associated_cluster_sequence();} /// if the jet has a valid associated cluster sequence then return a /// pointer to it; otherwise throw an error inline const ClusterSequence * validated_cluster_sequence() const { return validated_cs(); } /// shorthand for validated_cluster_sequence() const ClusterSequence * validated_cs() const; #ifndef __FJCORE__ /// if the jet has valid area information then return a pointer to /// the associated ClusterSequenceAreaBase object; otherwise throw an error inline const ClusterSequenceAreaBase * validated_cluster_sequence_area_base() const { return validated_csab(); } /// shorthand for validated_cluster_sequence_area_base() const ClusterSequenceAreaBase * validated_csab() const; #endif // __FJCORE__ //\} //------------------------------------------------------------- /// @name Access to the associated PseudoJetStructureBase object. /// /// In addition to having kinematic information, jets may contain a /// reference to an associated ClusterSequence (this is the case, /// for example, if the jet has been returned by a ClusterSequence /// member function). //\{ //------------------------------------------------------------- /// set the associated structure void set_structure_shared_ptr(const SharedPtr &structure); /// return true if there is some structure associated with this PseudoJet bool has_structure() const; /// return a pointer to the structure (of type /// PseudoJetStructureBase*) associated with this PseudoJet. /// /// return NULL if there is no associated structure const PseudoJetStructureBase* structure_ptr() const; /// return a non-const pointer to the structure (of type /// PseudoJetStructureBase*) associated with this PseudoJet. /// /// return NULL if there is no associated structure /// /// Only use this if you know what you are doing. In any case, /// prefer the 'structure_ptr()' (the const version) to this method, /// unless you really need a write access to the PseudoJet's /// underlying structure. PseudoJetStructureBase* structure_non_const_ptr(); /// return a pointer to the structure (of type /// PseudoJetStructureBase*) associated with this PseudoJet. /// /// throw an error if there is no associated structure const PseudoJetStructureBase* validated_structure_ptr() const; /// return a reference to the shared pointer to the /// PseudoJetStructureBase associated with this PseudoJet const SharedPtr & structure_shared_ptr() const; /// returns a reference to the structure casted to the requested /// structure type /// /// If there is no sructure associated, an Error is thrown. /// If the type is not met, a std::bad_cast error is thrown. template const StructureType & structure() const; /// check if the PseudoJet has the structure resulting from a Transformer /// (that is, its structure is compatible with a Transformer::StructureType). /// If there is no structure, false is returned. template bool has_structure_of() const; /// this is a helper to access any structure created by a Transformer /// (that is, of type Transformer::StructureType). /// /// If there is no structure, or if the structure is not compatible /// with TransformerType, an error is thrown. template const typename TransformerType::StructureType & structure_of() const; //\} //------------------------------------------------------------- /// @name Methods for access to information about jet structure /// /// These allow access to jet constituents, and other jet /// subtructure information. They only work if the jet is associated /// with a ClusterSequence. //------------------------------------------------------------- //\{ /// check if it has been recombined with another PseudoJet in which /// case, return its partner through the argument. Otherwise, /// 'partner' is set to 0. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual bool has_partner(PseudoJet &partner) const; /// check if it has been recombined with another PseudoJet in which /// case, return its child through the argument. Otherwise, 'child' /// is set to 0. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual bool has_child(PseudoJet &child) const; /// check if it is the product of a recombination, in which case /// return the 2 parents through the 'parent1' and 'parent2' /// arguments. Otherwise, set these to 0. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual bool has_parents(PseudoJet &parent1, PseudoJet &parent2) const; /// check if the current PseudoJet contains the one passed as /// argument. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual bool contains(const PseudoJet &constituent) const; /// check if the current PseudoJet is contained the one passed as /// argument. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual bool is_inside(const PseudoJet &jet) const; /// returns true if the PseudoJet has constituents virtual bool has_constituents() const; /// retrieve the constituents. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence or other substructure information virtual std::vector constituents() const; /// returns true if the PseudoJet has support for exclusive subjets virtual bool has_exclusive_subjets() const; /// return a vector of all subjets of the current jet (in the sense /// of the exclusive algorithm) that would be obtained when running /// the algorithm with the given dcut. /// /// Time taken is O(m ln m), where m is the number of subjets that /// are found. If m gets to be of order of the total number of /// constituents in the jet, this could be substantially slower than /// just getting that list of constituents. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence std::vector exclusive_subjets (const double & dcut) const; /// return the size of exclusive_subjets(...); still n ln n with same /// coefficient, but marginally more efficient than manually taking /// exclusive_subjets.size() /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence int n_exclusive_subjets(const double & dcut) const; /// return the list of subjets obtained by unclustering the supplied /// jet down to nsub subjets. Throws an error if there are fewer than /// nsub particles in the jet. /// /// For ClusterSequence type jets, requires nsub ln nsub time /// /// An Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence std::vector exclusive_subjets (int nsub) const; /// return the list of subjets obtained by unclustering the supplied /// jet down to nsub subjets (or all constituents if there are fewer /// than nsub). /// /// For ClusterSequence type jets, requires nsub ln nsub time /// /// An Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence std::vector exclusive_subjets_up_to (int nsub) const; /// return the dij that was present in the merging nsub+1 -> nsub /// subjets inside this jet. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence double exclusive_subdmerge(int nsub) const; /// return the maximum dij that occurred in the whole event at the /// stage that the nsub+1 -> nsub merge of subjets occurred inside /// this jet. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence double exclusive_subdmerge_max(int nsub) const; /// returns true if a jet has pieces /// /// By default a single particle or a jet coming from a /// ClusterSequence have no pieces and this methos will return false. /// /// In practice, this is equivalent to have an structure of type /// CompositeJetStructure. virtual bool has_pieces() const; /// retrieve the pieces that make up the jet. /// /// If the jet does not support pieces, an error is throw virtual std::vector pieces() const; // the following ones require a computation of the area in the // parent ClusterSequence (See ClusterSequenceAreaBase for details) //------------------------------------------------------------------ #ifndef __FJCORE__ /// check if it has a defined area virtual bool has_area() const; /// return the jet (scalar) area. /// throws an Error if there is no support for area in the parent CS virtual double area() const; /// return the error (uncertainty) associated with the determination /// of the area of this jet. /// throws an Error if there is no support for area in the parent CS virtual double area_error() const; /// return the jet 4-vector area. /// throws an Error if there is no support for area in the parent CS virtual PseudoJet area_4vector() const; /// true if this jet is made exclusively of ghosts. /// throws an Error if there is no support for area in the parent CS virtual bool is_pure_ghost() const; #endif // __FJCORE__ //\} --- end of jet structure ------------------------------------- //---------------------------------------------------------------------- /// @name Members mainly intended for internal use //---------------------------------------------------------------------- //\{ /// return the cluster_hist_index, intended to be used by clustering /// routines. inline int cluster_hist_index() const {return _cluster_hist_index;} /// set the cluster_hist_index, intended to be used by clustering routines. inline void set_cluster_hist_index(const int index) {_cluster_hist_index = index;} /// alternative name for cluster_hist_index() [perhaps more meaningful] inline int cluster_sequence_history_index() const { return cluster_hist_index();} /// alternative name for set_cluster_hist_index(...) [perhaps more /// meaningful] inline void set_cluster_sequence_history_index(const int index) { set_cluster_hist_index(index);} //\} ---- end of internal use functions --------------------------- protected: SharedPtr _structure; SharedPtr _user_info; private: // NB: following order must be kept for things to behave sensibly... double _px,_py,_pz,_E; mutable double _phi, _rap; double _kt2; int _cluster_hist_index, _user_index; /// calculate phi, rap, kt2 based on the 4-momentum components void _finish_init(); /// set the indices to default values void _reset_indices(); /// ensure that the internal values for rapidity and phi /// correspond to 4-momentum structure inline void _ensure_valid_rap_phi() const { if (_phi == pseudojet_invalid_phi) _set_rap_phi(); } /// set cached rapidity and phi values void _set_rap_phi() const; }; //---------------------------------------------------------------------- // routines for basic binary operations PseudoJet operator+(const PseudoJet &, const PseudoJet &); PseudoJet operator-(const PseudoJet &, const PseudoJet &); PseudoJet operator*(double, const PseudoJet &); PseudoJet operator*(const PseudoJet &, double); PseudoJet operator/(const PseudoJet &, double); /// returns true if the 4 momentum components of the two PseudoJets /// are identical and all the internal indices (user, cluster_history) /// + structure and user-info shared pointers are too bool operator==(const PseudoJet &, const PseudoJet &); /// inequality test which is exact opposite of operator== inline bool operator!=(const PseudoJet & a, const PseudoJet & b) {return !(a==b);} /// Can only be used with val=0 and tests whether all four /// momentum components are equal to val (=0.0) bool operator==(const PseudoJet & jet, const double val); /// Can only be used with val=0 and tests whether at least one of the /// four momentum components is different from val (=0.0) inline bool operator!=(const PseudoJet & a, const double & val) {return !(a==val);} inline double dot_product(const PseudoJet & a, const PseudoJet & b) { return a.E()*b.E() - a.px()*b.px() - a.py()*b.py() - a.pz()*b.pz(); } /// returns true if the momenta of the two input jets are identical bool have_same_momentum(const PseudoJet &, const PseudoJet &); /// return a pseudojet with the given pt, y, phi and mass /// (phi should satisfy -2pi sorted_by_pt(const std::vector & jets); /// return a vector of jets sorted into increasing rapidity std::vector sorted_by_rapidity(const std::vector & jets); /// return a vector of jets sorted into decreasing energy std::vector sorted_by_E(const std::vector & jets); /// return a vector of jets sorted into increasing pz std::vector sorted_by_pz(const std::vector & jets); //---------------------------------------------------------------------- // some code to help sorting /// sort the indices so that values[indices[0->n-1]] is sorted /// into increasing order void sort_indices(std::vector & indices, const std::vector & values); /// given a vector of values with a one-to-one correspondence with the /// vector of objects, sort objects into an order such that the /// associated values would be in increasing order (but don't actually /// touch the values vector in the process). template std::vector objects_sorted_by_values(const std::vector & objects, const std::vector & values); /// \if internal_doc /// @ingroup internal /// \class IndexedSortHelper /// a class that helps us carry out indexed sorting. /// \endif class IndexedSortHelper { public: inline IndexedSortHelper (const std::vector * reference_values) { _ref_values = reference_values; }; inline int operator() (const int & i1, const int & i2) const { return (*_ref_values)[i1] < (*_ref_values)[i2]; }; private: const std::vector * _ref_values; }; //---------------------------------------------------------------------- /// constructor from any object that has px,py,pz,E = some_four_vector[0--3], // NB: do not know if it really needs to be inline, but when it wasn't // linking failed with g++ (who knows what was wrong...) template inline PseudoJet::PseudoJet(const L & some_four_vector) { reset(some_four_vector); } //---------------------------------------------------------------------- inline void PseudoJet::_reset_indices() { set_cluster_hist_index(-1); set_user_index(-1); _structure.reset(); _user_info.reset(); } // taken literally from CLHEP inline double PseudoJet::m() const { double mm = m2(); return mm < 0.0 ? -std::sqrt(-mm) : std::sqrt(mm); } inline void PseudoJet::reset(double px_in, double py_in, double pz_in, double E_in) { _px = px_in; _py = py_in; _pz = pz_in; _E = E_in; _finish_init(); _reset_indices(); } inline void PseudoJet::reset_momentum(double px_in, double py_in, double pz_in, double E_in) { _px = px_in; _py = py_in; _pz = pz_in; _E = E_in; _finish_init(); } inline void PseudoJet::reset_momentum(const PseudoJet & pj) { _px = pj._px ; _py = pj._py ; _pz = pj._pz ; _E = pj._E ; _phi = pj._phi; _rap = pj._rap; _kt2 = pj._kt2; } //------------------------------------------------------------------------------- // implementation of the templated accesses to the underlying structyre //------------------------------------------------------------------------------- // returns a reference to the structure casted to the requested // structure type // // If there is no sructure associated, an Error is thrown. // If the type is not met, a std::bad_cast error is thrown. template const StructureType & PseudoJet::structure() const{ return dynamic_cast(* validated_structure_ptr()); } // check if the PseudoJet has the structure resulting from a Transformer // (that is, its structure is compatible with a Transformer::StructureType) template bool PseudoJet::has_structure_of() const{ if (!_structure()) return false; return dynamic_cast(_structure.get()) != 0; } // this is a helper to access a structure created by a Transformer // (that is, of type Transformer::StructureType) // NULL is returned if the corresponding type is not met template const typename TransformerType::StructureType & PseudoJet::structure_of() const{ if (!_structure()) throw Error("Trying to access the structure of a PseudoJet without an associated structure"); return dynamic_cast(*_structure); } //------------------------------------------------------------------------------- // helper functions to build a jet made of pieces // // Note that there are more complete versions of these functions, with // an additional argument for a recombination scheme, in // JetDefinition.hh // ------------------------------------------------------------------------------- /// build a "CompositeJet" from the vector of its pieces /// /// In this case, E-scheme recombination is assumed to compute the /// total momentum PseudoJet join(const std::vector & pieces); /// build a MergedJet from a single PseudoJet PseudoJet join(const PseudoJet & j1); /// build a MergedJet from 2 PseudoJet PseudoJet join(const PseudoJet & j1, const PseudoJet & j2); /// build a MergedJet from 3 PseudoJet PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const PseudoJet & j3); /// build a MergedJet from 4 PseudoJet PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const PseudoJet & j3, const PseudoJet & j4); FASTJET_END_NAMESPACE #endif // __FASTJET_PSEUDOJET_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/NNH.hh0000644000175000017500000003025012215265366017271 0ustar sunsun#ifndef __FASTJET_NNH_HH__ #define __FASTJET_NNH_HH__ //STARTHEADER // $Id: NNH.hh 3203 2013-09-15 07:49:50Z salam $ // // Copyright (c) 2009, Matteo Cacciari, Gavin Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// @ingroup advanced_usage /// \class _NoInfo /// dummy class, used as a default template argument class _NoInfo {}; /// @ingroup advanced_usage /// \class NNHInfo /// template that will help initialise a BJ with a PseudoJet and extra information template class NNHInfo { public: NNHInfo() : _info(NULL) {} NNHInfo(I * info) : _info(info) {} template void init_jet(NNBJ * briefjet, const fastjet::PseudoJet & jet, int index) { briefjet->init(jet, index, _info);} private: I * _info; }; /// @ingroup advanced_usage /// Specialisation of NNHInfo for cases where there is no extra info template<> class NNHInfo<_NoInfo> { public: NNHInfo() {} NNHInfo(_NoInfo * ) {} template void init_jet(NNBJ * briefjet, const fastjet::PseudoJet & jet, int index) { briefjet->init(jet, index);} }; //---------------------------------------------------------------------- /// @ingroup advanced_usage /// \class NNH /// Help solve closest pair problems with generic interparticle and /// beam distance. /// /// Class to help solve closest pair problems with generic interparticle /// distances and a beam distance, using Anderberg's Nearest Neighbour /// Heuristic. /// /// It is templated with a BJ (brief jet) class --- BJ should /// basically cache the minimal amount of information that is needed /// to efficiently calculate interparticle distances and particle-beam /// distances. /// /// This class can be used with or without an extra "Information" template, /// i.e. NNB or NNH /// /// For the NNH version of the class to function, BJ must provide /// three member functions /// /// - void BJ::init(const PseudoJet & jet); // initialise with a PseudoJet /// - double BJ::distance(const BJ * other_bj_jet); // distance between this and other_bj_jet /// - double BJ::beam_distance() ; // distance to the beam /// /// For the NNH version to function, the BJ::init(...) member /// must accept an extra argument /// /// - void BJ::init(const PseudoJet & jet, I * info); // initialise with a PseudoJet + info /// /// where info might be a pointer to a class that contains, e.g., information /// about R, or other parameters of the jet algorithm /// /// For an example of how the NNH class is used, see the Jade (and /// EECambridge) plugins /// /// NB: the NNH algorithm is expected N^2, but has a worst case of /// N^3. Many QCD problems tend to place one closer to the N^3 end of /// the spectrum than one would like. There is scope for further /// progress (cf Eppstein, Cardinal & Eppstein), nevertheless the /// current class is already significantly faster than standard N^3 /// implementations. /// /// /// Implementation note: this class derives from NNHInfo, which deals /// with storing any global information that is needed during the clustering template class NNH : public NNHInfo { public: /// constructor with an initial set of jets (which will be assigned indices /// 0 ... jets.size()-1 NNH(const std::vector & jets) {start(jets);} NNH(const std::vector & jets, I * info) : NNHInfo(info) {start(jets);} void start(const std::vector & jets); /// return the dij_min and indices iA, iB, for the corresponding jets. /// If iB < 0 then iA recombines with the beam double dij_min(int & iA, int & iB); /// remove the jet pointed to by index iA void remove_jet(int iA); /// merge the jets pointed to by indices A and B and replace them with /// jet, assigning it an index jet_index. void merge_jets(int iA, int iB, const PseudoJet & jet, int jet_index); /// a destructor ~NNH() { delete[] briefjets; } private: class NNBJ; // forward declaration /// establish the nearest neighbour for jet, and cross check constistency /// of distances for the other jets that are encountered. Assumes /// jet not contained within begin...end void set_NN_crosscheck(NNBJ * jet, NNBJ * begin, NNBJ * end); /// establish the nearest neighbour for jet; don't cross check other jets' /// distances and allow jet to be contained within begin...end void set_NN_nocross (NNBJ * jet, NNBJ * begin, NNBJ * end); /// contains the briefjets NNBJ * briefjets; /// semaphores for the current extent of our structure NNBJ * head, * tail; /// currently active number of jets int n; /// where_is[i] contains a pointer to the jet with index i std::vector where_is; /// a class that wraps around the BJ, supplementing it with extra information /// such as pointers to neighbours, etc. class NNBJ : public BJ { public: void init(const PseudoJet & jet, int index_in) { BJ::init(jet); other_init(index_in); } void init(const PseudoJet & jet, int index_in, I * info) { BJ::init(jet, info); other_init(index_in); } void other_init(int index_in) { _index = index_in; NN_dist = BJ::beam_distance(); NN = NULL; } int index() const {return _index;} double NN_dist; NNBJ * NN; private: int _index; }; }; //---------------------------------------------------------------------- template void NNH::start(const std::vector & jets) { n = jets.size(); briefjets = new NNBJ[n]; where_is.resize(2*n); NNBJ * jetA = briefjets; // initialise the basic jet info for (int i = 0; i< n; i++) { //jetA->init(jets[i], i); this->init_jet(jetA, jets[i], i); where_is[i] = jetA; jetA++; // move on to next entry of briefjets } tail = jetA; // a semaphore for the end of briefjets head = briefjets; // a nicer way of naming start // now initialise the NN distances: jetA will run from 1..n-1; and // jetB from 0..jetA-1 for (jetA = head + 1; jetA != tail; jetA++) { // set NN info for jetA based on jets running from head..jetA-1, // checking in the process whether jetA itself is an undiscovered // NN of one of those jets. set_NN_crosscheck(jetA, head, jetA); } //std::cout << "OOOO " << briefjets[1].NN_dist << " " << briefjets[1].NN - briefjets << std::endl; } //---------------------------------------------------------------------- template double NNH::dij_min(int & iA, int & iB) { // find the minimum of the diJ on this round double diJ_min = briefjets[0].NN_dist; int diJ_min_jet = 0; for (int i = 1; i < n; i++) { if (briefjets[i].NN_dist < diJ_min) { diJ_min_jet = i; diJ_min = briefjets[i].NN_dist; } } // return information to user about recombination NNBJ * jetA = & briefjets[diJ_min_jet]; //std::cout << jetA - briefjets << std::endl; iA = jetA->index(); iB = jetA->NN ? jetA->NN->index() : -1; return diJ_min; } //---------------------------------------------------------------------- // remove jetA from the list template void NNH::remove_jet(int iA) { NNBJ * jetA = where_is[iA]; // now update our nearest neighbour info and diJ table // first reduce size of table tail--; n--; // Copy last jet contents and diJ info into position of jetA *jetA = *tail; // update the info on where the given index is stored where_is[jetA->index()] = jetA; for (NNBJ * jetI = head; jetI != tail; jetI++) { // see if jetI had jetA or jetB as a NN -- if so recalculate the NN if (jetI->NN == jetA) set_NN_nocross(jetI, head, tail); // if jetI's NN is the new tail then relabel it so that it becomes jetA if (jetI->NN == tail) {jetI->NN = jetA;} } } //---------------------------------------------------------------------- template void NNH::merge_jets(int iA, int iB, const PseudoJet & jet, int index) { NNBJ * jetA = where_is[iA]; NNBJ * jetB = where_is[iB]; // If necessary relabel A & B to ensure jetB < jetA, that way if // the larger of them == newtail then that ends up being jetA and // the new jet that is added as jetB is inserted in a position that // has a future! if (jetA < jetB) std::swap(jetA,jetB); // initialise jetB based on the new jet //jetB->init(jet, index); this->init_jet(jetB, jet, index); // and record its position (making sure we have the space) if (index >= int(where_is.size())) where_is.resize(2*index); where_is[jetB->index()] = jetB; // now update our nearest neighbour info // first reduce size of table tail--; n--; // Copy last jet contents into position of jetA *jetA = *tail; // update the info on where the tail's index is stored where_is[jetA->index()] = jetA; for (NNBJ * jetI = head; jetI != tail; jetI++) { // see if jetI had jetA or jetB as a NN -- if so recalculate the NN if (jetI->NN == jetA || jetI->NN == jetB) { set_NN_nocross(jetI, head, tail); } // check whether new jetB is closer than jetI's current NN and // if need be update things double dist = jetI->distance(jetB); if (dist < jetI->NN_dist) { if (jetI != jetB) { jetI->NN_dist = dist; jetI->NN = jetB; } } if (dist < jetB->NN_dist) { if (jetI != jetB) { jetB->NN_dist = dist; jetB->NN = jetI; } } // if jetI's NN is the new tail then relabel it so that it becomes jetA if (jetI->NN == tail) {jetI->NN = jetA;} } } //---------------------------------------------------------------------- // this function assumes that jet is not contained within begin...end template void NNH::set_NN_crosscheck(NNBJ * jet, NNBJ * begin, NNBJ * end) { double NN_dist = jet->beam_distance(); NNBJ * NN = NULL; for (NNBJ * jetB = begin; jetB != end; jetB++) { double dist = jet->distance(jetB); if (dist < NN_dist) { NN_dist = dist; NN = jetB; } if (dist < jetB->NN_dist) { jetB->NN_dist = dist; jetB->NN = jet; } } jet->NN = NN; jet->NN_dist = NN_dist; } //---------------------------------------------------------------------- // set the NN for jet without checking whether in the process you might // have discovered a new nearest neighbour for another jet template void NNH::set_NN_nocross( NNBJ * jet, NNBJ * begin, NNBJ * end) { double NN_dist = jet->beam_distance(); NNBJ * NN = NULL; // if (head < jet) { // for (NNBJ * jetB = head; jetB != jet; jetB++) { if (begin < jet) { for (NNBJ * jetB = begin; jetB != jet; jetB++) { double dist = jet->distance(jetB); if (dist < NN_dist) { NN_dist = dist; NN = jetB; } } } // if (tail > jet) { // for (NNBJ * jetB = jet+1; jetB != tail; jetB++) { if (end > jet) { for (NNBJ * jetB = jet+1; jetB != end; jetB++) { double dist = jet->distance (jetB); if (dist < NN_dist) { NN_dist = dist; NN = jetB; } } } jet->NN = NN; jet->NN_dist = NN_dist; } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __FASTJET_NNH_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/internal/0000755000175000017500000000000012233507301020125 5ustar sunsunfastjet-3.0.6+dfsg.orig/include/fastjet/internal/ClosestPair2DBase.hh0000644000175000017500000001111511766120135023664 0ustar sunsun//STARTHEADER // $Id: ClosestPair2DBase.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CLOSESTPAIR2DBASE__HH__ #define __FASTJET_CLOSESTPAIR2DBASE__HH__ #include #include "fastjet/internal/base.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- /// \if internal_doc /// @ingroup internal /// \class Coord2D /// class for representing 2d coordinates and carrying out some basic /// operations on them /// \endif class Coord2D { public: double x, y; Coord2D() {}; Coord2D(double a, double b): x(a), y(b) {}; /// return the vector difference between two coordinates Coord2D operator-(const Coord2D & other) const { return Coord2D(x - other.x, y - other.y);}; /// return the vector sum between two coordinates Coord2D operator+(const Coord2D & other) const { return Coord2D(x + other.x, y + other.y);}; /// return the product of the coordinate with the factor Coord2D operator*(double factor) const {return Coord2D(factor*x,factor*y);}; friend Coord2D operator*(double factor, const Coord2D & coord) { return Coord2D(factor*coord.x,factor*coord.y); } /// division of each component of coordinate Coord2D operator/(double divisor) const { return Coord2D(x / divisor, y / divisor);}; /// return the squared distance between two coordinates friend double distance2(const Coord2D & a, const Coord2D & b) { double dx = a.x - b.x, dy = a.y-b.y; return dx*dx+dy*dy; }; /// return the squared distance between two coordinates double distance2(const Coord2D & b) const { double dx = x - b.x, dy = y-b.y; return dx*dx+dy*dy; }; }; //---------------------------------------------------------------------- /// \if internal_doc /// @ingroup internal /// \class ClosestPair2DBase /// abstract base class for finding closest pairs in 2D /// \endif class ClosestPair2DBase { public: /// provides the IDs of the closest pair as well as the squared /// distance between them virtual void closest_pair(unsigned int & ID1, unsigned int & ID2, double & distance2) const = 0; /// removes the entry labelled by ID from the object; virtual void remove(unsigned int ID) = 0; /// inserts the position into the closest pair structure and returns the /// ID that has been allocated for the object. virtual unsigned int insert(const Coord2D & position) = 0; /// replaces the specified ID1 and ID2 with something at a new position /// assuming that ID1 and ID2 are in sequence wrt position; it returns /// the ID of the new object... virtual unsigned int replace(unsigned int ID1, unsigned int ID2, const Coord2D & position) { remove(ID1); remove(ID2); unsigned new_ID = insert(position); return(new_ID); }; /// replaces IDs_to_remove with points at the new_positions /// indicating the IDs allocated to the new points in new_IDs virtual void replace_many(const std::vector & IDs_to_remove, const std::vector & new_positions, std::vector & new_IDs) { for(unsigned i = 0; i < IDs_to_remove.size(); i++) { remove(IDs_to_remove[i]);} new_IDs.resize(0); for(unsigned i = 0; i < new_positions.size(); i++) { new_IDs.push_back(insert(new_positions[i]));} } virtual unsigned int size() = 0; virtual ~ClosestPair2DBase() {}; }; FASTJET_END_NAMESPACE #endif // __FASTJET_CLOSESTPAIR2DBASE__HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/internal/BasicRandom.hh0000644000175000017500000001276011766120135022644 0ustar sunsun// Simple random number generator class taken from nlojet++. // Some doxygen-style comments added by Gavin Salam, August 2006. // $Id: BasicRandom.hh 1761 2010-09-16 10:43:18Z soyez $ // // Copyright (C) 2002 Zoltan Nagy // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef __FASTJET_BASICRANDOM_HH__ #define __FASTJET_BASICRANDOM_HH__ 1 // Standard includes #include #include #include #include "fastjet/internal/base.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// \if internal_doc /// @ingroup internal /// \class BasicRandom /// Base class for random number generator of a generic value type /// \endif template class BasicRandom { public: typedef _Tp value_type; typedef unsigned int size_type; typedef value_type* pointer; // give pseudo random numbers value_type operator() (); void operator() (size_type, pointer); // (re)initialize the random number generator void randomize(void *); // minimum and maximum values static value_type min(); static value_type max(); // print the informations about the generator to the stream void print_info(std::ostream& __os = std::cout); }; // default random generator int __default_random_generator(int *__iseed); // specializations /// \if internal_doc /// @ingroup internal /// template specialization (int) for the BasicRandom template class. /// \endif template<> class BasicRandom { public: typedef int value_type; typedef unsigned int size_type; typedef value_type* pointer; // constructors explicit BasicRandom(int __s1 = 12345, int __s2 = 67890) { _M_iseed[0] = __s1; _M_iseed[1] = __s2; } // give pseudo random numbers value_type operator() () { return __default_random_generator(_M_iseed); } void operator() (size_type __n, pointer __res) { for(size_type __i = 0; __i < __n; __i++) __res[__i] = __default_random_generator(_M_iseed); } // (re)initialize the random number generator void randomize(void *__iseed) { int *__new_seed = (int*) __iseed; _M_iseed[0] = __new_seed[0]; _M_iseed[1] = __new_seed[1]; } void set_status(const std::vector & __iseed) { assert(__iseed.size() >= 2); _M_iseed[0] = __iseed[0]; _M_iseed[1] = __iseed[1]; } void get_status(std::vector & __iseed) { __iseed.resize(2); __iseed[0] = _M_iseed[0]; __iseed[1] = _M_iseed[1]; } // minimum and maximum values inline static value_type min() { return 0;} inline static value_type max() { return 2147483647;} // print the informations about the generator to the stream void print_info(std::ostream& __os = std::cout) { __os<<"BasicRandom : "<<_M_iseed[0]<<", "<<_M_iseed[1]< class BasicRandom { public: typedef double value_type; typedef unsigned int size_type; typedef value_type* pointer; /// constructor that takes two integers to specify the seed explicit BasicRandom(int __s1 = 12345, int __s2 = 67890) { _M_iseed[0] = __s1; _M_iseed[1] = __s2; } /// return a single pseudorandom double number, in the range 0.0 to 1.0 /// (not sure whether this range is open or closed) value_type operator() () { return 4.6566128752457969241e-10*__default_random_generator(_M_iseed); } /// given a pointer __res to the beginning of an array, fill that array /// with __n random numbers void operator() (size_type __n, pointer __res) { for(size_type __i = 0; __i < __n; __i++) __res[__i] = this -> operator()(); } /// (re)initialize the random number generator from an array of seeds void randomize(void *__iseed) { int *__new_seed = (int*) __iseed; _M_iseed[0] = __new_seed[0]; _M_iseed[1] = __new_seed[1]; } void set_status(const std::vector & __iseed) { assert(__iseed.size() >= 2); _M_iseed[0] = __iseed[0]; _M_iseed[1] = __iseed[1]; } void get_status(std::vector & __iseed) { __iseed.resize(2); __iseed[0] = _M_iseed[0]; __iseed[1] = _M_iseed[1]; } /// minimum value returned by the generator inline static value_type min() { return 0.0;} /// maximum value returned by the generator inline static value_type max() { return 1.0;} /// print information about the generator to the stream void print_info(std::ostream& __os = std::cout) { __os<<"BasicRandom : "<<_M_iseed[0]<<", "<<_M_iseed[1]< _G_random_int; extern BasicRandom _G_random_double; FASTJET_END_NAMESPACE #endif // __FASTJET_BASICRANDOM_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/internal/ClosestPair2D.hh0000644000175000017500000002011411766120135023070 0ustar sunsun//STARTHEADER // $Id: ClosestPair2D.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CLOSESTPAIR2D__HH__ #define __FASTJET_CLOSESTPAIR2D__HH__ #include #include #include #include "fastjet/internal/ClosestPair2DBase.hh" #include "fastjet/internal/SearchTree.hh" #include "fastjet/internal/MinHeap.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- /// \if internal_doc /// @ingroup internal /// \class ClosestPair2D /// concrete implementation for finding closest pairs in 2D -- will /// use Chan's (hopefully efficient) shuffle based structures /// \endif class ClosestPair2D : public ClosestPair2DBase { public: /// constructor from a vector of 2D positions -- number of objects /// after insertion and deletion must never exceed positions.size(); /// objects are given IDs that correspond to their index in the vector /// of positions ClosestPair2D(const std::vector & positions, const Coord2D & left_corner, const Coord2D & right_corner) { _initialize(positions, left_corner, right_corner, positions.size()); }; /// constructor which allows structure to grow beyond positions.size(), up /// to max_size ClosestPair2D(const std::vector & positions, const Coord2D & left_corner, const Coord2D & right_corner, const unsigned int max_size) { _initialize(positions, left_corner, right_corner, max_size); }; /// provides the IDs of the closest pair as well as the distance between /// them void closest_pair(unsigned int & ID1, unsigned int & ID2, double & distance2) const; /// removes the entry labelled by ID from the object; void remove(unsigned int ID); /// inserts the position into the closest pair structure and returns the /// ID that has been allocated for the object. unsigned int insert(const Coord2D &); /// removes ID1 and ID2 and inserts position, returning the ID /// corresponding to position... virtual unsigned int replace(unsigned int ID1, unsigned int ID2, const Coord2D & position); /// replaces IDs_to_remove with points at the new_positions /// indicating the IDs allocated to the new points in new_IDs virtual void replace_many(const std::vector & IDs_to_remove, const std::vector & new_positions, std::vector & new_IDs); // mostly for checking how things are working... inline void print_tree_depths(std::ostream & outdev) const { outdev << _trees[0]->max_depth() << " " << _trees[1]->max_depth() << " " << _trees[2]->max_depth() << "\n"; }; unsigned int size(); private: void _initialize(const std::vector & positions, const Coord2D & left_corner, const Coord2D & right_corner, const unsigned int max_size); static const unsigned int _nshift = 3; class Point; // will be defined below /// since sets of three objects will crop up repeatedly, useful /// to have a triplet class? template class triplet { public: inline const T & operator[](unsigned int i) const {return _contents[i];}; inline T & operator[](unsigned int i) {return _contents[i];}; private: T _contents[_nshift]; }; /// class that will take care of ordering of shuffles for us class Shuffle { public: unsigned int x, y; Point * point; bool operator<(const Shuffle &) const; void operator+=(unsigned int shift) {x += shift; y+= shift;}; }; typedef SearchTree Tree; typedef Tree::circulator circulator; typedef Tree::const_circulator const_circulator; triplet > _trees; std::auto_ptr _heap; std::vector _points; std::stack _available_points; /// points that are "under review" in some way std::vector _points_under_review; // different statuses for review static const unsigned int _remove_heap_entry = 1; static const unsigned int _review_heap_entry = 2; static const unsigned int _review_neighbour = 4; /// add a label to a point as to the nature of review needed /// (includes adding it to list of points needing review) [doesn't /// affect other labels already set for the point] void _add_label(Point * point, unsigned int review_flag); /// sets the label for the point to be exclusively this /// review flag (and adds it to list of points needing review /// if not already there) void _set_label(Point * point, unsigned int review_flag); /// for all entries of the _points_under_review[] vector, carry out /// the actions indicated by its review flag; the points are /// then removed from _points_under_review[] and their flags /// set to zero void _deal_with_points_to_review(); /// carry out the search-tree related operations of point removal void _remove_from_search_tree(Point * point_to_remove); /// carry out the search-tree related operations of point insertion void _insert_into_search_tree(Point * new_point); /// takes a point and creates a shuffle with the given shift void _point2shuffle(Point & , Shuffle & , unsigned int shift); /// pieces needed for converting coordinates to integer Coord2D _left_corner; double _range; int _ID(const Point *) const; triplet _shifts; // absolute shifts triplet _rel_shifts; // shifts relative to previous shift unsigned int _cp_search_range; }; //---------------------------------------------------------------------- /// \if internal_doc /// @ingroup internal /// \class ClosestPair2D::Point /// class for representing all info needed about a point /// \endif class ClosestPair2D::Point { public: /// the point's coordinates Coord2D coord; /// a pointer to its closest neighbour in our structure Point * neighbour; /// the corresponding squared distance double neighbour_dist2; /// circulators for each of the shifts of the shuffles triplet circ; /// indicates that something special is currently happening to this point unsigned int review_flag; /// returns the distance between two of these objects double distance2(const Point & other) const { return coord.distance2(other.coord); }; /// creates a shuffle for us with a given shift //void set_shuffle(Shuffle & shuffle); }; //---------------------------------------------------------------------- /// returns true if floor(ln_base2(x)) < floor(ln_base2(y)), using /// Chan's neat trick... inline bool floor_ln2_less(unsigned x, unsigned y) { if (x>y) return false; return (x < (x^y)); // beware of operator precedence... } //---------------------------------------------------------------------- /// returns the ID for the specified point... inline int ClosestPair2D::_ID(const Point * point) const { return point - &(_points[0]); } // inline unsigned int ClosestPair2D::size() { return _points.size() - _available_points.size(); } FASTJET_END_NAMESPACE #endif // __FASTJET_CLOSESTPAIR2D__HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/internal/DynamicNearestNeighbours.hh0000644000175000017500000001477511766120135025426 0ustar sunsun//STARTHEADER // $Id: DynamicNearestNeighbours.hh 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_DYNAMICNEARESTNEIGHBOURS_HH__ #define __FASTJET_DYNAMICNEARESTNEIGHBOURS_HH__ #include #include #include #include #include #include "fastjet/internal/numconsts.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// Shortcut for dealing with eta-phi coordinates. //typedef std::pair EtaPhi; /// \if internal_doc /// @ingroup internal /// \class EtaPhi /// use a class instead of a pair so that phi can be sanitized /// and put into proper range on initialization. /// \endif class EtaPhi { public: double first, second; EtaPhi() {} EtaPhi(double a, double b) {first = a; second = b;} /// put things into the desired range. void sanitize() { if (second < 0) second += twopi; if (second >= twopi) second -= twopi; } }; /// \if internal_doc /// @ingroup internal /// \class DnnError /// class corresponding to errors that will be thrown by Dynamic /// Nearest Neighbours code /// \endif class DnnError { public: // constructors DnnError() {;}; DnnError(const std::string & message_in) { _message = message_in; std::cerr << message_in << std::endl;}; std::string message() const {return _message;}; private: std::string _message; }; /// \if internal_doc /// @ingroup internal /// \class DynamicNearestNeighbours /// Abstract base class for quick location of nearest neighbours in a set of /// points. /// /// Abstract base class for quick location of nearest neighbours in a set of /// points, with facilities for adding and removing points from the /// set after initialisation. Derived classes will be /// named according to the convention DnnSomeName (e.g. DnnPlane). /// /// The main purpose of this abstract base class is to define the /// general interface of a whole set of classes that deal with /// nearest-neighbour location on different 2-d geometries and with /// various underlying data structures and algorithms. /// /// \endif class DynamicNearestNeighbours { public: /// Dummy initialiser --- does nothing! //virtual DynamicNearestNeighbours() {}; /// Initialiser --- sets up the necessary structures to allow efficient /// nearest-neighbour finding on the std::vector of input points //virtual DynamicNearestNeighbours(const std::vector &, // const bool & verbose = false ) = 0; /// Returns the index of the nearest neighbour of point labelled /// by ii (assumes ii is valid) virtual int NearestNeighbourIndex(const int & ii) const = 0; /// Returns the distance to the nearest neighbour of point labelled /// by index ii (assumes ii is valid) virtual double NearestNeighbourDistance(const int & ii) const = 0; /// Returns true iff the given index corresponds to a point that /// exists in the DNN structure (meaning that it has been added, and /// not removed in the meantime) virtual bool Valid(const int & index) const = 0; /// remove the points labelled by the std::vector indices_to_remove, and /// add the points specified by the std::vector points_to_add /// (corresponding indices will be calculated automatically); the /// idea behind this routine is that the points to be added will /// somehow be close to the one or other of the points being removed /// and this can be used by the implementation to provide hints for /// inserting the new points in whatever structure it is using. In a /// kt-algorithm the points being added will be a result of a /// combination of the points to be removed -- hence the proximity /// is (more or less) guaranteed. virtual void RemoveAndAddPoints(const std::vector & indices_to_remove, const std::vector & points_to_add, std::vector & indices_added, std::vector & indices_of_updated_neighbours) = 0; /// Remove the point labelled by index and return the list of /// points whose nearest neighbours have changed in the process inline void RemovePoint (const int & index, std::vector & indices_of_updated_neighbours) { std::vector indices_added; std::vector points_to_add; std::vector indices_to_remove(1); indices_to_remove[0] = index; RemoveAndAddPoints(indices_to_remove, points_to_add, indices_added, indices_of_updated_neighbours );}; /// Removes the two points labelled by index1, index2 and adds in the /// a point with coordinates newpoint; it returns an index for the new /// point (index 3) and a std::vector of indices of neighbours whose /// nearest neighbour has changed (the list includes index3, i.e. the new /// point). inline void RemoveCombinedAddCombination( const int & index1, const int & index2, const EtaPhi & newpoint, int & index3, std::vector & indices_of_updated_neighbours) { std::vector indices_added(1); std::vector points_to_add(1); std::vector indices_to_remove(2); indices_to_remove[0] = index1; indices_to_remove[1] = index2; points_to_add[0] = newpoint; RemoveAndAddPoints(indices_to_remove, points_to_add, indices_added, indices_of_updated_neighbours ); index3 = indices_added[0]; }; /// destructor -- here it is now implemented virtual ~DynamicNearestNeighbours () {} }; FASTJET_END_NAMESPACE #endif // __FASTJET_DYNAMICNEARESTNEIGHBOURS_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/internal/Triangulation.hh0000644000175000017500000000737411766120135023307 0ustar sunsun#ifndef DROP_CGAL // in case we do not have the code for CGAL #ifndef __FASTJET_TRIANGULATION__ #define __FASTJET_TRIANGULATION__ //STARTHEADER // $Id: Triangulation.hh 2595 2011-09-23 09:05:04Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER // file: examples/Triangulation_2/Voronoi.C #include #include #include #include #include "fastjet/internal/base.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// \if internal_doc /// @ingroup internal /// \struct K /// the basic geometrical kernel that lies at the base of all CGAL /// operations /// \endif #ifdef CGAL_SIMPLE_KERNEL struct K : CGAL::Simple_cartesian {}; #else struct K : CGAL::Exact_predicates_inexact_constructions_kernel {}; #endif // CGAL_SIMPLE_KERNEL // our extras to help us navigate, find distance, etc. const int INFINITE_VERTEX=-1; const int NEW_VERTEX=-2; const double HUGE_DOUBLE=1e300; /// \if internal_doc /// @ingroup internal /// \struct InitialisedInt /// A class to provide an "int" with an initial value. /// \endif class InitialisedInt { private: int _val; public: inline InitialisedInt () {_val=NEW_VERTEX;}; inline InitialisedInt& operator= (int value) {_val = value; return *this;}; inline int val() const {return _val;}; }; // We can have triangulations with and without hierarchies -- those with // are able to guarantee N ln N time for the construction of a large // triangulation, whereas those without go as N^{3/2} for points // sufficiently uniformly distributed in a plane. // //#define NOHIERARCHY #ifdef NOHIERARCHY typedef CGAL::Triangulation_vertex_base_with_info_2 Vb; typedef CGAL::Triangulation_face_base_2 Fb; typedef CGAL::Triangulation_data_structure_2 Tds; typedef CGAL::Delaunay_triangulation_2 Triangulation; #else typedef CGAL::Triangulation_vertex_base_with_info_2 Vbb; typedef CGAL::Triangulation_hierarchy_vertex_base_2 Vb; typedef CGAL::Triangulation_face_base_2 Fb; typedef CGAL::Triangulation_data_structure_2 Tds; typedef CGAL::Delaunay_triangulation_2 Dt; typedef CGAL::Triangulation_hierarchy_2
Triangulation; #endif typedef Triangulation::Vertex_handle Vertex_handle; typedef Triangulation::Point Point; /// CGAL Point structure typedef Triangulation::Vertex_circulator Vertex_circulator; typedef Triangulation::Face_circulator Face_circulator; typedef Triangulation::Face_handle Face_handle; FASTJET_END_NAMESPACE #endif // __FASTJET_TRIANGULATION__ #endif // DROP_CGAL fastjet-3.0.6+dfsg.orig/include/fastjet/internal/DnnPlane.hh0000644000175000017500000001340011766120135022151 0ustar sunsun//STARTHEADER // $Id: DnnPlane.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef DROP_CGAL // in case we do not have the code for CGAL #ifndef __FASTJET_DNNPLANE_HH__ #define __FASTJET_DNNPLANE_HH__ #include "fastjet/internal/Triangulation.hh" #include "fastjet/internal/DynamicNearestNeighbours.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// \if internal_doc /// @ingroup internal /// \class DnnPlane /// class derived from DynamicNearestNeighbours that provides an /// implementation for the Euclidean plane /// \endif class DnnPlane : public DynamicNearestNeighbours { public: /// empty initaliser DnnPlane() {} /// Initialiser from a set of points on an Eta-Phi plane, where both /// eta and phi can have arbitrary ranges DnnPlane(const std::vector &, const bool & verbose = false ); /// Returns the index of the nearest neighbour of point labelled /// by ii (assumes ii is valid) int NearestNeighbourIndex(const int & ii) const ; /// Returns the distance to the nearest neighbour of point labelled /// by index ii (assumes ii is valid) double NearestNeighbourDistance(const int & ii) const ; /// Returns true iff the given index corresponds to a point that /// exists in the DNN structure (meaning that it has been added, and /// not removed in the meantime) bool Valid(const int & index) const; void RemoveAndAddPoints(const std::vector & indices_to_remove, const std::vector & points_to_add, std::vector & indices_added, std::vector & indices_of_updated_neighbours); /// returns the EtaPhi of point with index i. EtaPhi etaphi(const int i) const; /// returns the eta point with index i. double eta(const int i) const; /// returns the phi point with index i. double phi(const int i) const; private: /// Structure containing a vertex_handle and cached information on /// the nearest neighbour. struct SuperVertex { Vertex_handle vertex; // NULL indicates inexistence... double NNdistance; int NNindex; // later on for cylinder put a second vertex? }; std::vector _supervertex; //set _vertex_set; bool _verbose; static const bool _crash_on_coincidence = true; //static const bool _crash_on_coincidence = false; Triangulation _TR; /// CGAL object for dealing with triangulations /// calculates and returns the euclidean distance between points p1 /// and p2 inline double _euclid_distance(const Point& p1, const Point& p2) const { double distx= p1.x()-p2.x(); double disty= p1.y()-p2.y(); return distx*distx+disty*disty; } //---------------------------------------------------------------------- /// Determines the index and distance of the nearest neighbour to /// point j and puts the information into the _supervertex entry for j void _SetNearest(const int & j); //---------------------------------------------------------------------- /// Determines and stores the nearest neighbour of j. /// /// For each voronoi neighbour D of j if the distance between j and D /// is less than D's own nearest neighbour, then update the /// nearest-neighbour info in D; push D's index onto /// indices_of_updated_neighbours /// /// Note that j is NOT pushed onto indices_of_updated_neighbours -- /// if you want it there, put it there yourself. void _SetAndUpdateNearest(const int & j, std::vector & indices_of_updated_neighbours); /// given a vertex_handle returned by CGAL on insertion of a new /// points, crash if it turns out that it corresponds to a vertex /// that we already knew about (usually because two points coincide) void _CrashIfVertexPresent(const Vertex_handle & vertex, const int & its_index); }; // here follow some inline implementations of the simpler of the // functions defined above inline int DnnPlane::NearestNeighbourIndex(const int & ii) const { return _supervertex[ii].NNindex;} inline double DnnPlane::NearestNeighbourDistance(const int & ii) const { return _supervertex[ii].NNdistance;} inline bool DnnPlane::Valid(const int & index) const { if (index >= 0 && index < static_cast(_supervertex.size())) { return (_supervertex[index].vertex != NULL);} else {return false;} } inline EtaPhi DnnPlane::etaphi(const int i) const { Point * p = & (_supervertex[i].vertex->point()); return EtaPhi(p->x(),p->y()); } inline double DnnPlane::eta(const int i) const { return _supervertex[i].vertex->point().x(); } inline double DnnPlane::phi(const int i) const { return _supervertex[i].vertex->point().y(); } FASTJET_END_NAMESPACE #endif // __FASTJET_DNNPLANE_HH__ #endif // DROP_CGAL fastjet-3.0.6+dfsg.orig/include/fastjet/internal/IsBase.hh0000644000175000017500000001320712127746207021633 0ustar sunsun//STARTHEADER // $Id: IsBase.hh 3071 2013-04-01 12:52:46Z cacciari $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_INTERNAL_IS_BASE_HH__ #define __FASTJET_INTERNAL_IS_BASE_HH__ #include "fastjet/internal/numconsts.hh" FASTJET_BEGIN_NAMESPACE //--------------------------------------------------- // define a true and a false 'type' // Note: // we could actually template the type and recover // the TR1 integral_constant type. This also // includes adding a typedef for the type and a // typedef for the struct in the struct below // // This is going to be helpful to "split" a given // call into 2 options based on a type constraint // at compilation-time (rather than doing an "if" // which would only be resolved at runtime and could // thus resutl in compilation errors. //--------------------------------------------------- /// \if internal_doc /// \class integral_type /// a generic construct that promotes a generic value of a generic type /// as a type /// /// this has 2 template parameters: T, the considered type, and _t, a /// value of type T /// This object is a basic construct in type traits /// \endif template struct integral_type{ static const T value = _t; ///< the value (only member carrying info) typedef T value_type; ///< a typedef for the type T typedef integral_type type; ///< a typedef for the whole structure }; // definition of the static member in integral_type template const T integral_type::value; // shortcuts typedef integral_type true_type; ///< the bool 'true' value promoted to a type typedef integral_type false_type; ///< the bool 'false' value promoted to a type //--------------------------------------------------- // define a yes and a no type (based on their size) //--------------------------------------------------- typedef char (&__yes_type)[1]; //< the yes type typedef char (&__no_type) [2]; //< the no type //--------------------------------------------------- // Now deal with inheritance checks // // We want to provide a IsBaseAndDerived type // trait that contains a value that is true if D // is derived from B and false otherwise. // // For an explanation of how the code below works, // have a look at // http://groups.google.com/group/comp.lang.c++.moderated/msg/dd6c4e4d5160bd83 // and the links therein // // WARNING: according to 'boost', this may have some // issues with MSVC7.1. See their code for a description // of the workaround used below //--------------------------------------------------- /// \if internal_doc /// \class __inheritance_helper /// helper for IsBasedAndDerived /// \endif template struct __inheritance_helper{ #if !((_MSC_VER !=0 ) && (_MSC_VER == 1310)) // MSVC 7.1 template static __yes_type check_sig(D const volatile *, T); #else static __yes_type check_sig(D const volatile *, long); #endif static __no_type check_sig(B const volatile *, int); }; /// \if internal_doc /// \class IsBaseAndDerived /// check if the second template argument is derived from the first one /// /// this class has 2 template dependencies: B and D. It contains a /// static boolean value that will be true if D is derived from B and /// false otherwise. /// /// Note: This construct may have a problem with MSVC7.1. See the /// boost implementation for a description and workaround /// \endif template struct IsBaseAndDerived{ #if ((_MSC_FULL_VER != 0) && (_MSC_FULL_VER >= 140050000)) #pragma warning(push) #pragma warning(disable:6334) #endif /// \if internal_doc /// a helper structure that will pick between a casting to B*const /// or D. /// /// precisely how this structure works involves advanced C++ /// conversion rules /// \endif struct Host{ #if !((_MSC_VER !=0 ) && (_MSC_VER == 1310)) operator B const volatile *() const; #else operator B const volatile * const&() const; #endif operator D const volatile *(); }; /// the boolean value being true if D is derived from B static const bool value = ((sizeof(B)!=0) && (sizeof(D)!=0) && (sizeof(__inheritance_helper::check_sig(Host(), 0)) == sizeof(__yes_type))); #if ((_MSC_FULL_VER != 0) && (_MSC_FULL_VER >= 140050000)) #pragma warning(pop) #endif }; /// a little helper that returns a pointer to d of type B* if D is /// derived from B and NULL otherwise template B* cast_if_derived(D* d){ return IsBaseAndDerived::value ? (B*)(d) : 0; } FASTJET_END_NAMESPACE #endif // __IS_BASE_OF_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/internal/ClusterSequence_N2.icc0000644000175000017500000001473012215265366024277 0ustar sunsun// -*- C++ -*- #ifndef __FASTJET_CLUSTERQUENCE_N2_ICC__ #define __FASTJET_CLUSTERQUENCE_N2_ICC__ #include "fastjet/ClusterSequence.hh" //STARTHEADER // $Id: ClusterSequence_N2.cc 1351 2009-01-09 18:03:03Z salam $ // // Copyright (c) 2005-2009, Matteo Cacciari, Gavin Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet; if not, write to the Free Software // Foundation, Inc.: // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //---------------------------------------------------------------------- //ENDHEADER //---------------------------------------------------------------------- /// Order(N^2) clustering /// /// Works for any class BJ that satisfies certain minimal /// requirements (which are ...?) /// /// - need to have _bj_set_jetinfo /// - need to have _bj_dist /// - should contain members kt2 (=energy^2), NN, NN_dist, _jets_index FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // this should not normally appear in an include file, but we'll make an // exception seeing as this is //using namespace std; template void ClusterSequence::_simple_N2_cluster() { int n = _jets.size(); BJ * briefjets = new BJ[n]; BJ * jetA = briefjets, * jetB; // initialise the basic jet info for (int i = 0; i< n; i++) { _bj_set_jetinfo(jetA, i); jetA++; // move on to next entry of briefjets } BJ * tail = jetA; // a semaphore for the end of briefjets BJ * head = briefjets; // a nicer way of naming start // now initialise the NN distances: jetA will run from 1..n-1; and // jetB from 0..jetA-1 for (jetA = head + 1; jetA != tail; jetA++) { // set NN info for jetA based on jets running from head..jetA-1, // checking in the process whether jetA itself is an undiscovered // NN of one of those jets. _bj_set_NN_crosscheck(jetA, head, jetA); } // now create the diJ (where J is i's NN) table -- remember that // we differ from standard normalisation here by a factor of R2 double * diJ = new double[n]; jetA = head; for (int i = 0; i < n; i++) { diJ[i] = _bj_diJ(jetA); jetA++; // have jetA follow i } // now run the recombination loop int history_location = n-1; while (tail != head) { // find the minimum of the diJ on this round double diJ_min = diJ[0]; int diJ_min_jet = 0; for (int i = 1; i < n; i++) { if (diJ[i] < diJ_min) {diJ_min_jet = i; diJ_min = diJ[i];} } // do the recombination between A and B history_location++; jetA = & briefjets[diJ_min_jet]; // GPS mod 2009-02-11 //jetB = jetA->NN; jetB = static_cast(jetA->NN); // put the normalisation back in diJ_min *= _invR2; if (jetB != NULL) { // jet-jet recombination // If necessary relabel A & B to ensure jetB < jetA, that way if // the larger of them == newtail then that ends up being jetA and // the new jet that is added as jetB is inserted in a position that // has a future! if (jetA < jetB) {std::swap(jetA,jetB);} int nn; // new jet index _do_ij_recombination_step(jetA->_jets_index, jetB->_jets_index, diJ_min, nn); // what was jetB will now become the new jet _bj_set_jetinfo(jetB, nn); } else { // jet-beam recombination _do_iB_recombination_step(jetA->_jets_index, diJ_min); } // now update our nearest neighbour info and diJ table // first reduce size of table tail--; n--; // Copy last jet contents and diJ info into position of jetA *jetA = *tail; diJ[jetA - head] = diJ[tail-head]; // Initialise jetB's NN distance as well as updating it for // other particles. // NB: by having different loops for jetB == or != NULL we could // perhaps save a few percent (usually avoid one if inside loop), // but will not do it for now because on laptop fluctuations are // too large to reliably measure a few percent difference... for (BJ * jetI = head; jetI != tail; jetI++) { // see if jetI had jetA or jetB as a NN -- if so recalculate the NN if (jetI->NN == jetA || jetI->NN == jetB) { _bj_set_NN_nocross(jetI, head, tail); diJ[jetI-head] = _bj_diJ(jetI); // update diJ } // check whether new jetB is closer than jetI's current NN and // if need be update things if (jetB != NULL) { double dist = _bj_dist(jetI,jetB); if (dist < jetI->NN_dist) { if (jetI != jetB) { jetI->NN_dist = dist; jetI->NN = jetB; diJ[jetI-head] = _bj_diJ(jetI); // update diJ... } } if (dist < jetB->NN_dist) { if (jetI != jetB) { jetB->NN_dist = dist; jetB->NN = jetI;} } } // if jetI's NN is the new tail then relabel it so that it becomes jetA if (jetI->NN == tail) {jetI->NN = jetA;} } if (jetB != NULL) {diJ[jetB-head] = _bj_diJ(jetB);} } // final cleaning up; delete[] diJ; delete[] briefjets; } // //---------------------------------------------------------------------- // // initialises a GenBriefJet // template<> inline void ClusterSequence::_bj_set_jetinfo( // GenBriefJet * const jetA, const int _jets_index) const { // // jetA->init(_jets[_jets_index]); // jetA->_jets_index = _jets_index; // // } // // // //---------------------------------------------------------------------- // // returns the distance between two GenBriefJets // template<> double ClusterSequence::_bj_dist( // const GenBriefJet * const jeta, // const GenBriefJet * const jetb) const { // return jeta->geom_ij(jetb); // } FASTJET_END_NAMESPACE #endif // __FASTJET_CLUSTERQUENCE_N2_ICC__ fastjet-3.0.6+dfsg.orig/include/fastjet/internal/Voronoi.hh0000644000175000017500000002265411766120135022120 0ustar sunsun#ifndef __FASTJET__VORONOI_H__ #define __FASTJET__VORONOI_H__ //STARTHEADER // $Id: Voronoi.hh 2686 2011-11-14 09:28:22Z soyez $ // // Copyright (c) 1994 by AT&T Bell Laboratories (see below) // // //---------------------------------------------------------------------- // This file is included as part of FastJet but was mostly written by // S. Fortune in C, put into C++ with memory management by S // O'Sullivan, and with further interface and memeory management // modifications by Gregory Soyez. // // Permission to use, copy, modify, and distribute this software for // any purpose without fee is hereby granted, provided that this // entire notice is included in all copies of any software which is or // includes a copy or modification of this software and in all copies // of the supporting documentation for such software. THIS SOFTWARE IS // BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTY. // IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY REPRESENTATION // OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS // SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. // //---------------------------------------------------------------------- //ENDHEADER /* * The author of this software is Steven Fortune. * Copyright (c) 1994 by AT&T Bell Laboratories. * Permission to use, copy, modify, and distribute this software for any * purpose without fee is hereby granted, provided that this entire notice * is included in all copies of any software which is or includes a copy * or modification of this software and in all copies of the supporting * documentation for such software. * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. */ /* * This code was originally written by Stephan Fortune in C code. I, * Shane O'Sullivan, have since modified it, encapsulating it in a C++ * class and, fixing memory leaks and adding accessors to the Voronoi * Edges. Permission to use, copy, modify, and distribute this * software for any purpose without fee is hereby granted, provided * that this entire notice is included in all copies of any software * which is or includes a copy or modification of this software and in * all copies of the supporting documentation for such software. THIS * SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR * PURPOSE. */ /* * This code, included in the FastJet distribution, was originally * written by Stephan Fortune in C and adapted to C++ by Shane * O'Sullivan under the terms repported above. * * Below are the list of changes implemented by the FastJet authors: * * 2011-11-14 Gregory Soyez * * * removed 'plot' and 'triangulate' (were always 0) * * removed unused plot functions (openpl, circle, range, * out_bisector, out_ep, out_vertex, out_site, out_triple) * * removed unused 'VPoint p' in 'intersect' * * * 2011-07-22 Gregory Soyez * * * replaced Point by VPoint (to avoid any potential conflict * with an already existing class Point in FastJet * * * 2008-04-01 Gregory Soyez * * * declared ystar volatile in HalfEdge (apparently fixes a bug * related to VD computations with points on a grid) * * * 2007-05-07 Gregory Soyez * * * put the code in the fastjet namespace * * * replaced float by double * * * generateVoronoi() takes a vector of Point instead of 2 * pointers * * * added info about the parent sites to GraphEdge * * * removed condition on minimal distance between sites * */ #include "fastjet/LimitedWarning.hh" #include #include #include #include #define DELETED -2 #define le 0 #define re 1 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /** * \if internal_doc * @ingroup internal * \class VPoint * class to handle a 2d point * \endif */ class VPoint{ public: /// defailt ctor VPoint() : x(0.0), y(0.0) {} /// ctor with initialisation VPoint(double _x, double _y) : x(_x), y(_y) {} /// addition inline VPoint operator + (const VPoint &p) const{ return VPoint(x+p.x, y+p.y); } /// subtraction inline VPoint operator - (const VPoint &p) const{ return VPoint(x-p.x, y-p.y); } /// scalar multiplication inline VPoint operator * (const double t) const{ return VPoint(x*t, y*t); } /// vector coordinates double x,y; }; /// norm of a vector inline double norm(const VPoint p){ return p.x*p.x+p.y*p.y; } /// 2D vector product inline double vector_product(const VPoint &p1, const VPoint &p2){ return p1.x*p2.y-p1.y*p2.x; } /// scalar product inline double scalar_product(const VPoint &p1, const VPoint &p2){ return p1.x*p2.x+p1.y*p2.y; } /** * \if internal_doc * @ingroup internal * \class GraphEdge * handle an edge of the Voronoi Diagram. * \endif */ class GraphEdge{ public: /// coordinates of the extreme points double x1,y1,x2,y2; /// indices of the parent sites that define the edge int point1, point2; /// pointer to the next edge GraphEdge* next; }; /** * \if internal_doc * @ingroup internal * \class Site * structure used both for particle sites and for vertices. * \endif */ class Site{ public: VPoint coord; int sitenbr; int refcnt; }; class Freenode{ public: Freenode *nextfree; }; class FreeNodeArrayList{ public: Freenode* memory; FreeNodeArrayList* next; }; class Freelist{ public: Freenode *head; int nodesize; }; class Edge{ public: double a,b,c; Site *ep[2]; Site *reg[2]; int edgenbr; }; class Halfedge{ public: Halfedge *ELleft, *ELright; Edge *ELedge; int ELrefcnt; char ELpm; Site *vertex; volatile double ystar; Halfedge *PQnext; }; /** * \if internal_doc * @ingroup internal * \class VoronoiDiagramGenerator * Shane O'Sullivan C++ version of Stephan Fortune Voronoi diagram * generator * \endif */ class VoronoiDiagramGenerator{ public: VoronoiDiagramGenerator(); ~VoronoiDiagramGenerator(); bool generateVoronoi(std::vector *_parent_sites, double minX, double maxX, double minY, double maxY, double minDist=0); inline void resetIterator(){ iteratorEdges = allEdges; } bool getNext(GraphEdge **e){ if(iteratorEdges == 0) return false; *e = iteratorEdges; iteratorEdges = iteratorEdges->next; return true; } std::vector *parent_sites; int n_parent_sites; private: void cleanup(); void cleanupEdges(); char *getfree(Freelist *fl); Halfedge *PQfind(); int PQempty(); Halfedge **ELhash; Halfedge *HEcreate(), *ELleft(), *ELright(), *ELleftbnd(); Halfedge *HEcreate(Edge *e,int pm); VPoint PQ_min(); Halfedge *PQextractmin(); void freeinit(Freelist *fl,int size); void makefree(Freenode *curr,Freelist *fl); void geominit(); void plotinit(); // GS: removed the unused (always ==0) argument bool voronoi(/*int triangulate*/); void ref(Site *v); void deref(Site *v); void endpoint(Edge *e,int lr,Site * s); void ELdelete(Halfedge *he); Halfedge *ELleftbnd(VPoint *p); Halfedge *ELright(Halfedge *he); void makevertex(Site *v); void PQinsert(Halfedge *he,Site * v, double offset); void PQdelete(Halfedge *he); bool ELinitialize(); void ELinsert(Halfedge *lb, Halfedge *newHe); Halfedge * ELgethash(int b); Halfedge *ELleft(Halfedge *he); Site *leftreg(Halfedge *he); bool PQinitialize(); int PQbucket(Halfedge *he); void clip_line(Edge *e); char *myalloc(unsigned n); int right_of(Halfedge *el,VPoint *p); Site *rightreg(Halfedge *he); Edge *bisect(Site *s1, Site *s2); double dist(Site *s,Site *t); // GS: 'p' is unused and always ==0 (see also comment by // S. O'Sullivan in the source file), so we remove it Site *intersect(Halfedge *el1, Halfedge *el2 /*, VPoint *p=0*/); Site *nextone(); void pushGraphEdge(double x1, double y1, double x2, double y2, Site *s1, Site *s2); // Gregory Soyez: unused plotting methods // void openpl(); // void circle(double x, double y, double radius); // void range(double minX, double minY, double maxX, double maxY); // // void out_bisector(Edge *e); // void out_ep(Edge *e); // void out_vertex(Site *v); // void out_site(Site *s); // // void out_triple(Site *s1, Site *s2,Site * s3); Freelist hfl; Halfedge *ELleftend, *ELrightend; int ELhashsize; int sorted, debug; double xmin, xmax, ymin, ymax, deltax, deltay; Site *sites; int nsites; int siteidx; int sqrt_nsites; int nvertices; Freelist sfl; Site *bottomsite; int nedges; Freelist efl; int PQhashsize; Halfedge *PQhash; int PQcount; int PQmin; int ntry, totalsearch; double pxmin, pxmax, pymin, pymax, cradius; int total_alloc; double borderMinX, borderMaxX, borderMinY, borderMaxY; FreeNodeArrayList* allMemoryList; FreeNodeArrayList* currentMemoryBlock; GraphEdge* allEdges; GraphEdge* iteratorEdges; double minDistanceBetweenSites; static LimitedWarning _warning_degeneracy; }; int scomp(const void *p1,const void *p2); FASTJET_END_NAMESPACE #endif fastjet-3.0.6+dfsg.orig/include/fastjet/internal/numconsts.hh0000644000175000017500000000363311766120135022512 0ustar sunsun//STARTHEADER // $Id: numconsts.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_NUMCONSTS__ #define __FASTJET_NUMCONSTS__ #include "fastjet/internal/base.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // some common useful constants! const double pi = 3.141592653589793238462643383279502884197; const double twopi = 6.283185307179586476925286766559005768394; const double pisq = 9.869604401089358618834490999876151135314; const double zeta2 = 1.644934066848226436472415166646025189219; const double zeta3 = 1.202056903159594285399738161511449990765; const double eulergamma = 0.577215664901532860606512090082402431042; const double ln2 = 0.693147180559945309417232121458176568076; FASTJET_END_NAMESPACE #endif // __FASTJET_NUMCONSTS__ fastjet-3.0.6+dfsg.orig/include/fastjet/internal/MinHeap.hh0000644000175000017500000000573711766120135022011 0ustar sunsun//STARTHEADER // $Id: MinHeap.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_MINHEAP__HH__ #define __FASTJET_MINHEAP__HH__ #include #include #include #include #include "fastjet/internal/base.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //====================================================================== /// \if internal_doc /// @ingroup internal /// \class MinHeap /// A class which provides a "heap"-like structure that allows /// access to a the minimal value of a dynamically changing set of numbers /// \endif class MinHeap { public: /// construct a MinHeap from the vector of values, allowing future /// expansion to a maximum size max_size; MinHeap (const std::vector & values, unsigned int max_size) : _heap(max_size) {_initialise(values);}; /// constructor in which the the maximum size is the size of the values array MinHeap (const std::vector & values) : _heap(values.size()) {_initialise(values);}; /// return the location of the minimal value on the heap inline unsigned int minloc() const { return (_heap[0].minloc) - &(_heap[0]);}; /// return the minimal value on the heap inline double minval() const {return _heap[0].minloc->value;}; inline double operator[](int i) const {return _heap[i].value;}; /// remove the value at the specified location (i.e. replace it with /// the largest possible value). void remove(unsigned int loc) { update(loc,std::numeric_limits::max());}; /// update the value at the specified location void update(unsigned int, double); private: struct ValueLoc{ double value; ValueLoc * minloc; }; std::vector _heap; void _initialise(const std::vector & values); }; FASTJET_END_NAMESPACE #endif // __FASTJET_MINHEAP__HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/internal/base.hh0000644000175000017500000000314011766120135021364 0ustar sunsun //STARTHEADER // $Id: base.hh 2717 2011-11-17 14:15:46Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_FASTJET_BASE_HH__ #define __FASTJET_FASTJET_BASE_HH__ /// \namespace fastjet /// the FastJet namespace /// /// all the fastjet-related material is put under that namespace // define this for easier readability (and obfuscation?) in // a range of places #define FASTJET_BEGIN_NAMESPACE namespace fastjet { #define FASTJET_END_NAMESPACE } #endif // __FASTJET_FASTJET_BASE_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/internal/Makefile.in0000644000175000017500000003557712233506213022214 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include/fastjet/internal DIST_COMMON = $(fastjetincludeinternal_HEADERS) $(noinst_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(fastjetincludeinternaldir)" HEADERS = $(fastjetincludeinternal_HEADERS) $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fastjetincludeinternaldir = $(includedir)/fastjet/internal fastjetincludeinternal_HEADERS = base.hh ClosestPair2DBase.hh \ Dnn2piCylinder.hh Dnn4piCylinder.hh DynamicNearestNeighbours.hh \ numconsts.hh Triangulation.hh BasicRandom.hh ClosestPair2D.hh \ Dnn3piCylinder.hh DnnPlane.hh LimitedWarning.hh MinHeap.hh \ SearchTree.hh Voronoi.hh IsBase.hh # # the following file is used by internal .cc files and # possibly also by plugins # # the use of noinst_HEADERS in this case seems to be the # the recommendation of section 9.2 of the automake manual # noinst_HEADERS = ClusterSequence_N2.icc all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/fastjet/internal/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu include/fastjet/internal/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fastjetincludeinternalHEADERS: $(fastjetincludeinternal_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludeinternaldir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludeinternaldir)" @list='$(fastjetincludeinternal_HEADERS)'; test -n "$(fastjetincludeinternaldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludeinternaldir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludeinternaldir)" || exit $$?; \ done uninstall-fastjetincludeinternalHEADERS: @$(NORMAL_UNINSTALL) @list='$(fastjetincludeinternal_HEADERS)'; test -n "$(fastjetincludeinternaldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludeinternaldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludeinternaldir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(fastjetincludeinternaldir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fastjetincludeinternalHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fastjetincludeinternalHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-fastjetincludeinternalHEADERS \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am \ uninstall-fastjetincludeinternalHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/include/fastjet/internal/Dnn3piCylinder.hh0000644000175000017500000002354511766120135023312 0ustar sunsun//STARTHEADER // $Id: Dnn3piCylinder.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef DROP_CGAL // in case we do not have the code for CGAL #ifndef __FASTJET_DNN3PICYLINDER_HH__ #define __FASTJET_DNN3PICYLINDER_HH__ #include "fastjet/internal/DynamicNearestNeighbours.hh" #include "fastjet/internal/DnnPlane.hh" #include "fastjet/internal/numconsts.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// \if internal_doc /// @ingroup internal /// \class Dnn3piCylinder /// class derived from DynamicNearestNeighbours that provides an /// implementation for the surface of cylinder (using one /// DnnPlane object spanning 0--3pi). /// \endif class Dnn3piCylinder : public DynamicNearestNeighbours { public: /// empty initaliser Dnn3piCylinder() {} /// Initialiser from a set of points on an Eta-Phi plane, where /// eta can have an arbitrary ranges and phi must be in range /// 0 <= phi < 2pi; /// /// NB: this class is more efficient than the plain Dnn4piCylinder /// class, but can give wrong answers when the nearest neighbour is /// further away than 2pi (in this case a point's nearest neighbour /// becomes itself, because it is considered to be a distance 2pi /// away). For the kt-algorithm (e.g.) this is actually not a /// problem (the distance need only be accurate when it is less than /// R), so we can tell the routine to ignore this problem -- /// alternatively the routine will crash if it detects it occurring /// (only when finding the nearest neighbour index, not its /// distance). Dnn3piCylinder(const std::vector &, const bool & ignore_nearest_is_mirror = false, const bool & verbose = false ); /// Returns the index of the nearest neighbour of point labelled /// by ii (assumes ii is valid) int NearestNeighbourIndex(const int & ii) const ; /// Returns the distance to the nearest neighbour of point labelled /// by index ii (assumes ii is valid) double NearestNeighbourDistance(const int & ii) const ; /// Returns true iff the given index corresponds to a point that /// exists in the DNN structure (meaning that it has been added, and /// not removed in the meantime) bool Valid(const int & index) const; void RemoveAndAddPoints(const std::vector & indices_to_remove, const std::vector & points_to_add, std::vector & indices_added, std::vector & indices_of_updated_neighbours); ~Dnn3piCylinder(); private: // our extras to help us navigate, find distance, etc. const static int INEXISTENT_VERTEX=-3; bool _verbose; bool _ignore_nearest_is_mirror; /// Picture of how things will work... Copy 0--pi part of the 0--2pi /// cylinder into a region 2pi--3pi of a Euclidean plane. Below we /// show points labelled by + that have a mirror image in this /// manner, while points labelled by * do not have a mirror image. /// /// | . | /// | . | /// | . | /// | . | /// | 2 . | /// | * . | /// | + . + | /// | 0 . 1 | /// | . | /// 0 2pi 3pi /// /// Each "true" point has its true "cylinder" index (the index that /// is known externally to this class) as well as euclidean plane /// indices (main_index and mirror index in the MirrorVertexInfo /// structure), which are private concepts of this class. /// /// In above picture our structures would hold the following info /// (the picture shows the euclidean-plane numbering) /// /// _mirror_info[cylinder_index = 0] = (0, 1) /// _mirror_info[cylinder_index = 1] = (2, INEXISTENT_VERTEX) /// /// We also need to be able to go from the euclidean plane indices /// back to the "true" cylinder index, and for this purpose we use /// the vector _cylinder_index_of_plane_vertex[...], which in the above example has /// the following contents /// /// _cylinder_index_of_plane_vertex[0] = 0 /// _cylinder_index_of_plane_vertex[1] = 0 /// _cylinder_index_of_plane_vertex[2] = 1 /// /// struct MirrorVertexInfo { /// index of the given point (appearing in the range 0--2pi) in the /// 0--3pi euclidean plane structure (position will coincide with /// that on the 0--2pi cylinder, but index labelling it will be /// different) int main_index; /// index of the mirror point (appearing in the range 2pi--3pi) in the /// 0--3pi euclidean plane structure int mirror_index; }; // for each "true" vertex we have reference to indices in the euclidean // plane structure std::vector _mirror_info; // for each index in the euclidean 0--3pi plane structure we want to // be able to get back to the "true" vertex index on the overall // 0--2pi cylinder structure std::vector _cylinder_index_of_plane_vertex; // NB: we define POINTERS here because the initialisation gave // us problems (things crashed!), perhaps because in practice // we were making a copy without being careful and defining // a proper copy constructor. DnnPlane * _DNN; /// given a phi value in the 0--2pi range return one /// in the pi--3pi range. inline EtaPhi _remap_phi(const EtaPhi & point) { double phi = point.second; if (phi < pi) { phi += twopi ;} return EtaPhi(point.first, phi);} //---------------------------------------------------------------------- /// What on earth does this do? /// /// Example: last true "cylinder" index was 15 /// last plane index was 23 /// /// Then: _cylinder_index_of_plane_vertex.size() = 24 and /// _mirror_info.size() = 16 /// /// IF cylinder_point's phi < pi then /// create: _mirror_info[16] = (main_index = 24, mirror_index=25) /// _cylinder_index_of_plane_vertex[24] = 16 /// _cylinder_index_of_plane_vertex[25] = 16 /// ELSE /// create: _mirror_info[16] = (main_index = 24, mirror_index=INEXISTENT..) /// _cylinder_index_of_plane_vertex[24] = 16 /// /// ADDITIONALLY push the cylinder_point (and if it exists the mirror /// copy) onto the vector plane_points. void _RegisterCylinderPoint (const EtaPhi & cylinder_point, std::vector & plane_points); }; // here follow some inline implementations of the simpler of the // functions defined above //---------------------------------------------------------------------- /// Note: one of the difficulties of the 0--3pi mapping is that /// a point may have its mirror copy as its own nearest neighbour /// (if no other point is within a distance of 2pi). This does /// not matter for the kt_algorithm with /// reasonable values of radius, but might matter for a general use /// of this algorithm -- depending on whether or not the user has /// initialised the class with instructions to ignore this problem the /// program will detect and ignore it, or crash. inline int Dnn3piCylinder::NearestNeighbourIndex(const int & current) const { int main_index = _mirror_info[current].main_index; int mirror_index = _mirror_info[current].mirror_index; int plane_index; if (mirror_index == INEXISTENT_VERTEX ) { plane_index = _DNN->NearestNeighbourIndex(main_index); } else { plane_index = ( _DNN->NearestNeighbourDistance(main_index) < _DNN->NearestNeighbourDistance(mirror_index)) ? _DNN->NearestNeighbourIndex(main_index) : _DNN->NearestNeighbourIndex(mirror_index) ; } int this_cylinder_index = _cylinder_index_of_plane_vertex[plane_index]; // either the user has acknowledged the fact that they may get the // mirror copy as the closest point, or crash if it should occur // that mirror copy is the closest point. assert(_ignore_nearest_is_mirror || this_cylinder_index != current); //if (this_cylinder_index == current) { // std::cerr << "WARNING point "<NearestNeighbourDistance(main_index); } else { return ( _DNN->NearestNeighbourDistance(main_index) < _DNN->NearestNeighbourDistance(mirror_index)) ? _DNN->NearestNeighbourDistance(main_index) : _DNN->NearestNeighbourDistance(mirror_index) ; } } inline bool Dnn3piCylinder::Valid(const int & index) const { return (_DNN->Valid(_mirror_info[index].main_index)); } inline Dnn3piCylinder::~Dnn3piCylinder() { delete _DNN; } FASTJET_END_NAMESPACE #endif // __FASTJET_DNN3PICYLINDER_HH__ #endif // DROP_CGAL fastjet-3.0.6+dfsg.orig/include/fastjet/internal/Dnn2piCylinder.hh0000644000175000017500000002501411766120135023302 0ustar sunsun//STARTHEADER // $Id: Dnn2piCylinder.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef DROP_CGAL // in case we do not have the code for CGAL #ifndef __FASTJET_DNN2PICYLINDER_HH__ #define __FASTJET_DNN2PICYLINDER_HH__ #include "fastjet/internal/DynamicNearestNeighbours.hh" #include "fastjet/internal/DnnPlane.hh" #include "fastjet/internal/numconsts.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// \if internal_doc /// @ingroup internal /// \class Dnn2piCylinder /// class derived from DynamicNearestNeighbours that provides an /// implementation for the surface of cylinder (using one /// DnnPlane object spanning 0--2pi). /// \endif class Dnn2piCylinder : public DynamicNearestNeighbours { public: /// empty initaliser Dnn2piCylinder() {} /// Initialiser from a set of points on an Eta-Phi plane, where /// eta can have an arbitrary ranges and phi must be in range /// 0 <= phi < 2pi; /// /// NB: this class is more efficient than the plain Dnn4piCylinder /// class, but can give wrong answers when the nearest neighbour is /// further away than 2pi (in this case a point's nearest neighbour /// becomes itself, because it is considered to be a distance 2pi /// away). For the kt-algorithm (e.g.) this is actually not a /// problem (the distance need only be accurate when it is less than /// R, assuming R<2pi [not necessarily always the case as of /// 2010-11-19, when we've removed the requirement R &, const bool & ignore_nearest_is_mirror = false, const bool & verbose = false ); /// Returns the index of the nearest neighbour of point labelled /// by ii (assumes ii is valid) int NearestNeighbourIndex(const int & ii) const ; /// Returns the distance to the nearest neighbour of point labelled /// by index ii (assumes ii is valid) double NearestNeighbourDistance(const int & ii) const ; /// Returns true iff the given index corresponds to a point that /// exists in the DNN structure (meaning that it has been added, and /// not removed in the meantime) bool Valid(const int & index) const; void RemoveAndAddPoints(const std::vector & indices_to_remove, const std::vector & points_to_add, std::vector & indices_added, std::vector & indices_of_updated_neighbours); ~Dnn2piCylinder(); private: // our extras to help us navigate, find distance, etc. const static int INEXISTENT_VERTEX=-3; bool _verbose; bool _ignore_nearest_is_mirror; /// Picture of how things will work... Copy 0--pi part of the 0--2pi /// cylinder into a region 2pi--2pi+ a bit of a Euclidean plane. Below we /// show points labelled by + that have a mirror image in this /// manner, while points labelled by * do not have a mirror image. /// /// | . | /// | . | /// | . | /// | . | /// | 2 . | /// | * . | /// | + . + | /// | 0 . 1 | /// | . | /// 0 2pi 2pi + a bit /// /// Each "true" point has its true "cylinder" index (the index that /// is known externally to this class) as well as euclidean plane /// indices (main_index and mirror index in the MirrorVertexInfo /// structure), which are private concepts of this class. /// /// In above picture our structures would hold the following info /// (the picture shows the euclidean-plane numbering) /// /// _mirror_info[cylinder_index = 0] = (0, 1) /// _mirror_info[cylinder_index = 1] = (2, INEXISTENT_VERTEX) /// /// We also need to be able to go from the euclidean plane indices /// back to the "true" cylinder index, and for this purpose we use /// the std::vector _cylinder_index_of_plane_vertex[...], which in the above example has /// the following contents /// /// _cylinder_index_of_plane_vertex[0] = 0 /// _cylinder_index_of_plane_vertex[1] = 0 /// _cylinder_index_of_plane_vertex[2] = 1 /// /// struct MirrorVertexInfo { /// index of the given point (appearing in the range 0--2pi) in the /// 0--2pi euclidean plane structure (position will coincide with /// that on the 0--2pi cylinder, but index labelling it will be /// different) int main_index; /// index of the mirror point (appearing in the range 2pi--3pi) in the /// 0--3pi euclidean plane structure int mirror_index; }; // for each "true" vertex we have reference to indices in the euclidean // plane structure std::vector _mirror_info; // for each index in the euclidean 0--2pi plane structure we want to // be able to get back to the "true" vertex index on the overall // 0--2pi cylinder structure std::vector _cylinder_index_of_plane_vertex; // NB: we define POINTERS here because the initialisation gave // us problems (things crashed!), perhaps because in practice // we were making a copy without being careful and defining // a proper copy constructor. DnnPlane * _DNN; /// given a phi value in the 0--pi range return one /// in the 2pi--3pi range; whereas if it is in the pi-2pi range then /// remap it to be inthe range (-pi)--0. inline EtaPhi _remap_phi(const EtaPhi & point) { double phi = point.second; if (phi < pi) { phi += twopi ;} else {phi -= twopi;} return EtaPhi(point.first, phi);} //---------------------------------------------------------------------- /// Actions here are similar to those in the /// Dnn3piCylinder::_RegisterCylinderPoint case, however here we do /// NOT create the mirror point -- instead we initialise the structure /// as if there were no need for the mirror point. /// /// ADDITIONALLY push the cylinder_point onto the vector plane_points. void _RegisterCylinderPoint (const EtaPhi & cylinder_point, std::vector & plane_points); /// For each plane point specified in the vector plane_indices, /// establish whether there is a need to create a mirror point /// according to the following criteria: /// /// . phi < pi /// . mirror does not already exist /// . phi < NearestNeighbourDistance /// (if this is not true then there is no way that its mirror point /// could have a nearer neighbour). /// /// If conditions all hold, then create the mirror point, insert it /// into the _DNN structure, adjusting any nearest neighbours, and /// return the list of plane points whose nearest neighbours have /// changed (this will include the new neighbours that have just been /// added) void _CreateNecessaryMirrorPoints( const std::vector & plane_indices, std::vector & updated_plane_points); }; // here follow some inline implementations of the simpler of the // functions defined above //---------------------------------------------------------------------- /// Note: one of the difficulties of the 0--2pi mapping is that /// a point may have its mirror copy as its own nearest neighbour /// (if no other point is within a distance of 2pi). This does /// not matter for the kt_algorithm with /// reasonable values of radius, but might matter for a general use /// of this algorithm -- depending on whether or not the user has /// initialised the class with instructions to ignore this problem the /// program will detect and ignore it, or crash. inline int Dnn2piCylinder::NearestNeighbourIndex(const int & current) const { int main_index = _mirror_info[current].main_index; int mirror_index = _mirror_info[current].mirror_index; int plane_index; if (mirror_index == INEXISTENT_VERTEX ) { plane_index = _DNN->NearestNeighbourIndex(main_index); } else { plane_index = ( _DNN->NearestNeighbourDistance(main_index) < _DNN->NearestNeighbourDistance(mirror_index)) ? _DNN->NearestNeighbourIndex(main_index) : _DNN->NearestNeighbourIndex(mirror_index) ; } int this_cylinder_index = _cylinder_index_of_plane_vertex[plane_index]; // either the user has acknowledged the fact that they may get the // mirror copy as the closest point, or crash if it should occur // that mirror copy is the closest point. assert(_ignore_nearest_is_mirror || this_cylinder_index != current); //if (this_cylinder_index == current) { // cerr << "WARNING point "<NearestNeighbourDistance(main_index); } else { return ( _DNN->NearestNeighbourDistance(main_index) < _DNN->NearestNeighbourDistance(mirror_index)) ? _DNN->NearestNeighbourDistance(main_index) : _DNN->NearestNeighbourDistance(mirror_index) ; } } inline bool Dnn2piCylinder::Valid(const int & index) const { return (_DNN->Valid(_mirror_info[index].main_index)); } inline Dnn2piCylinder::~Dnn2piCylinder() { delete _DNN; } FASTJET_END_NAMESPACE #endif // __FASTJET_DNN2PICYLINDER_HH__ #endif //DROP_CGAL fastjet-3.0.6+dfsg.orig/include/fastjet/internal/SearchTree.hh0000644000175000017500000006267412140756044022521 0ustar sunsun//STARTHEADER // $Id: SearchTree.hh 3107 2013-05-03 15:47:47Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_SEARCHTREE_HH__ #define __FASTJET_SEARCHTREE_HH__ #include #include #include #include "fastjet/internal/base.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //====================================================================== /// \if internal_doc /// @ingroup internal /// \class SearchTree /// Efficient class for a search tree /// /// This is the class for a search tree designed to be especially efficient /// when looking for successors and predecessors (to be used in Chan's /// CP algorithm). It has the requirement that the maximum size of the /// search tree must be known in advance. /// \endif template class SearchTree { public: class Node; class circulator; class const_circulator; /// constructor for a search tree from an ordered vector SearchTree(const std::vector & init); /// constructor for a search tree from an ordered vector allowing /// for future growth beyond the current size, up to max_size SearchTree(const std::vector & init, unsigned int max_size); /// remove the node corresponding to node_index from the search tree void remove(unsigned node_index); void remove(typename SearchTree::Node * node); void remove(typename SearchTree::circulator & circ); /// insert the supplied value into the tree and return a pointer to /// the relevant SearchTreeNode. //Node * insert(const T & value); circulator insert(const T & value); const Node & operator[](int i) const {return _nodes[i];}; /// return the number of elements currently in the search tree unsigned int size() const {return _nodes.size() - _available_nodes.size();} /// check that the structure we've obtained makes sense... void verify_structure(); void verify_structure_linear() const; void verify_structure_recursive(const Node * , const Node * , const Node * ) const; /// print out all elements... void print_elements(); // tracking the depth may have some speed overhead -- so leave it // out for the time being... #ifdef __FASTJET_SEARCHTREE_TRACK_DEPTH /// the max depth the tree has ever reached inline unsigned int max_depth() const {return _max_depth;}; #else inline unsigned int max_depth() const {return 0;}; #endif int loc(const Node * node) const ; /// return predecessor by walking through the tree Node * _find_predecessor(const Node *); /// return successor by walking through the tree Node * _find_successor(const Node *); const Node & operator[](unsigned int i) const {return _nodes[i];}; /// return a circulator to some place in the tree (with a circulator /// you don't care where...) const_circulator somewhere() const; circulator somewhere(); private: void _initialize(const std::vector & init); std::vector _nodes; std::vector _available_nodes; Node * _top_node; unsigned int _n_removes; /// recursive routine for doing the initial connections assuming things /// are ordered. Assumes this_one's parent is labelled, and was /// generated at a scale "scale" -- connections will be carried out /// including left edge and excluding right edge void _do_initial_connections(unsigned int this_one, unsigned int scale, unsigned int left_edge, unsigned int right_edge, unsigned int depth); #ifdef __FASTJET_SEARCHTREE_TRACK_DEPTH unsigned int _max_depth; #endif }; //====================================================================== /// \if internal_doc /// @ingroup internal /// \class SearchTree::Node /// A node in the search tree /// \endif template class SearchTree::Node{ public: Node() {}; /// default constructor /// returns tree if all the tree-related links are set to null for this node bool treelinks_null() const { return ((parent==0) && (left==0) && (right==0));}; /// set all the tree-related links are set to null for this node inline void nullify_treelinks() { parent = NULL; left = NULL; right = NULL; }; /// if my parent exists, determine whether I am it's left or right /// node and set the relevant link equal to XX. void reset_parents_link_to_me(Node * XX); T value; Node * left; Node * right; Node * parent; Node * successor; Node * predecessor; }; //---------------------------------------------------------------------- template void SearchTree::Node::reset_parents_link_to_me(typename SearchTree::Node * XX) { if (parent == NULL) {return;} if (parent->right == this) {parent->right = XX;} else {parent->left = XX;} } //====================================================================== /// \if internal_doc /// @ingroup internal /// \class SearchTree::circulator /// circulator for the search tree /// \endif template class SearchTree::circulator{ public: // so that it can access out _node object; // note: "class U" needed for clang (v1.1 branches/release_27) compilation template friend class SearchTree::const_circulator; friend class SearchTree; circulator() : _node(NULL) {} circulator(Node * node) : _node(node) {} const T * operator->() const {return &(_node->value);} T * operator->() {return &(_node->value);} const T & operator*() const {return _node->value;} T & operator*() {return _node->value;} /// prefix increment (structure copied from stl_bvector.h) circulator & operator++() { _node = _node->successor; return *this;} /// postfix increment ["int" argument tells compiler it's postfix] /// (structure copied from stl_bvector.h) circulator operator++(int) { circulator tmp = *this; _node = _node->successor; return tmp;} /// prefix decrement (structure copied from stl_bvector.h) circulator & operator--() { _node = _node->predecessor; return *this;} /// postfix decrement ["int" argument tells compiler it's postfix] /// (structure copied from stl_bvector.h) circulator operator--(int) { circulator tmp = *this; _node = _node->predecessor; return tmp;} /// return a circulator referring to the next node circulator next() const { return circulator(_node->successor);} /// return a circulator referring to the previous node circulator previous() const { return circulator(_node->predecessor);} bool operator!=(const circulator & other) const {return other._node != _node;} bool operator==(const circulator & other) const {return other._node == _node;} private: Node * _node; }; //====================================================================== /// \if internal_doc /// @ingroup internal /// \class SearchTree::const_circulator /// A const_circulator for the search tree /// \endif template class SearchTree::const_circulator{ public: const_circulator() : _node(NULL) {} const_circulator(const Node * node) : _node(node) {} const_circulator(const circulator & circ) :_node(circ._node) {} const T * operator->() {return &(_node->value);} const T & operator*() const {return _node->value;} /// prefix increment (structure copied from stl_bvector.h) const_circulator & operator++() { _node = _node->successor; return *this;} /// postfix increment ["int" argument tells compiler it's postfix] /// (structure copied from stl_bvector.h) const_circulator operator++(int) { const_circulator tmp = *this; _node = _node->successor; return tmp;} /// prefix decrement (structure copied from stl_bvector.h) const_circulator & operator--() { _node = _node->predecessor; return *this;} /// postfix decrement ["int" argument tells compiler it's postfix] /// (structure copied from stl_bvector.h) const_circulator operator--(int) { const_circulator tmp = *this; _node = _node->predecessor; return tmp;} /// return a circulator referring to the next node const_circulator next() const { return const_circulator(_node->successor);} /// return a circulator referring to the previous node const_circulator previous() const { return const_circulator(_node->predecessor);} bool operator!=(const const_circulator & other) const {return other._node != _node;} bool operator==(const const_circulator & other) const {return other._node == _node;} private: const Node * _node; }; //---------------------------------------------------------------------- /// initialise from a sorted initial array allowing for a larger /// maximum size of the array... template SearchTree::SearchTree(const std::vector & init, unsigned int max_size) : _nodes(max_size) { _available_nodes.reserve(max_size); _available_nodes.resize(max_size - init.size()); for (unsigned int i = init.size(); i < max_size; i++) { _available_nodes[i-init.size()] = &(_nodes[i]); } _initialize(init); } //---------------------------------------------------------------------- /// initialise from a sorted initial array template SearchTree::SearchTree(const std::vector & init) : _nodes(init.size()), _available_nodes(0) { // reserve space for the list of available nodes _available_nodes.reserve(init.size()); _initialize(init); } //---------------------------------------------------------------------- /// do the actual hard work of initialization template void SearchTree::_initialize(const std::vector & init) { _n_removes = 0; unsigned n = init.size(); assert(n>=1); // reserve space for the list of available nodes //_available_nodes.reserve(); #ifdef __FASTJET_SEARCHTREE_TRACK_DEPTH _max_depth = 0; #endif // validate the input for (unsigned int i = 1; i inline int SearchTree::loc(const Node * node) const {return node == NULL? -999 : node - &(_nodes[0]);} //---------------------------------------------------------------------- /// Recursive creation of connections, assuming the _nodes vector is /// completely filled and ordered template void SearchTree::_do_initial_connections( unsigned int this_one, unsigned int scale, unsigned int left_edge, unsigned int right_edge, unsigned int depth ) { #ifdef __FASTJET_SEARCHTREE_TRACK_DEPTH // keep track of tree depth for checking things stay reasonable... _max_depth = max(depth, _max_depth); #endif //std::cout << this_one << " "<< scale<< std::endl; unsigned int ref_new_scale = (scale+1)/2; // work through children to our left unsigned new_scale = ref_new_scale; bool did_child = false; while(true) { int left = this_one - new_scale; // be careful here to use signed int... // if there is something unitialised to our left, link to it if (left >= static_cast(left_edge) && _nodes[left].treelinks_null() ) { _nodes[left].parent = &(_nodes[this_one]); _nodes[this_one].left = &(_nodes[left]); // create connections between left_edge and this_one _do_initial_connections(left, new_scale, left_edge, this_one, depth+1); did_child = true; break; } // reduce the scale so as to try again unsigned int old_new_scale = new_scale; new_scale = (old_new_scale + 1)/2; // unless we've reached end of tree if (new_scale == old_new_scale) break; } if (!did_child) {_nodes[this_one].left = NULL;} // work through children to our right new_scale = ref_new_scale; did_child = false; while(true) { unsigned int right = this_one + new_scale; if (right < right_edge && _nodes[right].treelinks_null()) { _nodes[right].parent = &(_nodes[this_one]); _nodes[this_one].right = &(_nodes[right]); // create connections between this_one+1 and right_edge _do_initial_connections(right, new_scale, this_one+1,right_edge,depth+1); did_child = true; break; } // reduce the scale so as to try again unsigned int old_new_scale = new_scale; new_scale = (old_new_scale + 1)/2; // unless we've reached end of tree if (new_scale == old_new_scale) break; } if (!did_child) {_nodes[this_one].right = NULL;} } //---------------------------------------------------------------------- template void SearchTree::remove(unsigned int node_index) { remove(&(_nodes[node_index])); } //---------------------------------------------------------------------- template void SearchTree::remove(circulator & circ) { remove(circ._node); } //---------------------------------------------------------------------- // Useful reference for this: // http://en.wikipedia.org/wiki/Binary_search_tree#Deletion template void SearchTree::remove(typename SearchTree::Node * node) { // we don't remove things from the tree if we've reached the last // elements... (is this wise?) assert(size() > 1); // switch this to throw...? assert(!node->treelinks_null()); // deal with relinking predecessor and successor node->predecessor->successor = node->successor; node->successor->predecessor = node->predecessor; if (node->left == NULL && node->right == NULL) { // node has no children, so remove it by nullifying the pointer // from the parent node->reset_parents_link_to_me(NULL); } else if (node->left != NULL && node->right == NULL){ // make parent point to my child node->reset_parents_link_to_me(node->left); // and child to parent node->left->parent = node->parent; // sort out the top node... if (_top_node == node) {_top_node = node->left;} } else if (node->left == NULL && node->right != NULL){ // make parent point to my child node->reset_parents_link_to_me(node->right); // and child to parent node->right->parent = node->parent; // sort out the top node... if (_top_node == node) {_top_node = node->right;} } else { // we have two children; we will put a replacement in our place Node * replacement; //SearchTree::Node * replacements_child; // chose predecessor or successor (one, then other, then first, etc...) bool use_predecessor = (_n_removes % 2 == 1); if (use_predecessor) { // Option 1: put predecessor in our place, and have its parent // point to its left child (as a predecessor it has no right child) replacement = node->predecessor; assert(replacement->right == NULL); // guaranteed if it's our predecessor // we have to be careful of replacing certain links when the // replacement is this node's child if (replacement != node->left) { if (replacement->left != NULL) { replacement->left->parent = replacement->parent;} replacement->reset_parents_link_to_me(replacement->left); replacement->left = node->left; } replacement->parent = node->parent; replacement->right = node->right; } else { // Option 2: put successor in our place, and have its parent // point to its right child (as a successor it has no left child) replacement = node->successor; assert(replacement->left == NULL); // guaranteed if it's our successor if (replacement != node->right) { if (replacement->right != NULL) { replacement->right->parent = replacement->parent;} replacement->reset_parents_link_to_me(replacement->right); replacement->right = node->right; } replacement->parent = node->parent; replacement->left = node->left; } node->reset_parents_link_to_me(replacement); // make sure node's original children now point to the replacement if (node->left != replacement) {node->left->parent = replacement;} if (node->right != replacement) {node->right->parent = replacement;} // sort out the top node... if (_top_node == node) {_top_node = replacement;} } // make sure we leave something nice and clean... node->nullify_treelinks(); node->predecessor = NULL; node->successor = NULL; // for bookkeeping (and choosing whether to use pred. or succ.) _n_removes++; // for when we next need access to a free node... _available_nodes.push_back(node); } //---------------------------------------------------------------------- //template typename SearchTree::Node * SearchTree::insert(const T & value) { //---------------------------------------------------------------------- template typename SearchTree::circulator SearchTree::insert(const T & value) { // make sure we don't exceed allowed number of nodes... assert(_available_nodes.size() > 0); Node * node = _available_nodes.back(); _available_nodes.pop_back(); node->value = value; Node * location = _top_node; Node * old_location = NULL; bool on_left = true; // (init not needed -- but soothes g++4) // work through tree until we reach its end #ifdef __FASTJET_SEARCHTREE_TRACK_DEPTH unsigned int depth = 0; #endif while(location != NULL) { #ifdef __FASTJET_SEARCHTREE_TRACK_DEPTH depth++; #endif old_location = location; on_left = value < location->value; if (on_left) {location = location->left;} else {location = location->right;} } #ifdef __FASTJET_SEARCHTREE_TRACK_DEPTH _max_depth = max(depth, _max_depth); #endif // now create tree links node->parent = old_location; if (on_left) {node->parent->left = node;} else {node->parent->right = node;} node->left = NULL; node->right = NULL; // and create predecessor / successor links node->predecessor = _find_predecessor(node); if (node->predecessor != NULL) { // it exists, so make use of its info (will include a cyclic case, // when successor is round the bend) node->successor = node->predecessor->successor; node->predecessor->successor = node; node->successor->predecessor = node; } else { // deal with case when we are left-most edge of tree (then successor // will exist...) node->successor = _find_successor(node); assert(node->successor != NULL); // can only happen if we're sole element // (but not allowed, since tree size>=1) node->predecessor = node->successor->predecessor; node->successor->predecessor = node; node->predecessor->successor = node; } return circulator(node); } //---------------------------------------------------------------------- template void SearchTree::verify_structure() { // do a check running through all elements verify_structure_linear(); // do a recursive check down tree from top // first establish the extremities const Node * left_limit = _top_node; while (left_limit->left != NULL) {left_limit = left_limit->left;} const Node * right_limit = _top_node; while (right_limit->right != NULL) {right_limit = right_limit->right;} // then actually do recursion verify_structure_recursive(_top_node, left_limit, right_limit); } //---------------------------------------------------------------------- template void SearchTree::verify_structure_recursive( const typename SearchTree::Node * element, const typename SearchTree::Node * left_limit, const typename SearchTree::Node * right_limit) const { assert(!(element->value < left_limit->value)); assert(!(right_limit->value < element->value)); const Node * left = element->left; if (left != NULL) { assert(!(element->value < left->value)); if (left != left_limit) { // recurse down the tree with this element as the right-hand limit verify_structure_recursive(left, left_limit, element);} } const Node * right = element->right; if (right != NULL) { assert(!(right->value < element->value)); if (right != right_limit) { // recurse down the tree with this element as the left-hand limit verify_structure_recursive(right, element, right_limit);} } } //---------------------------------------------------------------------- template void SearchTree::verify_structure_linear() const { //print_elements(); unsigned n_top = 0; unsigned n_null = 0; for(unsigned i = 0; i < _nodes.size(); i++) { const typename SearchTree::Node * node = &(_nodes[i]); // make sure node is defined if (node->treelinks_null()) {n_null++; continue;} // make sure of the number of "top" nodes if (node->parent == NULL) { n_top++; //assert(node->left != NULL); //assert(node->right != NULL); } else { // make sure that I am a child of my parent... //assert((node->parent->left == node) || (node->parent->right == node)); assert((node->parent->left == node) ^ (node->parent->right == node)); } // when there is a left child make sure it's value is ordered // (note use of !(bleft != NULL) { assert(!(node->value < node->left->value ));} // when there is a right child make sure it's value is ordered if (node->right != NULL) { assert(!(node->right->value < node->value ));} } assert(n_top == 1 || (n_top == 0 && size() <= 1) ); assert(n_null == _available_nodes.size() || (n_null == _available_nodes.size() + 1 && size() == 1)); } //---------------------------------------------------------------------- template typename SearchTree::Node * SearchTree::_find_predecessor(const typename SearchTree::Node * node) { typename SearchTree::Node * newnode; if (node->left != NULL) { // go down left, and then down right as far as possible. newnode = node->left; while(newnode->right != NULL) {newnode = newnode->right;} return newnode; } else { const typename SearchTree::Node * lastnode = node; newnode = node->parent; // go up the tree as long as we're going right (when we go left then // we've found something smaller, so stop) while(newnode != NULL) { if (newnode->right == lastnode) {return newnode;} lastnode = newnode; newnode = newnode->parent; } return newnode; } } //---------------------------------------------------------------------- template typename SearchTree::Node * SearchTree::_find_successor(const typename SearchTree::Node * node) { typename SearchTree::Node * newnode; if (node->right != NULL) { // go down right, and then down left as far as possible. newnode = node->right; while(newnode->left != NULL) {newnode = newnode->left;} return newnode; } else { const typename SearchTree::Node * lastnode = node; newnode = node->parent; // go up the tree as long as we're going left (when we go right then // we've found something larger, so stop) while(newnode != NULL) { if (newnode->left == lastnode) {return newnode;} lastnode = newnode; newnode = newnode->parent; } return newnode; } } //---------------------------------------------------------------------- // print out all the elements for visual checking... template void SearchTree::print_elements() { typename SearchTree::Node * base_node = &(_nodes[0]); typename SearchTree::Node * node = base_node; int n = _nodes.size(); for(; node - base_node < n ; node++) { printf("%4d parent:%4d left:%4d right:%4d pred:%4d succ:%4d value:%10.6f\n",loc(node), loc(node->parent), loc(node->left), loc(node->right), loc(node->predecessor),loc(node->successor),node->value); } } //---------------------------------------------------------------------- template typename SearchTree::circulator SearchTree::somewhere() { return circulator(_top_node); } //---------------------------------------------------------------------- template typename SearchTree::const_circulator SearchTree::somewhere() const { return const_circulator(_top_node); } FASTJET_END_NAMESPACE #endif // __FASTJET_SEARCHTREE_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/internal/LimitedWarning.hh0000644000175000017500000000324311766120135023373 0ustar sunsun#ifndef __FASTJET_INTERNALLIMITEDWARNING_HH__ #define __FASTJET_INTERNALLIMITEDWARNING_HH__ //STARTHEADER // $Id: LimitedWarning.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER // we have moved LimitedWarning.hh one directory up; still allow // old form of access #include "fastjet/LimitedWarning.hh" #warning *** You have included fastjet/internal/LimitedWarning.hh. \ Access to LimitedWarning through this header is deprecated as of FJ3.0. \ Please instead use fastjet/LimitedWarning.hh #endif // __FASTJET_INTERNALLIMITEDWARNING_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/internal/Dnn4piCylinder.hh0000644000175000017500000001055211766120135023305 0ustar sunsun//STARTHEADER // $Id: Dnn4piCylinder.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef DROP_CGAL // in case we do not have the code for CGAL #ifndef __FASTJET_DNN4PICYLINDER_HH__ #define __FASTJET_DNN4PICYLINDER_HH__ #include "fastjet/internal/DynamicNearestNeighbours.hh" #include "fastjet/internal/DnnPlane.hh" #include "fastjet/internal/numconsts.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// \if internal_doc /// @ingroup internal /// \class Dnn4piCylinder /// class derived from DynamicNearestNeighbours that provides an /// implementation for the surface of cylinder (using two copies of /// DnnPlane, one running from 0--2pi, the other from pi--3pi). /// \endif class Dnn4piCylinder : public DynamicNearestNeighbours { public: /// empty initaliser Dnn4piCylinder() {} /// Initialiser from a set of points on an Eta-Phi plane, where /// eta can have an arbitrary ranges and phi must be in range /// 0 <= phi < 2pi Dnn4piCylinder(const std::vector &, const bool & verbose = false ); /// Returns the index of the nearest neighbour of point labelled /// by ii (assumes ii is valid) int NearestNeighbourIndex(const int & ii) const ; /// Returns the distance to the nearest neighbour of point labelled /// by index ii (assumes ii is valid) double NearestNeighbourDistance(const int & ii) const ; /// Returns true iff the given index corresponds to a point that /// exists in the DNN structure (meaning that it has been added, and /// not removed in the meantime) bool Valid(const int & index) const; void RemoveAndAddPoints(const std::vector & indices_to_remove, const std::vector & points_to_add, std::vector & indices_added, std::vector & indices_of_updated_neighbours); ~Dnn4piCylinder(); private: bool _verbose; // NB: we define POINTERS here because the initialisation gave // us problems (things crashed!), perhaps because in practice // we were making a copy without being careful and defining // a proper copy constructor. DnnPlane * _DNN1, * _DNN2; /// given a phi value in the 0--2pi range return one /// in the pi--3pi range. inline EtaPhi _remap_phi(const EtaPhi & point) { double phi = point.second; if (phi < pi) { phi += twopi ;} return EtaPhi(point.first, phi);} }; // here follow some inline implementations of the simpler of the // functions defined above inline int Dnn4piCylinder::NearestNeighbourIndex(const int & current) const { return (_DNN1->NearestNeighbourDistance(current) < _DNN2->NearestNeighbourDistance(current)) ? _DNN1->NearestNeighbourIndex(current) : _DNN2->NearestNeighbourIndex(current) ; } inline double Dnn4piCylinder::NearestNeighbourDistance(const int & current) const { return (_DNN1->NearestNeighbourDistance(current) < _DNN2->NearestNeighbourDistance(current)) ? _DNN1->NearestNeighbourDistance(current) : _DNN2->NearestNeighbourDistance(current) ; } inline bool Dnn4piCylinder::Valid(const int & index) const { return (_DNN1->Valid(index) && _DNN2->Valid(index)); } inline Dnn4piCylinder::~Dnn4piCylinder() { delete _DNN1; delete _DNN2; } FASTJET_END_NAMESPACE #endif // __FASTJET_DNN4PICYLINDER_HH__ #endif // DROP_CGAL fastjet-3.0.6+dfsg.orig/include/fastjet/internal/Makefile.am0000644000175000017500000000113111766120135022163 0ustar sunsunfastjetincludeinternaldir = $(includedir)/fastjet/internal fastjetincludeinternal_HEADERS = base.hh ClosestPair2DBase.hh \ Dnn2piCylinder.hh Dnn4piCylinder.hh DynamicNearestNeighbours.hh \ numconsts.hh Triangulation.hh BasicRandom.hh ClosestPair2D.hh \ Dnn3piCylinder.hh DnnPlane.hh LimitedWarning.hh MinHeap.hh \ SearchTree.hh Voronoi.hh IsBase.hh # # the following file is used by internal .cc files and # possibly also by plugins # # the use of noinst_HEADERS in this case seems to be the # the recommendation of section 9.2 of the automake manual # noinst_HEADERS = ClusterSequence_N2.iccfastjet-3.0.6+dfsg.orig/include/fastjet/CircularRange.hh0000644000175000017500000001047311766120136021367 0ustar sunsun//STARTHEADER // $Id: CircularRange.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CIRCULARRANGE_HH__ #define __FASTJET_CIRCULARRANGE_HH__ #include "fastjet/RangeDefinition.hh" #include "fastjet/Error.hh" // for backwards compatibility: one should now use SelectorCircle, // defined in fastjet/Selector.hh, instead CircularRange #warning This file includes fastjet/CircularRange.hh, \ a deprecated FastJet header provided only for backward compatibility. \ This is not guaranteed to work in future releases of FastJet. \ From FastJet 3.0 onwards, please consider using Selector, defined in \ fastjet/Selector.hh, instead of RangeDefinition and, in particular, \ SelectorCircle instead of CircularRange. FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh class CircularRange : public fastjet::RangeDefinition { public: /// constructor CircularRange() {_set_invalid_rapphi();} /// initialise CircularRange with a jet CircularRange(const fastjet::PseudoJet & jet, double distance) { _distance = distance; _rapjet = jet.rap(); _phijet = jet.phi(); _total_area = fastjet::pi*_distance*_distance; } /// initialise CircularRange with a (rap,phi) point CircularRange(double rap, double phi, double distance) { _distance = distance; _rapjet = rap; _phijet = phi; _total_area = fastjet::pi*_distance*_distance; } /// initialise CircularRange with just the radius parameter CircularRange(double distance) { _set_invalid_rapphi(); _distance = distance; _total_area = fastjet::pi*_distance*_distance; } /// destructor virtual ~CircularRange() {} /// return description of range virtual inline std::string description() const { std::ostringstream ostr; ostr << "CircularRange: within distance "<< _distance << " of given jet or point." ; return ostr.str(); } /// returns true since this range is localizable (i.e. set_position /// does something meaningful) virtual inline bool is_localizable() const { return true; } /// return bool according to whether (rap,phi) is in range virtual inline bool is_in_range(double rap, double phi) const { if (! _rapphi_are_valid()) { throw Error("Circular range used without a center having being defined (use set_position())"); } double deltaphi = _phijet - phi; if ( deltaphi > pi) { deltaphi -= twopi; } else if ( deltaphi < -pi) { deltaphi += twopi; } bool inrange = ( (rap-_rapjet)*(rap-_rapjet) + deltaphi*deltaphi <= _distance*_distance ); return inrange; } /// return the minimal and maximal rapidity of this range virtual inline void get_rap_limits(double & rapmin, double & rapmax) const { rapmin = _rapjet - _distance; rapmax = _rapjet + _distance; } private: double _distance; /// value for phi that marks it as invalid const static double _invalid_phi = -1000.0; /// set internal phi so as to mark things as invalid void _set_invalid_rapphi() {_phijet = _invalid_phi;} /// true if rap,phi are valid (tests only phi) bool _rapphi_are_valid() const {return _phijet != _invalid_phi;} }; FASTJET_END_NAMESPACE #endif // __FASTJET_CIRCULARRANGE_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/ClusterSequenceVoronoiArea.hh0000644000175000017500000001057611766120136024131 0ustar sunsun//STARTHEADER // $Id: ClusterSequenceVoronoiArea.hh 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CLUSTERSEQUENCEVORONOIAREA_HH__ #define __FASTJET_CLUSTERSEQUENCEVORONOIAREA_HH__ #include "fastjet/PseudoJet.hh" #include "fastjet/AreaDefinition.hh" #include "fastjet/ClusterSequenceAreaBase.hh" #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// @ingroup sec_area_classes /// \class ClusterSequenceVoronoiArea /// Like ClusterSequence with computation of the Voronoi jet area /// /// Handle the computation of Voronoi jet area. /// /// This class should not be used directly. Rather use /// ClusterSequenceArea with the appropriate AreaDefinition class ClusterSequenceVoronoiArea : public ClusterSequenceAreaBase { public: /// template ctor /// \param pseudojet list of jets (template type) /// \param jet_def jet definition /// \param effective_Rfact effective radius /// \param writeout_combinations ?????? template ClusterSequenceVoronoiArea (const std::vector & pseudojets, const JetDefinition & jet_def, const VoronoiAreaSpec & spec = VoronoiAreaSpec(), const bool & writeout_combinations = false); /// default dtor ~ClusterSequenceVoronoiArea(); /// return the area associated with the given jet virtual inline double area(const PseudoJet & jet) const { return _voronoi_area[jet.cluster_hist_index()];} /// return a 4-vector area associated with the given jet -- stricly /// this is not the exact 4-vector area, but rather an approximation /// made of sums of centres of all Voronoi cells in jet, each /// contributing with a normalisation equal to the area of the cell virtual inline PseudoJet area_4vector(const PseudoJet & jet) const { return _voronoi_area_4vector[jet.cluster_hist_index()];} /// return the error of the area associated with the given jet /// (0 by definition for a voronoi area) virtual inline double area_error(const PseudoJet & /*jet*/) const { return 0.0;} /// passive area calculator -- to be defined in the .cc file (it will do /// the true hard work) class VoronoiAreaCalc; private: /// initialisation of the Voronoi Area void _initializeVA(); std::vector _voronoi_area; ///< vector containing the result std::vector _voronoi_area_4vector; ///< vector containing approx 4-vect areas VoronoiAreaCalc *_pa_calc; ///< area calculator double _effective_Rfact; ///< effective radius }; /// template constructor need to be specified in the header! //---------------------------------------------------------------------- template ClusterSequenceVoronoiArea::ClusterSequenceVoronoiArea (const std::vector &pseudojets, const JetDefinition &jet_def_in, const VoronoiAreaSpec & spec, const bool & writeout_combinations) : _effective_Rfact(spec.effective_Rfact()) { // transfer the initial jets (type L) into our own array _transfer_input_jets(pseudojets); // run the clustering _initialise_and_run(jet_def_in,writeout_combinations); // the jet clustering's already been done, now worry about areas... _initializeVA(); } FASTJET_END_NAMESPACE #endif // __FASTJET_CLUSTERSEQUENCEVORONOIAREA_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh0000644000175000017500000002173211766120135026576 0ustar sunsun//STARTHEADER // $Id: ClusterSequenceActiveAreaExplicitGhosts.hh 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CLUSTERSEQUENCEACTIVEAREAEXPLICITGHOSTS_HH_ #define __FASTJET_CLUSTERSEQUENCEACTIVEAREAEXPLICITGHOSTS_HH_ #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequenceAreaBase.hh" #include "fastjet/GhostedAreaSpec.hh" #include "fastjet/LimitedWarning.hh" #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //====================================================================== /// @ingroup sec_area_classes /// \class ClusterSequenceActiveAreaExplicitGhosts /// Like ClusterSequence with computation of the active jet area with the /// addition of explicit ghosts /// /// Class that behaves essentially like ClusterSequence except /// that it also provides access to the area of a jet (which /// will be a random quantity... Figure out what to do about seeds /// later...) /// /// This class should not be used directly. Rather use /// ClusterSequenceArea with the appropriate AreaDefinition class ClusterSequenceActiveAreaExplicitGhosts : public ClusterSequenceAreaBase { public: /// constructor using a GhostedAreaSpec to specify how the area is /// to be measured template ClusterSequenceActiveAreaExplicitGhosts (const std::vector & pseudojets, const JetDefinition & jet_def_in, const GhostedAreaSpec & ghost_spec, const bool & writeout_combinations = false) : ClusterSequenceAreaBase() { std::vector * ghosts = NULL; _initialise(pseudojets,jet_def_in,&ghost_spec,ghosts,0.0, writeout_combinations); } template ClusterSequenceActiveAreaExplicitGhosts (const std::vector & pseudojets, const JetDefinition & jet_def_in, const std::vector & ghosts, double ghost_area, const bool & writeout_combinations = false) : ClusterSequenceAreaBase() { const GhostedAreaSpec * ghost_spec = NULL; _initialise(pseudojets,jet_def_in,ghost_spec,&ghosts,ghost_area, writeout_combinations); } /// does the actual work of initialisation template void _initialise (const std::vector & pseudojets, const JetDefinition & jet_def_in, const GhostedAreaSpec * ghost_spec, const std::vector * ghosts, double ghost_area, const bool & writeout_combinations); //vector constituents (const PseudoJet & jet) const; /// returns the number of hard particles (i.e. those supplied by the user). unsigned int n_hard_particles() const; /// returns the area of a jet virtual double area (const PseudoJet & jet) const; /// returns a four vector corresponding to the sum (E-scheme) of the /// ghost four-vectors composing the jet area, normalised such that /// for a small contiguous area the p_t of the extended_area jet is /// equal to area of the jet. virtual PseudoJet area_4vector (const PseudoJet & jet) const; /// true if a jet is made exclusively of ghosts virtual bool is_pure_ghost(const PseudoJet & jet) const; /// true if the entry in the history index corresponds to a /// ghost; if hist_ix does not correspond to an actual particle /// (i.e. hist_ix < 0), then the result is false. bool is_pure_ghost(int history_index) const; /// this class does have explicit ghosts virtual bool has_explicit_ghosts() const {return true;} /// return the total area, corresponding to a given Selector, that /// consists of unclustered ghosts /// /// The selector needs to apply jet by jet virtual double empty_area(const Selector & selector) const; /// returns the total area under study double total_area () const; /// returns the largest squared transverse momentum among /// all ghosts double max_ghost_perp2() const {return _max_ghost_perp2;} /// returns true if there are any particles whose transverse momentum /// if so low that there's a risk of the ghosts having modified the /// clustering sequence bool has_dangerous_particles() const {return _has_dangerous_particles;} /// get the area of the ghosts //double ghost_area() const{return _ghost_area;} private: int _n_ghosts; double _ghost_area; std::vector _is_pure_ghost; std::vector _areas; std::vector _area_4vectors; // things related to checks for dangerous particles double _max_ghost_perp2; bool _has_dangerous_particles; static LimitedWarning _warnings; //static int _n_warn_dangerous_particles; //static const int _max_warn_dangerous_particles = 5; unsigned int _initial_hard_n; /// adds the "ghost" momenta, which will be used to estimate /// the jet area void _add_ghosts(const GhostedAreaSpec & ghost_spec); /// another way of adding ghosts template void _add_ghosts ( const std::vector & ghosts, double ghost_area); /// routine to be called after the processing is done so as to /// establish summary information on all the jets (areas, whether /// pure ghost, etc.) void _post_process(); }; //---------------------------------------------------------------------- // initialise from some generic type... Has to be made available // here in order for the template aspect of it to work... template void ClusterSequenceActiveAreaExplicitGhosts::_initialise (const std::vector & pseudojets, const JetDefinition & jet_def_in, const GhostedAreaSpec * ghost_spec, const std::vector * ghosts, double ghost_area, const bool & writeout_combinations) { // don't reserve space yet -- will be done below // insert initial jets this way so that any type L that can be // converted to a pseudojet will work fine (basically PseudoJet // and any type that has [] subscript access to the momentum // components, such as CLHEP HepLorentzVector). for (unsigned int i = 0; i < pseudojets.size(); i++) { PseudoJet mom(pseudojets[i]); //mom.set_user_index(0); // for user's particles (user index now lost...) _jets.push_back(mom); _is_pure_ghost.push_back(false); } _initial_hard_n = _jets.size(); if (ghost_spec != NULL) { //std::cout << "about to reserve " << (_jets.size()+ghost_spec->n_ghosts())*2 << std::endl; _jets.reserve((_jets.size()+ghost_spec->n_ghosts())); _add_ghosts(*ghost_spec); } else { _jets.reserve(_jets.size()+ghosts->size()); _add_ghosts(*ghosts, ghost_area); } if (writeout_combinations) { std::cout << "# Printing particles including ghosts\n"; for (unsigned j = 0; j < _jets.size(); j++) { printf("%5u %20.13f %20.13f %20.13e\n", j,_jets[j].rap(),_jets[j].phi_02pi(),_jets[j].kt2()); } std::cout << "# Finished printing particles including ghosts\n"; } // this will ensure that we can still point to jets without // difficulties arising! //std::cout << _jets.size() << " " << _jets.size()*2 << " " << _jets.max_size() << std::endl; _jets.reserve(_jets.size()*2); //GPS tmp removed // run the clustering _initialise_and_run(jet_def_in,writeout_combinations); // set up all other information _post_process(); } inline unsigned int ClusterSequenceActiveAreaExplicitGhosts::n_hard_particles() const {return _initial_hard_n;} //---------------------------------------------------------------------- /// add an explicitly specified bunch of ghosts template void ClusterSequenceActiveAreaExplicitGhosts::_add_ghosts ( const std::vector & ghosts, double ghost_area) { for (unsigned i = 0; i < ghosts.size(); i++) { _is_pure_ghost.push_back(true); _jets.push_back(ghosts[i]); } // and record some info about ghosts _ghost_area = ghost_area; _n_ghosts = ghosts.size(); } FASTJET_END_NAMESPACE #endif // __FASTJET_CLUSTERSEQUENCEACTIVEAREAEXPLICITGHOSTS_HH_ fastjet-3.0.6+dfsg.orig/include/fastjet/GhostedAreaSpec.hh0000644000175000017500000002333611766120136021651 0ustar sunsun//STARTHEADER // $Id: GhostedAreaSpec.hh 2728 2011-11-20 14:18:59Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_GHOSTEDAREASPEC_HH__ #define __FASTJET_GHOSTEDAREASPEC_HH__ #include #include #include "fastjet/PseudoJet.hh" #include "fastjet/internal/BasicRandom.hh" #include "fastjet/Selector.hh" #include "fastjet/LimitedWarning.hh" // #define STATIC_GENERATOR 1 FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// namespace to hold default parameters for the active area spec namespace gas { const double def_ghost_maxrap = 6.0; const int def_repeat = 1; const double def_ghost_area = 0.01; const double def_grid_scatter = 1.0; const double def_pt_scatter = 0.1; const double def_mean_ghost_pt = 1e-100; } //---------------------------------------------------------------------- /// @ingroup area_classes /// \class GhostedAreaSpec /// Parameters to configure the computation of jet areas using ghosts /// /// Class that defines the parameters that go into the measurement /// of active jet areas. class GhostedAreaSpec { public: /// default constructor GhostedAreaSpec(): _ghost_maxrap (gas::def_ghost_maxrap), _ghost_rap_offset(0.0), _repeat (gas::def_repeat), _ghost_area (gas::def_ghost_area), _grid_scatter (gas::def_grid_scatter), _pt_scatter (gas::def_pt_scatter), _mean_ghost_pt(gas::def_mean_ghost_pt), _fj2_placement(false) {_initialize();} /// explicit constructor explicit GhostedAreaSpec(double ghost_maxrap_in, int repeat_in = gas::def_repeat, double ghost_area_in = gas::def_ghost_area, double grid_scatter_in = gas::def_grid_scatter, double pt_scatter_in = gas::def_pt_scatter, double mean_ghost_pt_in = gas::def_mean_ghost_pt ): _ghost_maxrap(ghost_maxrap_in), _ghost_rap_offset(0.0), _repeat(repeat_in), _ghost_area(ghost_area_in), _grid_scatter(grid_scatter_in), _pt_scatter(pt_scatter_in), _mean_ghost_pt(mean_ghost_pt_in), _fj2_placement(false) {_initialize();} /// explicit constructor explicit GhostedAreaSpec(double ghost_minrap_in, double ghost_maxrap_in, int repeat_in = gas::def_repeat, double ghost_area_in = gas::def_ghost_area, double grid_scatter_in = gas::def_grid_scatter, double pt_scatter_in = gas::def_pt_scatter, double mean_ghost_pt_in = gas::def_mean_ghost_pt ): _ghost_maxrap (0.5*(ghost_maxrap_in - ghost_minrap_in)), _ghost_rap_offset(0.5*(ghost_maxrap_in + ghost_minrap_in)), _repeat(repeat_in), _ghost_area(ghost_area_in), _grid_scatter(grid_scatter_in), _pt_scatter(pt_scatter_in), _mean_ghost_pt(mean_ghost_pt_in), _fj2_placement(false) {_initialize();} /// constructor based on a Selector explicit GhostedAreaSpec(const Selector & selector, int repeat_in = gas::def_repeat, double ghost_area_in = gas::def_ghost_area, double grid_scatter_in = gas::def_grid_scatter, double pt_scatter_in = gas::def_pt_scatter, double mean_ghost_pt_in = gas::def_mean_ghost_pt ); /// does the initialization of actual ghost parameters void _initialize(); // for accessing values set by the user inline double ghost_etamax () const {return _ghost_maxrap;} inline double ghost_maxrap () const {return _ghost_maxrap;} inline double ghost_area () const {return _ghost_area ;} inline double grid_scatter () const {return _grid_scatter;} inline double pt_scatter () const {return _pt_scatter ;} inline double mean_ghost_pt() const {return _mean_ghost_pt ;} inline int repeat () const {return _repeat ;} inline bool fj2_placement() const {return _fj2_placement;} inline double kt_scatter () const {return _pt_scatter ;} inline double mean_ghost_kt() const {return _mean_ghost_pt ;} // for accessing values inline double actual_ghost_area() const {return _actual_ghost_area;} inline int n_ghosts() const {return _n_ghosts;} // when explicitly modifying values, sometimes call the initializer inline void set_ghost_area (double val) {_ghost_area = val; _initialize();} inline void set_ghost_etamax (double val) {_ghost_maxrap = val; _initialize();} inline void set_ghost_maxrap (double val) {_ghost_maxrap = val; _initialize();} inline void set_grid_scatter (double val) {_grid_scatter = val; } inline void set_pt_scatter (double val) {_pt_scatter = val; } inline void set_mean_ghost_pt(double val) {_mean_ghost_pt = val; } inline void set_repeat (int val) {_repeat = val; } inline void set_kt_scatter (double val) {_pt_scatter = val; } inline void set_mean_ghost_kt(double val) {_mean_ghost_pt = val; } /// if val is true, set ghost placement as it was in FastJet 2.X. The /// main differences between FJ2 and FJ3 ghost placement are /// /// - in FJ2 the rapidity spacing was /// ceil((maxrap-minrap)/sqrt(area)), while in FJ3 it is /// int((maxrap-minrap)/sqrt(area) + 0.5) [similarly for phi]. /// The FJ3 option offers more stability when trying to specify a /// spacing that exactly fits the extent. /// /// - in FJ2, the ghosts are placed at the corners of grid cells /// (i.e. extending up to maxrap), while in FJ3 they are placed at /// the centres of grid cells (i.e. extending roughly up to /// maxrap-sqrt(area)). The FJ2 behaviour effectively skews the /// total area coverage when maxrap is small, by an amount /// sqrt(area)/(2*maxrap). /// /// FJ2 placement is now deprecated. void set_fj2_placement(bool val); /// return nphi (ghosts layed out (-nrap, 0..nphi-1), (-nrap+1,0..nphi-1), /// ... (nrap,0..nphi-1) inline int nphi() const {return _nphi;} inline int nrap() const {return _nrap;} /// get all relevant information about the status of the /// random number generator, so that it can be reset subsequently /// with set_random_status. inline void get_random_status(std::vector & __iseed) const { _random_generator.get_status(__iseed);} /// set the status of the random number generator, as obtained /// previously with get_random_status. Note that the random /// generator is a static member of the class, i.e. common to all /// instances of the class --- so if you modify the random for this /// instance, you modify it for all instances. inline void set_random_status(const std::vector & __iseed) { _random_generator.set_status(__iseed);} inline void checkpoint_random() {get_random_status(_random_checkpoint);} inline void restore_checkpoint_random() {set_random_status(_random_checkpoint);} /// for a summary std::string description() const; /// push a set of ghost 4-momenta onto the back of the vector of /// PseudoJets void add_ghosts(std::vector & ) const; /// very deprecated public access to a random number /// from the internal generator inline double random_at_own_risk() const {return _our_rand();} /// very deprecated public access to the generator itself inline BasicRandom & generator_at_own_risk() const { return _random_generator;} private: // quantities that determine nature and distribution of ghosts double _ghost_maxrap; double _ghost_rap_offset; int _repeat ; double _ghost_area ; double _grid_scatter; double _pt_scatter ; double _mean_ghost_pt; bool _fj2_placement; Selector _selector; // derived quantities double _actual_ghost_area, _dphi, _drap; int _n_ghosts, _nphi, _nrap; std::vector _random_checkpoint; static BasicRandom _random_generator; //mutable BasicRandom _random_generator; static LimitedWarning _warn_fj2_placement_deprecated; inline double _our_rand() const {return _random_generator();} }; /// just provide a typedef for backwards compatibility with programs /// based on versions 2.0 and 2.1 of fastjet. Since there is no /// easy way of telling people this is deprecated at compile or run /// time, we should be careful before removing this in the future. typedef GhostedAreaSpec ActiveAreaSpec; FASTJET_END_NAMESPACE #endif // __FASTJET_GHOSTEDAREASPEC_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/ClusterSequencePassiveArea.hh0000644000175000017500000000647211766120136024110 0ustar sunsun//STARTHEADER // $Id: ClusterSequencePassiveArea.hh 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CLUSTERSEQUENCEPASSIVEAREA_HH__ #define __FASTJET_CLUSTERSEQUENCEPASSIVEAREA_HH__ #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequence1GhostPassiveArea.hh" #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //using namespace std; /// @ingroup sec_area_classes /// \class ClusterSequencePassiveArea /// Like ClusterSequence with computation of the passive jet area /// /// Class that behaves essentially like ClusterSequence except /// that it also provides access to the area of a jet (which /// will be a random quantity... Figure out what to do about seeds /// later...) /// /// This class should not be used directly. Rather use /// ClusterSequenceArea with the appropriate AreaDefinition class ClusterSequencePassiveArea : public ClusterSequence1GhostPassiveArea { public: /// constructor based on JetDefinition and PassiveAreaSpec template ClusterSequencePassiveArea (const std::vector & pseudojets, const JetDefinition & jet_def_in, const GhostedAreaSpec & area_spec, const bool & writeout_combinations = false) ; /// return an empty area that's appropriate to the passive area /// determination carried out virtual double empty_area(const Selector & selector) const; private: /// does the initialisation and running specific to the passive /// areas class void _initialise_and_run_PA (const JetDefinition & jet_def_in, const GhostedAreaSpec & area_spec, const bool & writeout_combinations = false); }; template ClusterSequencePassiveArea::ClusterSequencePassiveArea (const std::vector & pseudojets, const JetDefinition & jet_def_in, const GhostedAreaSpec & area_spec, const bool & writeout_combinations) { // transfer the initial jets (type L) into our own array _transfer_input_jets(pseudojets); // run the clustering for passive areas _initialise_and_run_PA(jet_def_in, area_spec, writeout_combinations); } FASTJET_END_NAMESPACE #endif // __FASTJET_CLUSTERSEQUENCEPASSIVEAREA_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/ClusterSequenceActiveArea.hh0000644000175000017500000002160411766120136023703 0ustar sunsun//STARTHEADER // $Id: ClusterSequenceActiveArea.hh 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CLUSTERSEQUENCEACTIVEAREA_HH__ #define __FASTJET_CLUSTERSEQUENCEACTIVEAREA_HH__ #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequenceAreaBase.hh" #include "fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh" #include #include //------------ backwards compatibility with version 2.1 ------------- // for backwards compatibility make ActiveAreaSpec name available //#include "fastjet/ActiveAreaSpec.hh" //#include "fastjet/ClusterSequenceWithArea.hh" //-------------------------------------------------------------------- FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //using namespace std; /// @ingroup sec_area_classes /// \class ClusterSequenceActiveArea /// Like ClusterSequence with computation of the active jet area /// /// Class that behaves essentially like ClusterSequence except /// that it also provides access to the area of a jet (which /// will be a random quantity... Figure out what to do about seeds /// later...) /// /// This class should not be used directly. Rather use /// ClusterSequenceArea with the appropriate AreaDefinition class ClusterSequenceActiveArea : public ClusterSequenceAreaBase { public: /// default constructor ClusterSequenceActiveArea() {} /// constructor based on JetDefinition and GhostedAreaSpec template ClusterSequenceActiveArea (const std::vector & pseudojets, const JetDefinition & jet_def_in, const GhostedAreaSpec & ghost_spec, const bool & writeout_combinations = false) ; virtual double area (const PseudoJet & jet) const { return _average_area[jet.cluster_hist_index()];}; virtual double area_error (const PseudoJet & jet) const { return _average_area2[jet.cluster_hist_index()];}; virtual PseudoJet area_4vector (const PseudoJet & jet) const { return _average_area_4vector[jet.cluster_hist_index()];}; /// enum providing a variety of tentative strategies for estimating /// the background (e.g. non-jet) activity in a highly populated event; the /// one that has been most extensively tested is median. enum mean_pt_strategies{median=0, non_ghost_median, pttot_over_areatot, pttot_over_areatot_cut, mean_ratio_cut, play, median_4vector}; /// return the transverse momentum per unit area according to one /// of the above strategies; for some strategies (those with "cut" /// in their name) the parameter "range" allows one to exclude a /// subset of the jets for the background estimation, those that /// have pt/area > median(pt/area)*range. /// /// NB: This call is OBSOLETE; use media_pt_per_unit_area from the // ClusterSequenceAreaBase class instead double pt_per_unit_area(mean_pt_strategies strat=median, double range=2.0 ) const; // following code removed -- now dealt with by AreaBase class (and // this definition here conflicts with it). // /// fits a form pt_per_unit_area(y) = a + b*y^2 in the range // /// abs(y) & unique_hist_order, const ClusterSequenceActiveAreaExplicitGhosts & ); /// child classes benefit from having these at their disposal std::valarray _average_area, _average_area2; std::valarray _average_area_4vector; /// returns true if there are any particles whose transverse momentum /// if so low that there's a risk of the ghosts having modified the /// clustering sequence bool has_dangerous_particles() const {return _has_dangerous_particles;} private: double _non_jet_area, _non_jet_area2, _non_jet_number; double _maxrap_for_area; // max rap where we put ghosts double _safe_rap_for_area; // max rap where we trust jet areas bool _has_dangerous_particles; /// routine for extracting the tree in an order that will be independent /// of any degeneracies in the recombination sequence that don't /// affect the composition of the final jets void _extract_tree(std::vector &) const; /// do the part of the extraction associated with pos, working /// through its children and their parents void _extract_tree_children(int pos, std::valarray &, const std::valarray &, std::vector &) const; /// do the part of the extraction associated with the parents of pos. void _extract_tree_parents (int pos, std::valarray &, const std::valarray &, std::vector &) const; /// check if two jets have the same momentum to within the /// tolerance (and if pt's are not the same we're forgiving and /// look to see if the energy is the same) void _throw_unless_jets_have_same_perp_or_E(const PseudoJet & jet, const PseudoJet & refjet, double tolerance, const ClusterSequenceActiveAreaExplicitGhosts & jets_ghosted_seq ) const; /// since we are playing nasty games with seeds, we should warn /// the user a few times //static int _n_seed_warnings; //const static int _max_seed_warnings = 10; // record the number of repeats int _ghost_spec_repeat; /// a class for our internal storage of ghost jets class GhostJet : public PseudoJet { public: GhostJet(const PseudoJet & j, double a) : PseudoJet(j), area(a){} double area; }; std::vector _ghost_jets; std::vector _unclustered_ghosts; }; template ClusterSequenceActiveArea::ClusterSequenceActiveArea (const std::vector & pseudojets, const JetDefinition & jet_def_in, const GhostedAreaSpec & ghost_spec, const bool & writeout_combinations) { // transfer the initial jets (type L) into our own array _transfer_input_jets(pseudojets); // run the clustering for active areas _initialise_and_run_AA(jet_def_in, ghost_spec, writeout_combinations); } FASTJET_END_NAMESPACE #endif // __FASTJET_CLUSTERSEQUENCEACTIVEAREA_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/Makefile.in0000644000175000017500000005361512233506213020371 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include/fastjet DIST_COMMON = $(fastjetinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/config.h.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(fastjetincludedir)" \ "$(DESTDIR)$(fastjetincludedir)" HEADERS = $(fastjetinclude_HEADERS) $(nodist_fastjetinclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = internal fastjetincludedir = $(includedir)/fastjet fastjetinclude_HEADERS = JetDefinition.hh\ PseudoJetStructureBase.hh\ ClusterSequenceStructure.hh\ PseudoJet.hh\ ClusterSequence.hh\ Error.hh\ RangeDefinition.hh\ CircularRange.hh\ version.hh\ AreaDefinition.hh\ ActiveAreaSpec.hh\ GhostedAreaSpec.hh\ ClusterSequenceAreaBase.hh\ ClusterSequenceArea.hh\ ClusterSequenceWithArea.hh\ ClusterSequenceActiveArea.hh\ ClusterSequenceActiveAreaExplicitGhosts.hh\ ClusterSequence1GhostPassiveArea.hh\ ClusterSequencePassiveArea.hh\ ClusterSequenceVoronoiArea.hh\ NNH.hh\ SharedPtr.hh\ FunctionOfPseudoJet.hh\ Selector.hh\ CompositeJetStructure.hh\ WrappedStructure.hh\ LimitedWarning.hh\ config.h nodist_fastjetinclude_HEADERS = config_auto.h EXTRA_DIST = config_win.h all: config_raw.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/fastjet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu include/fastjet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): config_raw.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(top_srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status include/fastjet/config_raw.h $(top_srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config_raw.h stamp-h1 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fastjetincludeHEADERS: $(fastjetinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludedir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludedir)" @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludedir)" || exit $$?; \ done uninstall-fastjetincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludedir)" && rm -f $$files install-nodist_fastjetincludeHEADERS: $(nodist_fastjetinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludedir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludedir)" @list='$(nodist_fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludedir)" || exit $$?; \ done uninstall-nodist_fastjetincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nodist_fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludedir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(HEADERS) config_raw.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(fastjetincludedir)" "$(DESTDIR)$(fastjetincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-fastjetincludeHEADERS \ install-nodist_fastjetincludeHEADERS install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-fastjetincludeHEADERS \ uninstall-nodist_fastjetincludeHEADERS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-hdr distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-fastjetincludeHEADERS \ install-html install-html-am install-info install-info-am \ install-man install-nodist_fastjetincludeHEADERS install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-fastjetincludeHEADERS \ uninstall-nodist_fastjetincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/include/fastjet/ClusterSequenceWithArea.hh0000644000175000017500000000444711766120136023411 0ustar sunsun//STARTHEADER // $Id: ClusterSequenceWithArea.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2006-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CLUSTERSEQUENCEWITHAREA_HH__ #define __FASTJET_CLUSTERSEQUENCEWITHAREA_HH__ // for backwards compatibility fastjet/ClusterSequenceWithArea.hh // provides the ClusterSequenceWithArea class that is equivalent to // ClusterSequenceArea. The latter should now be used together with // the fastjet/ClusterSequenceArea.hh. ClusterSequenceWithArea is not // guaranteed to work in future release of FastJet #warning You have included fastjet/ClusterSequenceWithArea.hh, \ a deprecated FastJet header provided only for backward compatibility. \ This is not guaranteed to work in future releases of FastJet. \ Please consider including fastjet/ClusterSequenceArea.hh directly. \ Similarily, if you use the (deprecated) class ClusterSequenceWithArea, \ please switch to the equivalent ClusterSequenceArea instead. #include "fastjet/ClusterSequenceAreaBase.hh" FASTJET_BEGIN_NAMESPACE //----- backwards compatibility with version 2.1 --------------- typedef ClusterSequenceAreaBase ClusterSequenceWithArea; FASTJET_END_NAMESPACE #endif // __FASTJET_CLUSTERSEQUENCEWITHAREA_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/config.h0000644000175000017500000000044411766120136017740 0ustar sunsun#ifndef __FASTJET_CONFIG_H__ #define __FASTJET_CONFIG_H__ // by default, use an automatically generated config_auto.h // unless it's a windows machine in which case #ifndef WIN32 #include "config_auto.h" #else #include "fastjet/config_win.h" #endif // WIN32 #endif // __FASTJET_CONFIG_H__ fastjet-3.0.6+dfsg.orig/include/fastjet/ClusterSequenceStructure.hh0000644000175000017500000002513412127746207023706 0ustar sunsun//STARTHEADER // $Id: ClusterSequenceStructure.hh 3071 2013-04-01 12:52:46Z cacciari $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CLUSTER_SEQUENCE_STRUCTURE_HH__ #define __FASTJET_CLUSTER_SEQUENCE_STRUCTURE_HH__ #include "fastjet/internal/base.hh" #include "fastjet/SharedPtr.hh" #include "fastjet/PseudoJetStructureBase.hh" #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// @ingroup extra_info /// \class ClusterSequenceStructure /// /// Contains any information related to the clustering that should be /// directly accessible to PseudoJet. /// /// By default, this class implements basic access to the /// ClusterSequence related to a PseudoJet (like its constituents or /// its area). But it can be overloaded in order e.g. to give access /// to the jet substructure. /// // Design question: Do we only put the methods that can be overloaded // or do we put everything a PJ can have access to? I think both cost // the same number of indirections. The first option limits the amount // of coding and maybe has a clearer structure. The second is more // consistent (everything related to the same thing is at the same // place) and gives better access for derived classes. We'll go for // the second option. class ClusterSequenceStructure : public PseudoJetStructureBase{ public: /// default ctor ClusterSequenceStructure() : _associated_cs(NULL){} /// ctor with initialisation to a given ClusterSequence /// /// In principle, this is reserved for initialisation by the parent /// ClusterSequence ClusterSequenceStructure(const ClusterSequence *cs){ set_associated_cs(cs); }; /// default (virtual) dtor virtual ~ClusterSequenceStructure(); /// description virtual std::string description() const{ return "PseudoJet with an associated ClusterSequence"; } //------------------------------------------------------------- /// @name Direct access to the associated ClusterSequence object. /// /// Get access to the associated ClusterSequence (if any) //\{ //------------------------------------------------------------- /// returns true if there is an associated ClusterSequence virtual bool has_associated_cluster_sequence() const{ return true;} /// get a (const) pointer to the parent ClusterSequence (NULL if /// inexistent) virtual const ClusterSequence* associated_cluster_sequence() const; /// returns true if there is a valid associated ClusterSequence virtual bool has_valid_cluster_sequence() const; /// if the jet has a valid associated cluster sequence then return a /// pointer to it; otherwise throw an error virtual const ClusterSequence * validated_cs() const; #ifndef __FJCORE__ /// if the jet has valid area information then return a pointer to /// the associated ClusterSequenceAreaBase object; otherwise throw an error virtual const ClusterSequenceAreaBase * validated_csab() const; #endif // __FJCORE__ /// set the associated csw virtual void set_associated_cs(const ClusterSequence * new_cs){ _associated_cs = new_cs; } //\} //------------------------------------------------------------- /// @name Methods for access to information about jet structure /// /// These allow access to jet constituents, and other jet /// subtructure information. They only work if the jet is associated /// with a ClusterSequence. //------------------------------------------------------------- //\{ /// check if it has been recombined with another PseudoJet in which /// case, return its partner through the argument. Otherwise, /// 'partner' is set to 0. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual bool has_partner(const PseudoJet &reference, PseudoJet &partner) const; /// check if it has been recombined with another PseudoJet in which /// case, return its child through the argument. Otherwise, 'child' /// is set to 0. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual bool has_child(const PseudoJet &reference, PseudoJet &child) const; /// check if it is the product of a recombination, in which case /// return the 2 parents through the 'parent1' and 'parent2' /// arguments. Otherwise, set these to 0. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual bool has_parents(const PseudoJet &reference, PseudoJet &parent1, PseudoJet &parent2) const; /// check if the reference PseudoJet is contained in the second one /// passed as argument. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence /// /// false is returned if the 2 PseudoJet do not belong the same /// ClusterSequence virtual bool object_in_jet(const PseudoJet &reference, const PseudoJet &jet) const; /// return true if the structure supports constituents. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual bool has_constituents() const; /// retrieve the constituents. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual std::vector constituents(const PseudoJet &reference) const; /// return true if the structure supports exclusive_subjets. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual bool has_exclusive_subjets() const; /// return a vector of all subjets of the current jet (in the sense /// of the exclusive algorithm) that would be obtained when running /// the algorithm with the given dcut. /// /// Time taken is O(m ln m), where m is the number of subjets that /// are found. If m gets to be of order of the total number of /// constituents in the jet, this could be substantially slower than /// just getting that list of constituents. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual std::vector exclusive_subjets(const PseudoJet &reference, const double & dcut) const; /// return the size of exclusive_subjets(...); still n ln n with same /// coefficient, but marginally more efficient than manually taking /// exclusive_subjets.size() /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual int n_exclusive_subjets(const PseudoJet &reference, const double & dcut) const; /// return the list of subjets obtained by unclustering the supplied /// jet down to nsub subjets (or all constituents if there are fewer /// than nsub). /// /// requires nsub ln nsub time /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual std::vector exclusive_subjets_up_to (const PseudoJet &reference, int nsub) const; /// return the dij that was present in the merging nsub+1 -> nsub /// subjets inside this jet. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual double exclusive_subdmerge(const PseudoJet &reference, int nsub) const; /// return the maximum dij that occurred in the whole event at the /// stage that the nsub+1 -> nsub merge of subjets occurred inside /// this jet. /// /// an Error is thrown if this PseudoJet has no currently valid /// associated ClusterSequence virtual double exclusive_subdmerge_max(const PseudoJet &reference, int nsub) const; //------------------------------------------------------------------- // information related to the pieces of the jet //------------------------------------------------------------------- /// by convention, a jet associated with a ClusterSequence will have /// its parents as pieces virtual bool has_pieces(const PseudoJet &reference) const; /// by convention, a jet associated with a ClusterSequence will have /// its parents as pieces /// /// if it has no parents, then there will only be a single piece: /// itself /// /// Note that to answer that question, we need to access the cluster /// sequence. If the cluster sequence has gone out of scope, an /// error will be thrown virtual std::vector pieces(const PseudoJet &reference) const; // the following ones require a computation of the area in the // parent ClusterSequence (See ClusterSequenceAreaBase for details) //------------------------------------------------------------------ #ifndef __FJCORE__ /// check if it has a defined area virtual bool has_area() const; /// return the jet (scalar) area. /// throws an Error if there is no support for area in the parent CS virtual double area(const PseudoJet &reference) const; /// return the error (uncertainty) associated with the determination /// of the area of this jet. /// throws an Error if there is no support for area in the parent CS virtual double area_error(const PseudoJet &reference) const; /// return the jet 4-vector area. /// throws an Error if there is no support for area in the parent CS virtual PseudoJet area_4vector(const PseudoJet &reference) const; /// true if this jet is made exclusively of ghosts. /// throws an Error if there is no support for area in the parent CS virtual bool is_pure_ghost(const PseudoJet &reference) const; #endif // __FJCORE__ //\} --- end of jet structure ------------------------------------- protected: const ClusterSequence *_associated_cs; }; FASTJET_END_NAMESPACE #endif // __FASTJET_CLUSTER_SEQUENCE_STRUCTURE_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/ClusterSequenceArea.hh0000644000175000017500000002505311766120136022551 0ustar sunsun//STARTHEADER // $Id: ClusterSequenceArea.hh 2690 2011-11-14 14:57:54Z soyez $ // // Copyright (c) 2006-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CLUSTERSEQUENCEAREA_HH__ #define __FASTJET_CLUSTERSEQUENCEAREA_HH__ #include "fastjet/ClusterSequenceAreaBase.hh" #include "fastjet/ClusterSequenceActiveArea.hh" #include "fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh" #include "fastjet/ClusterSequencePassiveArea.hh" #include "fastjet/ClusterSequenceVoronoiArea.hh" #include "fastjet/AreaDefinition.hh" FASTJET_BEGIN_NAMESPACE /// @ingroup area_classes /// \class ClusterSequenceArea /// General class for user to obtain ClusterSequence with additional /// area information. /// /// Based on the area_def, it automatically dispatches the work to the /// appropriate actual ClusterSequenceAreaBase-derived-class to do the /// real work. class ClusterSequenceArea : public ClusterSequenceAreaBase { public: /// main constructor template ClusterSequenceArea (const std::vector & pseudojets, const JetDefinition & jet_def_in, const AreaDefinition & area_def_in) : _area_def(area_def_in) { initialize_and_run_cswa(pseudojets, jet_def_in); } /// constructor with a GhostedAreaSpec template ClusterSequenceArea (const std::vector & pseudojets, const JetDefinition & jet_def_in, const GhostedAreaSpec & ghost_spec) : _area_def(ghost_spec){ initialize_and_run_cswa(pseudojets, jet_def_in); } /// constructor with a VoronoiAreaSpec template ClusterSequenceArea (const std::vector & pseudojets, const JetDefinition & jet_def_in, const VoronoiAreaSpec & voronoi_spec) : _area_def(voronoi_spec){ initialize_and_run_cswa(pseudojets, jet_def_in); } /// return a reference to the area definition const AreaDefinition & area_def() const {return _area_def;} /// return the area associated with the given jet virtual double area (const PseudoJet & jet) const { return _area_base->area(jet);} /// return the error (uncertainty) associated with the determination /// of the area of this jet virtual double area_error (const PseudoJet & jet) const { return _area_base->area_error(jet);} /// return the 4-vector area virtual PseudoJet area_4vector(const PseudoJet & jet) const { return _area_base->area_4vector(jet);} // /// return the total area, up to |y|empty_area(maxrap);} // // /// return something similar to the number of pure ghost jets // /// in the given rapidity range in an active area case. // /// For the local implementation we return empty_area/(0.55 pi R^2), // /// based on measured properties of ghost jets with kt and cam. Note // /// that the number returned is a double. // virtual double n_empty_jets(double maxrap) const { // return _area_base->n_empty_jets(maxrap); /// return the total area, corresponding to the given selector, that /// is free of jets /// /// The selector needs to have a finite area and be applicable jet by /// jet (see the BackgroundEstimator and Subtractor tools for more /// advanced usage) virtual double empty_area(const Selector & selector) const { return _area_base->empty_area(selector);} /// return something similar to the number of pure ghost jets /// in the given rap-phi range in an active area case. /// For the local implementation we return empty_area/(0.55 pi R^2), /// based on measured properties of ghost jets with kt and cam. Note /// that the number returned is a double. /// /// The selector needs to have a finite area and be applicable jet by /// jet (see the BackgroundEstimator and Subtractor tools for more /// advanced usage) virtual double n_empty_jets(const Selector & selector) const { return _area_base->n_empty_jets(selector); } /// true if a jet is made exclusively of ghosts virtual bool is_pure_ghost(const PseudoJet & jet) const { return _area_base->is_pure_ghost(jet); } /// true if this ClusterSequence has explicit ghosts virtual bool has_explicit_ghosts() const { return _area_base->has_explicit_ghosts(); } /// overload version of what's in the ClusterSequenceAreaBase class, which /// additionally checks compatibility between "selector" and region in which /// ghosts are thrown. /// /// The selector needs to have a finite area and be applicable jet by /// jet (see the BackgroundEstimator and Subtractor tools for more /// advanced usage) virtual void get_median_rho_and_sigma(const std::vector & all_jets, const Selector & selector, bool use_area_4vector, double & median, double & sigma, double & mean_area, bool all_are_incl = false) const { _warn_if_range_unsuitable(selector); ClusterSequenceAreaBase::get_median_rho_and_sigma( all_jets, selector, use_area_4vector, median, sigma, mean_area, all_are_incl); } /// overload version of what's in the ClusterSequenceAreaBase class, /// which actually just does the same thing as the base version (but /// since we've overridden the 5-argument version above, we have to /// override the 4-argument version too. virtual void get_median_rho_and_sigma(const Selector & selector, bool use_area_4vector, double & median, double & sigma) const { ClusterSequenceAreaBase::get_median_rho_and_sigma(selector,use_area_4vector, median,sigma); } /// overload version of what's in the ClusterSequenceAreaBase class, /// which actually just does the same thing as the base version (but /// since we've overridden the multi-argument version above, we have to /// override the 5-argument version too. virtual void get_median_rho_and_sigma(const Selector & selector, bool use_area_4vector, double & median, double & sigma, double & mean_area) const { ClusterSequenceAreaBase::get_median_rho_and_sigma(selector,use_area_4vector, median,sigma, mean_area); } /// overload version of what's in the ClusterSequenceAreaBase class, which /// additionally checks compatibility between "range" and region in which /// ghosts are thrown. virtual void parabolic_pt_per_unit_area(double & a, double & b, const Selector & selector, double exclude_above=-1.0, bool use_area_4vector=false) const { _warn_if_range_unsuitable(selector); ClusterSequenceAreaBase::parabolic_pt_per_unit_area( a,b,selector, exclude_above, use_area_4vector); } private: /// print a warning if the range is unsuitable for the current /// calculation of the area (e.g. because ghosts do not extend /// far enough). void _warn_if_range_unsuitable(const Selector & selector) const; template void initialize_and_run_cswa ( const std::vector & pseudojets, const JetDefinition & jet_def); std::auto_ptr _area_base; AreaDefinition _area_def; static LimitedWarning _range_warnings; static LimitedWarning _explicit_ghosts_repeats_warnings; }; //---------------------------------------------------------------------- template void ClusterSequenceArea::initialize_and_run_cswa( const std::vector & pseudojets, const JetDefinition & jet_def_in) { ClusterSequenceAreaBase * _area_base_ptr; switch(_area_def.area_type()) { case active_area: _area_base_ptr = new ClusterSequenceActiveArea(pseudojets, jet_def_in, _area_def.ghost_spec()); break; case active_area_explicit_ghosts: if (_area_def.ghost_spec().repeat() != 1) _explicit_ghosts_repeats_warnings.warn("Requested active area with explicit ghosts with repeat != 1; only 1 set of ghosts will be used"); _area_base_ptr = new ClusterSequenceActiveAreaExplicitGhosts(pseudojets, jet_def_in, _area_def.ghost_spec()); break; case voronoi_area: _area_base_ptr = new ClusterSequenceVoronoiArea(pseudojets, jet_def_in, _area_def.voronoi_spec()); break; case one_ghost_passive_area: _area_base_ptr = new ClusterSequence1GhostPassiveArea(pseudojets, jet_def_in, _area_def.ghost_spec()); break; case passive_area: _area_base_ptr = new ClusterSequencePassiveArea(pseudojets, jet_def_in, _area_def.ghost_spec()); break; default: std::cerr << "Error: unrecognized area_type in ClusterSequenceArea:" << _area_def.area_type() << std::endl; exit(-1); } // now copy across the information from the area base class _area_base = std::auto_ptr(_area_base_ptr); transfer_from_sequence(*_area_base); } FASTJET_END_NAMESPACE #endif // __FASTJET_CLUSTERSEQUENCEAREA_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/ClusterSequence.hh0000644000175000017500000012336112153571474021767 0ustar sunsun//STARTHEADER // $Id: ClusterSequence.hh 3114 2013-05-04 08:46:00Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_CLUSTERSEQUENCE_HH__ #define __FASTJET_CLUSTERSEQUENCE_HH__ #include #include #include "fastjet/PseudoJet.hh" #include #include #include #include #include #include // needed to get double std::abs(double) #include "fastjet/Error.hh" #include "fastjet/JetDefinition.hh" #include "fastjet/SharedPtr.hh" #include "fastjet/LimitedWarning.hh" #include "fastjet/FunctionOfPseudoJet.hh" #include "fastjet/ClusterSequenceStructure.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // forward declarations class ClusterSequenceStructure; class DynamicNearestNeighbours; /// @ingroup basic_classes /// \class ClusterSequence /// deals with clustering class ClusterSequence { public: /// default constructor ClusterSequence () : _deletes_self_when_unused(false) {} // /// create a clustersequence starting from the supplied set // /// of pseudojets and clustering them with the long-invariant // /// kt algorithm (E-scheme recombination) with the supplied // /// value for R. // /// // /// If strategy=DumbN3 a very stupid N^3 algorithm is used for the // /// clustering; otherwise strategy = NlnN* uses cylinders algorithms // /// with some number of pi coverage. If writeout_combinations=true a // /// summary of the recombination sequence is written out // template ClusterSequence (const std::vector & pseudojets, // const double & R = 1.0, // const Strategy & strategy = Best, // const bool & writeout_combinations = false); /// create a clustersequence starting from the supplied set /// of pseudojets and clustering them with jet definition specified /// by jet_def (which also specifies the clustering strategy) template ClusterSequence ( const std::vector & pseudojets, const JetDefinition & jet_def, const bool & writeout_combinations = false); /// copy constructor for a ClusterSequence ClusterSequence (const ClusterSequence & cs) : _deletes_self_when_unused(false) { transfer_from_sequence(cs); } // virtual ClusterSequence destructor, in case any derived class // thinks of needing a destructor at some point virtual ~ClusterSequence (); //{} // NB: in the routines that follow, for extracting lists of jets, a // list structure might be more efficient, if sometimes a little // more awkward to use (at least for old fortran hands). /// return a vector of all jets (in the sense of the inclusive /// algorithm) with pt >= ptmin. Time taken should be of the order /// of the number of jets returned. std::vector inclusive_jets (const double & ptmin = 0.0) const; /// return the number of jets (in the sense of the exclusive /// algorithm) that would be obtained when running the algorithm /// with the given dcut. int n_exclusive_jets (const double & dcut) const; /// return a vector of all jets (in the sense of the exclusive /// algorithm) that would be obtained when running the algorithm /// with the given dcut. std::vector exclusive_jets (const double & dcut) const; /// return a vector of all jets when the event is clustered (in the /// exclusive sense) to exactly njets. /// /// If there are fewer than njets particles in the ClusterSequence /// an error is thrown std::vector exclusive_jets (const int & njets) const; /// return a vector of all jets when the event is clustered (in the /// exclusive sense) to exactly njets. /// /// If there are fewer than njets particles in the ClusterSequence /// the function just returns however many particles there were. std::vector exclusive_jets_up_to (const int & njets) const; /// return the dmin corresponding to the recombination that went /// from n+1 to n jets (sometimes known as d_{n n+1}). If the number /// of particles in the event is <= njets, the function returns 0. double exclusive_dmerge (const int & njets) const; /// return the maximum of the dmin encountered during all recombinations /// up to the one that led to an n-jet final state; identical to /// exclusive_dmerge, except in cases where the dmin do not increase /// monotonically. double exclusive_dmerge_max (const int & njets) const; /// return the ymin corresponding to the recombination that went from /// n+1 to n jets (sometimes known as y_{n n+1}). double exclusive_ymerge (int njets) const {return exclusive_dmerge(njets) / Q2();} /// same as exclusive_dmerge_max, but normalised to squared total energy double exclusive_ymerge_max (int njets) const {return exclusive_dmerge_max(njets)/Q2();} /// the number of exclusive jets at the given ycut int n_exclusive_jets_ycut (double ycut) const {return n_exclusive_jets(ycut*Q2());} /// the exclusive jets obtained at the given ycut std::vector exclusive_jets_ycut (double ycut) const { int njets = n_exclusive_jets_ycut(ycut); return exclusive_jets(njets); } //int n_exclusive_jets (const PseudoJet & jet, const double & dcut) const; /// return a vector of all subjets of the current jet (in the sense /// of the exclusive algorithm) that would be obtained when running /// the algorithm with the given dcut. /// /// Time taken is O(m ln m), where m is the number of subjets that /// are found. If m gets to be of order of the total number of /// constituents in the jet, this could be substantially slower than /// just getting that list of constituents. std::vector exclusive_subjets (const PseudoJet & jet, const double & dcut) const; /// return the size of exclusive_subjets(...); still n ln n with same /// coefficient, but marginally more efficient than manually taking /// exclusive_subjets.size() int n_exclusive_subjets(const PseudoJet & jet, const double & dcut) const; /// return the list of subjets obtained by unclustering the supplied /// jet down to nsub subjets. Throws an error if there are fewer than /// nsub particles in the jet. /// /// This requires nsub ln nsub time std::vector exclusive_subjets (const PseudoJet & jet, int nsub) const; /// return the list of subjets obtained by unclustering the supplied /// jet down to nsub subjets (or all constituents if there are fewer /// than nsub). /// /// This requires nsub ln nsub time std::vector exclusive_subjets_up_to (const PseudoJet & jet, int nsub) const; /// return the dij that was present in the merging nsub+1 -> nsub /// subjets inside this jet. /// /// Returns 0 if there were nsub or fewer constituents in the jet. double exclusive_subdmerge(const PseudoJet & jet, int nsub) const; /// return the maximum dij that occurred in the whole event at the /// stage that the nsub+1 -> nsub merge of subjets occurred inside /// this jet. /// /// Returns 0 if there were nsub or fewer constituents in the jet. double exclusive_subdmerge_max(const PseudoJet & jet, int nsub) const; //std::vector exclusive_jets (const PseudoJet & jet, // const int & njets) const; //double exclusive_dmerge (const PseudoJet & jet, const int & njets) const; /// returns the sum of all energies in the event (relevant mainly for e+e-) double Q() const {return _Qtot;} /// return Q()^2 double Q2() const {return _Qtot*_Qtot;} /// returns true iff the object is included in the jet. /// /// NB: this is only sensible if the object is already registered /// within the cluster sequence, so you cannot use it with an input /// particle to the CS (since the particle won't have the history /// index set properly). /// /// For nice clustering structures it should run in O(ln(N)) time /// but in worst cases (certain cone plugins) it can take O(n) time, /// where n is the number of particles in the jet. bool object_in_jet(const PseudoJet & object, const PseudoJet & jet) const; /// if the jet has parents in the clustering, it returns true /// and sets parent1 and parent2 equal to them. /// /// if it has no parents it returns false and sets parent1 and /// parent2 to zero bool has_parents(const PseudoJet & jet, PseudoJet & parent1, PseudoJet & parent2) const; /// if the jet has a child then return true and give the child jet /// otherwise return false and set the child to zero bool has_child(const PseudoJet & jet, PseudoJet & child) const; /// Version of has_child that sets a pointer to the child if the child /// exists; bool has_child(const PseudoJet & jet, const PseudoJet * & childp) const; /// if this jet has a child (and so a partner) return true /// and give the partner, otherwise return false and set the /// partner to zero bool has_partner(const PseudoJet & jet, PseudoJet & partner) const; /// return a vector of the particles that make up jet std::vector constituents (const PseudoJet & jet) const; /// output the supplied vector of jets in a format that can be read /// by an appropriate root script; the format is: /// jet-n jet-px jet-py jet-pz jet-E /// particle-n particle-rap particle-phi particle-pt /// particle-n particle-rap particle-phi particle-pt /// ... /// #END /// ... [i.e. above repeated] void print_jets_for_root(const std::vector & jets, std::ostream & ostr = std::cout) const; /// print jets for root to the file labelled filename, with an /// optional comment at the beginning void print_jets_for_root(const std::vector & jets, const std::string & filename, const std::string & comment = "") const; // Not yet. Perhaps in a future release. // /// print out all inclusive jets with pt > ptmin // virtual void print_jets (const double & ptmin=0.0) const; /// add on to subjet_vector the constituents of jet (for internal use mainly) void add_constituents (const PseudoJet & jet, std::vector & subjet_vector) const; /// return the enum value of the strategy used to cluster the event inline Strategy strategy_used () const {return _strategy;} /// return the name of the strategy used to cluster the event std::string strategy_string () const {return strategy_string(_strategy);} /// return the name of the strategy associated with the enum strategy_in std::string strategy_string (Strategy strategy_in) const; /// return a reference to the jet definition const JetDefinition & jet_def() const {return _jet_def;} /// by calling this routine you tell the ClusterSequence to delete /// itself when all the Pseudojets associated with it have gone out /// of scope. /// /// At the time you call this, there must be at least one jet or /// other object outside the CS that is associated with the CS /// (e.g. the result of inclusive_jets()). /// /// NB: after having made this call, the user is still allowed to /// delete the CS or let it go out of scope. Jets associated with it /// will then simply not be able to access their substructure after /// that point. void delete_self_when_unused(); /// return true if the object has been told to delete itself /// when unused bool will_delete_self_when_unused() const {return _deletes_self_when_unused;} /// tell the ClusterSequence it's about to be self deleted (internal use only) void signal_imminent_self_deletion() const; /// returns the scale associated with a jet as required for this /// clustering algorithm (kt^2 for the kt-algorithm, 1 for the /// Cambridge algorithm). [May become virtual at some point] double jet_scale_for_algorithm(const PseudoJet & jet) const; /// //----- next follow functions designed specifically for plugins, which // may only be called when plugin_activated() returns true /// record the fact that there has been a recombination between /// jets()[jet_i] and jets()[jet_k], with the specified dij, and /// return the index (newjet_k) allocated to the new jet, whose /// momentum is assumed to be the 4-vector sum of that of jet_i and /// jet_j void plugin_record_ij_recombination(int jet_i, int jet_j, double dij, int & newjet_k) { assert(plugin_activated()); _do_ij_recombination_step(jet_i, jet_j, dij, newjet_k); } /// as for the simpler variant of plugin_record_ij_recombination, /// except that the new jet is attributed the momentum and /// user_index of newjet void plugin_record_ij_recombination(int jet_i, int jet_j, double dij, const PseudoJet & newjet, int & newjet_k); /// record the fact that there has been a recombination between /// jets()[jet_i] and the beam, with the specified diB; when looking /// for inclusive jets, any iB recombination will returned to the user /// as a jet. void plugin_record_iB_recombination(int jet_i, double diB) { assert(plugin_activated()); _do_iB_recombination_step(jet_i, diB); } /// @ingroup extra_info /// \class Extras /// base class to store extra information that plugins may provide /// /// a class intended to serve as a base in case a plugin needs to /// associate extra information with a ClusterSequence (see /// SISConePlugin.* for an example). class Extras { public: virtual ~Extras() {} virtual std::string description() const {return "This is a dummy extras class that contains no extra information! Derive from it if you want to use it to provide extra information from a plugin jet finder";} }; /// the plugin can associate some extra information with the /// ClusterSequence object by calling this function inline void plugin_associate_extras(std::auto_ptr extras_in) { //_extras = extras_in; _extras.reset(extras_in.release()); } /// returns true when the plugin is allowed to run the show. inline bool plugin_activated() const {return _plugin_activated;} /// returns a pointer to the extras object (may be null) const Extras * extras() const {return _extras.get();} /// allows a plugin to run a templated clustering (nearest-neighbour heuristic) /// /// This has N^2 behaviour on "good" distance, but a worst case behaviour /// of N^3 (and many algs trigger the worst case behaviour) /// /// /// For more details on how this works, see GenBriefJet below template void plugin_simple_N2_cluster () { assert(plugin_activated()); _simple_N2_cluster(); } public: //DEP /// set the default (static) jet finder across all current and future //DEP /// ClusterSequence objects -- deprecated and obsolescent (i.e. may be //DEP /// suppressed in a future release). //DEP static void set_jet_algorithm (JetAlgorithm jet_algorithm) {_default_jet_algorithm = jet_algorithm;} //DEP /// same as above for backward compatibility //DEP static void set_jet_finder (JetAlgorithm jet_algorithm) {_default_jet_algorithm = jet_algorithm;} /// \ingroup extra_info /// \struct history_element /// a single element in the clustering history /// /// (see vector _history below). struct history_element{ int parent1; /// index in _history where first parent of this jet /// was created (InexistentParent if this jet is an /// original particle) int parent2; /// index in _history where second parent of this jet /// was created (InexistentParent if this jet is an /// original particle); BeamJet if this history entry /// just labels the fact that the jet has recombined /// with the beam) int child; /// index in _history where the current jet is /// recombined with another jet to form its child. It /// is Invalid if this jet does not further /// recombine. int jetp_index; /// index in the _jets vector where we will find the /// PseudoJet object corresponding to this jet /// (i.e. the jet created at this entry of the /// history). NB: if this element of the history /// corresponds to a beam recombination, then /// jetp_index=Invalid. double dij; /// the distance corresponding to the recombination /// at this stage of the clustering. double max_dij_so_far; /// the largest recombination distance seen /// so far in the clustering history. }; enum JetType {Invalid=-3, InexistentParent = -2, BeamJet = -1}; /// allow the user to access the internally stored _jets() array, /// which contains both the initial particles and the various /// intermediate and final stages of recombination. /// /// The first n_particles() entries are the original particles, /// in the order in which they were supplied to the ClusterSequence /// constructor. It can be useful to access them for example when /// examining whether a given input object is part of a specific /// jet, via the objects_in_jet(...) member function (which only takes /// PseudoJets that are registered in the ClusterSequence). /// /// One of the other (internal uses) is related to the fact /// because we don't seem to be able to access protected elements of /// the class for an object that is not "this" (at least in case where /// "this" is of a slightly different kind from the object, both /// derived from ClusterSequence). const std::vector & jets() const; /// allow the user to access the raw internal history. /// /// This is present (as for jets()) in part so that protected /// derived classes can access this information about other /// ClusterSequences. /// /// A user who wishes to follow the details of the ClusterSequence /// can also make use of this information (and should consult the /// history_element documentation for more information), but should /// be aware that these internal structures may evolve in future /// FastJet versions. const std::vector & history() const; /// returns the number of particles that were provided to the /// clustering algorithm (helps the user find their way around the /// history and jets objects if they weren't paying attention /// beforehand). unsigned int n_particles() const; /// returns a vector of size n_particles() which indicates, for /// each of the initial particles (in the order in which they were /// supplied), which of the supplied jets it belongs to; if it does /// not belong to any of the supplied jets, the index is set to -1; std::vector particle_jet_indices(const std::vector &) const; /// routine that returns an order in which to read the history /// such that clusterings that lead to identical jet compositions /// but different histories (because of degeneracies in the /// clustering order) will have matching constituents for each /// matching entry in the unique_history_order. /// /// The order has the property that an entry's parents will always /// appear prior to that entry itself. /// /// Roughly speaking the order is such that we first provide all /// steps that lead to the final jet containing particle 1; then we /// have the steps that lead to reconstruction of the jet containing /// the next-lowest-numbered unclustered particle, etc... /// [see GPS CCN28-12 for more info -- of course a full explanation /// here would be better...] std::vector unique_history_order() const; /// return the set of particles that have not been clustered. For /// kt and cam/aachen algorithms this should always be null, but for /// cone type algorithms it can be non-null; std::vector unclustered_particles() const; /// Return the list of pseudojets in the ClusterSequence that do not /// have children (and are not among the inclusive jets). They may /// result from a clustering step or may be one of the pseudojets /// returned by unclustered_particles(). std::vector childless_pseudojets() const; /// returns true if the object (jet or particle) is contained by (ie /// belongs to) this cluster sequence. /// /// Tests performed: if thejet's interface is this cluster sequence /// and its cluster history index is in a consistent range. bool contains(const PseudoJet & object) const; /// transfer the sequence contained in other_seq into our own; /// any plugin "extras" contained in the from_seq will be lost /// from there. /// /// It also sets the ClusterSequence pointers of the PseudoJets in /// the history to point to this ClusterSequence /// /// When specified, the second argument is an action that will be /// applied on every jets in the resulting ClusterSequence void transfer_from_sequence(const ClusterSequence & from_seq, const FunctionOfPseudoJet * action_on_jets = 0); /// retrieve a shared pointer to the wrapper to this ClusterSequence /// /// this may turn useful if you want to track when this /// ClusterSequence goes out of scope const SharedPtr & structure_shared_ptr() const{ return _structure_shared_ptr; } /// the structure type associated with a jet belonging to a ClusterSequence typedef ClusterSequenceStructure StructureType; /// This is the function that is automatically called during /// clustering to print the FastJet banner. Only the first call to /// this function will result in the printout of the banner. Users /// may wish to call this function themselves, during the /// initialization phase of their program, in order to ensure that /// the banner appears before other output. This call will not /// affect 3rd-party banners, e.g. those from plugins. static void print_banner(); /// \cond internal_doc // [this line must be left as is to hide the doxygen comment] /// A call to this function modifies the stream used to print /// banners (by default cout). If a null pointer is passed, banner /// printout is suppressed. This affects all banners, including /// those from plugins. /// /// Please note that if you distribute 3rd party code /// that links with FastJet, that 3rd party code must not /// use this call turn off the printing of FastJet banners /// by default. This requirement reflects the spirit of /// clause 2c of the GNU Public License (v2), under which /// FastJet and its plugins are distributed. static void set_fastjet_banner_stream(std::ostream * ostr) {_fastjet_banner_ostr = ostr;} // [this line must be left as is to hide the doxygen comment] /// \endcond /// returns a pointer to the stream to be used to print banners /// (cout by default). This function is used by plugins to determine /// where to direct their banners. Plugins should properly handle /// the case where the pointer is null. static std::ostream * fastjet_banner_stream() {return _fastjet_banner_ostr;} private: /// \cond internal_doc /// contains the actual stream to use for banners static std::ostream * _fastjet_banner_ostr; /// \endcond protected: //DEP static JetAlgorithm _default_jet_algorithm; JetDefinition _jet_def; /// transfer the vector of input jets into our own vector /// _jets (with some reserved space for future growth). template void _transfer_input_jets( const std::vector & pseudojets); /// This is what is called to do all the initialisation and /// then run the clustering (may be called by various constructors). /// It assumes _jets contains the momenta to be clustered. void _initialise_and_run (const JetDefinition & jet_def, const bool & writeout_combinations); //// this performs the initialisation, minus the option-decanting //// stage; for low multiplicity, initialising a few things in the //// constructor, calling the decant_options_partial() and then this //// is faster than going through _initialise_and_run. void _initialise_and_run_no_decant(); //DEP /// This is an alternative routine for initialising and running the //DEP /// clustering, provided for legacy purposes. The jet finder is that //DEP /// specified in the static member _default_jet_algorithm. //DEP void _initialise_and_run (const double & R, //DEP const Strategy & strategy, //DEP const bool & writeout_combinations); /// fills in the various member variables with "decanted" options from /// the jet_definition and writeout_combinations variables void _decant_options(const JetDefinition & jet_def, const bool & writeout_combinations); /// assuming that the jet definition, writeout_combinations and /// _structure_shared_ptr have been set (e.g. in an initialiser list /// in the constructor), it handles the remaining decanting of /// options. void _decant_options_partial(); /// fill out the history (and jet cross refs) related to the initial /// set of jets (assumed already to have been "transferred"), /// without any clustering void _fill_initial_history(); /// carry out the recombination between the jets numbered jet_i and /// jet_j, at distance scale dij; return the index newjet_k of the /// result of the recombination of i and j. void _do_ij_recombination_step(const int & jet_i, const int & jet_j, const double & dij, int & newjet_k); /// carry out an recombination step in which _jets[jet_i] merges with /// the beam, void _do_iB_recombination_step(const int & jet_i, const double & diB); /// every time a jet is added internally during clustering, this /// should be called to set the jet's structure shared ptr to point /// to the CS (and the count of internally associated objects is /// also updated). This should not be called outside construction of /// a CS object. void _set_structure_shared_ptr(PseudoJet & j); /// make sure that the CS's internal tally of the use count matches /// that of the _structure_shared_ptr void _update_structure_use_count(); /// This contains the physical PseudoJets; for each PseudoJet one /// can find the corresponding position in the _history by looking /// at _jets[i].cluster_hist_index(). std::vector _jets; /// this vector will contain the branching history; for each stage, /// _history[i].jetp_index indicates where to look in the _jets /// vector to get the physical PseudoJet. std::vector _history; /// set subhist to be a set pointers to history entries corresponding to the /// subjets of this jet; one stops going working down through the /// subjets either when /// - there is no further to go /// - one has found maxjet entries /// - max_dij_so_far <= dcut /// By setting maxjet=0 one can use just dcut; by setting dcut<0 /// one can use jet maxjet void get_subhist_set(std::set & subhist, const PseudoJet & jet, double dcut, int maxjet) const; bool _writeout_combinations; int _initial_n; double _Rparam, _R2, _invR2; double _Qtot; Strategy _strategy; JetAlgorithm _jet_algorithm; SharedPtr _structure_shared_ptr; //< will actually be of type ClusterSequenceStructure int _structure_use_count_after_construction; //< info of use when CS handles its own memory /// if true then the CS will delete itself when the last external /// object referring to it disappears. It is mutable so as to ensure /// that signal_imminent_self_deletion() [const] can make relevant /// changes. mutable bool _deletes_self_when_unused; private: bool _plugin_activated; //std::auto_ptr _extras; // things the plugin might want to add SharedPtr _extras; // things the plugin might want to add void _really_dumb_cluster (); void _delaunay_cluster (); //void _simple_N2_cluster (); template void _simple_N2_cluster (); void _tiled_N2_cluster (); void _faster_tiled_N2_cluster (); // void _minheap_faster_tiled_N2_cluster(); // things needed specifically for Cambridge with Chan's 2D closest // pairs method void _CP2DChan_cluster(); void _CP2DChan_cluster_2pi2R (); void _CP2DChan_cluster_2piMultD (); void _CP2DChan_limited_cluster(double D); void _do_Cambridge_inclusive_jets(); // NSqrtN method for C/A void _fast_NsqrtN_cluster(); void _add_step_to_history(const int & step_number, const int & parent1, const int & parent2, const int & jetp_index, const double & dij); /// internal routine associated with the construction of the unique /// history order (following children in the tree) void _extract_tree_children(int pos, std::valarray &, const std::valarray &, std::vector &) const; /// internal routine associated with the construction of the unique /// history order (following parents in the tree) void _extract_tree_parents (int pos, std::valarray &, const std::valarray &, std::vector &) const; // these will be useful shorthands in the Voronoi-based code typedef std::pair TwoVertices; typedef std::pair DijEntry; typedef std::multimap DistMap; /// currently used only in the Voronoi based code void _add_ktdistance_to_map(const int & ii, DistMap & DijMap, const DynamicNearestNeighbours * DNN); /// will be set by default to be true for the first run static bool _first_time; /// record the number of warnings provided about the exclusive /// algorithm -- so that we don't print it out more than a few /// times. static int _n_exclusive_warnings; /// the limited warning member for notification of user that /// their requested strategy has been overridden (usually because /// they have R>2pi and not all strategies work then) static LimitedWarning _changed_strategy_warning; //---------------------------------------------------------------------- /// the fundamental structure which contains the minimal info about /// a jet, as needed for our plain N^2 algorithm -- the idea is to /// put all info that will be accessed N^2 times into an array of /// BriefJets... struct BriefJet { double eta, phi, kt2, NN_dist; BriefJet * NN; int _jets_index; }; /// structure analogous to BriefJet, but with the extra information /// needed for dealing with tiles class TiledJet { public: double eta, phi, kt2, NN_dist; TiledJet * NN, *previous, * next; int _jets_index, tile_index, diJ_posn; // routines that are useful in the minheap version of tiled // clustering ("misuse" the otherwise unused diJ_posn, so as // to indicate whether jets need to have their minheap entries // updated). inline void label_minheap_update_needed() {diJ_posn = 1;} inline void label_minheap_update_done() {diJ_posn = 0;} inline bool minheap_update_needed() const {return diJ_posn==1;} }; //-- some of the functions that follow are templates and will work //as well for briefjet and tiled jets /// set the kinematic and labelling info for jeta so that it corresponds /// to _jets[_jets_index] template void _bj_set_jetinfo( J * const jet, const int _jets_index) const; /// "remove" this jet, which implies updating links of neighbours and /// perhaps modifying the tile structure void _bj_remove_from_tiles( TiledJet * const jet) const; /// return the distance between two BriefJet objects template double _bj_dist(const J * const jeta, const J * const jetb) const; // return the diJ (multiplied by _R2) for this jet assuming its NN // info is correct template double _bj_diJ(const J * const jeta) const; /// for testing purposes only: if in the range head--tail-1 there is a /// a jet which corresponds to hist_index in the history, then /// return a pointer to that jet; otherwise return tail. template inline J * _bj_of_hindex( const int hist_index, J * const head, J * const tail) const { J * res; for(res = head; res_jets_index].cluster_hist_index() == hist_index) {break;} } return res; } //-- remaining functions are different in various cases, so we // will use templates but are not sure if they're useful... /// updates (only towards smaller distances) the NN for jeta without checking /// whether in the process jeta itself might be a new NN of one of /// the jets being scanned -- span the range head to tail-1 with /// assumption that jeta is not contained in that range template void _bj_set_NN_nocross(J * const jeta, J * const head, const J * const tail) const; /// reset the NN for jeta and DO check whether in the process jeta /// itself might be a new NN of one of the jets being scanned -- /// span the range head to tail-1 with assumption that jeta is not /// contained in that range template void _bj_set_NN_crosscheck(J * const jeta, J * const head, const J * const tail) const; /// number of neighbours that a tile will have (rectangular geometry /// gives 9 neighbours). static const int n_tile_neighbours = 9; //---------------------------------------------------------------------- /// The fundamental structures to be used for the tiled N^2 algorithm /// (see CCN27-44 for some discussion of pattern of tiling) struct Tile { /// pointers to neighbouring tiles, including self Tile * begin_tiles[n_tile_neighbours]; /// neighbouring tiles, excluding self Tile ** surrounding_tiles; /// half of neighbouring tiles, no self Tile ** RH_tiles; /// just beyond end of tiles Tile ** end_tiles; /// start of list of BriefJets contained in this tile TiledJet * head; /// sometimes useful to be able to tag a tile bool tagged; }; std::vector _tiles; double _tiles_eta_min, _tiles_eta_max; double _tile_size_eta, _tile_size_phi; int _n_tiles_phi,_tiles_ieta_min,_tiles_ieta_max; // reasonably robust return of tile index given ieta and iphi, in particular // it works even if iphi is negative inline int _tile_index (int ieta, int iphi) const { // note that (-1)%n = -1 so that we have to add _n_tiles_phi // before performing modulo operation return (ieta-_tiles_ieta_min)*_n_tiles_phi + (iphi+_n_tiles_phi) % _n_tiles_phi; } // routines for tiled case, including some overloads of the plain // BriefJet cases int _tile_index(const double & eta, const double & phi) const; void _tj_set_jetinfo ( TiledJet * const jet, const int _jets_index); void _bj_remove_from_tiles(TiledJet * const jet); void _initialise_tiles(); void _print_tiles(TiledJet * briefjets ) const; void _add_neighbours_to_tile_union(const int tile_index, std::vector & tile_union, int & n_near_tiles) const; void _add_untagged_neighbours_to_tile_union(const int tile_index, std::vector & tile_union, int & n_near_tiles); //---------------------------------------------------------------------- /// fundamental structure for e+e- clustering struct EEBriefJet { double NN_dist; // obligatorily present double kt2; // obligatorily present == E^2 in general EEBriefJet * NN; // must be present too int _jets_index; // must also be present! //........................................................... double nx, ny, nz; // our internal storage for fast distance calcs }; /// to help instantiation (fj 2.4.0; did not quite work on gcc 33 and os x 10.3?) //void _dummy_N2_cluster_instantiation(); /// to avoid issues with template instantiation (OS X 10.3, gcc 3.3) void _simple_N2_cluster_BriefJet(); /// to avoid issues with template instantiation (OS X 10.3, gcc 3.3) void _simple_N2_cluster_EEBriefJet(); }; //********************************************************************** //************** START OF INLINE MATERIAL ****************** //********************************************************************** //---------------------------------------------------------------------- // Transfer the initial jets into our internal structure template void ClusterSequence::_transfer_input_jets( const std::vector & pseudojets) { // this will ensure that we can point to jets without difficulties // arising. _jets.reserve(pseudojets.size()*2); // insert initial jets this way so that any type L that can be // converted to a pseudojet will work fine (basically PseudoJet // and any type that has [] subscript access to the momentum // components, such as CLHEP HepLorentzVector). for (unsigned int i = 0; i < pseudojets.size(); i++) { _jets.push_back(pseudojets[i]);} } // //---------------------------------------------------------------------- // // initialise from some generic type... Has to be made available // // here in order for it the template aspect of it to work... // template ClusterSequence::ClusterSequence ( // const std::vector & pseudojets, // const double & R, // const Strategy & strategy, // const bool & writeout_combinations) { // // // transfer the initial jets (type L) into our own array // _transfer_input_jets(pseudojets); // // // run the clustering // _initialise_and_run(R,strategy,writeout_combinations); // } //---------------------------------------------------------------------- /// constructor of a jet-clustering sequence from a vector of /// four-momenta, with the jet definition specified by jet_def template ClusterSequence::ClusterSequence ( const std::vector & pseudojets, const JetDefinition & jet_def_in, const bool & writeout_combinations) : _jet_def(jet_def_in), _writeout_combinations(writeout_combinations), _structure_shared_ptr(new ClusterSequenceStructure(this)) { // transfer the initial jets (type L) into our own array _transfer_input_jets(pseudojets); // transfer the remaining options _decant_options_partial(); // run the clustering _initialise_and_run_no_decant(); } inline const std::vector & ClusterSequence::jets () const { return _jets; } inline const std::vector & ClusterSequence::history () const { return _history; } inline unsigned int ClusterSequence::n_particles() const {return _initial_n;} //---------------------------------------------------------------------- template inline void ClusterSequence::_bj_set_jetinfo( J * const jetA, const int _jets_index) const { jetA->eta = _jets[_jets_index].rap(); jetA->phi = _jets[_jets_index].phi_02pi(); jetA->kt2 = jet_scale_for_algorithm(_jets[_jets_index]); jetA->_jets_index = _jets_index; // initialise NN info as well jetA->NN_dist = _R2; jetA->NN = NULL; } //---------------------------------------------------------------------- template inline double ClusterSequence::_bj_dist( const J * const jetA, const J * const jetB) const { double dphi = std::abs(jetA->phi - jetB->phi); double deta = (jetA->eta - jetB->eta); if (dphi > pi) {dphi = twopi - dphi;} return dphi*dphi + deta*deta; } //---------------------------------------------------------------------- template inline double ClusterSequence::_bj_diJ(const J * const jet) const { double kt2 = jet->kt2; if (jet->NN != NULL) {if (jet->NN->kt2 < kt2) {kt2 = jet->NN->kt2;}} return jet->NN_dist * kt2; } //---------------------------------------------------------------------- // set the NN for jet without checking whether in the process you might // have discovered a new nearest neighbour for another jet template inline void ClusterSequence::_bj_set_NN_nocross( J * const jet, J * const head, const J * const tail) const { double NN_dist = _R2; J * NN = NULL; if (head < jet) { for (J * jetB = head; jetB != jet; jetB++) { double dist = _bj_dist(jet,jetB); if (dist < NN_dist) { NN_dist = dist; NN = jetB; } } } if (tail > jet) { for (J * jetB = jet+1; jetB != tail; jetB++) { double dist = _bj_dist(jet,jetB); if (dist < NN_dist) { NN_dist = dist; NN = jetB; } } } jet->NN = NN; jet->NN_dist = NN_dist; } //---------------------------------------------------------------------- template inline void ClusterSequence::_bj_set_NN_crosscheck(J * const jet, J * const head, const J * const tail) const { double NN_dist = _R2; J * NN = NULL; for (J * jetB = head; jetB != tail; jetB++) { double dist = _bj_dist(jet,jetB); if (dist < NN_dist) { NN_dist = dist; NN = jetB; } if (dist < jetB->NN_dist) { jetB->NN_dist = dist; jetB->NN = jet; } } jet->NN = NN; jet->NN_dist = NN_dist; } FASTJET_END_NAMESPACE #endif // __FASTJET_CLUSTERSEQUENCE_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/WrappedStructure.hh0000644000175000017500000002402511766120135022166 0ustar sunsun//STARTHEADER // $Id: WrappedStructure.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_WRAPPED_STRUCTURE_HH__ #define __FASTJET_WRAPPED_STRUCTURE_HH__ #include "fastjet/PseudoJetStructureBase.hh" #include "fastjet/Error.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// @ingroup extra_info /// \class WrappedStructure /// /// This wraps a (shared) pointer to an underlying structure /// /// The typical use-case is when a PseusoJet needs to share its /// structure with another PseudoJet but also include extra /// information in its structure. For the memory management to be /// handled properly, it should hold a shared pointer to the shared /// structure. This is what this class ensures. Deriving a structure /// from this class would then allow for the implementation of the /// extra features. /// class WrappedStructure : public PseudoJetStructureBase{ public: /// default ctor /// the argument is the structure we need to wrap WrappedStructure(const SharedPtr & to_be_shared) : _structure(to_be_shared){ if (!_structure()) throw Error("Trying to construct a wrapped structure around an empty (NULL) structure"); } /// default (virtual) dtor virtual ~WrappedStructure(){} /// description virtual std::string description() const{ return "PseudoJet wrapping the structure ("+_structure->description()+")"; } //------------------------------------------------------------- /// @name Direct access to the associated ClusterSequence object. /// /// Get access to the associated ClusterSequence (if any) //\{ //------------------------------------------------------------- /// returns true if there is an associated ClusterSequence virtual bool has_associated_cluster_sequence() const { return _structure->has_associated_cluster_sequence(); } /// get a (const) pointer to the parent ClusterSequence (NULL if /// inexistent) virtual const ClusterSequence* associated_cluster_sequence() const{ return _structure->associated_cluster_sequence(); } /// returns true if this PseudoJet has an associated and still /// valid ClusterSequence. virtual bool has_valid_cluster_sequence() const { return _structure->has_valid_cluster_sequence(); } /// if the jet has a valid associated cluster sequence then return a /// pointer to it; otherwise throw an error virtual const ClusterSequence * validated_cs() const{ return _structure->validated_cs(); } /// if the jet has valid area information then return a pointer to /// the associated ClusterSequenceAreaBase object; otherwise throw an error virtual const ClusterSequenceAreaBase * validated_csab() const{ return _structure->validated_csab(); } //\} //------------------------------------------------------------- /// @name Methods for access to information about jet structure /// /// These allow access to jet constituents, and other jet /// subtructure information. They only work if the jet is associated /// with a ClusterSequence. //------------------------------------------------------------- //\{ /// check if it has been recombined with another PseudoJet in which /// case, return its partner through the argument. Otherwise, /// 'partner' is set to 0. /// /// By default, throws an Error virtual bool has_partner(const PseudoJet &reference, PseudoJet &partner) const{ return _structure->has_partner(reference, partner); } /// check if it has been recombined with another PseudoJet in which /// case, return its child through the argument. Otherwise, 'child' /// is set to 0. /// /// By default, throws an Error virtual bool has_child(const PseudoJet &reference, PseudoJet &child) const{ return _structure->has_child(reference, child); } /// check if it is the product of a recombination, in which case /// return the 2 parents through the 'parent1' and 'parent2' /// arguments. Otherwise, set these to 0. /// /// By default, throws an Error virtual bool has_parents(const PseudoJet &reference, PseudoJet &parent1, PseudoJet &parent2) const{ return _structure->has_parents(reference, parent1, parent2); } /// check if the reference PseudoJet is contained the second one /// passed as argument. /// /// By default, throws an Error virtual bool object_in_jet(const PseudoJet &reference, const PseudoJet &jet) const{ return _structure->object_in_jet(reference, jet); } /// return true if the structure supports constituents. /// /// false by default virtual bool has_constituents() const { return _structure->has_constituents(); } /// retrieve the constituents. /// /// By default, throws an Error virtual std::vector constituents(const PseudoJet &reference) const{ return _structure->constituents(reference); } /// return true if the structure supports exclusive_subjets. virtual bool has_exclusive_subjets() const { return _structure->has_exclusive_subjets(); } /// return a vector of all subjets of the current jet (in the sense /// of the exclusive algorithm) that would be obtained when running /// the algorithm with the given dcut. /// /// Time taken is O(m ln m), where m is the number of subjets that /// are found. If m gets to be of order of the total number of /// constituents in the jet, this could be substantially slower than /// just getting that list of constituents. /// /// By default, throws an Error virtual std::vector exclusive_subjets(const PseudoJet &reference, const double & dcut) const{ return _structure->exclusive_subjets(reference, dcut); } /// return the size of exclusive_subjets(...); still n ln n with same /// coefficient, but marginally more efficient than manually taking /// exclusive_subjets.size() /// /// By default, throws an Error virtual int n_exclusive_subjets(const PseudoJet &reference, const double & dcut) const{ return _structure->n_exclusive_subjets(reference, dcut); } /// return the list of subjets obtained by unclustering the supplied /// jet down to n subjets (or all constituents if there are fewer /// than n). /// /// By default, throws an Error virtual std::vector exclusive_subjets_up_to (const PseudoJet &reference, int nsub) const{ return _structure->exclusive_subjets_up_to (reference, nsub); } /// return the dij that was present in the merging nsub+1 -> nsub /// subjets inside this jet. /// /// By default, throws an Error virtual double exclusive_subdmerge(const PseudoJet &reference, int nsub) const{ return _structure->exclusive_subdmerge(reference, nsub); } /// return the maximum dij that occurred in the whole event at the /// stage that the nsub+1 -> nsub merge of subjets occurred inside /// this jet. /// /// By default, throws an Error virtual double exclusive_subdmerge_max(const PseudoJet &reference, int nsub) const{ return _structure->exclusive_subdmerge_max(reference, nsub); } //------------------------------------------------------------------- // information related to the pieces of the jet //------------------------------------------------------------------- /// return true if the structure supports pieces. /// /// false by default virtual bool has_pieces(const PseudoJet &reference) const { return _structure->has_pieces(reference); } /// retrieve the pieces building the jet. /// /// By default, throws an Error virtual std::vector pieces(const PseudoJet &reference) const{ return _structure->pieces(reference); } // the following ones require a computation of the area in the // parent ClusterSequence (See ClusterSequenceAreaBase for details) //------------------------------------------------------------------ /// check if it has a defined area /// /// false by default virtual bool has_area() const { return _structure->has_area(); } /// return the jet (scalar) area. /// /// By default, throws an Error virtual double area(const PseudoJet &reference) const{ return _structure->area(reference); } /// return the error (uncertainty) associated with the determination /// of the area of this jet. /// /// By default, throws an Error virtual double area_error(const PseudoJet &reference) const{ return _structure->area_error(reference); } /// return the jet 4-vector area. /// /// By default, throws an Error virtual PseudoJet area_4vector(const PseudoJet &reference) const{ return _structure->area_4vector(reference); } /// true if this jet is made exclusively of ghosts. /// /// By default, throws an Error virtual bool is_pure_ghost(const PseudoJet &reference) const{ return _structure->is_pure_ghost(reference); } //\} --- end of jet structure ------------------------------------- protected: SharedPtr _structure; ///< the wrapped structure }; FASTJET_END_NAMESPACE #endif // __FASTJET_PSEUDOJET_STRUCTURE_BASE_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/JetDefinition.hh0000644000175000017500000004651611766120135021407 0ustar sunsun//STARTHEADER // $Id: JetDefinition.hh 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_JETDEFINITION_HH__ #define __FASTJET_JETDEFINITION_HH__ #include #include "fastjet/internal/numconsts.hh" #include "fastjet/PseudoJet.hh" #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// return a string containing information about the release // NB: (implemented in ClusterSequence.cc but defined here because // this is a visible location) std::string fastjet_version_string(); //====================================================================== /// the various options for the algorithmic strategy to adopt in /// clustering events with kt and cambridge style algorithms. enum Strategy { /// fastest form about 500..10^4 N2MinHeapTiled = -4, /// fastest from about 50..500 N2Tiled = -3, /// legacy N2PoorTiled = -2, /// fastest below 50 N2Plain = -1, /// worse even than the usual N^3 algorithms N3Dumb = 0, /// automatic selection of the best (based on N) Best = 1, /// best of the NlnN variants -- best overall for N>10^4. /// (Does not work for R>=2pi) NlnN = 2, /// legacy N ln N using 3pi coverage of cylinder. /// (Does not work for R>=2pi) NlnN3pi = 3, /// legacy N ln N using 4pi coverage of cylinder NlnN4pi = 4, /// Chan's closest pair method (in a variant with 4pi coverage), /// for use exclusively with the Cambridge algorithm. /// (Does not work for R>=2pi) NlnNCam4pi = 14, /// Chan's closest pair method (in a variant with 2pi+2R coverage), /// for use exclusively with the Cambridge algorithm. /// (Does not work for R>=2pi) NlnNCam2pi2R = 13, /// Chan's closest pair method (in a variant with 2pi+minimal extra /// variant), for use exclusively with the Cambridge algorithm. /// (Does not work for R>=2pi) NlnNCam = 12, // 2piMultD /// the plugin has been used... plugin_strategy = 999 }; //====================================================================== /// \enum JetAlgorithm /// the various families of jet-clustering algorithm enum JetAlgorithm { /// the longitudinally invariant kt algorithm kt_algorithm=0, /// the longitudinally invariant variant of the cambridge algorithm /// (aka Aachen algoithm). cambridge_algorithm=1, /// like the k_t but with distance measures /// dij = min(1/kti^2,1/ktj^2) Delta R_{ij}^2 / R^2 /// diB = 1/kti^2 antikt_algorithm=2, /// like the k_t but with distance measures /// dij = min(kti^{2p},ktj^{2p}) Delta R_{ij}^2 / R^2 /// diB = 1/kti^{2p} /// where p = extra_param() genkt_algorithm=3, /// a version of cambridge with a special distance measure for particles /// whose pt is < extra_param() cambridge_for_passive_algorithm=11, /// a version of genkt with a special distance measure for particles /// whose pt is < extra_param() [relevant for passive areas when p<=0] genkt_for_passive_algorithm=13, //................................................................. /// the e+e- kt algorithm ee_kt_algorithm=50, /// the e+e- genkt algorithm (R > 2 and p=1 gives ee_kt) ee_genkt_algorithm=53, //................................................................. /// any plugin algorithm supplied by the user plugin_algorithm = 99, //................................................................. /// the value for the jet algorithm in a JetDefinition for which /// no algorithm has yet been defined undefined_jet_algorithm = 999 }; /// make standard Les Houches nomenclature JetAlgorithm (algorithm is general /// recipe without the parameters) backward-compatible with old JetFinder typedef JetAlgorithm JetFinder; /// provide other possible names for the Cambridge/Aachen algorithm const JetAlgorithm aachen_algorithm = cambridge_algorithm; const JetAlgorithm cambridge_aachen_algorithm = cambridge_algorithm; //====================================================================== /// the various recombination schemes enum RecombinationScheme { /// summing the 4-momenta E_scheme=0, /// pt weighted recombination of y,phi (and summing of pt's) /// with preprocessing to make things massless by rescaling E=|\vec p| pt_scheme=1, /// pt^2 weighted recombination of y,phi (and summing of pt's) /// with preprocessing to make things massless by rescaling E=|\vec p| pt2_scheme=2, /// pt weighted recombination of y,phi (and summing of pt's) /// with preprocessing to make things massless by rescaling |\vec p|->=E Et_scheme=3, /// pt^2 weighted recombination of y,phi (and summing of pt's) /// with preprocessing to make things massless by rescaling |\vec p|->=E Et2_scheme=4, /// pt weighted recombination of y,phi (and summing of pt's), with /// no preprocessing BIpt_scheme=5, /// pt^2 weighted recombination of y,phi (and summing of pt's) /// no preprocessing BIpt2_scheme=6, /// for the user's external scheme external_scheme = 99 }; // forward declaration, needed in order to specify interface for the // plugin. class ClusterSequence; //====================================================================== /// @ingroup basic_classes /// \class JetDefinition /// class that is intended to hold a full definition of the jet /// clusterer class JetDefinition { public: /// forward declaration of a class that allows the user to introduce /// their own plugin class Plugin; // forward declaration of a class that will provide the // recombination scheme facilities and/or allow a user to // extend these facilities class Recombiner; /// constructor with alternative ordering or arguments -- note that /// we have not provided a default jet finder, to avoid ambiguous /// JetDefinition() constructor. JetDefinition(JetAlgorithm jet_algorithm_in, double R_in, RecombinationScheme recomb_scheme_in = E_scheme, Strategy strategy_in = Best) { *this = JetDefinition(jet_algorithm_in, R_in, strategy_in, recomb_scheme_in, 1); } /// constructor for algorithms that have no free parameters /// (e.g. ee_kt_algorithm) JetDefinition(JetAlgorithm jet_algorithm_in, RecombinationScheme recomb_scheme_in = E_scheme, Strategy strategy_in = Best) { double dummyR = 0.0; *this = JetDefinition(jet_algorithm_in, dummyR, strategy_in, recomb_scheme_in, 0); } /// constructor for algorithms that require R + one extra parameter to be set /// (the gen-kt series for example) JetDefinition(JetAlgorithm jet_algorithm_in, double R_in, double xtra_param_in, RecombinationScheme recomb_scheme_in = E_scheme, Strategy strategy_in = Best) { *this = JetDefinition(jet_algorithm_in, R_in, strategy_in, recomb_scheme_in, 2); set_extra_param(xtra_param_in); } /// constructor in a form that allows the user to provide a pointer /// to an external recombiner class (which must remain valid for the /// life of the JetDefinition object). JetDefinition(JetAlgorithm jet_algorithm_in, double R_in, const Recombiner * recombiner_in, Strategy strategy_in = Best) { *this = JetDefinition(jet_algorithm_in, R_in, external_scheme, strategy_in); _recombiner = recombiner_in; } /// constructor for case with 0 parameters (ee_kt_algorithm) and /// and external recombiner JetDefinition(JetAlgorithm jet_algorithm_in, const Recombiner * recombiner_in, Strategy strategy_in = Best) { *this = JetDefinition(jet_algorithm_in, external_scheme, strategy_in); _recombiner = recombiner_in; } /// constructor allowing the extra parameter to be set and a pointer to /// a recombiner JetDefinition(JetAlgorithm jet_algorithm_in, double R_in, double xtra_param_in, const Recombiner * recombiner_in, Strategy strategy_in = Best) { *this = JetDefinition(jet_algorithm_in, R_in, external_scheme, strategy_in); _recombiner = recombiner_in; set_extra_param(xtra_param_in); } /// a default constructor which creates a jet definition that is in /// a well-defined internal state, but not actually usable for jet /// clustering. JetDefinition() { *this = JetDefinition(undefined_jet_algorithm, 1.0); } // /// a default constructor // JetDefinition() { // *this = JetDefinition(kt_algorithm, 1.0); // } /// constructor based on a pointer to a user's plugin; the object /// pointed to must remain valid for the whole duration of existence /// of the JetDefinition and any related ClusterSequences JetDefinition(const Plugin * plugin_in) { _plugin = plugin_in; _strategy = plugin_strategy; _Rparam = _plugin->R(); _jet_algorithm = plugin_algorithm; set_recombination_scheme(E_scheme); } /// constructor to fully specify a jet-definition (together with /// information about how algorithically to run it). /// /// the ordering of arguments here is old and deprecated (except /// as the common constructor for internal use) JetDefinition(JetAlgorithm jet_algorithm_in, double R_in, Strategy strategy_in, RecombinationScheme recomb_scheme_in = E_scheme, int nparameters_in = 1); /// R values larger than max_allowable_R are not allowed. /// /// We use a value of 1000, substantially smaller than /// numeric_limits::max(), to leave room for the convention /// within PseudoJet of setting unphysical (infinite) rapidities to /// +-(MaxRap + abs(pz())), where MaxRap is 10^5. static const double max_allowable_R; //= 1000.0; /// set the recombination scheme to the one provided void set_recombination_scheme(RecombinationScheme); /// set the recombiner class to the one provided void set_recombiner(const Recombiner * recomb) { if (_recombiner_shared()) _recombiner_shared.reset(recomb); _recombiner = recomb; _default_recombiner = DefaultRecombiner(external_scheme); } /// calling this tells the JetDefinition to handle the deletion of /// the recombiner when it is no longer used void delete_recombiner_when_unused(); /// return a pointer to the plugin const Plugin * plugin() const {return _plugin;}; /// allows to let the JetDefinition handle the deletion of the /// plugin when it is no longer used void delete_plugin_when_unused(); /// return information about the definition... JetAlgorithm jet_algorithm () const {return _jet_algorithm ;} /// same as above for backward compatibility JetAlgorithm jet_finder () const {return _jet_algorithm ;} double R () const {return _Rparam ;} // a general purpose extra parameter, whose meaning depends on // the algorithm, and may often be unused. double extra_param () const {return _extra_param ;} Strategy strategy () const {return _strategy ;} RecombinationScheme recombination_scheme() const { return _default_recombiner.scheme();} /// (re)set the jet finder void set_jet_algorithm(JetAlgorithm njf) {_jet_algorithm = njf;} /// same as above for backward compatibility void set_jet_finder(JetAlgorithm njf) {_jet_algorithm = njf;} /// (re)set the general purpose extra parameter void set_extra_param(double xtra_param) {_extra_param = xtra_param;} /// return a pointer to the currently defined recombiner. /// /// Warning: the pointer may be to an internal recombiner (for /// default recombination schemes), in which case if the /// JetDefinition becomes invalid (e.g. is deleted), the pointer /// will then point to an object that no longer exists. /// /// Note also that if you copy a JetDefinition with a default /// recombination scheme, then the two copies will have distinct /// recombiners, and return different recombiner() pointers. const Recombiner * recombiner() const { return _recombiner == 0 ? & _default_recombiner : _recombiner;} /// returns true if the current jet definitions shares the same /// recombiner as teh one passed as an argument bool has_same_recombiner(const JetDefinition &other_jd) const; /// return a textual description of the current jet definition std::string description() const; public: //====================================================================== /// @ingroup advanced_usage /// \class Recombiner /// An abstract base class that will provide the recombination scheme /// facilities and/or allow a user to extend these facilities class Recombiner { public: /// return a textual description of the recombination scheme /// implemented here virtual std::string description() const = 0; /// recombine pa and pb and put result into pab virtual void recombine(const PseudoJet & pa, const PseudoJet & pb, PseudoJet & pab) const = 0; /// routine called to preprocess each input jet (to make all input /// jets compatible with the scheme requirements (e.g. massless). virtual void preprocess(PseudoJet & ) const {}; /// a destructor to be replaced if necessary in derived classes... virtual ~Recombiner() {}; /// pa += pb in the given recombination scheme. Not virtual -- the /// user should have no reason to want to redefine this! inline void plus_equal(PseudoJet & pa, const PseudoJet & pb) const { // put result in a temporary location in case the recombiner // does something funny (ours doesn't, but who knows about the // user's) PseudoJet pres; recombine(pa,pb,pres); pa = pres; } }; //====================================================================== /// @ingroup advanced_usage /// \class DefaultRecombiner /// A class that will provide the recombination scheme facilities and/or /// allow a user to extend these facilities /// /// This class is derived from the (abstract) class Recombiner. It /// simply "sums" PseudoJets using a specified recombination scheme /// (E-scheme by default) class DefaultRecombiner : public Recombiner { public: DefaultRecombiner(RecombinationScheme recomb_scheme = E_scheme) : _recomb_scheme(recomb_scheme) {} virtual std::string description() const; /// recombine pa and pb and put result into pab virtual void recombine(const PseudoJet & pa, const PseudoJet & pb, PseudoJet & pab) const; virtual void preprocess(PseudoJet & p) const; /// return the index of the recombination scheme RecombinationScheme scheme() const {return _recomb_scheme;} private: RecombinationScheme _recomb_scheme; }; //====================================================================== /// @ingroup advanced_usage /// \class Plugin /// a class that allows a user to introduce their own "plugin" jet /// finder /// /// Note that all the plugins provided with FastJet are derived from /// this class class Plugin{ public: /// return a textual description of the jet-definition implemented /// in this plugin virtual std::string description() const = 0; /// given a ClusterSequence that has been filled up with initial /// particles, the following function should fill up the rest of the /// ClusterSequence, using the following member functions of /// ClusterSequence: /// - plugin_do_ij_recombination(...) /// - plugin_do_iB_recombination(...) virtual void run_clustering(ClusterSequence &) const = 0; virtual double R() const = 0; /// return true if there is specific support for the measurement /// of passive areas, in the sense that areas determined from all /// particles below the ghost separation scale will be a passive /// area. [If you don't understand this, ignore it!] virtual bool supports_ghosted_passive_areas() const {return false;} /// set the ghost separation scale for passive area determinations /// in future runs (strictly speaking that makes the routine /// a non const, so related internal info must be stored as a mutable) virtual void set_ghost_separation_scale(double scale) const; virtual double ghost_separation_scale() const {return 0.0;} /// if this returns false then a warning will be given /// whenever the user requests "exclusive" jets from the /// cluster sequence virtual bool exclusive_sequence_meaningful() const {return false;} /// a destructor to be replaced if necessary in derived classes... virtual ~Plugin() {}; }; private: JetAlgorithm _jet_algorithm; double _Rparam; double _extra_param ; ///< parameter whose meaning varies according to context Strategy _strategy ; const Plugin * _plugin; SharedPtr _plugin_shared; // when we use our own recombiner it's useful to point to it here // so that we don't have to worry about deleting it etc... DefaultRecombiner _default_recombiner; const Recombiner * _recombiner; SharedPtr _recombiner_shared; }; //------------------------------------------------------------------------------- // helper functions to build a jet made of pieces // // These functions include an options recombiner used to compute the // total composite jet momentum // ------------------------------------------------------------------------------- /// build a "CompositeJet" from the vector of its pieces /// /// In this case, E-scheme recombination is assumed to compute the /// total momentum PseudoJet join(const std::vector & pieces, const JetDefinition::Recombiner & recombiner); /// build a MergedJet from a single PseudoJet PseudoJet join(const PseudoJet & j1, const JetDefinition::Recombiner & recombiner); /// build a MergedJet from 2 PseudoJet PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const JetDefinition::Recombiner & recombiner); /// build a MergedJet from 3 PseudoJet PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const PseudoJet & j3, const JetDefinition::Recombiner & recombiner); /// build a MergedJet from 4 PseudoJet PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const PseudoJet & j3, const PseudoJet & j4, const JetDefinition::Recombiner & recombiner); FASTJET_END_NAMESPACE #endif // __FASTJET_JETDEFINITION_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/version.hh0000644000175000017500000000271111766120135020326 0ustar sunsun//STARTHEADER // $Id: version.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_VERSION_HH__ #define __FASTJET_VERSION_HH__ #include #include "fastjet/config.h" FASTJET_BEGIN_NAMESPACE const char* fastjet_version = FASTJET_PACKAGE_VERSION; FASTJET_END_NAMESPACE #endif // __FASTJET_VERSION_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/ActiveAreaSpec.hh0000644000175000017500000000472211766120136021465 0ustar sunsun//STARTHEADER // $Id: ActiveAreaSpec.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_ACTIVEAREASPEC_HH__ #define __FASTJET_ACTIVEAREASPEC_HH__ // for backwards compatibility fastjet/ActiveAreaSpec.hh provides the // ActiveAreSpec class that is equivalent to GhostedAreaSpec. The // latter should now be used (defined in the // fastjet/GhostedAreaSpec.hh header). ActiveAreaSpec is not // guaranteed to work in future release of FastJet #warning This file includes fastjet/ActiveAreaSpec.hh, \ a deprecated FastJet header provided only for backward compatibility. \ This is not guaranteed to work in future releases of FastJet. \ Please consider including fastjet/GhostedAreaSpec.hh directly. \ Similarily, if you use the (deprecated) class ActiveAreaSpec, \ please switch to the equivalent GhostedAreaSpec instead. #include "fastjet/GhostedAreaSpec.hh" // NB: ActiveAreaSpec is left over from FJ 2.0 and 2.1; // In FJ 2.3 and 2.4 it was just typedefed to GhostedAreaSpec. // That's still the case in FJ 3.0, but the typedef has moved // from this header into the GhostedAreaSpec.hh header. This way, // anyone including ActiveAreaSpec.hh will get a deprecated warning, but // people who relied on getting ActiveAreaSpec indirectly will not // have their code broken. #endif // __FASTJET_ACTIVEAREASPEC_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/FunctionOfPseudoJet.hh0000644000175000017500000001117611766120136022544 0ustar sunsun#ifndef __FASTJET_FUNCTION_OF_PSEUDOJET_HH__ #define __FASTJET_FUNCTION_OF_PSEUDOJET_HH__ //STARTHEADER // $Id: FunctionOfPseudoJet.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include FASTJET_BEGIN_NAMESPACE /// \class FunctionOfPseudoJet /// base class providing interface for a generic function of a PseudoJet /// /// This class serves as a base class to provide a standard interface /// for a function that returns an object of a given (templated) type /// that depends on a PseudoJet argument. The rationale for using a /// class (rather than a pointer to a function) is that a class can be /// constructed with (and store) additional arguments. template class FunctionOfPseudoJet{ public: /// default ctor FunctionOfPseudoJet(){} /// ctor that creates a constant function FunctionOfPseudoJet(const TOut &constant_value); /// default dtor (virtual to allow safe polymorphism) virtual ~FunctionOfPseudoJet(){} /// returns a description of the function (an empty string by /// default) virtual std::string description() const{ return "";} /// the action of the function /// this _has_ to be overloaded in derived classes /// \param pj the PseudoJet input to the function virtual TOut result(const PseudoJet &pj) const = 0; /// apply the function using the "traditional" () operator. /// By default, this just calls the apply(...) method above. /// \param pj the PseudoJet input to the function TOut operator()(const PseudoJet &pj) const { return result(pj);} /// apply the function on a vector of PseudoJet, returning a vector /// of the results. /// This just calls apply on every PseudoJet in the vector. /// \param pjs the vector of PseudoJet inputs to the function std::vector operator()(const std::vector &pjs) const { std::vector res(pjs.size()); for (unsigned int i=0; i(const FunctionOfPseudoJet & fn, const double & cut); // // /// 'smaller than' operator // /// // /// Select jets for which the given function returns a result smaller // /// than the specified constant // Selector operator <(const FunctionOfPseudoJet & fn, const double & cut); // // /// 'larger or equal' operator // /// // /// Select jets for which the given function returns a result larger or equal // /// to the specified constant // Selector operator >=(const FunctionOfPseudoJet & fn, const double & cut); // // /// 'smaller or equal' operator // /// // /// Select jets for which the given function returns a result smaller or equal // /// to the specified constant // Selector operator <=(const FunctionOfPseudoJet & fn, const double & cut); FASTJET_END_NAMESPACE #endif // __FASTJET_FUNCTION_OF_PSEUDOJET_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/AreaDefinition.hh0000644000175000017500000001201711766120136021523 0ustar sunsun//STARTHEADER // $Id: AreaDefinition.hh 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2006-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_AREADEFINITION_HH__ #define __FASTJET_AREADEFINITION_HH__ #include "fastjet/GhostedAreaSpec.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // /// @ingroup area_classes /// \class VoronoiAreaSpec /// Specification for the computation of the Voronoi jet area /// /// class for holding a "Voronoi area" specification; an area will be /// assigned to each particle, which is the area of the intersection /// of the particle's Voronoi cell with a circle of radius /// R*effective_Rfact. /// class VoronoiAreaSpec { public: /// default constructor (effective_Rfact = 1); VoronoiAreaSpec() : _effective_Rfact(1.0) {}; /// constructor that allows you to set effective_Rfact. VoronoiAreaSpec(double effective_Rfact_in) : _effective_Rfact(effective_Rfact_in) {}; /// return the value of effective_Rfact double effective_Rfact() const {return _effective_Rfact;} /// return a textual description of the area definition. std::string description() const; private: double _effective_Rfact; }; /// the different types of area that are supported enum AreaType {invalid_area = -1, active_area = 0, active_area_explicit_ghosts = 1, one_ghost_passive_area = 10, passive_area = 11, voronoi_area=20}; //---------------------------------------------------------------------- /// @ingroup area_classes /// \class AreaDefinition /// class that holds a generic area definition class AreaDefinition { public: /// default constructor, which provides a ghosted active area, with /// sensible defaults for the ghosts. AreaDefinition() { _area_type = active_area; _ghost_spec = GhostedAreaSpec(); } /// constructor for an area definition based on an area type and a /// ghosted area specification AreaDefinition(AreaType type, const GhostedAreaSpec & spec) { _ghost_spec = spec; _area_type = type; assert(type != voronoi_area); } /// constructor for an area definition based on an area type and a /// voronoi area specification (type must be voronoi_area) AreaDefinition(AreaType type, const VoronoiAreaSpec & spec) { _voronoi_spec = spec; _area_type = type; assert(type == voronoi_area); } /// constructor for an area definition based on an area type and /// which attempts to provide sensible defaults for everything else AreaDefinition(AreaType type) { _area_type = type; if (type == voronoi_area) { _voronoi_spec = VoronoiAreaSpec(); } else { _ghost_spec = GhostedAreaSpec(); } } /// constructor for an area definition based on an ghosted area /// specification, and an option to select which ghosted area you want AreaDefinition(const GhostedAreaSpec & spec, AreaType type = active_area) { _ghost_spec = spec; _area_type = type; assert(type != voronoi_area); } /// constructor for an area definition based on a voronoi area /// specification AreaDefinition(const VoronoiAreaSpec & spec) { _voronoi_spec = spec; _area_type = voronoi_area; } /// return a description of the current area definition std::string description() const; /// return info about the type of area being used by this defn AreaType area_type() const {return _area_type;} /// return a reference to the active area spec const GhostedAreaSpec & ghost_spec() const {return _ghost_spec;} GhostedAreaSpec & ghost_spec() {return _ghost_spec;} /// return a reference to the voronoi area spec const VoronoiAreaSpec & voronoi_spec() const {return _voronoi_spec;} private: AreaType _area_type; GhostedAreaSpec _ghost_spec; VoronoiAreaSpec _voronoi_spec; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __FASTJET_AREADEFINITION_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/config_win.h0000644000175000017500000000227512233505737020625 0ustar sunsun#define FASTJET_PACKAGE_STRING "FastJet 3.0.6" #define FASTJET_PACKAGE_VERSION "3.0.6" /* The ATLASCone plugin is disabled by default*/ #undef FASTJET_ENABLE_PLUGIN_ATLASCONE /* The CDFJetClu and CDFMidPoint plugins are enabled by default*/ #define FASTJET_ENABLE_PLUGIN_CDFCONES /* The CMSIterativeCone plugin is disabled by default*/ #undef FASTJET_ENABLE_PLUGIN_CMSITERATIVECONE /* The D0RunICone plugin is disabled by default*/ #undef FASTJET_ENABLE_PLUGIN_D0RUNICONE /* The D0RunIICone plugin is disabled by default*/ #undef FASTJET_ENABLE_PLUGIN_D0RUNIICONE /* The EECambridge plugin is enabled by default*/ #define FASTJET_ENABLE_PLUGIN_EECAMBRIDGE /* The Jade plugin is enabled by default*/ #define FASTJET_ENABLE_PLUGIN_JADE /* The NestedDefs plugin is enabled by default*/ #define FASTJET_ENABLE_PLUGIN_NESTEDDEFS /* The PxCone plugin is disabled by default*/ #undef FASTJET_ENABLE_PLUGIN_PXCONE /* The SISCone plugin is enabled by default*/ #define FASTJET_ENABLE_PLUGIN_SISCONE /* The TrackJet plugin is disabled by default*/ #undef FASTJET_ENABLE_PLUGIN_TRACKJET /* The GridJet plugin is enabled by default */ #define FASTJET_ENABLE_PLUGIN_GRIDJET /* end of plugin section */ fastjet-3.0.6+dfsg.orig/include/fastjet/SharedPtr.hh0000644000175000017500000003135312153575545020553 0ustar sunsun#ifndef __FASTJET_SHARED_PTR_HH__ #define __FASTJET_SHARED_PTR_HH__ //STARTHEADER // $Id: SharedPtr.hh 3129 2013-06-05 08:48:36Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/internal/base.hh" #include // for NULL!!! // for testing purposes, the following define makes it possible // for our SharedPtr simply to be derived from the STL TR1 one. // #define __FASTJET_USETR1SHAREDPTR #ifdef __FASTJET_USETR1SHAREDPTR #include #endif // __FASTJET_USETR1SHAREDPTR FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh #ifdef __FASTJET_USETR1SHAREDPTR /// @ingroup advanced_usage /// \class SharedPtr /// replaces our shared pointer with the TR1 one (for testing purpose) /// /// for testing purposes, it can be useful to replace our home-made /// SharedPtr with the standard library one. Having a class derived /// from the standard one is way of arranging for this to happen. /// /// The other way of working this is a template class with an /// internal typedef (http://bytes.com/topic/c/answers/60312-typedef-template) /// since templated typedefs don't work in standard C++ /// /// Note that some facilities that are present in the FastJet shared /// pointer (resetting use-count) are not handled by the TR1 shared /// pointer; and the FastJet SharedPtr has a different underlying data /// structure from the TR1 shared pointer, which prevents us from /// implementing some of TR1 features (notably assignment from shared /// pointers to a derived class). template class SharedPtr : public std::tr1::shared_ptr { public: SharedPtr() : std::tr1::shared_ptr() {} SharedPtr(T * t) : std::tr1::shared_ptr(t) {} SharedPtr(const SharedPtr & t) : std::tr1::shared_ptr(t) {} // for some reason operator() doesn't get inherited inline operator bool() const {return (this->get()!=NULL);} /// return the pointer we're pointing to T* operator ()() const{ return this->get(); // automatically returns NULL when out-of-scope } }; #else // __FASTJET_USETR1SHAREDPTR /** * @ingroup advanced_usage * \class SharedPtr * an implementation of C++0x shared pointers (or boost's) * * this class implements a smart pointer, based on the shared+ptr * proposal. A description of shared_ptr can be found in Section 2.2.3 * of the first C++ Technical Report (TR1) * http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1745.pdf * or, alternatively, on the Boost C++ library website at * http://www.boost.org/doc/libs/1_42_0/libs/smart_ptr/shared_ptr.htm * * Our implementation is compatible with both of these apart from a * series of members and functions that have not been implemented: * - conversion from weak and auto pointers * - support for deleters and allocators * - static, constant and dynamic casts * - constructor and assignment sharing ownership with a shared * pointer r but storing a different pointer than r (needed for the * previous item) * In the last 2 cases, their implementation would require storing two * pointers for every copies of the shared pointer, while our * implementation only needs one. We did not implement then since we * want to limit as much as possible memory and time consumption, and * can easily avoid (at least for our needs so far) the casts. * * We also add the possibility to force an update of the count. * * The class has been tested against the existing boost (v1.42) * implementation (for the parts that we have implemented). */ template class SharedPtr{ public: /// forward declaration of the counting container class __SharedCountingPtr; /// default ctor SharedPtr() : _ptr(NULL){} /// initialise with the main data /// \param t : the object we want a smart pointer to template explicit SharedPtr(Y* ptr){ _ptr = new __SharedCountingPtr(ptr); } /// overload the copy ctor so that it updates count /// \param share : the object we want to copy SharedPtr(SharedPtr const & share) : _ptr(share._get_container()){ if (_ptr!=NULL) ++(*_ptr); } // old version // SharedPtr(SharedPtr const & share) : _ptr(NULL){ // reset(share); // } // will not work with the current structure // /// overload the copy ctor so that it updates count // /// \param share : the object we want to copy // template SharedPtr(SharedPtr const & share) : _ptr(NULL){ // reset(share); // } /// default dtor ~SharedPtr(){ // make sure the object has been allocated if (_ptr==NULL) return; _decrease_count(); } /// reset the pointer to default value (NULL) void reset(){ // // if we already are pointing to sth, be sure to decrease its count // if (_ptr!=NULL) _decrease_count(); // _ptr = NULL; SharedPtr().swap(*this); } // will not work with the current structure /// reset from a pointer template void reset(Y * ptr){ // // if we already are pointing to sth, be sure to decrease its count // if (_ptr!=NULL) _decrease_count(); // // _ptr = new __SharedCountingPtr(ptr); SharedPtr(ptr).swap(*this); } // not part of the standard /// do a smart copy /// \param share : the object we want to copy /// Q? Do we need a non-template version as for the ctor and the assignment? template void reset(SharedPtr const & share){ //void reset(SharedPtr const & share){ // if we already are pointing to sth, be sure to decrease its count if (_ptr!=NULL){ // in the specific case where we're having the same // share,reset() has actually no effect. However if *this is the // only instance still alive (implying share==*this) bringing // the count down to 0 and deleting the object will not have the // expected effect. So we just avoid that situation explicitly if (_ptr == share._get_container()) return; _decrease_count(); } // Watch out: if share is empty, construct an empty shared_ptr // copy the container _ptr = share._get_container(); // Note: automatically set it to NULL if share is empty if (_ptr!=NULL) ++(*_ptr); } /// overload the = operator so that it updates count /// \param share : the object we want to copy SharedPtr& operator=(SharedPtr const & share){ reset(share); return *this; } /// overload the = operator so that it updates count /// \param share : the object we want to copy template SharedPtr& operator=(SharedPtr const & share){ reset(share); return *this; } /// return the pointer we're pointing to T* operator ()() const{ if (_ptr==NULL) return NULL; return _ptr->get(); // automatically returns NULL when out-of-scope } /// indirection, get a reference to the stored pointer /// /// !!! WATCH OUT /// It fails to check the requirement that the stored pointer must /// not be NULL!! So you need explicitly to check the validity in /// your code inline T& operator*() const{ return *(_ptr->get()); } /// indirection, get the stored pointer /// /// !!! WATCH OUT /// It fails to check the requirement that the stored pointer must /// not be NULL!! So you need explicitly to check the validity in /// your code inline T* operator->() const{ if (_ptr==NULL) return NULL; return _ptr->get(); } /// get the stored pointer inline T* get() const{ if (_ptr==NULL) return NULL; return _ptr->get(); } /// check if the instance is unique inline bool unique() const{ return (use_count()==1); } /// return the number of counts inline long use_count() const{ if (_ptr==NULL) return 0; return _ptr->use_count(); // automatically returns NULL when out-of-scope } /// conversion to bool /// This will allow you to use the indirection nicely inline operator bool() const{ return (get()!=NULL); } /// exchange the content of the two pointers inline void swap(SharedPtr & share){ __SharedCountingPtr* share_container = share._ptr; share._ptr = _ptr; _ptr = share_container; } /// force the count to be set to a specified value /// \param count the value that we need to reset to void set_count(const long & count){ if (_ptr==NULL) return; _ptr->set_count(count); } /** * \if internal_doc * \class __SharedCountingPtr * A reference-counting pointer * * This is implemented as a container for that pointer together with * reference counting. * The pointer is deleted when the number of counts goes to 0; * \endif */ class __SharedCountingPtr{ public: /// default ctor __SharedCountingPtr() : _ptr(NULL), _count(0){} /// ctor with initialisation template explicit __SharedCountingPtr(Y* ptr) : _ptr(ptr), _count(1){} /// default dtor ~__SharedCountingPtr(){ // force the deletion of the object we keep track of if (_ptr!=NULL){ delete _ptr;} } /// return a pointer to the object inline T* get() const {return _ptr;} /// return the count inline long use_count() const {return _count;} /// prefix increment operator inline long operator++(){return ++_count;} /// prefix decrement operator inline long operator--(){return --_count;} /// postfix increment operator /// The "dummy" int argument is just a C++ trick to differentiate /// it from the prefix increment inline long operator++(int){return _count++;} /// postfix decrement operator /// The "dummy" int argument is just a C++ trick to differentiate /// it from the prefix decrement inline long operator--(int){return _count--;} /// force the count to be set to a specified value /// \param count the value that we ned to reset to void set_count(const long & count){ _count = count; } private: T *_ptr; ///< the pointer we're counting the references to long _count; ///< the number of references }; private: /// return the common container inline __SharedCountingPtr* _get_container() const{ return _ptr; } /// decrease the pointer count and support deletion /// Warning: we don't test that the pointer is allocated /// This can be dangerous if we have explicitly reset the /// count. Generally speaking, if the count goes negative /// after _ptr has been effectively deleted, this is going /// to lead to a segmentation fault. But, if in the course /// of the deletion of _ptr, the deletion of its pointer /// (_ptr::_ptr, i.e. the real data we're storing) makes /// the counts to become negative, this is going to pass /// smoothly. void _decrease_count(){ // decrease the count (*_ptr)--; // if no one else is using it, free the allocated memory if (_ptr->use_count()==0) delete _ptr; // that automatically deletes the object itself } // the real info __SharedCountingPtr *_ptr; }; /// comparison: equality template inline bool operator==(SharedPtr const & t, SharedPtr const & u){ return t.get() == u.get(); } /// comparison: difference template inline bool operator!=(SharedPtr const & t, SharedPtr const & u){ return t.get() != u.get(); } /// comparison: orgering template inline bool operator<(SharedPtr const & t, SharedPtr const & u){ return t.get() < u.get(); } /// swapping template inline void swap(SharedPtr & a, SharedPtr & b){ return a.swap(b); } /// getting the pointer template inline T* get_pointer(SharedPtr const & t){ return t.get(); } #endif // __FASTJET_USETR1SHAREDPTR FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __FASTJET_SHARED_PTR_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/LimitedWarning.hh0000644000175000017500000000611711766120136021563 0ustar sunsun#ifndef __FASTJET_LIMITEDWARNING_HH__ #define __FASTJET_LIMITEDWARNING_HH__ //STARTHEADER // $Id: LimitedWarning.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/internal/base.hh" #include #include #include FASTJET_BEGIN_NAMESPACE /// @ingroup error_handling /// \class LimitedWarning /// class to provide facilities for giving warnings up to some maximum /// number of times and to provide global summaries of warnings that have /// been issued. class LimitedWarning { public: /// constructor that provides a default maximum number of warnings LimitedWarning() : _max_warn(_max_warn_default), _n_warn_so_far(0), _this_warning_summary(0) {} /// constructor that provides a user-set max number of warnings LimitedWarning(int max_warn) : _max_warn(max_warn), _n_warn_so_far(0), _this_warning_summary(0) {} /// outputs a warning to standard error (or the user's default /// warning stream if set) void warn(const std::string & warning); /// outputs a warning to the specified stream void warn(const std::string & warning, std::ostream * ostr); /// sets the default output stream for all warnings (by default /// cerr; passing a null pointer prevents warnings from being output) static void set_default_stream(std::ostream * ostr) { _default_ostr = ostr; } /// sets the default maximum number of warnings of a given kind /// before warning messages are silenced. static void set_default_max_warn(int max_warn) { _max_warn_default = max_warn; } /// returns a summary of all the warnings that came through the /// LimiteWarning class static std::string summary(); private: int _max_warn, _n_warn_so_far; static int _max_warn_default; static std::ostream * _default_ostr; typedef std::pair Summary; static std::list< Summary > _global_warnings_summary; Summary * _this_warning_summary; }; FASTJET_END_NAMESPACE #endif // __FASTJET_LIMITEDWARNING_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/RangeDefinition.hh0000644000175000017500000001432211766120136021710 0ustar sunsun//STARTHEADER // $Id: RangeDefinition.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_RANGEDEFINITION_HH__ #define __FASTJET_RANGEDEFINITION_HH__ #include "fastjet/PseudoJet.hh" #include "fastjet/Error.hh" #include "fastjet/LimitedWarning.hh" #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // /// @ingroup area_classes /// \class RangeDefinition /// class for holding a range definition specification, given by limits /// on rapidity and azimuth. /// class RangeDefinition { public: /// default constructor RangeDefinition() { _warn_deprecated(); } /// constructor for a range definition given by |y| 0.0 ); _rapmax = rapmax; _rapmin = -rapmax; _phimin = 0.0; _phimax = twopi; _total_area = 2.0*rapmax*twopi; _phispan = _phimax-_phimin; } /// destructor does nothing virtual ~RangeDefinition() {} /// constructor for a range definition given by /// rapmin <= y <= rapmax, phimin <= phi <= phimax RangeDefinition(double rapmin, double rapmax, double phimin = 0.0, double phimax = twopi) { _warn_deprecated(); assert ( rapmin < rapmax); assert ( phimin < phimax); assert ( phimin > -twopi ); assert ( phimax < 2*twopi); _rapmax = rapmax; _rapmin = rapmin; _phimin = phimin; _phimax = phimax; if (_phimax-_phimin > twopi) _total_area = (_rapmax - _rapmin)*twopi; else _total_area = (_rapmax - _rapmin)*(_phimax - _phimin); _phispan = _phimax-_phimin; } /// returns true if the range is localizable (i.e. set_position is /// meant to do something meaningful). /// /// This version of the class is not localizable and so it returns /// false. /// /// For localizable classes override this function with a function /// that returns true virtual inline bool is_localizable() const { return false; } /// place the range on the rap-phi position /// /// THIS DOES NOT DO ANYTHING FOR THIS CLASS AND IS ONLY THERE /// TO FACILITATE DERIVED CLASSES /// /// DON'T NECESSARILY COUNT ON IT IN THE FUTURE EITHER??? inline void set_position(const double & rap, const double & phi) { if (! is_localizable() ) { std::ostringstream err; err << description() << "\nThis range is not localizable. set_position() should not be used on it."; throw Error(err.str()); } else { _rapjet = rap; _phijet = phi; } } /// place the range on the jet position inline void set_position(const PseudoJet & jet) { set_position(jet.rap(),jet.phi()); } /// return bool according to whether the jet is within the given range inline bool is_in_range(const PseudoJet & jet) const { double rap = jet.rap(); double phi = jet.phi(); return is_in_range(rap,phi); } /// return bool according to whether a (rap,phi) point is in range virtual inline bool is_in_range(double rap, double phi) const { double dphi=phi-_phimin; if (dphi >= twopi) dphi -= twopi; if (dphi < 0) dphi += twopi; return ( rap >= _rapmin && rap <= _rapmax && dphi <= _phispan ); } /// return the minimal and maximal rapidity of this range; remember to /// replace this if you write a derived class with more complex ranges; virtual inline void get_rap_limits(double & rapmin, double & rapmax) const { rapmin = _rapmin; rapmax = _rapmax; } /// area of the range region virtual inline double area() const { return _total_area; } /// textual description of range virtual inline std::string description() const { std::ostringstream ostr; ostr << "Range: " << _rapmin << " <= y <= " << _rapmax << ", " << _phimin << " <= phi <= " << _phimax ; return ostr.str(); } protected: double _total_area; // total area of specified range /// calculate, and set _total_area, by calculating which of points on /// a grid (npoints * npoints from -rapmax..rapmax,0..2pi) are contained /// in the range; it takes a reasonable time with rapmax = 10, /// npoints = 100. void _numerical_total_area(double rapmax, int npoints) ; double _rapjet,_phijet; // jet position. only used in localizable derived classes private: double _rapmin,_rapmax,_phimin,_phimax,_phispan; static LimitedWarning _warnings_deprecated; /// the use of RangeDefinition is deprecated since FastJet version /// 3.0 onwards. Please use Selector instead. /// RangeDefinition is only provided for backward compatibility /// reasons and is not guaranteed to work in future releases of /// FastJet. void _warn_deprecated() const; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __FASTJET_RANGEDEFINITION_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/PseudoJetStructureBase.hh0000644000175000017500000002132612127746207023270 0ustar sunsun#ifndef __FASTJET_PSEUDOJET_STRUCTURE_BASE_HH__ #define __FASTJET_PSEUDOJET_STRUCTURE_BASE_HH__ //STARTHEADER // $Id: PseudoJetStructureBase.hh 3071 2013-04-01 12:52:46Z cacciari $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/internal/base.hh" #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh class PseudoJet; class ClusterSequence; #ifndef __FJCORE__ class ClusterSequenceAreaBase; #endif // __FJCORE__ /// @ingroup extra_info /// \class PseudoJetStructureBase /// /// Contains any information related to the clustering that should be /// directly accessible to PseudoJet. /// /// By default, this class implements basic access to the /// ClusterSequence related to a PseudoJet (like its constituents or /// its area). But it can be overloaded in order e.g. to give access /// to the jet substructure. /// class PseudoJetStructureBase{ public: /// default ctor PseudoJetStructureBase(){}; /// default (virtual) dtor virtual ~PseudoJetStructureBase(){}; /// description virtual std::string description() const{ return "PseudoJet with an unknown structure"; } //------------------------------------------------------------- /// @name Direct access to the associated ClusterSequence object. /// /// Get access to the associated ClusterSequence (if any) //\{ //------------------------------------------------------------- /// returns true if there is an associated ClusterSequence virtual bool has_associated_cluster_sequence() const { return false;} /// get a (const) pointer to the parent ClusterSequence (NULL if /// inexistent) virtual const ClusterSequence* associated_cluster_sequence() const; /// returns true if this PseudoJet has an associated and still /// valid ClusterSequence. virtual bool has_valid_cluster_sequence() const {return false;} /// if the jet has a valid associated cluster sequence then return a /// pointer to it; otherwise throw an error virtual const ClusterSequence * validated_cs() const; #ifndef __FJCORE__ /// if the jet has valid area information then return a pointer to /// the associated ClusterSequenceAreaBase object; otherwise throw an error virtual const ClusterSequenceAreaBase * validated_csab() const; #endif //\} //------------------------------------------------------------- /// @name Methods for access to information about jet structure /// /// These allow access to jet constituents, and other jet /// subtructure information. They only work if the jet is associated /// with a ClusterSequence. //------------------------------------------------------------- //\{ /// check if it has been recombined with another PseudoJet in which /// case, return its partner through the argument. Otherwise, /// 'partner' is set to 0. /// /// By default, throws an Error virtual bool has_partner(const PseudoJet &reference, PseudoJet &partner) const; /// check if it has been recombined with another PseudoJet in which /// case, return its child through the argument. Otherwise, 'child' /// is set to 0. /// /// By default, throws an Error virtual bool has_child(const PseudoJet &reference, PseudoJet &child) const; /// check if it is the product of a recombination, in which case /// return the 2 parents through the 'parent1' and 'parent2' /// arguments. Otherwise, set these to 0. /// /// By default, throws an Error virtual bool has_parents(const PseudoJet &reference, PseudoJet &parent1, PseudoJet &parent2) const; /// check if the reference PseudoJet is contained the second one /// passed as argument. /// /// By default, throws an Error virtual bool object_in_jet(const PseudoJet &reference, const PseudoJet &jet) const; /// return true if the structure supports constituents. /// /// false by default virtual bool has_constituents() const {return false;} /// retrieve the constituents. /// /// By default, throws an Error virtual std::vector constituents(const PseudoJet &reference) const; /// return true if the structure supports exclusive_subjets. virtual bool has_exclusive_subjets() const {return false;} /// return a vector of all subjets of the current jet (in the sense /// of the exclusive algorithm) that would be obtained when running /// the algorithm with the given dcut. /// /// Time taken is O(m ln m), where m is the number of subjets that /// are found. If m gets to be of order of the total number of /// constituents in the jet, this could be substantially slower than /// just getting that list of constituents. /// /// By default, throws an Error virtual std::vector exclusive_subjets(const PseudoJet &reference, const double & dcut) const; /// return the size of exclusive_subjets(...); still n ln n with same /// coefficient, but marginally more efficient than manually taking /// exclusive_subjets.size() /// /// By default, throws an Error virtual int n_exclusive_subjets(const PseudoJet &reference, const double & dcut) const; /// return the list of subjets obtained by unclustering the supplied /// jet down to nsub subjets (or all constituents if there are fewer /// than nsub). /// /// By default, throws an Error virtual std::vector exclusive_subjets_up_to (const PseudoJet &reference, int nsub) const; /// return the dij that was present in the merging nsub+1 -> nsub /// subjets inside this jet. /// /// By default, throws an Error virtual double exclusive_subdmerge(const PseudoJet &reference, int nsub) const; /// return the maximum dij that occurred in the whole event at the /// stage that the nsub+1 -> nsub merge of subjets occurred inside /// this jet. /// /// By default, throws an Error virtual double exclusive_subdmerge_max(const PseudoJet &reference, int nsub) const; //------------------------------------------------------------------- // information related to the pieces of the jet //------------------------------------------------------------------- /// return true if the structure supports pieces. /// /// false by default /// NB: "reference" is commented to avoid unused-variable compiler warnings virtual bool has_pieces(const PseudoJet & /* reference */) const { return false;} /// retrieve the pieces building the jet. /// /// By default, throws an Error. /// NB: "reference" is commented to avoid unused-variable compiler warnings virtual std::vector pieces(const PseudoJet & /* reference */ ) const; // the following ones require a computation of the area in the // parent ClusterSequence (See ClusterSequenceAreaBase for details) //------------------------------------------------------------------ #ifndef __FJCORE__ /// check if it has a defined area /// /// false by default virtual bool has_area() const {return false;} /// return the jet (scalar) area. /// /// By default, throws an Error virtual double area(const PseudoJet &reference) const; /// return the error (uncertainty) associated with the determination /// of the area of this jet. /// /// By default, throws an Error virtual double area_error(const PseudoJet &reference) const; /// return the jet 4-vector area. /// /// By default, throws an Error virtual PseudoJet area_4vector(const PseudoJet &reference) const; /// true if this jet is made exclusively of ghosts. /// /// By default, throws an Error virtual bool is_pure_ghost(const PseudoJet &reference) const; #endif // __FJCORE__ //\} --- end of jet structure ------------------------------------- }; FASTJET_END_NAMESPACE #endif // __FASTJET_PSEUDOJET_STRUCTURE_BASE_HH__ fastjet-3.0.6+dfsg.orig/include/fastjet/Makefile.am0000644000175000017500000000146511766120136020362 0ustar sunsunSUBDIRS = internal fastjetincludedir=$(includedir)/fastjet fastjetinclude_HEADERS= JetDefinition.hh\ PseudoJetStructureBase.hh\ ClusterSequenceStructure.hh\ PseudoJet.hh\ ClusterSequence.hh\ Error.hh\ RangeDefinition.hh\ CircularRange.hh\ version.hh\ AreaDefinition.hh\ ActiveAreaSpec.hh\ GhostedAreaSpec.hh\ ClusterSequenceAreaBase.hh\ ClusterSequenceArea.hh\ ClusterSequenceWithArea.hh\ ClusterSequenceActiveArea.hh\ ClusterSequenceActiveAreaExplicitGhosts.hh\ ClusterSequence1GhostPassiveArea.hh\ ClusterSequencePassiveArea.hh\ ClusterSequenceVoronoiArea.hh\ NNH.hh\ SharedPtr.hh\ FunctionOfPseudoJet.hh\ Selector.hh\ CompositeJetStructure.hh\ WrappedStructure.hh\ LimitedWarning.hh\ config.h nodist_fastjetinclude_HEADERS= config_auto.h EXTRA_DIST= config_win.h fastjet-3.0.6+dfsg.orig/include/Makefile.am0000644000175000017500000000002211766120136016706 0ustar sunsunSUBDIRS=. fastjet fastjet-3.0.6+dfsg.orig/src/0000755000175000017500000000000012233507301014015 5ustar sunsunfastjet-3.0.6+dfsg.orig/src/RangeDefinition.cc0000644000175000017500000000520611766120140017376 0ustar sunsun//STARTHEADER // $Id: RangeDefinition.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/RangeDefinition.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; LimitedWarning RangeDefinition::_warnings_deprecated; // calculate, and set in _total_area, the area with a numerical test // takes a reasonable time with rapmax = 10, npoints = 100 void RangeDefinition::_numerical_total_area(double rapmax, int npoints) { int count = 0; double deltaphi = twopi/double(npoints); double deltarap = 2.0*rapmax/double(npoints); double phi = 0.0; for(int i = 0; i < npoints; i++) { double rap = -rapmax; for (int j = 0; j < npoints; j++) { if ( is_in_range(rap,phi) ) { count++; } rap += deltarap; } phi += deltaphi; } _total_area = double(count)/double(npoints*npoints)*2.0*twopi*rapmax; } // the use of RangeDefinition is deprecated since FastJet version // 3.0 onwards. Please use Selector instead. // RangeDefinition is only provided for backward compatibility // reasons and is not guaranteed to work in future releases of // FastJet. void RangeDefinition::_warn_deprecated() const{ _warnings_deprecated.warn("The use of RangeDefinition is deprecated since FastJet version 3.0 onwards. Please consider using Selector (defined in fastjet/Selector.hh) instead. There is no guarantee that support for RangeDefinition will be provided in future releases of FastJet."); } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/genconfig.sh0000755000175000017500000000335511766120140016323 0ustar sunsun#!/bin/sh # Script for generating a minimal config.h file independently of automake # It must contain a version string, and what else? configfile=${1:-../include/fastjet/config_auto.h} echo Generating $configfile #exit packname=`grep '^ *AC_INIT' ../configure.ac | sed -e 's/AC_INIT(//' -e 's/\[//g' -e 's/\]//g' -e 's/)//'` # get the package string echo '#define FASTJET_PACKAGE_STRING "'$packname'"' | sed 's/,/ /g' > $configfile # get the package string packver=`echo $packname | sed 's/.*,//g'` echo '#define FASTJET_PACKAGE_VERSION "'$packver'"' >> $configfile # by default some plugins are define/disabled cat >> $configfile <. //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequencePassiveArea.hh" #include "fastjet/ClusterSequenceVoronoiArea.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //---------------------------------------------------------------------- /// global routine for initialising and running a passive area that is /// correct in general, but that chooses an optimal approach for /// various special cases. void ClusterSequencePassiveArea::_initialise_and_run_PA ( const JetDefinition & jet_def_in, const GhostedAreaSpec & area_spec, const bool & writeout_combinations) { if (jet_def_in.jet_algorithm() == kt_algorithm) { // first run the passive area ClusterSequenceVoronoiArea csva(_jets,jet_def_in,VoronoiAreaSpec(1.0)); // now set up and transfer relevant information // first the clustering sequence transfer_from_sequence(csva); // then the areas _resize_and_zero_AA(); for (unsigned i = 0; i < _history.size(); i++) { int ijetp = _history[i].jetp_index; if (ijetp != Invalid) { _average_area[i] = csva.area(_jets[ijetp]); _average_area_4vector[i] = csva.area_4vector(_jets[ijetp]); } } } else if (jet_def_in.jet_algorithm() == cambridge_algorithm) { // run a variant of the cambridge algorithm that has been hacked // to deal with passive areas JetDefinition tmp_jet_def = jet_def_in; tmp_jet_def.set_jet_finder(cambridge_for_passive_algorithm); tmp_jet_def.set_extra_param(sqrt(area_spec.mean_ghost_kt())); _initialise_and_run_AA(tmp_jet_def, area_spec, writeout_combinations); _jet_def = jet_def_in; } else if (jet_def_in.jet_algorithm() == antikt_algorithm) { // for the antikt algorithm, passive and active are identical _initialise_and_run_AA(jet_def_in, area_spec, writeout_combinations); } else if (jet_def_in.jet_algorithm() == plugin_algorithm && jet_def_in.plugin()->supports_ghosted_passive_areas()) { // for some plugin algorithms, one can "prime" the algorithm with information // about the ghost scale, and then an "AA" run will actually give a passive // area double ghost_sep_scale_store = jet_def_in.plugin()->ghost_separation_scale(); jet_def_in.plugin()->set_ghost_separation_scale(sqrt(area_spec.mean_ghost_kt())); _initialise_and_run_AA(jet_def_in, area_spec, writeout_combinations); // restore the original ghost_sep_scale jet_def_in.plugin()->set_ghost_separation_scale(ghost_sep_scale_store); } else { // for a generic algorithm, just run the 1GhostPassiveArea _initialise_and_run_1GPA(jet_def_in, area_spec, writeout_combinations); } } //---------------------------------------------------------------------- // dispatch to most relevant empty area calculation... double ClusterSequencePassiveArea::empty_area (const Selector & selector) const { if (jet_def().jet_algorithm() == kt_algorithm) { // run the naive algorithm return ClusterSequenceAreaBase::empty_area(selector); } else { return ClusterSequence1GhostPassiveArea::empty_area(selector); } } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/src/ClusterSequenceArea.cc0000644000175000017500000000216711766120140020237 0ustar sunsun#include "fastjet/ClusterSequenceArea.hh" FASTJET_BEGIN_NAMESPACE LimitedWarning ClusterSequenceArea::_range_warnings; LimitedWarning ClusterSequenceArea::_explicit_ghosts_repeats_warnings; /// print a warning if the range is unsuitable for the current /// calculation of the area (e.g. because ghosts do not extend /// far enough). void ClusterSequenceArea::_warn_if_range_unsuitable(const Selector & selector) const { _check_selector_good_for_median(selector); bool no_ghosts = (_area_def.area_type() == voronoi_area) || (_area_def.area_type() == passive_area && jet_def().jet_algorithm() == kt_algorithm); if (! no_ghosts) { double rapmin, rapmax; selector.get_rapidity_extent(rapmin, rapmax); if (rapmin < -_area_def.ghost_spec().ghost_maxrap()+0.95*jet_def().R() || rapmax > _area_def.ghost_spec().ghost_maxrap()-0.95*jet_def().R()) { _range_warnings.warn("rapidity range for median (rho) extends beyond +-(ghost_maxrap - 0.95*R); this is likely to cause the results to be unreliable; safest option is to increase ghost_maxrap in the area definition"); } } } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/LimitedWarning.cc0000644000175000017500000000601011766120140017240 0ustar sunsun//STARTHEADER // $Id: LimitedWarning.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/LimitedWarning.hh" #include #include using namespace std; FASTJET_BEGIN_NAMESPACE ostream * LimitedWarning::_default_ostr = &cerr; std::list< LimitedWarning::Summary > LimitedWarning::_global_warnings_summary; int LimitedWarning::_max_warn_default = 5; /// output a warning to ostr void LimitedWarning::warn(const std::string & warning) { warn(warning, _default_ostr); } void LimitedWarning::warn(const std::string & warning, std::ostream * ostr) { if (_this_warning_summary == 0) { // prepare the information for the summary _global_warnings_summary.push_back(Summary(warning, 0)); _this_warning_summary = & (_global_warnings_summary.back()); } if (_n_warn_so_far < _max_warn) { // prepare the warning within a string stream ostringstream warnstr; warnstr << "WARNING: "; warnstr << warning; _n_warn_so_far++; if (_n_warn_so_far == _max_warn) warnstr << " (LAST SUCH WARNING)"; warnstr << std::endl; // arrange for the whole warning to be output in one go (that way // user can easily insert their own printout, e.g. event number // before the warning string). if (ostr) { (*ostr) << warnstr.str(); ostr->flush(); // get something written to file even if the program aborts } } // maintain the count, but do not allow overflow if (_this_warning_summary->second < numeric_limits::max()) { _this_warning_summary->second++; } } //---------------------------------------------------------------------- string LimitedWarning::summary() { ostringstream str; for (list::const_iterator it = _global_warnings_summary.begin(); it != _global_warnings_summary.end(); it++) { str << it->second << " times: " << it->first << endl; } return str.str(); } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/ClusterSequence_N2.cc0000644000175000017500000001037211766120140020002 0ustar sunsun//STARTHEADER // $Id: ClusterSequence_N2.cc 2657 2011-11-07 16:14:30Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER // The plain N^2 part of the ClusterSequence class -- separated out // from the rest of the class implementation so as to speed up // compilation of this particular part while it is under test. #include "fastjet/internal/ClusterSequence_N2.icc" #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //************************************************************************* // // THINGS FOR E+E- // //************************************************************************* //---------------------------------------------------------------------- template<> inline void ClusterSequence::_bj_set_jetinfo( EEBriefJet * const jetA, const int _jets_index) const { double E = _jets[_jets_index].E(); double scale = E*E; // the default energy scale for the kt alg double p = jet_def().extra_param(); // in case we're ee_genkt switch (_jet_algorithm) { case ee_kt_algorithm: assert(_Rparam > 2.0); // force this to be true! [not best place, but works] // recall that _invR2 is artificially set to 1 for this alg // so that we automatically have dij = scale * 2(1-cos theta_ij) // Normally, _Rparam should be automatically set to 4 from JetDefinition break; case ee_genkt_algorithm: if (p <= 0 && scale < 1e-300) scale = 1e-300; // same dodgy safety as genkt scale = pow(scale,p); break; default: throw Error("Unrecognised jet algorithm"); } jetA->kt2 = scale; // "kt2" might one day be renamed as "scale" or some such double norm = _jets[_jets_index].modp2(); if (norm > 0) { norm = 1.0/sqrt(norm); jetA->nx = norm * _jets[_jets_index].px(); jetA->ny = norm * _jets[_jets_index].py(); jetA->nz = norm * _jets[_jets_index].pz(); } else { jetA->nx = 0.0; jetA->ny = 0.0; jetA->nz = 1.0; } jetA->_jets_index = _jets_index; // initialise NN info as well jetA->NN_dist = _R2; jetA->NN = NULL; } //---------------------------------------------------------------------- // returns the angular distance between the two jets template<> double ClusterSequence::_bj_dist( const EEBriefJet * const jeta, const EEBriefJet * const jetb) const { double dist = 1.0 - jeta->nx*jetb->nx - jeta->ny*jetb->ny - jeta->nz*jetb->nz; dist *= 2; // distance is _2_*min(Ei^2,Ej^2)*(1-cos theta) return dist; } // get explicit copies of the two N2 cluster cases we need // plain BriefJet void ClusterSequence::_simple_N2_cluster_BriefJet() { _simple_N2_cluster(); } // e+e- BriefJet void ClusterSequence::_simple_N2_cluster_EEBriefJet() { _simple_N2_cluster(); } // //---------------------------------------------------------------------- // /// Force instantiation of desired versions of _simple_N2_cluster // /// // /// This is not very elegant... // void ClusterSequence::_dummy_N2_cluster_instantiation() { // _simple_N2_cluster(); // _simple_N2_cluster(); // } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/GhostedAreaSpec.cc0000644000175000017500000001621511766120140017334 0ustar sunsun//STARTHEADER // $Id: GhostedAreaSpec.cc 2728 2011-11-20 14:18:59Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/GhostedAreaSpec.hh" #include "fastjet/Error.hh" #include #include using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh BasicRandom GhostedAreaSpec::_random_generator; LimitedWarning GhostedAreaSpec::_warn_fj2_placement_deprecated; /// explicit constructor GhostedAreaSpec::GhostedAreaSpec( const Selector & selector, int repeat_in , double ghost_area_in , double grid_scatter_in , double pt_scatter_in , double mean_ghost_pt_in ): _repeat(repeat_in), _ghost_area(ghost_area_in), _grid_scatter(grid_scatter_in), _pt_scatter(pt_scatter_in), _mean_ghost_pt(mean_ghost_pt_in), _fj2_placement(false), _selector(selector), _actual_ghost_area(-1.0) { // check the selector has the properties needed -- an area and // applicability jet-by-jet (the latter follows automatically from // the former?) if (!_selector.has_finite_area()) throw Error("To construct a GhostedAreaSpec with a Selector, the selector must have a finite area"); if (!_selector.applies_jet_by_jet()) throw Error("To construct a GhostedAreaSpec with a Selector, the selector must apply jet-by-jet"); // get the internal rapidity extent from the selector double ghost_maxrap_local, ghost_minrap_local; _selector.get_rapidity_extent(ghost_minrap_local, ghost_maxrap_local); _ghost_maxrap = 0.5*(ghost_maxrap_local - ghost_minrap_local); _ghost_rap_offset = 0.5*(ghost_maxrap_local + ghost_minrap_local); _initialize(); } //====================================================================== // sets fj2 ghost placement void GhostedAreaSpec::set_fj2_placement(bool val) { _fj2_placement = val; _initialize(); if (val) _warn_fj2_placement_deprecated.warn("FJ2 placement of ghosts can lead to systematic edge effects in area evaluation and is deprecated. Prefer new (default) FJ3 placement."); } //====================================================================== /// sets the detailed parameters for the ghosts (which may not be quite /// the same as those requested -- this is in order for things to fit /// in nicely into 2pi etc... void GhostedAreaSpec::_initialize() { // add on area-measuring dummy particles _drap = sqrt(_ghost_area); _dphi = _drap; if (_fj2_placement) { _nphi = int(ceil(twopi/_dphi)); _dphi = twopi/_nphi; _nrap = int(ceil(_ghost_maxrap/_drap)); _drap = _ghost_maxrap / _nrap; _actual_ghost_area = _dphi * _drap; _n_ghosts = (2*_nrap+1)*_nphi; } else { // for FJ3, update the ghost placement as follows // - use nearest int rather than ceiling in determining number of // phi and rapidity locations, because this is more stable when // the user is trying to get an exact number based on the area // - rather than placing ghosts up to maximum rapidity _nphi = int(twopi/_dphi + 0.5); _dphi = twopi/_nphi; _nrap = int(_ghost_maxrap/_drap + 0.5); _drap = _ghost_maxrap / _nrap; _actual_ghost_area = _dphi * _drap; _n_ghosts = (2*_nrap)*_nphi; } // checkpoint the status of the random number generator. checkpoint_random(); //_random_generator.info(cerr); } //---------------------------------------------------------------------- /// adds the ghost 4-momenta to the vector of PseudoJet's void GhostedAreaSpec::add_ghosts(vector & event) const { double rap_offset; int nrap_upper; if (_fj2_placement) { rap_offset = 0.0; nrap_upper = _nrap; } else { rap_offset = 0.5; nrap_upper = _nrap-1; } // add momenta for ghosts for (int irap = -_nrap; irap <= nrap_upper; irap++) { for (int iphi = 0; iphi < _nphi; iphi++) { // include random offsets for all quantities //---------------------------------------------- // NB: in FJ2 we'd exchanged the px and py components relative to a // standard definition of phi; to preserve the same areas as fj2 // we now generate a "phi_fj2", and then convert to a standard phi double phi_fj2 = (iphi+0.5) * _dphi + _dphi*(_our_rand()-0.5)*_grid_scatter; double phi; if (_fj2_placement) phi = 0.5*pi - phi_fj2; else phi = phi_fj2; double rap = (irap+rap_offset) * _drap + _drap*(_our_rand()-0.5)*_grid_scatter + _ghost_rap_offset ; double pt = _mean_ghost_pt*(1+(_our_rand()-0.5)*_pt_scatter); double exprap = exp(+rap); double pminus = pt/exprap; double pplus = pt*exprap; double px = pt*cos(phi); double py = pt*sin(phi); PseudoJet mom(px,py,0.5*(pplus-pminus),0.5*(pplus+pminus)); // this call fills in the PseudoJet's cached rap,phi information, // based on pre-existing knowledge. Watch out: if you get the hint // wrong nobody will tell you, but you will certainly mess up // your results. mom.set_cached_rap_phi(rap,phi); // if we have an active selector and the particle does not pass the // selection condition, move on to the next momentum if (_selector.worker().get() && !_selector.pass(mom)) continue; event.push_back(mom); } } } string GhostedAreaSpec::description() const { ostringstream ostr; ostr << "ghosts of area " << actual_ghost_area() << " (had requested " << ghost_area() << ")"; if (_selector.worker().get()) ostr << ", placed according to selector (" << _selector.description() << ")"; else ostr << ", placed up to y = " << ghost_maxrap() ; ostr << ", scattered wrt to perfect grid by (rel) " << grid_scatter() << ", mean_ghost_pt = " << mean_ghost_pt() << ", rel pt_scatter = " << pt_scatter() << ", n repetitions of ghost distributions = " << repeat(); return ostr.str(); } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/ClusterSequenceStructure.cc0000644000175000017500000002777512127746207021415 0ustar sunsun//STARTHEADER // $Id: ClusterSequenceStructure.cc 3071 2013-04-01 12:52:46Z cacciari $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequenceStructure.hh" #include "fastjet/Error.hh" #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequence.hh" #ifndef __FJCORE__ #include "fastjet/ClusterSequenceAreaBase.hh" #endif // __FJCORE__ #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; ClusterSequenceStructure::~ClusterSequenceStructure(){ if (_associated_cs != NULL && _associated_cs->will_delete_self_when_unused()) { // automatically handle deletion of the cluster sequence; // execution should only ever reach this point if the user had // called CS::delete_self_when_unused, which resets the count of // the shared pointer to CSS (otherwise the CS's own destructor // will have zeroed the _associated_cs pointer before the shared // pointer count goes to zero [on destruction of the last of the // jets in the CS and the destruction of the CS's copy of the // shared pointer) _associated_cs->signal_imminent_self_deletion(); delete _associated_cs; } } //---------------------------------------------------------------------- // Direct access to the associated ClusterSequence object. //---------------------------------------------------------------------- // check whether this PseudoJet has an associated parent // ClusterSequence bool ClusterSequenceStructure::has_valid_cluster_sequence() const{ return (_associated_cs != NULL); } // get a (const) pointer to the associated ClusterSequence (NULL if // inexistent) const ClusterSequence* ClusterSequenceStructure::associated_cluster_sequence() const{ return _associated_cs; } // If there is a valid cluster sequence associated with this jet, // returns a pointer to it; otherwise throws an Error. // // Open question: should these errors be upgraded to classes of their // own so that they can be caught? [Maybe, but later] const ClusterSequence * ClusterSequenceStructure::validated_cs() const { if (!_associated_cs) throw Error("you requested information about the internal structure of a jet, but its associated ClusterSequence has gone out of scope."); return _associated_cs; } //---------------------------------------------------------------------- // Methods for access to information about jet structure //---------------------------------------------------------------------- // check if it has been recombined with another PseudoJet in which // case, return its partner through the argument. Otherwise, // 'partner' is set to 0. // // false is also returned if this PseudoJet has no associated // ClusterSequence bool ClusterSequenceStructure::has_partner(const PseudoJet &reference, PseudoJet &partner) const{ return validated_cs()->has_partner(reference, partner); } // check if it has been recombined with another PseudoJet in which // case, return its child through the argument. Otherwise, 'child' // is set to 0. // // false is also returned if this PseudoJet has no associated // ClusterSequence, with the child set to 0 bool ClusterSequenceStructure::has_child(const PseudoJet &reference, PseudoJet &child) const{ return validated_cs()->has_child(reference, child); } // check if it is the product of a recombination, in which case // return the 2 parents through the 'parent1' and 'parent2' // arguments. Otherwise, set these to 0. // // false is also returned if this PseudoJet has no parent // ClusterSequence bool ClusterSequenceStructure::has_parents(const PseudoJet &reference, PseudoJet &parent1, PseudoJet &parent2) const{ return validated_cs()->has_parents(reference, parent1, parent2); } // check if the reference PseudoJet is inside the "jet" passed as an argument // // an error is thrown if there is no CS associated with one of the 2 jets. // fasle is returned if teh 2 jets do not belong to the same CS bool ClusterSequenceStructure::object_in_jet(const PseudoJet &reference, const PseudoJet &jet) const{ if ((!has_associated_cluster_sequence()) || (!jet.has_associated_cluster_sequence())) throw Error("you requested information about the internal structure of a jet, but it is not associated with a ClusterSequence or its associated ClusterSequence has gone out of scope."); if (reference.associated_cluster_sequence() != jet.associated_cluster_sequence()) return false; return validated_cs()->object_in_jet(reference, jet); } // return true if the structure supports constituents. // // an Error is thrown if this PseudoJet has no currently valid // associated ClusterSequence bool ClusterSequenceStructure::has_constituents() const{ if (!has_associated_cluster_sequence()) throw Error("you requested information about the internal structure of a jet, but it is not associated with a ClusterSequence or its associated ClusterSequence has gone out of scope."); return true; } // retrieve the constituents. An empty vector is returned if there is // no associated ClusterSequence vector ClusterSequenceStructure::constituents(const PseudoJet &reference) const{ return validated_cs()->constituents(reference); } // return true if the structure supports exclusive_subjets. // // an Error is thrown if this PseudoJet has no currently valid // associated ClusterSequence bool ClusterSequenceStructure::has_exclusive_subjets() const{ if (!has_associated_cluster_sequence()) throw Error("you requested information about the internal structure of a jet, but it is not associated with a ClusterSequence or its associated ClusterSequence has gone out of scope."); return true; } // return a vector of all subjets of the current jet (in the sense // of the exclusive algorithm) that would be obtained when running // the algorithm with the given dcut. // // Time taken is O(m ln m), where m is the number of subjets that // are found. If m gets to be of order of the total number of // constituents in the jet, this could be substantially slower than // just getting that list of constituents. // // an Error is thrown if this PseudoJet has no currently valid // associated ClusterSequence std::vector ClusterSequenceStructure::exclusive_subjets (const PseudoJet &reference, const double & dcut) const { return validated_cs()->exclusive_subjets(reference, dcut); } // return the size of exclusive_subjets(...); still n ln n with same // coefficient, but marginally more efficient than manually taking // exclusive_subjets.size() // // an Error is thrown if this PseudoJet has no currently valid // associated ClusterSequence int ClusterSequenceStructure::n_exclusive_subjets(const PseudoJet &reference, const double & dcut) const { return validated_cs()->n_exclusive_subjets(reference, dcut); } // return the list of subjets obtained by unclustering the supplied // jet down to n subjets (or all constituents if there are fewer // than n). // // requires n ln n time // // an Error is thrown if this PseudoJet has no currently valid // associated ClusterSequence std::vector ClusterSequenceStructure::exclusive_subjets_up_to (const PseudoJet &reference, int nsub) const { return validated_cs()->exclusive_subjets_up_to(reference, nsub); } // return the dij that was present in the merging nsub+1 -> nsub // subjets inside this jet. // // an Error is thrown if this PseudoJet has no currently valid // associated ClusterSequence double ClusterSequenceStructure::exclusive_subdmerge(const PseudoJet &reference, int nsub) const { return validated_cs()->exclusive_subdmerge(reference, nsub); } // return the maximum dij that occurred in the whole event at the // stage that the nsub+1 -> nsub merge of subjets occurred inside // this jet. // // an Error is thrown if this PseudoJet has no currently valid // associated ClusterSequence double ClusterSequenceStructure::exclusive_subdmerge_max(const PseudoJet &reference, int nsub) const { return validated_cs()->exclusive_subdmerge_max(reference, nsub); } //---------------------------------------------------------------------- // information related to the pieces of the jet //---------------------------------------------------------------------- // by convention, a jet associated with a ClusterSequence will have // pieces if it has parents in the cluster sequence. // // an error is thrown if the ClusterSequence is out of scope (since // the answer depends on information in the Cluster Sequence) bool ClusterSequenceStructure::has_pieces(const PseudoJet &reference) const{ PseudoJet dummy1, dummy2; return has_parents(reference, dummy1, dummy2); } // by convention, the pieces of a jet associated with a // ClusterSequence are its parents in the Cluster Sequence. If it has // no parents, an empty jet is returned. // // an error is thrown if the ClusterSequence is out of scope vector ClusterSequenceStructure::pieces(const PseudoJet &reference) const{ PseudoJet j1, j2; vector res; if (has_parents(reference, j1, j2)){ res.push_back(j1); res.push_back(j2); } return res; } //---------------------------------------------------------------------- // the following ones require a computation of the area in the // associated ClusterSequence (See ClusterSequenceAreaBase for details) //---------------------------------------------------------------------- #ifndef __FJCORE__ // if possible, return a valid ClusterSequenceAreaBase pointer; otherwise // throw an error const ClusterSequenceAreaBase * ClusterSequenceStructure::validated_csab() const { const ClusterSequenceAreaBase *csab = dynamic_cast(validated_cs()); if (csab == NULL) throw Error("you requested jet-area related information, but the PseudoJet does not have associated area information."); return csab; } // check if it has a defined area bool ClusterSequenceStructure::has_area() const{ if (! has_associated_cluster_sequence()) return false; return (dynamic_cast(_associated_cs) != NULL); } // return the jet (scalar) area. // throw an Error if there is no support for area in the associated CS double ClusterSequenceStructure::area(const PseudoJet &reference) const{ return validated_csab()->area(reference); } // return the error (uncertainty) associated with the determination // of the area of this jet. // throws an Error if there is no support for area in the associated CS double ClusterSequenceStructure::area_error(const PseudoJet &reference) const{ return validated_csab()->area_error(reference); } // return the jet 4-vector area // throws an Error if there is no support for area in the associated CS PseudoJet ClusterSequenceStructure::area_4vector(const PseudoJet &reference) const{ return validated_csab()->area_4vector(reference); } // true if this jet is made exclusively of ghosts // throws an Error if there is no support for area in the associated CS bool ClusterSequenceStructure::is_pure_ghost(const PseudoJet &reference) const{ return validated_csab()->is_pure_ghost(reference); } #endif // __FJCORE__ FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/Dnn4piCylinder.cc0000644000175000017500000000660211766120140017160 0ustar sunsun//STARTHEADER // $Id: Dnn4piCylinder.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef DROP_CGAL // in case we do not have the code for CGAL #include #include "fastjet/internal/Dnn4piCylinder.hh" using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- /// initialiser... Dnn4piCylinder::Dnn4piCylinder( const vector & input_points, const bool & verbose) { _verbose = verbose; vector copied_points(input_points.size()); for (unsigned int i=0; i < input_points.size(); i++) { double phi = input_points[i].second; assert(phi >= 0.0 && phi < 2*pi); copied_points[i] = _remap_phi(input_points[i]); } if (_verbose) cout << "============== Preparing _DNN1" << endl; _DNN1 = new DnnPlane(input_points, verbose); if (_verbose) cout << "============== Preparing _DNN2" << endl; _DNN2 = new DnnPlane(copied_points, verbose); } //---------------------------------------------------------------------- /// insertion and removal of points void Dnn4piCylinder::RemoveAndAddPoints(const vector & indices_to_remove, const vector & points_to_add, vector & indices_added, vector & indices_of_updated_neighbours) { vector indices1, indices2; _DNN1->RemoveAndAddPoints(indices_to_remove,points_to_add, indices_added,indices1); // create a vector with the remapped points (pi..3pi) vector remapped_points(points_to_add.size()); for (size_t i = 0; i < points_to_add.size(); i++) { remapped_points[i] = _remap_phi(points_to_add[i]); } _DNN2->RemoveAndAddPoints(indices_to_remove, remapped_points, indices_added,indices2); // merge the two sequences of updated vertices, avoiding double entries // of vertices with the same index set index_set; unsigned int i; for (i=0; i < indices1.size(); i++) {index_set.insert(indices1[i]);} for (i=0; i < indices2.size(); i++) {index_set.insert(indices2[i]);} indices_of_updated_neighbours.clear(); for (set::iterator iter = index_set.begin(); iter != index_set.end(); iter++) { indices_of_updated_neighbours.push_back(*iter); } } FASTJET_END_NAMESPACE #endif // DROP_CGAL fastjet-3.0.6+dfsg.orig/src/MinHeap.cc0000644000175000017500000001054411766120140015653 0ustar sunsun//STARTHEADER // $Id: MinHeap.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/internal/MinHeap.hh" #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //---------------------------------------------------------------------- /// construct the MinHeap; structure will be as follows: /// . _heap[0].minloc points to globally smallest entry /// _heap[1].minloc points to smallest entry in one half of heap /// _heap[2].minloc points to smallest entry in other half of heap /// /// . for _heap[i], the "parent" is to be found at (i-1)/2 void MinHeap::_initialise(const std::vector & values){ // fill the high-range of the heap with the largest possible value // (minloc of each entry is itself) for (unsigned i = values.size(); i < _heap.size(); i++) { _heap[i].value = std::numeric_limits::max(); _heap[i].minloc = &(_heap[i]); } // fill the rest of the heap with the actual values // (minloc of each entry is itself) for (unsigned i = 0; i < values.size(); i++) { _heap[i].value = values[i]; _heap[i].minloc = &(_heap[i]); } // now adjust the minlocs so that everything is OK... for (unsigned i = _heap.size()-1; i > 0; i--) { ValueLoc * parent = &(_heap[(i-1)/2]); ValueLoc * here = &(_heap[i]); if (here->minloc->value < parent->minloc->value) { parent->minloc = here->minloc; } } //cout << minloc() << " "<minloc != start && !(new_value < start->minloc->value)) { start->value = new_value; //std::cout << " had easy exit\n"; return; } // update the value and put a temporary location start->value = new_value; start->minloc = start; // warn that a change has been made at this place bool change_made = true; // to make sure we don't go off edge... ValueLoc * heap_end = (&(_heap[0])) + _heap.size(); // now work our way up the heap while(change_made) { ValueLoc * here = &(_heap[loc]); change_made = false; // if we were pointing to start, then we must re-initialise things if (here->minloc == start) { here->minloc = here; change_made = true; } // now compare current location to children (at 2*loc+1, 2*loc+2) ValueLoc * child = &(_heap[2*loc+1]); if (child < heap_end && child->minloc->value < here->minloc->value ) { here->minloc = child->minloc; change_made = true;} child++; if (child < heap_end && child->minloc->value < here->minloc->value ) { here->minloc = child->minloc; change_made = true;} // then we move up (loc ->(loc-1)/2) if there's anywhere to go if (loc == 0) {break;} loc = (loc-1)/2; } } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/Makefile.in0000644000175000017500000016711512233506216016101 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # shared library VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libfastjet_la_LIBADD = am_libfastjet_la_OBJECTS = libfastjet_la-DnnPlane.lo \ libfastjet_la-Dnn4piCylinder.lo \ libfastjet_la-Dnn3piCylinder.lo \ libfastjet_la-Dnn2piCylinder.lo \ libfastjet_la-ClusterSequence.lo libfastjet_la-PseudoJet.lo \ libfastjet_la-Selector.lo libfastjet_la-ClusterSequence_N2.lo \ libfastjet_la-ClusterSequence_TiledN2.lo \ libfastjet_la-ClusterSequence_Delaunay.lo \ libfastjet_la-ClusterSequence_DumbN3.lo \ libfastjet_la-ClusterSequence_CP2DChan.lo \ libfastjet_la-ClosestPair2D.lo libfastjet_la-MinHeap.lo \ libfastjet_la-ClusterSequenceAreaBase.lo \ libfastjet_la-ClusterSequenceActiveAreaExplicitGhosts.lo \ libfastjet_la-ClusterSequenceArea.lo \ libfastjet_la-GhostedAreaSpec.lo \ libfastjet_la-ClusterSequenceActiveArea.lo \ libfastjet_la-Voronoi.lo \ libfastjet_la-ClusterSequenceVoronoiArea.lo \ libfastjet_la-ClusterSequencePassiveArea.lo \ libfastjet_la-ClusterSequence1GhostPassiveArea.lo \ libfastjet_la-PseudoJetStructureBase.lo \ libfastjet_la-ClusterSequenceStructure.lo \ libfastjet_la-BasicRandom.lo libfastjet_la-JetDefinition.lo \ libfastjet_la-Error.lo libfastjet_la-AreaDefinition.lo \ libfastjet_la-RangeDefinition.lo \ libfastjet_la-CompositeJetStructure.lo \ libfastjet_la-FunctionOfPseudoJet.lo \ libfastjet_la-LimitedWarning.lo libfastjet_la_OBJECTS = $(am_libfastjet_la_OBJECTS) libfastjet_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(libfastjet_la_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libfastjet_la_SOURCES) DIST_SOURCES = $(libfastjet_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ lib_LTLIBRARIES = libfastjet.la libfastjet_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/../include libfastjet_la_SOURCES = DnnPlane.cc\ Dnn4piCylinder.cc Dnn3piCylinder.cc Dnn2piCylinder.cc\ ClusterSequence.cc PseudoJet.cc Selector.cc\ ClusterSequence_N2.cc ClusterSequence_TiledN2.cc\ ClusterSequence_Delaunay.cc ClusterSequence_DumbN3.cc\ ClusterSequence_CP2DChan.cc ClosestPair2D.cc MinHeap.cc\ ClusterSequenceAreaBase.cc ClusterSequenceActiveAreaExplicitGhosts.cc\ ClusterSequenceArea.cc GhostedAreaSpec.cc ClusterSequenceActiveArea.cc\ Voronoi.cc ClusterSequenceVoronoiArea.cc\ ClusterSequencePassiveArea.cc ClusterSequence1GhostPassiveArea.cc\ PseudoJetStructureBase.cc ClusterSequenceStructure.cc\ BasicRandom.cc JetDefinition.cc Error.cc AreaDefinition.cc\ RangeDefinition.cc CompositeJetStructure.cc \ FunctionOfPseudoJet.cc\ LimitedWarning.cc EXTRA_DIST = makefile.static genconfig.sh all: all-am .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libfastjet.la: $(libfastjet_la_OBJECTS) $(libfastjet_la_DEPENDENCIES) $(libfastjet_la_LINK) -rpath $(libdir) $(libfastjet_la_OBJECTS) $(libfastjet_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-AreaDefinition.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-BasicRandom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClosestPair2D.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequence.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequence1GhostPassiveArea.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequenceActiveArea.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequenceActiveAreaExplicitGhosts.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequenceArea.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequenceAreaBase.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequencePassiveArea.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequenceStructure.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequenceVoronoiArea.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequence_CP2DChan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequence_Delaunay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequence_DumbN3.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequence_N2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-ClusterSequence_TiledN2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-CompositeJetStructure.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-Dnn2piCylinder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-Dnn3piCylinder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-Dnn4piCylinder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-DnnPlane.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-Error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-FunctionOfPseudoJet.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-GhostedAreaSpec.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-JetDefinition.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-LimitedWarning.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-MinHeap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-PseudoJet.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-PseudoJetStructureBase.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-RangeDefinition.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-Selector.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjet_la-Voronoi.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libfastjet_la-DnnPlane.lo: DnnPlane.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-DnnPlane.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-DnnPlane.Tpo -c -o libfastjet_la-DnnPlane.lo `test -f 'DnnPlane.cc' || echo '$(srcdir)/'`DnnPlane.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-DnnPlane.Tpo $(DEPDIR)/libfastjet_la-DnnPlane.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='DnnPlane.cc' object='libfastjet_la-DnnPlane.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-DnnPlane.lo `test -f 'DnnPlane.cc' || echo '$(srcdir)/'`DnnPlane.cc libfastjet_la-Dnn4piCylinder.lo: Dnn4piCylinder.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-Dnn4piCylinder.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-Dnn4piCylinder.Tpo -c -o libfastjet_la-Dnn4piCylinder.lo `test -f 'Dnn4piCylinder.cc' || echo '$(srcdir)/'`Dnn4piCylinder.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-Dnn4piCylinder.Tpo $(DEPDIR)/libfastjet_la-Dnn4piCylinder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Dnn4piCylinder.cc' object='libfastjet_la-Dnn4piCylinder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-Dnn4piCylinder.lo `test -f 'Dnn4piCylinder.cc' || echo '$(srcdir)/'`Dnn4piCylinder.cc libfastjet_la-Dnn3piCylinder.lo: Dnn3piCylinder.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-Dnn3piCylinder.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-Dnn3piCylinder.Tpo -c -o libfastjet_la-Dnn3piCylinder.lo `test -f 'Dnn3piCylinder.cc' || echo '$(srcdir)/'`Dnn3piCylinder.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-Dnn3piCylinder.Tpo $(DEPDIR)/libfastjet_la-Dnn3piCylinder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Dnn3piCylinder.cc' object='libfastjet_la-Dnn3piCylinder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-Dnn3piCylinder.lo `test -f 'Dnn3piCylinder.cc' || echo '$(srcdir)/'`Dnn3piCylinder.cc libfastjet_la-Dnn2piCylinder.lo: Dnn2piCylinder.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-Dnn2piCylinder.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-Dnn2piCylinder.Tpo -c -o libfastjet_la-Dnn2piCylinder.lo `test -f 'Dnn2piCylinder.cc' || echo '$(srcdir)/'`Dnn2piCylinder.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-Dnn2piCylinder.Tpo $(DEPDIR)/libfastjet_la-Dnn2piCylinder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Dnn2piCylinder.cc' object='libfastjet_la-Dnn2piCylinder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-Dnn2piCylinder.lo `test -f 'Dnn2piCylinder.cc' || echo '$(srcdir)/'`Dnn2piCylinder.cc libfastjet_la-ClusterSequence.lo: ClusterSequence.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequence.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequence.Tpo -c -o libfastjet_la-ClusterSequence.lo `test -f 'ClusterSequence.cc' || echo '$(srcdir)/'`ClusterSequence.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequence.Tpo $(DEPDIR)/libfastjet_la-ClusterSequence.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequence.cc' object='libfastjet_la-ClusterSequence.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequence.lo `test -f 'ClusterSequence.cc' || echo '$(srcdir)/'`ClusterSequence.cc libfastjet_la-PseudoJet.lo: PseudoJet.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-PseudoJet.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-PseudoJet.Tpo -c -o libfastjet_la-PseudoJet.lo `test -f 'PseudoJet.cc' || echo '$(srcdir)/'`PseudoJet.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-PseudoJet.Tpo $(DEPDIR)/libfastjet_la-PseudoJet.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PseudoJet.cc' object='libfastjet_la-PseudoJet.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-PseudoJet.lo `test -f 'PseudoJet.cc' || echo '$(srcdir)/'`PseudoJet.cc libfastjet_la-Selector.lo: Selector.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-Selector.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-Selector.Tpo -c -o libfastjet_la-Selector.lo `test -f 'Selector.cc' || echo '$(srcdir)/'`Selector.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-Selector.Tpo $(DEPDIR)/libfastjet_la-Selector.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Selector.cc' object='libfastjet_la-Selector.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-Selector.lo `test -f 'Selector.cc' || echo '$(srcdir)/'`Selector.cc libfastjet_la-ClusterSequence_N2.lo: ClusterSequence_N2.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequence_N2.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequence_N2.Tpo -c -o libfastjet_la-ClusterSequence_N2.lo `test -f 'ClusterSequence_N2.cc' || echo '$(srcdir)/'`ClusterSequence_N2.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequence_N2.Tpo $(DEPDIR)/libfastjet_la-ClusterSequence_N2.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequence_N2.cc' object='libfastjet_la-ClusterSequence_N2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequence_N2.lo `test -f 'ClusterSequence_N2.cc' || echo '$(srcdir)/'`ClusterSequence_N2.cc libfastjet_la-ClusterSequence_TiledN2.lo: ClusterSequence_TiledN2.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequence_TiledN2.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequence_TiledN2.Tpo -c -o libfastjet_la-ClusterSequence_TiledN2.lo `test -f 'ClusterSequence_TiledN2.cc' || echo '$(srcdir)/'`ClusterSequence_TiledN2.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequence_TiledN2.Tpo $(DEPDIR)/libfastjet_la-ClusterSequence_TiledN2.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequence_TiledN2.cc' object='libfastjet_la-ClusterSequence_TiledN2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequence_TiledN2.lo `test -f 'ClusterSequence_TiledN2.cc' || echo '$(srcdir)/'`ClusterSequence_TiledN2.cc libfastjet_la-ClusterSequence_Delaunay.lo: ClusterSequence_Delaunay.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequence_Delaunay.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequence_Delaunay.Tpo -c -o libfastjet_la-ClusterSequence_Delaunay.lo `test -f 'ClusterSequence_Delaunay.cc' || echo '$(srcdir)/'`ClusterSequence_Delaunay.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequence_Delaunay.Tpo $(DEPDIR)/libfastjet_la-ClusterSequence_Delaunay.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequence_Delaunay.cc' object='libfastjet_la-ClusterSequence_Delaunay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequence_Delaunay.lo `test -f 'ClusterSequence_Delaunay.cc' || echo '$(srcdir)/'`ClusterSequence_Delaunay.cc libfastjet_la-ClusterSequence_DumbN3.lo: ClusterSequence_DumbN3.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequence_DumbN3.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequence_DumbN3.Tpo -c -o libfastjet_la-ClusterSequence_DumbN3.lo `test -f 'ClusterSequence_DumbN3.cc' || echo '$(srcdir)/'`ClusterSequence_DumbN3.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequence_DumbN3.Tpo $(DEPDIR)/libfastjet_la-ClusterSequence_DumbN3.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequence_DumbN3.cc' object='libfastjet_la-ClusterSequence_DumbN3.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequence_DumbN3.lo `test -f 'ClusterSequence_DumbN3.cc' || echo '$(srcdir)/'`ClusterSequence_DumbN3.cc libfastjet_la-ClusterSequence_CP2DChan.lo: ClusterSequence_CP2DChan.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequence_CP2DChan.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequence_CP2DChan.Tpo -c -o libfastjet_la-ClusterSequence_CP2DChan.lo `test -f 'ClusterSequence_CP2DChan.cc' || echo '$(srcdir)/'`ClusterSequence_CP2DChan.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequence_CP2DChan.Tpo $(DEPDIR)/libfastjet_la-ClusterSequence_CP2DChan.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequence_CP2DChan.cc' object='libfastjet_la-ClusterSequence_CP2DChan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequence_CP2DChan.lo `test -f 'ClusterSequence_CP2DChan.cc' || echo '$(srcdir)/'`ClusterSequence_CP2DChan.cc libfastjet_la-ClosestPair2D.lo: ClosestPair2D.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClosestPair2D.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClosestPair2D.Tpo -c -o libfastjet_la-ClosestPair2D.lo `test -f 'ClosestPair2D.cc' || echo '$(srcdir)/'`ClosestPair2D.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClosestPair2D.Tpo $(DEPDIR)/libfastjet_la-ClosestPair2D.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClosestPair2D.cc' object='libfastjet_la-ClosestPair2D.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClosestPair2D.lo `test -f 'ClosestPair2D.cc' || echo '$(srcdir)/'`ClosestPair2D.cc libfastjet_la-MinHeap.lo: MinHeap.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-MinHeap.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-MinHeap.Tpo -c -o libfastjet_la-MinHeap.lo `test -f 'MinHeap.cc' || echo '$(srcdir)/'`MinHeap.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-MinHeap.Tpo $(DEPDIR)/libfastjet_la-MinHeap.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MinHeap.cc' object='libfastjet_la-MinHeap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-MinHeap.lo `test -f 'MinHeap.cc' || echo '$(srcdir)/'`MinHeap.cc libfastjet_la-ClusterSequenceAreaBase.lo: ClusterSequenceAreaBase.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequenceAreaBase.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequenceAreaBase.Tpo -c -o libfastjet_la-ClusterSequenceAreaBase.lo `test -f 'ClusterSequenceAreaBase.cc' || echo '$(srcdir)/'`ClusterSequenceAreaBase.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequenceAreaBase.Tpo $(DEPDIR)/libfastjet_la-ClusterSequenceAreaBase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequenceAreaBase.cc' object='libfastjet_la-ClusterSequenceAreaBase.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequenceAreaBase.lo `test -f 'ClusterSequenceAreaBase.cc' || echo '$(srcdir)/'`ClusterSequenceAreaBase.cc libfastjet_la-ClusterSequenceActiveAreaExplicitGhosts.lo: ClusterSequenceActiveAreaExplicitGhosts.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequenceActiveAreaExplicitGhosts.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequenceActiveAreaExplicitGhosts.Tpo -c -o libfastjet_la-ClusterSequenceActiveAreaExplicitGhosts.lo `test -f 'ClusterSequenceActiveAreaExplicitGhosts.cc' || echo '$(srcdir)/'`ClusterSequenceActiveAreaExplicitGhosts.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequenceActiveAreaExplicitGhosts.Tpo $(DEPDIR)/libfastjet_la-ClusterSequenceActiveAreaExplicitGhosts.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequenceActiveAreaExplicitGhosts.cc' object='libfastjet_la-ClusterSequenceActiveAreaExplicitGhosts.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequenceActiveAreaExplicitGhosts.lo `test -f 'ClusterSequenceActiveAreaExplicitGhosts.cc' || echo '$(srcdir)/'`ClusterSequenceActiveAreaExplicitGhosts.cc libfastjet_la-ClusterSequenceArea.lo: ClusterSequenceArea.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequenceArea.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequenceArea.Tpo -c -o libfastjet_la-ClusterSequenceArea.lo `test -f 'ClusterSequenceArea.cc' || echo '$(srcdir)/'`ClusterSequenceArea.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequenceArea.Tpo $(DEPDIR)/libfastjet_la-ClusterSequenceArea.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequenceArea.cc' object='libfastjet_la-ClusterSequenceArea.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequenceArea.lo `test -f 'ClusterSequenceArea.cc' || echo '$(srcdir)/'`ClusterSequenceArea.cc libfastjet_la-GhostedAreaSpec.lo: GhostedAreaSpec.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-GhostedAreaSpec.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-GhostedAreaSpec.Tpo -c -o libfastjet_la-GhostedAreaSpec.lo `test -f 'GhostedAreaSpec.cc' || echo '$(srcdir)/'`GhostedAreaSpec.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-GhostedAreaSpec.Tpo $(DEPDIR)/libfastjet_la-GhostedAreaSpec.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GhostedAreaSpec.cc' object='libfastjet_la-GhostedAreaSpec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-GhostedAreaSpec.lo `test -f 'GhostedAreaSpec.cc' || echo '$(srcdir)/'`GhostedAreaSpec.cc libfastjet_la-ClusterSequenceActiveArea.lo: ClusterSequenceActiveArea.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequenceActiveArea.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequenceActiveArea.Tpo -c -o libfastjet_la-ClusterSequenceActiveArea.lo `test -f 'ClusterSequenceActiveArea.cc' || echo '$(srcdir)/'`ClusterSequenceActiveArea.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequenceActiveArea.Tpo $(DEPDIR)/libfastjet_la-ClusterSequenceActiveArea.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequenceActiveArea.cc' object='libfastjet_la-ClusterSequenceActiveArea.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequenceActiveArea.lo `test -f 'ClusterSequenceActiveArea.cc' || echo '$(srcdir)/'`ClusterSequenceActiveArea.cc libfastjet_la-Voronoi.lo: Voronoi.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-Voronoi.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-Voronoi.Tpo -c -o libfastjet_la-Voronoi.lo `test -f 'Voronoi.cc' || echo '$(srcdir)/'`Voronoi.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-Voronoi.Tpo $(DEPDIR)/libfastjet_la-Voronoi.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Voronoi.cc' object='libfastjet_la-Voronoi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-Voronoi.lo `test -f 'Voronoi.cc' || echo '$(srcdir)/'`Voronoi.cc libfastjet_la-ClusterSequenceVoronoiArea.lo: ClusterSequenceVoronoiArea.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequenceVoronoiArea.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequenceVoronoiArea.Tpo -c -o libfastjet_la-ClusterSequenceVoronoiArea.lo `test -f 'ClusterSequenceVoronoiArea.cc' || echo '$(srcdir)/'`ClusterSequenceVoronoiArea.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequenceVoronoiArea.Tpo $(DEPDIR)/libfastjet_la-ClusterSequenceVoronoiArea.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequenceVoronoiArea.cc' object='libfastjet_la-ClusterSequenceVoronoiArea.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequenceVoronoiArea.lo `test -f 'ClusterSequenceVoronoiArea.cc' || echo '$(srcdir)/'`ClusterSequenceVoronoiArea.cc libfastjet_la-ClusterSequencePassiveArea.lo: ClusterSequencePassiveArea.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequencePassiveArea.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequencePassiveArea.Tpo -c -o libfastjet_la-ClusterSequencePassiveArea.lo `test -f 'ClusterSequencePassiveArea.cc' || echo '$(srcdir)/'`ClusterSequencePassiveArea.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequencePassiveArea.Tpo $(DEPDIR)/libfastjet_la-ClusterSequencePassiveArea.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequencePassiveArea.cc' object='libfastjet_la-ClusterSequencePassiveArea.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequencePassiveArea.lo `test -f 'ClusterSequencePassiveArea.cc' || echo '$(srcdir)/'`ClusterSequencePassiveArea.cc libfastjet_la-ClusterSequence1GhostPassiveArea.lo: ClusterSequence1GhostPassiveArea.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequence1GhostPassiveArea.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequence1GhostPassiveArea.Tpo -c -o libfastjet_la-ClusterSequence1GhostPassiveArea.lo `test -f 'ClusterSequence1GhostPassiveArea.cc' || echo '$(srcdir)/'`ClusterSequence1GhostPassiveArea.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequence1GhostPassiveArea.Tpo $(DEPDIR)/libfastjet_la-ClusterSequence1GhostPassiveArea.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequence1GhostPassiveArea.cc' object='libfastjet_la-ClusterSequence1GhostPassiveArea.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequence1GhostPassiveArea.lo `test -f 'ClusterSequence1GhostPassiveArea.cc' || echo '$(srcdir)/'`ClusterSequence1GhostPassiveArea.cc libfastjet_la-PseudoJetStructureBase.lo: PseudoJetStructureBase.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-PseudoJetStructureBase.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-PseudoJetStructureBase.Tpo -c -o libfastjet_la-PseudoJetStructureBase.lo `test -f 'PseudoJetStructureBase.cc' || echo '$(srcdir)/'`PseudoJetStructureBase.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-PseudoJetStructureBase.Tpo $(DEPDIR)/libfastjet_la-PseudoJetStructureBase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PseudoJetStructureBase.cc' object='libfastjet_la-PseudoJetStructureBase.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-PseudoJetStructureBase.lo `test -f 'PseudoJetStructureBase.cc' || echo '$(srcdir)/'`PseudoJetStructureBase.cc libfastjet_la-ClusterSequenceStructure.lo: ClusterSequenceStructure.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-ClusterSequenceStructure.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-ClusterSequenceStructure.Tpo -c -o libfastjet_la-ClusterSequenceStructure.lo `test -f 'ClusterSequenceStructure.cc' || echo '$(srcdir)/'`ClusterSequenceStructure.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-ClusterSequenceStructure.Tpo $(DEPDIR)/libfastjet_la-ClusterSequenceStructure.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ClusterSequenceStructure.cc' object='libfastjet_la-ClusterSequenceStructure.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-ClusterSequenceStructure.lo `test -f 'ClusterSequenceStructure.cc' || echo '$(srcdir)/'`ClusterSequenceStructure.cc libfastjet_la-BasicRandom.lo: BasicRandom.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-BasicRandom.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-BasicRandom.Tpo -c -o libfastjet_la-BasicRandom.lo `test -f 'BasicRandom.cc' || echo '$(srcdir)/'`BasicRandom.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-BasicRandom.Tpo $(DEPDIR)/libfastjet_la-BasicRandom.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='BasicRandom.cc' object='libfastjet_la-BasicRandom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-BasicRandom.lo `test -f 'BasicRandom.cc' || echo '$(srcdir)/'`BasicRandom.cc libfastjet_la-JetDefinition.lo: JetDefinition.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-JetDefinition.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-JetDefinition.Tpo -c -o libfastjet_la-JetDefinition.lo `test -f 'JetDefinition.cc' || echo '$(srcdir)/'`JetDefinition.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-JetDefinition.Tpo $(DEPDIR)/libfastjet_la-JetDefinition.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='JetDefinition.cc' object='libfastjet_la-JetDefinition.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-JetDefinition.lo `test -f 'JetDefinition.cc' || echo '$(srcdir)/'`JetDefinition.cc libfastjet_la-Error.lo: Error.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-Error.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-Error.Tpo -c -o libfastjet_la-Error.lo `test -f 'Error.cc' || echo '$(srcdir)/'`Error.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-Error.Tpo $(DEPDIR)/libfastjet_la-Error.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Error.cc' object='libfastjet_la-Error.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-Error.lo `test -f 'Error.cc' || echo '$(srcdir)/'`Error.cc libfastjet_la-AreaDefinition.lo: AreaDefinition.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-AreaDefinition.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-AreaDefinition.Tpo -c -o libfastjet_la-AreaDefinition.lo `test -f 'AreaDefinition.cc' || echo '$(srcdir)/'`AreaDefinition.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-AreaDefinition.Tpo $(DEPDIR)/libfastjet_la-AreaDefinition.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='AreaDefinition.cc' object='libfastjet_la-AreaDefinition.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-AreaDefinition.lo `test -f 'AreaDefinition.cc' || echo '$(srcdir)/'`AreaDefinition.cc libfastjet_la-RangeDefinition.lo: RangeDefinition.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-RangeDefinition.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-RangeDefinition.Tpo -c -o libfastjet_la-RangeDefinition.lo `test -f 'RangeDefinition.cc' || echo '$(srcdir)/'`RangeDefinition.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-RangeDefinition.Tpo $(DEPDIR)/libfastjet_la-RangeDefinition.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RangeDefinition.cc' object='libfastjet_la-RangeDefinition.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-RangeDefinition.lo `test -f 'RangeDefinition.cc' || echo '$(srcdir)/'`RangeDefinition.cc libfastjet_la-CompositeJetStructure.lo: CompositeJetStructure.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-CompositeJetStructure.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-CompositeJetStructure.Tpo -c -o libfastjet_la-CompositeJetStructure.lo `test -f 'CompositeJetStructure.cc' || echo '$(srcdir)/'`CompositeJetStructure.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-CompositeJetStructure.Tpo $(DEPDIR)/libfastjet_la-CompositeJetStructure.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CompositeJetStructure.cc' object='libfastjet_la-CompositeJetStructure.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-CompositeJetStructure.lo `test -f 'CompositeJetStructure.cc' || echo '$(srcdir)/'`CompositeJetStructure.cc libfastjet_la-FunctionOfPseudoJet.lo: FunctionOfPseudoJet.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-FunctionOfPseudoJet.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-FunctionOfPseudoJet.Tpo -c -o libfastjet_la-FunctionOfPseudoJet.lo `test -f 'FunctionOfPseudoJet.cc' || echo '$(srcdir)/'`FunctionOfPseudoJet.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-FunctionOfPseudoJet.Tpo $(DEPDIR)/libfastjet_la-FunctionOfPseudoJet.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='FunctionOfPseudoJet.cc' object='libfastjet_la-FunctionOfPseudoJet.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-FunctionOfPseudoJet.lo `test -f 'FunctionOfPseudoJet.cc' || echo '$(srcdir)/'`FunctionOfPseudoJet.cc libfastjet_la-LimitedWarning.lo: LimitedWarning.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjet_la-LimitedWarning.lo -MD -MP -MF $(DEPDIR)/libfastjet_la-LimitedWarning.Tpo -c -o libfastjet_la-LimitedWarning.lo `test -f 'LimitedWarning.cc' || echo '$(srcdir)/'`LimitedWarning.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjet_la-LimitedWarning.Tpo $(DEPDIR)/libfastjet_la-LimitedWarning.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='LimitedWarning.cc' object='libfastjet_la-LimitedWarning.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjet_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjet_la-LimitedWarning.lo `test -f 'LimitedWarning.cc' || echo '$(srcdir)/'`LimitedWarning.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/src/ClusterSequence.cc0000644000175000017500000016024012127746207017455 0ustar sunsun//STARTHEADER // $Id: ClusterSequence.cc 3079 2013-04-05 20:42:21Z cacciari $ // // Copyright (c) 2005-2013, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/Error.hh" #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequence.hh" #include "fastjet/ClusterSequenceStructure.hh" #include "fastjet/version.hh" // stores the current version number #include #include #include #include #include #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // here's where we put the main page for fastjet (as explained in the // Doxygen FAQ) // We put it inside the fastjet namespace to have the links without // having to specify (fastjet::) //...................................................................... /** \mainpage FastJet code documentation * * These pages provide automatically generated documentation for the * FastJet package. * * \section useful_classes The most useful classes * * Many of the facilities of FastJet can be accessed through the three * following classes: * * - PseudoJet: the basic class for holding the 4-momentum of a * particle or a jet. * * - JetDefinition: the combination of a #JetAlgorithm and its * associated parameters. Can also be initialised with a \ref plugins "plugin". * * - ClusterSequence: constructed with a vector of input (PseudoJet) * particles and a JetDefinition, it computes and stores the * information on how the input particles are clustered into jets. * * \section advanced_classes Selected more advanced classes * * - ClusterSequenceArea: with the help of an AreaDefinition, provides * jets that also contain information about their area. * * \section Tools Selected additional tools * * - JetMedianBackgroundEstimator: with the help of a Selector, a JetDefinition and * an AreaDefinition, allows one to estimate the background noise density in an event; for a simpler, quicker, effective alternative, use GridMedianBackgroundEstimator * * - Transformer: class from which are derived various tools for * manipulating jets and accessing their substructure. Examples are * Subtractor, Filter, Pruner and various taggers (e.g. JHTopTagger * and MassDropTagger). * * \section further_info Further information * * - Selected classes ordered by topics can be found under the modules tab. * * - The complete list of classes is available under the classes tab. * * - For non-class material (enums, * typedefs, * functions), see the * #fastjet documentation * * - For further information and normal documentation, see the main FastJet page. * * \section examples Examples * See our \subpage Examples page */ // define the doxygen groups /// \defgroup basic_classes Fundamental FastJet classes /// \defgroup area_classes Area-related classes /// \defgroup sec_area_classes Secondary area-related classes /// \defgroup plugins Plugins for non-native jet definitions /// \defgroup selectors Selectors /// \defgroup tools FastJet tools /// \{ \defgroup tools_generic Generic tools /// \defgroup tools_background Background subtraction /// \defgroup tools_taggers Taggers /// \} /// \defgroup extra_info Access to extra information /// \defgroup error_handling Error handling /// \defgroup advanced_usage Advanced usage /// \if internal_doc /// \defgroup internal /// \endif //---------------------------------------------------------------------- using namespace std; // The following variable can be modified from within user code // so as to redirect banners to an ostream other than cout. // // Please note that if you distribute 3rd party code // that links with FastJet, that 3rd party code is NOT // allowed to turn off the printing of FastJet banners // by default. This requirement reflects the spirit of // clause 2c of the GNU Public License (v2), under which // FastJet and its plugins are distributed. std::ostream * ClusterSequence::_fastjet_banner_ostr = &cout; // destructor that guarantees proper bookkeeping for the CS Structure ClusterSequence::~ClusterSequence () { // set the pointer in the wrapper to this object to NULL to say that // we're going out of scope if (_structure_shared_ptr()){ ClusterSequenceStructure* csi = dynamic_cast(_structure_shared_ptr()); // normally the csi is purely internal so it really should not be // NULL i.e assert should be OK // (we assert rather than throw an error, since failure here is a // sign of major internal problems) assert(csi != NULL); csi->set_associated_cs(NULL); // if the user had given the CS responsibility to delete itself, // but then deletes the CS themselves, the following lines of // code will ensure that the structure_shared_ptr will have // a proper object count (so that jets associated with the CS will // throw the correct error if the user tries to access their // constituents). if (_deletes_self_when_unused) { _structure_shared_ptr.set_count(_structure_shared_ptr.use_count() + _structure_use_count_after_construction); } } } //----------- void ClusterSequence::signal_imminent_self_deletion() const { // normally if the destructor is called when // _deletes_self_when_unused is true, it assumes that it's been // called by the user (and it therefore resets the shared pointer // count to the true count). // // for self deletion (called from the destructor of the CSstructure, // the shared_ptr to which has just had its pointer -> 0) you do // _not_ want to reset the pointer count (otherwise you will end up // with a double delete on the shared pointer once you start // deleting the internal structure of the CS). // // the following modification ensures that the count reset will not // take place in the destructor assert(_deletes_self_when_unused); _deletes_self_when_unused = false; } //DEP //---------------------------------------------------------------------- //DEP void ClusterSequence::_initialise_and_run ( //DEP const double & R, //DEP const Strategy & strategy, //DEP const bool & writeout_combinations) { //DEP //DEP JetDefinition jet_def(_default_jet_algorithm, R, strategy); //DEP _initialise_and_run(jet_def, writeout_combinations); //DEP } //---------------------------------------------------------------------- void ClusterSequence::_initialise_and_run ( const JetDefinition & jet_def_in, const bool & writeout_combinations) { // transfer all relevant info into internal variables _decant_options(jet_def_in, writeout_combinations); // now run _initialise_and_run_no_decant(); } //---------------------------------------------------------------------- void ClusterSequence::_initialise_and_run_no_decant () { // set up the history entries for the initial particles (those // currently in _jets) _fill_initial_history(); // don't run anything if the event is empty if (n_particles() == 0) return; // ----- deal with special cases: plugins & e+e- ------ if (_jet_algorithm == plugin_algorithm) { // allows plugin_xyz() functions to modify cluster sequence _plugin_activated = true; // let the plugin do its work here _jet_def.plugin()->run_clustering( (*this) ); _plugin_activated = false; _update_structure_use_count(); return; } else if (_jet_algorithm == ee_kt_algorithm || _jet_algorithm == ee_genkt_algorithm) { // ignore requested strategy _strategy = N2Plain; if (_jet_algorithm == ee_kt_algorithm) { // make sure that R is large enough so that "beam" recomb only // occurs when a single particle is left // Normally, this should be automatically set to 4 from JetDefinition assert(_Rparam > 2.0); // this is used to renormalise the dij to get a "standard" form // and our convention in e+e- will be different from that // in long.inv case; NB: _invR2 name should be changed -> _renorm_dij? _invR2 = 1.0; } else { // as of 2009-01-09, choose R to be an angular distance, in // radians. Since the algorithm uses 2(1-cos(theta)) as its // squared angular measure, make sure that the _R2 is defined // in a similar way. if (_Rparam > pi) { // choose a value that ensures that back-to-back particles will // always recombine //_R2 = 4.0000000000001; _R2 = 2 * ( 3.0 + cos(_Rparam) ); } else { _R2 = 2 * ( 1.0 - cos(_Rparam) ); } _invR2 = 1.0/_R2; } _simple_N2_cluster_EEBriefJet(); return; } else if (_jet_algorithm == undefined_jet_algorithm) { throw Error("A ClusterSequence cannot be created with an uninitialised JetDefinition"); } // automatically redefine the strategy according to N if that is // what the user requested -- transition points (and especially // their R-dependence) are based on empirical observations for a // R=0.4, 0.7 and 1.0, running on toth (3.4GHz, Pentium IV D [dual // core] with 2MB of cache). //------------- // 2011-11-15: lowered N2Plain -> N2Tiled switchover based on some // new tests on an Intel Core 2 Duo T9400 @ 2.53 GHz // with 6MB cache; tests performed with lines such as // ./fastjet_timing_plugins -kt -nhardest 30 -repeat 50000 -strategy -3 -R 0.5 -nev 1 < ../../data/Pythia-PtMin1000-LHC-1000ev.dat if (_strategy == Best) { int N = _jets.size(); //if (N <= 55*max(0.5,min(1.0,_Rparam))) {// old empirical scaling with R //---------------------- // 2011-11-15: new empirical scaling with R; NB: low-R N2Tiled // could be significantly improved at low N by limiting the // minimum size of tiles when R is small if (min(1.0,max(0.1,_Rparam)*3.3)*N <= 30) { _strategy = N2Plain; } else if (N > 6200/pow(_Rparam,2.0) && _jet_def.jet_algorithm() == cambridge_algorithm) { _strategy = NlnNCam; #ifndef DROP_CGAL } else if ((N > 16000/pow(_Rparam,1.15) && _jet_def.jet_algorithm() != antikt_algorithm) || N > 35000/pow(_Rparam,1.15)) { _strategy = NlnN; #endif // DROP_CGAL } else if (N <= 450) { _strategy = N2Tiled; } else { _strategy = N2MinHeapTiled; } } // R >= 2pi is not supported by all clustering strategies owing to // periodicity issues (a particle might cluster with itself). When // R>=2pi, we therefore automatically switch to a strategy that is // known to work. if (_Rparam >= twopi) { if ( _strategy == NlnN || _strategy == NlnN3pi || _strategy == NlnNCam || _strategy == NlnNCam2pi2R || _strategy == NlnNCam4pi) { #ifdef DROP_CGAL _strategy = N2MinHeapTiled; #else _strategy = NlnN4pi; #endif } if (_jet_def.strategy() != Best && _strategy != _jet_def.strategy()) { ostringstream oss; oss << "Cluster strategy " << strategy_string(_jet_def.strategy()) << " automatically changed to " << strategy_string() << " because the former is not supported for R = " << _Rparam << " >= 2pi"; _changed_strategy_warning.warn(oss.str()); } } // run the code containing the selected strategy // // We order the strategies stqrting from the ones used by the Best // strategy in the order of increasing N, then the remaining ones // again in the order of increasing N. if (_strategy == N2Plain) { // BriefJet provides standard long.invariant kt alg. this->_simple_N2_cluster_BriefJet(); } else if (_strategy == N2Tiled) { this->_faster_tiled_N2_cluster(); } else if (_strategy == N2MinHeapTiled) { this->_minheap_faster_tiled_N2_cluster(); } else if (_strategy == NlnN) { this->_delaunay_cluster(); } else if (_strategy == NlnNCam) { this->_CP2DChan_cluster_2piMultD(); } else if (_strategy == NlnN3pi || _strategy == NlnN4pi ) { this->_delaunay_cluster(); } else if (_strategy == N3Dumb ) { this->_really_dumb_cluster(); } else if (_strategy == N2PoorTiled) { this->_tiled_N2_cluster(); } else if (_strategy == NlnNCam4pi) { this->_CP2DChan_cluster(); } else if (_strategy == NlnNCam2pi2R) { this->_CP2DChan_cluster_2pi2R(); } else { ostringstream err; err << "Unrecognised value for strategy: "<<_strategy; throw Error(err.str()); } } // these needs to be defined outside the class definition. bool ClusterSequence::_first_time = true; int ClusterSequence::_n_exclusive_warnings = 0; //---------------------------------------------------------------------- // the version string string fastjet_version_string() { return "FastJet version "+string(fastjet_version); } //---------------------------------------------------------------------- // prints a banner on the first call void ClusterSequence::print_banner() { if (!_first_time) {return;} _first_time = false; // make sure the user has not set the banner stream to NULL ostream * ostr = _fastjet_banner_ostr; if (!ostr) return; (*ostr) << "#--------------------------------------------------------------------------\n"; (*ostr) << "# FastJet release " << fastjet_version << endl; (*ostr) << "# M. Cacciari, G.P. Salam and G. Soyez \n"; (*ostr) << "# A software package for jet finding and analysis at colliders \n"; (*ostr) << "# http://fastjet.fr \n"; (*ostr) << "# \n"; (*ostr) << "# Please cite EPJC72(2012)1896 [arXiv:1111.6097] if you use this package\n"; (*ostr) << "# for scientific work and optionally PLB641(2006)57 [hep-ph/0512210]. \n"; (*ostr) << "# \n"; (*ostr) << "# FastJet is provided without warranty under the terms of the GNU GPLv2.\n"; (*ostr) << "# It uses T. Chan's closest pair algorithm, S. Fortune's Voronoi code"; #ifndef DROP_CGAL (*ostr) << ",\n# CGAL "; #else (*ostr) << "\n# "; #endif // DROP_CGAL (*ostr) << "and 3rd party plugin jet algorithms. See COPYING file for details.\n"; (*ostr) << "#--------------------------------------------------------------------------\n"; // make sure we really have the output done. ostr->flush(); } //---------------------------------------------------------------------- // transfer all relevant info into internal variables void ClusterSequence::_decant_options(const JetDefinition & jet_def_in, const bool & writeout_combinations) { // make a local copy of the jet definition (for future use) _jet_def = jet_def_in; _writeout_combinations = writeout_combinations; // initialised the wrapper to the current CS _structure_shared_ptr.reset(new ClusterSequenceStructure(this)); _decant_options_partial(); } //---------------------------------------------------------------------- // transfer all relevant info into internal variables void ClusterSequence::_decant_options_partial() { // let the user know what's going on print_banner(); _jet_algorithm = _jet_def.jet_algorithm(); _Rparam = _jet_def.R(); _R2 = _Rparam*_Rparam; _invR2 = 1.0/_R2; _strategy = _jet_def.strategy(); // disallow interference from the plugin _plugin_activated = false; // initialised the wrapper to the current CS //_structure_shared_ptr.reset(new ClusterSequenceStructure(this)); _update_structure_use_count(); // make sure it's correct already here } //---------------------------------------------------------------------- // initialise the history in a standard way void ClusterSequence::_fill_initial_history () { //if (_jets.size() == 0) {throw Error("Cannot run jet-finder on empty event");} // reserve sufficient space for everything _jets.reserve(_jets.size()*2); _history.reserve(_jets.size()*2); _Qtot = 0; for (int i = 0; i < static_cast(_jets.size()) ; i++) { history_element element; element.parent1 = InexistentParent; element.parent2 = InexistentParent; element.child = Invalid; element.jetp_index = i; element.dij = 0.0; element.max_dij_so_far = 0.0; _history.push_back(element); // do any momentum preprocessing needed by the recombination scheme _jet_def.recombiner()->preprocess(_jets[i]); // get cross-referencing right from PseudoJets _jets[i].set_cluster_hist_index(i); _set_structure_shared_ptr(_jets[i]); // determine the total energy in the event _Qtot += _jets[i].E(); } _initial_n = _jets.size(); _deletes_self_when_unused = false; } //---------------------------------------------------------------------- // Return the component corresponding to the specified index. // taken from CLHEP string ClusterSequence::strategy_string (Strategy strategy_in) const { string strategy; switch(strategy_in) { case NlnN: strategy = "NlnN"; break; case NlnN3pi: strategy = "NlnN3pi"; break; case NlnN4pi: strategy = "NlnN4pi"; break; case N2Plain: strategy = "N2Plain"; break; case N2Tiled: strategy = "N2Tiled"; break; case N2MinHeapTiled: strategy = "N2MinHeapTiled"; break; case N2PoorTiled: strategy = "N2PoorTiled"; break; case N3Dumb: strategy = "N3Dumb"; break; case NlnNCam4pi: strategy = "NlnNCam4pi"; break; case NlnNCam2pi2R: strategy = "NlnNCam2pi2R"; break; case NlnNCam: strategy = "NlnNCam"; break; // 2piMultD case plugin_strategy: strategy = "plugin strategy"; break; default: strategy = "Unrecognized"; } return strategy; } double ClusterSequence::jet_scale_for_algorithm( const PseudoJet & jet) const { if (_jet_algorithm == kt_algorithm) {return jet.kt2();} else if (_jet_algorithm == cambridge_algorithm) {return 1.0;} else if (_jet_algorithm == antikt_algorithm) { double kt2=jet.kt2(); return kt2 > 1e-300 ? 1.0/kt2 : 1e300; } else if (_jet_algorithm == genkt_algorithm) { double kt2 = jet.kt2(); double p = jet_def().extra_param(); if (p <= 0 && kt2 < 1e-300) kt2 = 1e-300; // dodgy safety check return pow(kt2, p); } else if (_jet_algorithm == cambridge_for_passive_algorithm) { double kt2 = jet.kt2(); double lim = _jet_def.extra_param(); if (kt2 < lim*lim && kt2 != 0.0) { return 1.0/kt2; } else {return 1.0;} } else {throw Error("Unrecognised jet algorithm");} } // //---------------------------------------------------------------------- // /// transfer the sequence contained in other_seq into our own; // /// any plugin "extras" contained in the from_seq will be lost // /// from there. // void ClusterSequence::transfer_from_sequence(ClusterSequence & from_seq) { // // if (will_delete_self_when_unused()) // throw(Error("cannot use CS::transfer_from_sequence after a call to delete_self_when_unused()")); // // // the metadata // _jet_def = from_seq._jet_def ; // _writeout_combinations = from_seq._writeout_combinations ; // _initial_n = from_seq._initial_n ; // _Rparam = from_seq._Rparam ; // _R2 = from_seq._R2 ; // _invR2 = from_seq._invR2 ; // _strategy = from_seq._strategy ; // _jet_algorithm = from_seq._jet_algorithm ; // _plugin_activated = from_seq._plugin_activated ; // // // the data // _jets = from_seq._jets; // _history = from_seq._history; // // the following transfers ownership of the extras from the from_seq // _extras = from_seq._extras; // // // transfer of ownership // if (_structure_shared_ptr()) { // // anything that is currently associated with the cluster sequence // // should be told that its cluster sequence no longer exists // ClusterSequenceStructure* csi = dynamic_cast(_structure_shared_ptr()); // assert(csi != NULL); // csi->set_associated_cs(NULL); // } // // create a new _structure_shared_ptr to reflect the fact that // // this CS is essentially a new one // _structure_shared_ptr.reset(new ClusterSequenceStructure(this)); // _update_structure_use_count(); // // for (vector::iterator jit = _jets.begin(); jit != _jets.end(); jit++) // _set_structure_shared_ptr(*jit); // } //---------------------------------------------------------------------- // transfer the sequence contained in other_seq into our own; // any plugin "extras" contained in the from_seq will be lost // from there. // // It also sets the ClusterSequence pointers of the PseudoJets in // the history to point to this ClusterSequence // // The second argument is an action that will be applied on every // jets in the resulting ClusterSequence void ClusterSequence::transfer_from_sequence(const ClusterSequence & from_seq, const FunctionOfPseudoJet * action_on_jets){ if (will_delete_self_when_unused()) throw(Error("cannot use CS::transfer_from_sequence after a call to delete_self_when_unused()")); // the metadata _jet_def = from_seq._jet_def ; _writeout_combinations = from_seq._writeout_combinations ; _initial_n = from_seq._initial_n ; _Rparam = from_seq._Rparam ; _R2 = from_seq._R2 ; _invR2 = from_seq._invR2 ; _strategy = from_seq._strategy ; _jet_algorithm = from_seq._jet_algorithm ; _plugin_activated = from_seq._plugin_activated ; // the data // apply the transformation on the jets if needed if (action_on_jets) _jets = (*action_on_jets)(from_seq._jets); else _jets = from_seq._jets; _history = from_seq._history; // the following shares ownership of the extras with the from_seq; // no transformations will be applied to the extras _extras = from_seq._extras; // clean up existing structure if (_structure_shared_ptr()) { // If there are jets associated with an old version of the CS and // a new one, keeping track of when to delete the CS becomes more // complex; so we don't allow this situation to occur. if (_deletes_self_when_unused) throw Error("transfer_from_sequence cannot be used for a cluster sequence that deletes self when unused"); // anything that is currently associated with the cluster sequence // should be told that its cluster sequence no longer exists ClusterSequenceStructure* csi = dynamic_cast(_structure_shared_ptr()); assert(csi != NULL); csi->set_associated_cs(NULL); } // create a new _structure_shared_ptr to reflect the fact that // this CS is essentially a new one _structure_shared_ptr.reset(new ClusterSequenceStructure(this)); _update_structure_use_count(); for (unsigned int i=0; i<_jets.size(); i++){ // we reset the cluster history index in case action_on_jets // messed up with it _jets[i].set_cluster_hist_index(from_seq._jets[i].cluster_hist_index()); // reset the structure pointer _set_structure_shared_ptr(_jets[i]); } } //---------------------------------------------------------------------- // record an ij recombination and reset the _jets[newjet_k] momentum and // user index to be those of newjet void ClusterSequence::plugin_record_ij_recombination( int jet_i, int jet_j, double dij, const PseudoJet & newjet, int & newjet_k) { plugin_record_ij_recombination(jet_i, jet_j, dij, newjet_k); // now transfer newjet into place int tmp_index = _jets[newjet_k].cluster_hist_index(); _jets[newjet_k] = newjet; _jets[newjet_k].set_cluster_hist_index(tmp_index); _set_structure_shared_ptr(_jets[newjet_k]); } //---------------------------------------------------------------------- // return all inclusive jets with pt > ptmin vector ClusterSequence::inclusive_jets (const double & ptmin) const{ double dcut = ptmin*ptmin; int i = _history.size() - 1; // last jet vector jets_local; if (_jet_algorithm == kt_algorithm) { while (i >= 0) { // with our specific definition of dij and diB (i.e. R appears only in // dij), then dij==diB is the same as the jet.perp2() and we can exploit // this in selecting the jets... if (_history[i].max_dij_so_far < dcut) {break;} if (_history[i].parent2 == BeamJet && _history[i].dij >= dcut) { // for beam jets int parent1 = _history[i].parent1; jets_local.push_back(_jets[_history[parent1].jetp_index]);} i--; } } else if (_jet_algorithm == cambridge_algorithm) { while (i >= 0) { // inclusive jets are all at end of clustering sequence in the // Cambridge algorithm -- so if we find a non-exclusive jet, then // we can exit if (_history[i].parent2 != BeamJet) {break;} int parent1 = _history[i].parent1; const PseudoJet & jet = _jets[_history[parent1].jetp_index]; if (jet.perp2() >= dcut) {jets_local.push_back(jet);} i--; } } else if (_jet_algorithm == plugin_algorithm || _jet_algorithm == ee_kt_algorithm || _jet_algorithm == antikt_algorithm || _jet_algorithm == genkt_algorithm || _jet_algorithm == ee_genkt_algorithm || _jet_algorithm == cambridge_for_passive_algorithm) { // for inclusive jets with a plugin algorithm, we make no // assumptions about anything (relation of dij to momenta, // ordering of the dij, etc.) while (i >= 0) { if (_history[i].parent2 == BeamJet) { int parent1 = _history[i].parent1; const PseudoJet & jet = _jets[_history[parent1].jetp_index]; if (jet.perp2() >= dcut) {jets_local.push_back(jet);} } i--; } } else {throw Error("cs::inclusive_jets(...): Unrecognized jet algorithm");} return jets_local; } //---------------------------------------------------------------------- // return the number of exclusive jets that would have been obtained // running the algorithm in exclusive mode with the given dcut int ClusterSequence::n_exclusive_jets (const double & dcut) const { // first locate the point where clustering would have stopped (i.e. the // first time max_dij_so_far > dcut) int i = _history.size() - 1; // last jet while (i >= 0) { if (_history[i].max_dij_so_far <= dcut) {break;} i--; } int stop_point = i + 1; // relation between stop_point, njets assumes one extra jet disappears // at each clustering. int njets = 2*_initial_n - stop_point; return njets; } //---------------------------------------------------------------------- // return all exclusive jets that would have been obtained running // the algorithm in exclusive mode with the given dcut vector ClusterSequence::exclusive_jets (const double & dcut) const { int njets = n_exclusive_jets(dcut); return exclusive_jets(njets); } //---------------------------------------------------------------------- // return the jets obtained by clustering the event to n jets. // Throw an error if there are fewer than n particles. vector ClusterSequence::exclusive_jets (const int & njets) const { // make sure the user does not ask for more than jets than there // were particles in the first place. if (njets > _initial_n) { ostringstream err; err << "Requested " << njets << " exclusive jets, but there were only " << _initial_n << " particles in the event"; throw Error(err.str()); } return exclusive_jets_up_to(njets); } //---------------------------------------------------------------------- // return the jets obtained by clustering the event to n jets. // If there are fewer than n particles, simply return all particles vector ClusterSequence::exclusive_jets_up_to (const int & njets) const { // provide a warning when extracting exclusive jets for algorithms // that does not support it explicitly. // Native algorithm that support it are: kt, ee_kt, cambridge, // genkt and ee_genkt (both with p>=0) // For plugins, we check Plugin::exclusive_sequence_meaningful() if (( _jet_def.jet_algorithm() != kt_algorithm) && ( _jet_def.jet_algorithm() != cambridge_algorithm) && ( _jet_def.jet_algorithm() != ee_kt_algorithm) && (((_jet_def.jet_algorithm() != genkt_algorithm) && (_jet_def.jet_algorithm() != ee_genkt_algorithm)) || (_jet_def.extra_param() <0)) && ((_jet_def.jet_algorithm() != plugin_algorithm) || (!_jet_def.plugin()->exclusive_sequence_meaningful())) && (_n_exclusive_warnings < 5)) { _n_exclusive_warnings++; cerr << "FastJet WARNING: dcut and exclusive jets for jet-finders other than kt should be interpreted with care." << endl; } // calculate the point where we have to stop the clustering. // relation between stop_point, njets assumes one extra jet disappears // at each clustering. int stop_point = 2*_initial_n - njets; // make sure it's safe when more jets are requested than there are particles if (stop_point < _initial_n) stop_point = _initial_n; // some sanity checking to make sure that e+e- does not give us // surprises (should we ever implement e+e-)... if (2*_initial_n != static_cast(_history.size())) { ostringstream err; err << "2*_initial_n != _history.size() -- this endangers internal assumptions!\n"; throw Error(err.str()); //assert(false); } // now go forwards and reconstitute the jets that we have -- // basically for any history element, see if the parent jets to // which it refers were created before the stopping point -- if they // were then add them to the list, otherwise they are subsequent // recombinations of the jets that we are looking for. vector jets_local; for (unsigned int i = stop_point; i < _history.size(); i++) { int parent1 = _history[i].parent1; if (parent1 < stop_point) { jets_local.push_back(_jets[_history[parent1].jetp_index]); } int parent2 = _history[i].parent2; if (parent2 < stop_point && parent2 > 0) { jets_local.push_back(_jets[_history[parent2].jetp_index]); } } // sanity check... if (int(jets_local.size()) != min(_initial_n, njets)) { ostringstream err; err << "ClusterSequence::exclusive_jets: size of returned vector (" <= 0); if (njets >= _initial_n) {return 0.0;} return _history[2*_initial_n-njets-1].dij; } //---------------------------------------------------------------------- /// return the maximum of the dmin encountered during all recombinations /// up to the one that led to an n-jet final state; identical to /// exclusive_dmerge, except in cases where the dmin do not increase /// monotonically. double ClusterSequence::exclusive_dmerge_max (const int & njets) const { assert(njets >= 0); if (njets >= _initial_n) {return 0.0;} return _history[2*_initial_n-njets-1].max_dij_so_far; } //---------------------------------------------------------------------- /// return a vector of all subjets of the current jet (in the sense /// of the exclusive algorithm) that would be obtained when running /// the algorithm with the given dcut. std::vector ClusterSequence::exclusive_subjets (const PseudoJet & jet, const double & dcut) const { set subhist; // get the set of history elements that correspond to subjets at // scale dcut get_subhist_set(subhist, jet, dcut, 0); // now transfer this into a sequence of jets vector subjets; subjets.reserve(subhist.size()); for (set::iterator elem = subhist.begin(); elem != subhist.end(); elem++) { subjets.push_back(_jets[(*elem)->jetp_index]); } return subjets; } //---------------------------------------------------------------------- /// return the size of exclusive_subjets(...); still n ln n with same /// coefficient, but marginally more efficient than manually taking /// exclusive_subjets.size() int ClusterSequence::n_exclusive_subjets(const PseudoJet & jet, const double & dcut) const { set subhist; // get the set of history elements that correspond to subjets at // scale dcut get_subhist_set(subhist, jet, dcut, 0); return subhist.size(); } //---------------------------------------------------------------------- /// return the list of subjets obtained by unclustering the supplied /// jet down to nsub subjets. Throws an error if there are fewer than /// nsub particles in the jet. std::vector ClusterSequence::exclusive_subjets (const PseudoJet & jet, int nsub) const { vector subjets = exclusive_subjets_up_to(jet, nsub); if (int(subjets.size()) < nsub) { ostringstream err; err << "Requested " << nsub << " exclusive subjets, but there were only " << subjets.size() << " particles in the jet"; throw Error(err.str()); } return subjets; } //---------------------------------------------------------------------- /// return the list of subjets obtained by unclustering the supplied /// jet down to nsub subjets (or all constituents if there are fewer /// than nsub). std::vector ClusterSequence::exclusive_subjets_up_to (const PseudoJet & jet, int nsub) const { set subhist; // prepare the vector into which we'll put the result vector subjets; if (nsub < 0) throw Error("Requested a negative number of subjets. This is nonsensical."); if (nsub == 0) return subjets; // get the set of history elements that correspond to subjets at // scale dcut get_subhist_set(subhist, jet, -1.0, nsub); // now transfer this into a sequence of jets subjets.reserve(subhist.size()); for (set::iterator elem = subhist.begin(); elem != subhist.end(); elem++) { subjets.push_back(_jets[(*elem)->jetp_index]); } return subjets; } //---------------------------------------------------------------------- /// return the dij that was present in the merging nsub+1 -> nsub /// subjets inside this jet. /// /// If the jet has nsub or fewer constituents, it will return 0. double ClusterSequence::exclusive_subdmerge(const PseudoJet & jet, int nsub) const { set subhist; // get the set of history elements that correspond to subjets at // scale dcut get_subhist_set(subhist, jet, -1.0, nsub); set::iterator highest = subhist.end(); highest--; /// will be zero if nconst <= nsub, since highest will be an original /// particle have zero dij return (*highest)->dij; } //---------------------------------------------------------------------- /// return the maximum dij that occurred in the whole event at the /// stage that the nsub+1 -> nsub merge of subjets occurred inside /// this jet. /// /// If the jet has nsub or fewer constituents, it will return 0. double ClusterSequence::exclusive_subdmerge_max(const PseudoJet & jet, int nsub) const { set subhist; // get the set of history elements that correspond to subjets at // scale dcut get_subhist_set(subhist, jet, -1.0, nsub); set::iterator highest = subhist.end(); highest--; /// will be zero if nconst <= nsub, since highest will be an original /// particle have zero dij return (*highest)->max_dij_so_far; } //---------------------------------------------------------------------- /// return a set of pointers to history entries corresponding to the /// subjets of this jet; one stops going working down through the /// subjets either when /// - there is no further to go /// - one has found maxjet entries /// - max_dij_so_far <= dcut void ClusterSequence::get_subhist_set(set & subhist, const PseudoJet & jet, double dcut, int maxjet) const { assert(contains(jet)); subhist.clear(); subhist.insert(&(_history[jet.cluster_hist_index()])); // establish the set of jets that are relevant int njet = 1; while (true) { // first find out if we need to probe deeper into jet. // Get history element closest to end of sequence set::iterator highest = subhist.end(); assert (highest != subhist.begin()); highest--; const history_element* elem = *highest; // make sure we haven't got too many jets if (njet == maxjet) break; // make sure it has parents if (elem->parent1 < 0) break; // make sure that we still resolve it at scale dcut if (elem->max_dij_so_far <= dcut) break; // then do so: replace "highest" with its two parents subhist.erase(highest); subhist.insert(&(_history[elem->parent1])); subhist.insert(&(_history[elem->parent2])); njet++; } } //---------------------------------------------------------------------- // work through the object's history until bool ClusterSequence::object_in_jet(const PseudoJet & object, const PseudoJet & jet) const { // make sure the object conceivably belongs to this clustering // sequence assert(contains(object) && contains(jet)); const PseudoJet * this_object = &object; const PseudoJet * childp; while(true) { if (this_object->cluster_hist_index() == jet.cluster_hist_index()) { return true; } else if (has_child(*this_object, childp)) { this_object = childp; } else { return false; } } } //---------------------------------------------------------------------- /// if the jet has parents in the clustering, it returns true /// and sets parent1 and parent2 equal to them. /// /// if it has no parents it returns false and sets parent1 and /// parent2 to zero bool ClusterSequence::has_parents(const PseudoJet & jet, PseudoJet & parent1, PseudoJet & parent2) const { const history_element & hist = _history[jet.cluster_hist_index()]; // make sure we do not run into any unexpected situations -- // i.e. both parents valid, or neither assert ((hist.parent1 >= 0 && hist.parent2 >= 0) || (hist.parent1 < 0 && hist.parent2 < 0)); if (hist.parent1 < 0) { parent1 = PseudoJet(0.0,0.0,0.0,0.0); parent2 = parent1; return false; } else { parent1 = _jets[_history[hist.parent1].jetp_index]; parent2 = _jets[_history[hist.parent2].jetp_index]; // order the parents in decreasing pt if (parent1.perp2() < parent2.perp2()) std::swap(parent1,parent2); return true; } } //---------------------------------------------------------------------- /// if the jet has a child then return true and give the child jet /// otherwise return false and set the child to zero bool ClusterSequence::has_child(const PseudoJet & jet, PseudoJet & child) const { //const history_element & hist = _history[jet.cluster_hist_index()]; // //if (hist.child >= 0) { // child = _jets[_history[hist.child].jetp_index]; // return true; //} else { // child = PseudoJet(0.0,0.0,0.0,0.0); // return false; //} const PseudoJet * childp; bool res = has_child(jet, childp); if (res) { child = *childp; return true; } else { child = PseudoJet(0.0,0.0,0.0,0.0); return false; } } bool ClusterSequence::has_child(const PseudoJet & jet, const PseudoJet * & childp) const { const history_element & hist = _history[jet.cluster_hist_index()]; // check that this jet has a child and that the child corresponds to // a true jet [RETHINK-IF-CHANGE-NUMBERING: what is the right // behaviour if the child is the same jet but made inclusive...?] if (hist.child >= 0 && _history[hist.child].jetp_index >= 0) { childp = &(_jets[_history[hist.child].jetp_index]); return true; } else { childp = NULL; return false; } } //---------------------------------------------------------------------- /// if this jet has a child (and so a partner) return true /// and give the partner, otherwise return false and set the /// partner to zero bool ClusterSequence::has_partner(const PseudoJet & jet, PseudoJet & partner) const { const history_element & hist = _history[jet.cluster_hist_index()]; // make sure we have a child and that the child does not correspond // to a clustering with the beam (or some other invalid quantity) if (hist.child >= 0 && _history[hist.child].parent2 >= 0) { const history_element & child_hist = _history[hist.child]; if (child_hist.parent1 == jet.cluster_hist_index()) { // partner will be child's parent2 -- for iB clustering // parent2 will not be valid partner = _jets[_history[child_hist.parent2].jetp_index]; } else { // partner will be child's parent1 partner = _jets[_history[child_hist.parent1].jetp_index]; } return true; } else { partner = PseudoJet(0.0,0.0,0.0,0.0); return false; } } //---------------------------------------------------------------------- // return a vector of the particles that make up a jet vector ClusterSequence::constituents (const PseudoJet & jet) const { vector subjets; add_constituents(jet, subjets); return subjets; } //---------------------------------------------------------------------- /// output the supplied vector of jets in a format that can be read /// by an appropriate root script; the format is: /// jet-n jet-px jet-py jet-pz jet-E /// particle-n particle-rap particle-phi particle-pt /// particle-n particle-rap particle-phi particle-pt /// ... /// #END /// ... [i.e. above repeated] void ClusterSequence::print_jets_for_root(const std::vector & jets_in, ostream & ostr) const { for (unsigned i = 0; i < jets_in.size(); i++) { ostr << i << " " << jets_in[i].px() << " " << jets_in[i].py() << " " << jets_in[i].pz() << " " << jets_in[i].E() << endl; vector cst = constituents(jets_in[i]); for (unsigned j = 0; j < cst.size() ; j++) { ostr << " " << j << " " << cst[j].rap() << " " << cst[j].phi() << " " << cst[j].perp() << endl; } ostr << "#END" << endl; } } void ClusterSequence::print_jets_for_root(const std::vector & jets_in, const std::string & filename, const std::string & comment ) const { std::ofstream ostr(filename.c_str()); if (comment != "") ostr << "# " << comment << endl; print_jets_for_root(jets_in, ostr); } // Not yet. Perhaps in a future release // //---------------------------------------------------------------------- // // print out all inclusive jets with pt > ptmin // void ClusterSequence::print_jets (const double & ptmin) const{ // vector jets = sorted_by_pt(inclusive_jets(ptmin)); // // for (size_t j = 0; j < jets.size(); j++) { // printf("%5u %7.3f %7.3f %9.3f\n", // j,jets[j].rap(),jets[j].phi(),jets[j].perp()); // } // } //---------------------------------------------------------------------- /// returns a vector of size n_particles() which indicates, for /// each of the initial particles (in the order in which they were /// supplied), which of the supplied jets it belongs to; if it does /// not belong to any of the supplied jets, the index is set to -1; vector ClusterSequence::particle_jet_indices( const vector & jets_in) const { vector indices(n_particles()); // first label all particles as not belonging to any jets for (unsigned ipart = 0; ipart < n_particles(); ipart++) indices[ipart] = -1; // then for each of the jets relabel its consituents as belonging to // that jet for (unsigned ijet = 0; ijet < jets_in.size(); ijet++) { vector jet_constituents(constituents(jets_in[ijet])); for (unsigned ip = 0; ip < jet_constituents.size(); ip++) { // a safe (if slightly redundant) way of getting the particle // index (for initial particles it is actually safe to assume // ipart=iclust). unsigned iclust = jet_constituents[ip].cluster_hist_index(); unsigned ipart = history()[iclust].jetp_index; indices[ipart] = ijet; } } return indices; } //---------------------------------------------------------------------- // recursive routine that adds on constituents of jet to the subjet_vector void ClusterSequence::add_constituents ( const PseudoJet & jet, vector & subjet_vector) const { // find out position in cluster history int i = jet.cluster_hist_index(); int parent1 = _history[i].parent1; int parent2 = _history[i].parent2; if (parent1 == InexistentParent) { // It is an original particle (labelled by its parent having value // InexistentParent), therefore add it on to the subjet vector // Note: we add the initial particle and not simply 'jet' so that // calling add_constituents with a subtracted jet containing // only one particle will work. subjet_vector.push_back(_jets[i]); return; } // add parent 1 add_constituents(_jets[_history[parent1].jetp_index], subjet_vector); // see if parent2 is a real jet; if it is then add its constituents if (parent2 != BeamJet) { add_constituents(_jets[_history[parent2].jetp_index], subjet_vector); } } //---------------------------------------------------------------------- // initialise the history in a standard way void ClusterSequence::_add_step_to_history ( const int & step_number, const int & parent1, const int & parent2, const int & jetp_index, const double & dij) { history_element element; element.parent1 = parent1; element.parent2 = parent2; element.jetp_index = jetp_index; element.child = Invalid; element.dij = dij; element.max_dij_so_far = max(dij,_history[_history.size()-1].max_dij_so_far); _history.push_back(element); int local_step = _history.size()-1; assert(local_step == step_number); assert(parent1 >= 0); _history[parent1].child = local_step; if (parent2 >= 0) {_history[parent2].child = local_step;} // get cross-referencing right from PseudoJets if (jetp_index != Invalid) { assert(jetp_index >= 0); //cout << _jets.size() <<" "<= 0 && parent2 >= 0) { if (lowest_constituent[parent1] > lowest_constituent[parent2]) std::swap(parent1, parent2); } // then actually run through the parents to extract the constituents... if (parent1 >= 0 && !extracted[parent1]) _extract_tree_parents(parent1,extracted,lowest_constituent,unique_tree); if (parent2 >= 0 && !extracted[parent2]) _extract_tree_parents(parent2,extracted,lowest_constituent,unique_tree); // finally declare this position to be accounted for and push it // onto our list. unique_tree.push_back(position); extracted[position] = true; } } //====================================================================== /// carries out the bookkeeping associated with the step of recombining /// jet_i and jet_j (assuming a distance dij) and returns the index /// of the recombined jet, newjet_k. void ClusterSequence::_do_ij_recombination_step( const int & jet_i, const int & jet_j, const double & dij, int & newjet_k) { // Create the new jet by recombining the first two. // // For efficiency reasons, use a ctr that initialises only the // shared pointers, since the rest of the info will anyway be dealt // with by the recombiner. PseudoJet newjet(false); _jet_def.recombiner()->recombine(_jets[jet_i], _jets[jet_j], newjet); _jets.push_back(newjet); // original version... //_jets.push_back(_jets[jet_i] + _jets[jet_j]); // get its index newjet_k = _jets.size()-1; // get history index int newstep_k = _history.size(); // and provide jet with the info _jets[newjet_k].set_cluster_hist_index(newstep_k); // finally sort out the history int hist_i = _jets[jet_i].cluster_hist_index(); int hist_j = _jets[jet_j].cluster_hist_index(); _add_step_to_history(newstep_k, min(hist_i, hist_j), max(hist_i,hist_j), newjet_k, dij); } //====================================================================== /// carries out the bookkeeping associated with the step of recombining /// jet_i with the beam void ClusterSequence::_do_iB_recombination_step( const int & jet_i, const double & diB) { // get history index int newstep_k = _history.size(); // recombine the jet with the beam _add_step_to_history(newstep_k,_jets[jet_i].cluster_hist_index(),BeamJet, Invalid, diB); } // make sure the static member _changed_strategy_warning is defined. LimitedWarning ClusterSequence::_changed_strategy_warning; //---------------------------------------------------------------------- void ClusterSequence::_set_structure_shared_ptr(PseudoJet & j) { j.set_structure_shared_ptr(_structure_shared_ptr); // record the use count of the structure shared point to help // in case we want to ask the CS to handle its own memory _update_structure_use_count(); } //---------------------------------------------------------------------- void ClusterSequence::_update_structure_use_count() { // record the use count of the structure shared point to help // in case we want to ask the CS to handle its own memory _structure_use_count_after_construction = _structure_shared_ptr.use_count(); } //---------------------------------------------------------------------- /// by calling this routine you tell the ClusterSequence to delete /// itself when all the Pseudojets associated with it have gone out /// of scope. void ClusterSequence::delete_self_when_unused() { // the trick we use to handle this is to modify the use count; // that way the structure will be deleted when there are no external // objects left associated the CS and the structure's destructor will then // look after deleting the cluster sequence // first make sure that there is at least one other object // associated with the CS int new_count = _structure_shared_ptr.use_count() - _structure_use_count_after_construction; if (new_count <= 0) { throw Error("delete_self_when_unused may only be called if at least one object outside the CS (e.g. a jet) is already associated with the CS"); } _structure_shared_ptr.set_count(new_count); _deletes_self_when_unused = true; } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/PseudoJetStructureBase.cc0000644000175000017500000002151612127746207020763 0ustar sunsun//STARTHEADER // $Id: PseudoJetStructureBase.cc 3071 2013-04-01 12:52:46Z cacciari $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/PseudoJetStructureBase.hh" #include "fastjet/Error.hh" #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequence.hh" #ifndef __FJCORE__ #include "fastjet/ClusterSequenceAreaBase.hh" #endif // __FJCORE__ using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // PseudoJetStructureBase implementation // // Contains any information related to the clustering that should be // directly accessible to PseudoJet. // // By default, this class implements basic access to the // ClusterSequence related to a PseudoJet (like its constituents or // its area). But it can be overloaded in order e.g. to give access // to the jet substructure. // // Note that it accesses the underlying ClusterSequence through a // ClusterSequenceWrapper object so it can check when the former goes // out of scope. // //------------------------------------------------------------- // Direct access to the associated ClusterSequence object. // // Get access to the associated ClusterSequence (if any) //------------------------------------------------------------- // get a (const) pointer to the parent ClusterSequence (NULL if // inexistent) const ClusterSequence* PseudoJetStructureBase::associated_cluster_sequence() const{ return NULL; } // if the jet has a valid associated cluster sequence then return a // pointer to it; otherwise throw an error // // by default, an Error is thrown const ClusterSequence * PseudoJetStructureBase::validated_cs() const{ throw Error("This PseudoJet structure is not associated with a valid ClusterSequence"); } #ifndef __FJCORE__ // if the jet has valid area information then return a pointer to // the associated ClusterSequenceAreaBase object; otherwise throw an error // // by default, an Error is thrown const ClusterSequenceAreaBase * PseudoJetStructureBase::validated_csab() const{ throw Error("This PseudoJet structure is not associated with a valid cluster sequence with area"); } #endif //------------------------------------------------------------- // Methods for access to information about jet structure // // These allow access to jet constituents, and other jet // subtructure information. They only work if the jet is associated // with a ClusterSequence. //------------------------------------------------------------- // check if it has been recombined with another PseudoJet in which // case, return its partner through the argument. Otherwise, // 'partner' is set to 0. // // by default, an Error is thrown bool PseudoJetStructureBase::has_partner(const PseudoJet & /*reference */, PseudoJet & /*partner*/) const{ throw Error("This PseudoJet structure has no implementation for has_partner"); } // check if it has been recombined with another PseudoJet in which // case, return its child through the argument. Otherwise, 'child' // is set to 0. // // by default, an Error is thrown bool PseudoJetStructureBase::has_child(const PseudoJet & /*reference*/, PseudoJet & /*child*/) const{ throw Error("This PseudoJet structure has no implementation for has_child"); } // check if it is the product of a recombination, in which case // return the 2 parents through the 'parent1' and 'parent2' // arguments. Otherwise, set these to 0. // // by default, an Error is thrown bool PseudoJetStructureBase::has_parents(const PseudoJet & /*reference*/, PseudoJet &/*parent1*/, PseudoJet &/*parent2*/) const{ throw Error("This PseudoJet structure has no implementation for has_parents"); } // check if the reference PseudoJet is contained in the second one // passed as argument. // // by default, an Error is thrown bool PseudoJetStructureBase::object_in_jet(const PseudoJet & /*reference*/, const PseudoJet & /*jet*/) const{ throw Error("This PseudoJet structure has no implementation for is_inside"); } // retrieve the constituents. // // by default, an Error is thrown vector PseudoJetStructureBase::constituents(const PseudoJet &/*reference*/) const{ throw Error("This PseudoJet structure has no implementation for constituents"); } // return a vector of all subjets of the current jet (in the sense // of the exclusive algorithm) that would be obtained when running // the algorithm with the given dcut. // // Time taken is O(m ln m), where m is the number of subjets that // are found. If m gets to be of order of the total number of // constituents in the jet, this could be substantially slower than // just getting that list of constituents. // // by default, an Error is thrown vector PseudoJetStructureBase::exclusive_subjets (const PseudoJet & /*reference*/, const double & /*dcut*/) const{ throw Error("This PseudoJet structure has no implementation for exclusive_subjets"); } // return the size of exclusive_subjets(...); still n ln n with same // coefficient, but marginally more efficient than manually taking // exclusive_subjets.size() // // by default, an Error is thrown int PseudoJetStructureBase::n_exclusive_subjets(const PseudoJet & /*reference*/, const double & /*dcut*/) const{ throw Error("This PseudoJet structure has no implementation for n_exclusive_subjets"); } // return the list of subjets obtained by unclustering the supplied // jet down to n subjets (or all constituents if there are fewer // than n). // // by default, an Error is thrown vector PseudoJetStructureBase::exclusive_subjets_up_to (const PseudoJet & /*reference*/, int /*nsub*/) const{ throw Error("This PseudoJet structure has no implementation for exclusive_subjets"); } // return the dij that was present in the merging nsub+1 -> nsub // subjets inside this jet. // // by default, an Error is thrown double PseudoJetStructureBase::exclusive_subdmerge(const PseudoJet & /*reference*/, int /*nsub*/) const{ throw Error("This PseudoJet structure has no implementation for exclusive_submerge"); } // return the maximum dij that occurred in the whole event at the // stage that the nsub+1 -> nsub merge of subjets occurred inside // this jet. // // by default, an Error is thrown double PseudoJetStructureBase::exclusive_subdmerge_max(const PseudoJet & /*reference*/, int /*nsub*/) const{ throw Error("This PseudoJet structure has no implementation for exclusive_submerge_max"); } // retrieve the pieces building the jet. // // by default, an Error is thrown std::vector PseudoJetStructureBase::pieces(const PseudoJet & /*reference*/) const{ throw Error("This PseudoJet structure has no implementation for pieces"); } // the following ones require a computation of the area in the // parent ClusterSequence (See ClusterSequenceAreaBase for details) //------------------------------------------------------------------ #ifndef __FJCORE__ // return the jet (scalar) area. // // by default, an Error is thrown double PseudoJetStructureBase::area(const PseudoJet & /*reference*/) const{ throw Error("This PseudoJet structure has no implementation for area"); } // return the error (uncertainty) associated with the determination // of the area of this jet. // // by default, an Error is thrown double PseudoJetStructureBase::area_error(const PseudoJet & /*reference*/) const{ throw Error("This PseudoJet structure has no implementation for area_error"); } // return the jet 4-vector area. // // by default, an Error is thrown PseudoJet PseudoJetStructureBase::area_4vector(const PseudoJet & /*reference*/) const{ throw Error("This PseudoJet structure has no implementation for area_4vector"); } // true if this jet is made exclusively of ghosts. // // by default, an Error is thrown bool PseudoJetStructureBase::is_pure_ghost(const PseudoJet & /*reference*/) const{ throw Error("This PseudoJet structure has no implementation for is_pure_ghost"); } #endif // __FJCORE__ FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/Dnn2piCylinder.cc0000644000175000017500000002276211766120140017163 0ustar sunsun//STARTHEADER // $Id: Dnn2piCylinder.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef DROP_CGAL // in case we do not have the code for CGAL #include #include "fastjet/internal/Dnn2piCylinder.hh" using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- /// initialiser... Dnn2piCylinder::Dnn2piCylinder( const vector & input_points, const bool & ignore_nearest_is_mirror, const bool & verbose) { _verbose = verbose; _ignore_nearest_is_mirror = ignore_nearest_is_mirror; vector plane_points; vector plane_point_indices(input_points.size()); //plane_points.reserve(2*input_points.size()); for (unsigned int i=0; i < input_points.size(); i++) { _RegisterCylinderPoint(input_points[i], plane_points); plane_point_indices[i] = i; } if (_verbose) cout << "============== Preparing _DNN" << endl; _DNN = new DnnPlane(plane_points, verbose); vector updated_point_indices; // we'll not use information from this _CreateNecessaryMirrorPoints(plane_point_indices,updated_point_indices); } //---------------------------------------------------------------------- /// Actions here are similar to those in the /// Dnn3piCylinder::_RegisterCylinderPoint case, however here we do /// NOT create the mirror point -- instead we initialise the structure /// as if there were no need for the mirror point. /// /// ADDITIONALLY push the cylinder_point onto the vector plane_points. void Dnn2piCylinder::_RegisterCylinderPoint (const EtaPhi & cylinder_point, vector & plane_points) { double phi = cylinder_point.second; assert(phi >= 0.0 && phi < 2*pi); // do main point MirrorVertexInfo mvi; mvi.main_index = _cylinder_index_of_plane_vertex.size(); _cylinder_index_of_plane_vertex.push_back(_mirror_info.size()); plane_points.push_back(cylinder_point); mvi.mirror_index = INEXISTENT_VERTEX; // _mirror_info.push_back(mvi); } //---------------------------------------------------------------------- /// For each plane point specified in the vector plane_indices, /// establish whether there is a need to create a mirror point /// according to the following criteria: /// /// . phi < pi /// . mirror does not already exist /// . phi < NearestNeighbourDistance /// (if this is not true then there is no way that its mirror point /// could have a nearer neighbour). /// /// If conditions all hold, then create the mirror point, insert it /// into the _DNN structure, adjusting any nearest neighbours, and /// return the list of plane points whose nearest neighbours have /// changed (this will include the new neighbours that have just been /// added) void Dnn2piCylinder::_CreateNecessaryMirrorPoints( const vector & plane_indices, vector & updated_plane_points) { vector new_plane_points; for (size_t i = 0; i < plane_indices.size(); i++) { int ip = plane_indices[i]; // plane index EtaPhi position = _DNN->etaphi(ip); double phi = position.second; //BAD // require phi < pi //BAD if (phi >= pi) {continue;} // require absence of mirror int ic = _cylinder_index_of_plane_vertex[ip]; if (_mirror_info[ic].mirror_index != INEXISTENT_VERTEX) {continue;} //printf("%3d %3d %10.5f %10.5f %3d\n",ic, ip, phi, // _DNN->NearestNeighbourDistance(ip),_DNN->NearestNeighbourIndex(ip)); // check that we are sufficiently close to the border -- // i.e. closer than nearest neighbour distance. But RECALL: // nearest neighbourDistance actually returns a squared distance // (this was really stupid on our part -- caused considerable loss // of time ... ) double nndist = _DNN->NearestNeighbourDistance(ip); if (phi*phi >= nndist && (twopi-phi)*(twopi-phi) >= nndist) {continue;} // now proceed to prepare the point for addition new_plane_points.push_back(_remap_phi(position)); _mirror_info[ic].mirror_index = _cylinder_index_of_plane_vertex.size(); _cylinder_index_of_plane_vertex.push_back(ic); } vector indices_to_remove; // empty vector indices_added; // will be filled as result of call _DNN->RemoveAndAddPoints(indices_to_remove,new_plane_points,indices_added, updated_plane_points); // occasionally, addition of points might cause a change in the // nearest neighbour of a point in the 0--pi range? (But should be // impossible -- we add points beyond 2pi, so they can only be // nearest neighbours of points in the range pi--2pi; there is one // exception -- the nearest neighbour of one's self -- but in that // case this will already have been discovered, so there should be // nothing left to do). // To be on the safe side, check to see if we have updated points // with phiphi(ip); //NOTNEEDED int ic = _cylinder_index_of_plane_vertex[ip]; //NOTNEEDED assert (!(phi < pi && _mirror_info[ic].mirror_index == INEXISTENT_VERTEX)); //NOTNEEDED } // alternative recursive code //vector extra_updated_plane_points; //_CreateNecessaryMirrorPoints(updated_plane_points,extra_updated_plane_points) //updated_plane_points.push_back(extra_updated_plane_points); } //---------------------------------------------------------------------- /// insertion and removal of points void Dnn2piCylinder::RemoveAndAddPoints(const vector & indices_to_remove, const vector & points_to_add, vector & indices_added, vector & indices_of_updated_neighbours) { // translate from "cylinder" indices of points to remove to the // plane indices of points to remove, bearing in mind that sometimes // there are multple plane points to remove. vector plane_indices_to_remove; for (unsigned int i=0; i < indices_to_remove.size(); i++) { MirrorVertexInfo * mvi; mvi = & _mirror_info[indices_to_remove[i]]; plane_indices_to_remove.push_back(mvi->main_index); if (mvi->mirror_index != INEXISTENT_VERTEX) { plane_indices_to_remove.push_back(mvi->mirror_index); } } // given "cylinder" points to add get hold of the list of // plane-points to add. vector plane_points_to_add; indices_added.clear(); for (unsigned int i=0; i < points_to_add.size(); i++) { indices_added.push_back(_mirror_info.size()); _RegisterCylinderPoint(points_to_add[i], plane_points_to_add); } // now get the hard work done (note that we need to supply the // plane_indices_added vector but that we will not actually check // its contents in any way -- the indices_added that is actually // returned has been calculated above). vector updated_plane_neighbours, plane_indices_added; _DNN->RemoveAndAddPoints(plane_indices_to_remove, plane_points_to_add, plane_indices_added, updated_plane_neighbours); vector extra_updated_plane_neighbours; _CreateNecessaryMirrorPoints(updated_plane_neighbours, extra_updated_plane_neighbours); // extract, from the updated_plane_neighbours, and // extra_updated_plane_neighbours, the set of cylinder neighbours // that have changed set index_set; unsigned int i; for (i=0; i < updated_plane_neighbours.size(); i++) { index_set.insert( _cylinder_index_of_plane_vertex[updated_plane_neighbours[i]]);} for (i=0; i < extra_updated_plane_neighbours.size(); i++) { index_set.insert( _cylinder_index_of_plane_vertex[extra_updated_plane_neighbours[i]]);} // decant the set into the vector that needs to be returned indices_of_updated_neighbours.clear(); for (set::iterator iter = index_set.begin(); iter != index_set.end(); iter++) { indices_of_updated_neighbours.push_back(*iter); } } FASTJET_END_NAMESPACE #endif // DROP_CGAL fastjet-3.0.6+dfsg.orig/src/JetDefinition.cc0000644000175000017500000003255011766120140017066 0ustar sunsun//STARTHEADER // $Id: JetDefinition.cc 2712 2011-11-16 22:38:44Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/JetDefinition.hh" #include "fastjet/Error.hh" #include "fastjet/CompositeJetStructure.hh" #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; const double JetDefinition::max_allowable_R = 1000.0; //---------------------------------------------------------------------- // [NB: implementation was getting complex, so in 2.4-devel moved it // from .hh to .cc] JetDefinition::JetDefinition(JetAlgorithm jet_algorithm_in, double R_in, Strategy strategy_in, RecombinationScheme recomb_scheme_in, int nparameters) : _jet_algorithm(jet_algorithm_in), _Rparam(R_in), _strategy(strategy_in) { // set R parameter or ensure its sensibleness, as appropriate if (_jet_algorithm == ee_kt_algorithm) { _Rparam = 4.0; // introduce a fictional R that ensures that // our clustering sequence will not produce // "beam" jets except when only a single particle remains. // Any value > 2 would have done here } else { // We maintain some limit on R because particles with pt=0, m=0 // can have rapidities O(100000) and one doesn't want the // clustering to start including them as if their rapidities were // physical. if (R_in > max_allowable_R) { ostringstream oss; oss << "Requested R = " << R_in << " for jet definition is larger than max_allowable_R = " << max_allowable_R; throw Error(oss.str()); } } // cross-check the number of parameters that were declared in setting up the // algorithm (passed internally from the public constructors) switch (jet_algorithm_in) { case ee_kt_algorithm: if (nparameters != 0) { ostringstream oss; oss << "ee_kt_algorithm should be constructed with 0 parameters but was called with " << nparameters << " parameter(s)\n"; throw Error(oss.str()); } break; case genkt_algorithm: case ee_genkt_algorithm: if (nparameters != 2) { ostringstream oss; oss << "(ee_)genkt_algorithm should be constructed with 2 parameters but was called with " << nparameters << " parameter(s)\n"; throw Error(oss.str()); } break; default: if (nparameters != 1) { ostringstream oss; oss << "The jet algorithm you requested (" << jet_algorithm_in << ") should be constructed with 1 parameter but was called with " << nparameters << " parameter(s)\n"; throw Error(oss.str()); } } // make sure the strategy requested is sensible assert (_strategy != plugin_strategy); _plugin = NULL; set_recombination_scheme(recomb_scheme_in); set_extra_param(0.0); // make sure it's defined } //---------------------------------------------------------------------- string JetDefinition::description() const { ostringstream name; if (jet_algorithm() == plugin_algorithm) { return plugin()->description(); } else if (jet_algorithm() == kt_algorithm) { name << "Longitudinally invariant kt algorithm with R = " << R(); name << " and " << recombiner()->description(); } else if (jet_algorithm() == cambridge_algorithm) { name << "Longitudinally invariant Cambridge/Aachen algorithm with R = " << R() ; name << " and " << recombiner()->description(); } else if (jet_algorithm() == antikt_algorithm) { name << "Longitudinally invariant anti-kt algorithm with R = " << R() ; name << " and " << recombiner()->description(); } else if (jet_algorithm() == genkt_algorithm) { name << "Longitudinally invariant generalised kt algorithm with R = " << R() << ", p = " << extra_param(); name << " and " << recombiner()->description(); } else if (jet_algorithm() == cambridge_for_passive_algorithm) { name << "Longitudinally invariant Cambridge/Aachen algorithm with R = " << R() << "and a special hack whereby particles with kt < " << extra_param() << "are treated as passive ghosts"; } else if (jet_algorithm() == ee_kt_algorithm) { name << "e+e- kt (Durham) algorithm (NB: no R)"; name << " with " << recombiner()->description(); } else if (jet_algorithm() == ee_genkt_algorithm) { name << "e+e- generalised kt algorithm with R = " << R() << ", p = " << extra_param(); name << " and " << recombiner()->description(); } else if (jet_algorithm() == undefined_jet_algorithm) { name << "uninitialised JetDefinition (jet_algorithm=undefined_jet_algorithm)" ; } else { throw Error("JetDefinition::description(): unrecognized jet_algorithm"); } return name.str(); } void JetDefinition::set_recombination_scheme( RecombinationScheme recomb_scheme) { _default_recombiner = JetDefinition::DefaultRecombiner(recomb_scheme); // do not forget to delete the existing recombiner if needed if (_recombiner_shared()) _recombiner_shared.reset(); _recombiner = 0; } // returns true if the current jet definitions shares the same // recombiner as teh one passed as an argument bool JetDefinition::has_same_recombiner(const JetDefinition &other_jd) const{ // first make sure that they have the same recombination scheme const RecombinationScheme & scheme = recombination_scheme(); if (other_jd.recombination_scheme() != scheme) return false; // if the scheme is "external", also check that they ahve the same // recombiner return (scheme != external_scheme) || (recombiner() == other_jd.recombiner()); } /// allows to let the JetDefinition handle the deletion of the /// recombiner when it is no longer used void JetDefinition::delete_recombiner_when_unused(){ if (_recombiner == 0){ throw Error("tried to call JetDefinition::delete_recombiner_when_unused() for a JetDefinition without a user-defined recombination scheme"); } _recombiner_shared.reset(_recombiner); } /// allows to let the JetDefinition handle the deletion of the /// plugin when it is no longer used void JetDefinition::delete_plugin_when_unused(){ if (_plugin == 0){ throw Error("tried to call JetDefinition::delete_plugin_when_unused() for a JetDefinition without a plugin"); } _plugin_shared.reset(_plugin); } string JetDefinition::DefaultRecombiner::description() const { switch(_recomb_scheme) { case E_scheme: return "E scheme recombination"; case pt_scheme: return "pt scheme recombination"; case pt2_scheme: return "pt2 scheme recombination"; case Et_scheme: return "Et scheme recombination"; case Et2_scheme: return "Et2 scheme recombination"; case BIpt_scheme: return "boost-invariant pt scheme recombination"; case BIpt2_scheme: return "boost-invariant pt2 scheme recombination"; default: ostringstream err; err << "DefaultRecombiner: unrecognized recombination scheme " << _recomb_scheme; throw Error(err.str()); } } void JetDefinition::DefaultRecombiner::recombine( const PseudoJet & pa, const PseudoJet & pb, PseudoJet & pab) const { double weighta, weightb; switch(_recomb_scheme) { case E_scheme: // a call to reset turns out to be somewhat more efficient // than a sum and assignment //pab = pa + pb; pab.reset(pa.px()+pb.px(), pa.py()+pb.py(), pa.pz()+pb.pz(), pa.E ()+pb.E ()); return; // all remaining schemes are massless recombinations and locally // we just set weights, while the hard work is done below... case pt_scheme: case Et_scheme: case BIpt_scheme: weighta = pa.perp(); weightb = pb.perp(); break; case pt2_scheme: case Et2_scheme: case BIpt2_scheme: weighta = pa.perp2(); weightb = pb.perp2(); break; default: ostringstream err; err << "DefaultRecombiner: unrecognized recombination scheme " << _recomb_scheme; throw Error(err.str()); } double perp_ab = pa.perp() + pb.perp(); if (perp_ab != 0.0) { // weights also non-zero... double y_ab = (weighta * pa.rap() + weightb * pb.rap())/(weighta+weightb); // take care with periodicity in phi... double phi_a = pa.phi(), phi_b = pb.phi(); if (phi_a - phi_b > pi) phi_b += twopi; if (phi_a - phi_b < -pi) phi_b -= twopi; double phi_ab = (weighta * phi_a + weightb * phi_b)/(weighta+weightb); // this is much more efficient... pab.reset_PtYPhiM(perp_ab,y_ab,phi_ab); // pab = PseudoJet(perp_ab*cos(phi_ab), // perp_ab*sin(phi_ab), // perp_ab*sinh(y_ab), // perp_ab*cosh(y_ab)); } else { // weights are zero //pab = PseudoJet(0.0,0.0,0.0,0.0); pab.reset(0.0, 0.0, 0.0, 0.0); } } void JetDefinition::DefaultRecombiner::preprocess(PseudoJet & p) const { switch(_recomb_scheme) { case E_scheme: case BIpt_scheme: case BIpt2_scheme: break; case pt_scheme: case pt2_scheme: { // these schemes (as in the ktjet implementation) need massless // initial 4-vectors with essentially E=|p|. double newE = sqrt(p.perp2()+p.pz()*p.pz()); p.reset_momentum(p.px(), p.py(), p.pz(), newE); // FJ2.x version // int user_index = p.user_index(); // p = PseudoJet(p.px(), p.py(), p.pz(), newE); // p.set_user_index(user_index); } break; case Et_scheme: case Et2_scheme: { // these schemes (as in the ktjet implementation) need massless // initial 4-vectors with essentially E=|p|. double rescale = p.E()/sqrt(p.perp2()+p.pz()*p.pz()); p.reset_momentum(rescale*p.px(), rescale*p.py(), rescale*p.pz(), p.E()); // FJ2.x version // int user_index = p.user_index(); // p = PseudoJet(rescale*p.px(), rescale*p.py(), rescale*p.pz(), p.E()); // p.set_user_index(user_index); } break; default: ostringstream err; err << "DefaultRecombiner: unrecognized recombination scheme " << _recomb_scheme; throw Error(err.str()); } } void JetDefinition::Plugin::set_ghost_separation_scale(double /*scale*/) const { throw Error("set_ghost_separation_scale not supported"); } //------------------------------------------------------------------------------- // helper functions to build a jet made of pieces // // This is the extended version with support for a user-defined // recombination-scheme // ------------------------------------------------------------------------------- // build a "CompositeJet" from the vector of its pieces // // the user passes the reciombination scheme used to "sum" the pieces. PseudoJet join(const vector & pieces, const JetDefinition::Recombiner & recombiner){ // compute the total momentum //-------------------------------------------------- PseudoJet result; // automatically initialised to 0 if (pieces.size()>0){ result = pieces[0]; for (unsigned int i=1; i(cj_struct)); return result; } // build a "CompositeJet" from a single PseudoJet PseudoJet join(const PseudoJet & j1, const JetDefinition::Recombiner & recombiner){ return join(vector(1,j1), recombiner); } // build a "CompositeJet" from two PseudoJet PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const JetDefinition::Recombiner & recombiner){ vector pieces; pieces.push_back(j1); pieces.push_back(j2); return join(pieces, recombiner); } // build a "CompositeJet" from 3 PseudoJet PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const PseudoJet & j3, const JetDefinition::Recombiner & recombiner){ vector pieces; pieces.push_back(j1); pieces.push_back(j2); pieces.push_back(j3); return join(pieces, recombiner); } // build a "CompositeJet" from 4 PseudoJet PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const PseudoJet & j3, const PseudoJet & j4, const JetDefinition::Recombiner & recombiner){ vector pieces; pieces.push_back(j1); pieces.push_back(j2); pieces.push_back(j3); pieces.push_back(j4); return join(pieces, recombiner); } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/Selector.cc0000644000175000017500000013610012127746207016121 0ustar sunsun//STARTHEADER // $Id: Selector.cc 3071 2013-04-01 12:52:46Z cacciari $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include "fastjet/Selector.hh" #ifndef __FJCORE__ #include "fastjet/GhostedAreaSpec.hh" // for area support #endif // __FJCORE__ using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // implementations of some of the more complex bits of Selector //---------------------------------------------------------------------- // implementation of the operator() acting on a vector of jets std::vector Selector::operator()(const std::vector & jets) const { std::vector result; const SelectorWorker * worker_local = validated_worker(); if (worker_local->applies_jet_by_jet()) { //if (false) { // for workers that apply jet by jet, this is more efficient for (std::vector::const_iterator jet = jets.begin(); jet != jets.end(); jet++) { if (worker_local->pass(*jet)) result.push_back(*jet); } } else { // for workers that can only be applied to entire vectors, // go through the following std::vector jetptrs(jets.size()); for (unsigned i = 0; i < jets.size(); i++) { jetptrs[i] = & jets[i]; } worker_local->terminator(jetptrs); for (unsigned i = 0; i < jetptrs.size(); i++) { if (jetptrs[i]) result.push_back(jets[i]); } } return result; } //---------------------------------------------------------------------- // count the number of jets that pass the cuts unsigned int Selector::count(const std::vector & jets) const { unsigned n = 0; const SelectorWorker * worker_local = validated_worker(); // separate strategies according to whether the worker applies jet by jet if (worker_local->applies_jet_by_jet()) { for (unsigned i = 0; i < jets.size(); i++) { if (worker_local->pass(jets[i])) n++; } } else { std::vector jetptrs(jets.size()); for (unsigned i = 0; i < jets.size(); i++) { jetptrs[i] = & jets[i]; } worker_local->terminator(jetptrs); for (unsigned i = 0; i < jetptrs.size(); i++) { if (jetptrs[i]) n++; } } return n; } //---------------------------------------------------------------------- // sift the input jets into two vectors -- those that pass the selector // and those that do not void Selector::sift(const std::vector & jets, std::vector & jets_that_pass, std::vector & jets_that_fail ) const { const SelectorWorker * worker_local = validated_worker(); jets_that_pass.clear(); jets_that_fail.clear(); // separate strategies according to whether the worker applies jet by jet if (worker_local->applies_jet_by_jet()) { for (unsigned i = 0; i < jets.size(); i++) { if (worker_local->pass(jets[i])) { jets_that_pass.push_back(jets[i]); } else { jets_that_fail.push_back(jets[i]); } } } else { std::vector jetptrs(jets.size()); for (unsigned i = 0; i < jets.size(); i++) { jetptrs[i] = & jets[i]; } worker_local->terminator(jetptrs); for (unsigned i = 0; i < jetptrs.size(); i++) { if (jetptrs[i]) { jets_that_pass.push_back(jets[i]); } else { jets_that_fail.push_back(jets[i]); } } } } #ifndef __FJCORE__ // area using default ghost area double Selector::area() const{ return area(gas::def_ghost_area); } // implementation of the Selector's area function double Selector::area(double ghost_area) const{ if (! is_geometric()) throw InvalidArea(); // has area will already check we've got a valid worker if (_worker->has_known_area()) return _worker->known_area(); // generate a set of "ghosts" double rapmin, rapmax; get_rapidity_extent(rapmin, rapmax); GhostedAreaSpec ghost_spec(rapmin, rapmax, 1, ghost_area); std::vector ghosts; ghost_spec.add_ghosts(ghosts); // check what passes the selection return ghost_spec.ghost_area() * ((*this)(ghosts)).size(); } #endif // __FJCORE__ //---------------------------------------------------------------------- // implementations of some of the more complex bits of SelectorWorker //---------------------------------------------------------------------- // check if it has a finite area bool SelectorWorker::has_finite_area() const { if (! is_geometric()) return false; double rapmin, rapmax; get_rapidity_extent(rapmin, rapmax); return (rapmax != std::numeric_limits::infinity()) && (-rapmin != std::numeric_limits::infinity()); } //---------------------------------------------------------------------- // very basic set of selectors (at the moment just the identity!) //---------------------------------------------------------------------- //---------------------------------------------------------------------- /// helper for selecting the n hardest jets class SW_Identity : public SelectorWorker { public: /// ctor with specification of the number of objects to keep SW_Identity(){} /// just let everything pass virtual bool pass(const PseudoJet &) const { return true; } /// For each jet that does not pass the cuts, this routine sets the /// pointer to 0. virtual void terminator(vector &) const { // everything passes, hence nothing to nullify return; } /// returns a description of the worker virtual string description() const { return "Identity";} /// strictly speaking, this is geometric virtual bool is_geometric() const { return true;} }; // returns an "identity" selector that lets everything pass Selector SelectorIdentity() { return Selector(new SW_Identity); } //---------------------------------------------------------------------- // selector and workers for operators //---------------------------------------------------------------------- //---------------------------------------------------------------------- /// helper for combining selectors with a logical not class SW_Not : public SelectorWorker { public: /// ctor SW_Not(const Selector & s) : _s(s) {} /// return a copy of the current object virtual SelectorWorker* copy(){ return new SW_Not(*this);} /// returns true if a given object passes the selection criterium /// this has to be overloaded by derived workers virtual bool pass(const PseudoJet & jet) const { // make sure that the "pass" can be applied on both selectors if (!applies_jet_by_jet()) throw Error("Cannot apply this selector worker to an individual jet"); return ! _s.pass(jet); } /// returns true if this can be applied jet by jet virtual bool applies_jet_by_jet() const {return _s.applies_jet_by_jet();} /// select the jets in the list that pass both selectors virtual void terminator(vector & jets) const { // if we can apply the selector jet-by-jet, call the base selector // that does exactly that if (applies_jet_by_jet()){ SelectorWorker::terminator(jets); return; } // check the effect of the selector we want to negate vector s_jets = jets; _s.worker()->terminator(s_jets); // now apply the negation: all the jets that pass the base // selector (i.e. are not NULL) have to be set to NULL for (unsigned int i=0; i & jets) const { // if we can apply the selector jet-by-jet, call the base selector // that does exactly that if (applies_jet_by_jet()){ SelectorWorker::terminator(jets); return; } // check the effect of the first selector vector s1_jets = jets; _s1.worker()->terminator(s1_jets); // apply the second _s2.worker()->terminator(jets); // terminate the jets that wiuld be terminated by _s1 for (unsigned int i=0; i & jets) const { // if we can apply the selector jet-by-jet, call the base selector // that does exactly that if (applies_jet_by_jet()){ SelectorWorker::terminator(jets); return; } // check the effect of the first selector vector s1_jets = jets; _s1.worker()->terminator(s1_jets); // apply the second _s2.worker()->terminator(jets); // resurrect any jet that has been terminated by the second one // and not by the first one for (unsigned int i=0; i & jets) const { // if we can apply the selector jet-by-jet, call the base selector // that does exactly that if (applies_jet_by_jet()){ SelectorWorker::terminator(jets); return; } // first apply _s2 _s2.worker()->terminator(jets); // then apply _s1 _s1.worker()->terminator(jets); } /// returns a description of the worker virtual string description() const { ostringstream ostr; ostr << "(" << _s1.description() << " * " << _s2.description() << ")"; return ostr.str(); } }; // logical and between two selectors Selector operator*(const Selector & s1, const Selector & s2) { return Selector(new SW_Mult(s1,s2)); } //---------------------------------------------------------------------- // selector and workers for kinematic cuts //---------------------------------------------------------------------- //---------------------------------------------------------------------- // a series of basic classes that allow easy implementations of // min, max and ranges on a quantity-to-be-defined // generic holder for a quantity class QuantityBase{ public: QuantityBase(double q) : _q(q){} virtual ~QuantityBase(){} virtual double operator()(const PseudoJet & jet ) const =0; virtual string description() const =0; virtual bool is_geometric() const { return false;} virtual double comparison_value() const {return _q;} virtual double description_value() const {return comparison_value();} protected: double _q; }; // generic holder for a squared quantity class QuantitySquareBase : public QuantityBase{ public: QuantitySquareBase(double sqrtq) : QuantityBase(sqrtq*sqrtq), _sqrtq(sqrtq){} virtual double description_value() const {return _sqrtq;} protected: double _sqrtq; }; // generic_quantity >= minimum template class SW_QuantityMin : public SelectorWorker{ public: /// detfault ctor (initialises the pt cut) SW_QuantityMin(double qmin) : _qmin(qmin) {} /// returns true is the given object passes the selection pt cut virtual bool pass(const PseudoJet & jet) const {return _qmin(jet) >= _qmin.comparison_value();} /// returns a description of the worker virtual string description() const { ostringstream ostr; ostr << _qmin.description() << " >= " << _qmin.description_value(); return ostr.str(); } virtual bool is_geometric() const { return _qmin.is_geometric();} protected: QuantityType _qmin; ///< the cut }; // generic_quantity <= maximum template class SW_QuantityMax : public SelectorWorker { public: /// detfault ctor (initialises the pt cut) SW_QuantityMax(double qmax) : _qmax(qmax) {} /// returns true is the given object passes the selection pt cut virtual bool pass(const PseudoJet & jet) const {return _qmax(jet) <= _qmax.comparison_value();} /// returns a description of the worker virtual string description() const { ostringstream ostr; ostr << _qmax.description() << " <= " << _qmax.description_value(); return ostr.str(); } virtual bool is_geometric() const { return _qmax.is_geometric();} protected: QuantityType _qmax; ///< the cut }; // generic quantity in [minimum:maximum] template class SW_QuantityRange : public SelectorWorker { public: /// detfault ctor (initialises the pt cut) SW_QuantityRange(double qmin, double qmax) : _qmin(qmin), _qmax(qmax) {} /// returns true is the given object passes the selection pt cut virtual bool pass(const PseudoJet & jet) const { double q = _qmin(jet); // we could identically use _qmax return (q >= _qmin.comparison_value()) && (q <= _qmax.comparison_value()); } /// returns a description of the worker virtual string description() const { ostringstream ostr; ostr << _qmin.description_value() << " <= " << _qmin.description() << " <= " << _qmax.description_value(); return ostr.str(); } virtual bool is_geometric() const { return _qmin.is_geometric();} protected: QuantityType _qmin; // the lower cut QuantityType _qmax; // the upper cut }; //---------------------------------------------------------------------- /// helper class for selecting on pt class QuantityPt2 : public QuantitySquareBase{ public: QuantityPt2(double pt) : QuantitySquareBase(pt){} virtual double operator()(const PseudoJet & jet ) const { return jet.perp2();} virtual string description() const {return "pt";} }; // returns a selector for a minimum pt Selector SelectorPtMin(double ptmin) { return Selector(new SW_QuantityMin(ptmin)); } // returns a selector for a maximum pt Selector SelectorPtMax(double ptmax) { return Selector(new SW_QuantityMax(ptmax)); } // returns a selector for a pt range Selector SelectorPtRange(double ptmin, double ptmax) { return Selector(new SW_QuantityRange(ptmin, ptmax)); } //---------------------------------------------------------------------- /// helper class for selecting on transverse energy class QuantityEt2 : public QuantitySquareBase{ public: QuantityEt2(double Et) : QuantitySquareBase(Et){} virtual double operator()(const PseudoJet & jet ) const { return jet.Et2();} virtual string description() const {return "Et";} }; // returns a selector for a minimum Et Selector SelectorEtMin(double Etmin) { return Selector(new SW_QuantityMin(Etmin)); } // returns a selector for a maximum Et Selector SelectorEtMax(double Etmax) { return Selector(new SW_QuantityMax(Etmax)); } // returns a selector for a Et range Selector SelectorEtRange(double Etmin, double Etmax) { return Selector(new SW_QuantityRange(Etmin, Etmax)); } //---------------------------------------------------------------------- /// helper class for selecting on energy class QuantityE : public QuantityBase{ public: QuantityE(double E) : QuantityBase(E){} virtual double operator()(const PseudoJet & jet ) const { return jet.E();} virtual string description() const {return "E";} }; // returns a selector for a minimum E Selector SelectorEMin(double Emin) { return Selector(new SW_QuantityMin(Emin)); } // returns a selector for a maximum E Selector SelectorEMax(double Emax) { return Selector(new SW_QuantityMax(Emax)); } // returns a selector for a E range Selector SelectorERange(double Emin, double Emax) { return Selector(new SW_QuantityRange(Emin, Emax)); } //---------------------------------------------------------------------- /// helper class for selecting on mass class QuantityM2 : public QuantitySquareBase{ public: QuantityM2(double m) : QuantitySquareBase(m){} virtual double operator()(const PseudoJet & jet ) const { return jet.m2();} virtual string description() const {return "mass";} }; // returns a selector for a minimum mass Selector SelectorMassMin(double mmin) { return Selector(new SW_QuantityMin(mmin)); } // returns a selector for a maximum mass Selector SelectorMassMax(double mmax) { return Selector(new SW_QuantityMax(mmax)); } // returns a selector for a mass range Selector SelectorMassRange(double mmin, double mmax) { return Selector(new SW_QuantityRange(mmin, mmax)); } //---------------------------------------------------------------------- /// helper for selecting on rapidities: quantity class QuantityRap : public QuantityBase{ public: QuantityRap(double rap) : QuantityBase(rap){} virtual double operator()(const PseudoJet & jet ) const { return jet.rap();} virtual string description() const {return "rap";} virtual bool is_geometric() const { return true;} }; /// helper for selecting on rapidities: min class SW_RapMin : public SW_QuantityMin{ public: SW_RapMin(double rapmin) : SW_QuantityMin(rapmin){} virtual void get_rapidity_extent(double &rapmin, double & rapmax) const{ rapmax = std::numeric_limits::max(); rapmin = _qmin.comparison_value(); } }; /// helper for selecting on rapidities: max class SW_RapMax : public SW_QuantityMax{ public: SW_RapMax(double rapmax) : SW_QuantityMax(rapmax){} virtual void get_rapidity_extent(double &rapmin, double & rapmax) const{ rapmax = _qmax.comparison_value(); rapmin = -std::numeric_limits::max(); } }; /// helper for selecting on rapidities: range class SW_RapRange : public SW_QuantityRange{ public: SW_RapRange(double rapmin, double rapmax) : SW_QuantityRange(rapmin, rapmax){ assert(rapmin<=rapmax); } virtual void get_rapidity_extent(double &rapmin, double & rapmax) const{ rapmax = _qmax.comparison_value(); rapmin = _qmin.comparison_value(); } virtual bool has_known_area() const { return true;} ///< the area is analytically known virtual double known_area() const { return twopi * (_qmax.comparison_value()-_qmin.comparison_value()); } }; // returns a selector for a minimum rapidity Selector SelectorRapMin(double rapmin) { return Selector(new SW_RapMin(rapmin)); } // returns a selector for a maximum rapidity Selector SelectorRapMax(double rapmax) { return Selector(new SW_RapMax(rapmax)); } // returns a selector for a rapidity range Selector SelectorRapRange(double rapmin, double rapmax) { return Selector(new SW_RapRange(rapmin, rapmax)); } //---------------------------------------------------------------------- /// helper for selecting on |rapidities| class QuantityAbsRap : public QuantityBase{ public: QuantityAbsRap(double absrap) : QuantityBase(absrap){} virtual double operator()(const PseudoJet & jet ) const { return abs(jet.rap());} virtual string description() const {return "|rap|";} virtual bool is_geometric() const { return true;} }; /// helper for selecting on |rapidities|: max class SW_AbsRapMax : public SW_QuantityMax{ public: SW_AbsRapMax(double absrapmax) : SW_QuantityMax(absrapmax){} virtual void get_rapidity_extent(double &rapmin, double & rapmax) const{ rapmax = _qmax.comparison_value(); rapmin = -_qmax.comparison_value(); } virtual bool has_known_area() const { return true;} ///< the area is analytically known virtual double known_area() const { return twopi * 2 * _qmax.comparison_value(); } }; /// helper for selecting on |rapidities|: max class SW_AbsRapRange : public SW_QuantityRange{ public: SW_AbsRapRange(double absrapmin, double absrapmax) : SW_QuantityRange(absrapmin, absrapmax){} virtual void get_rapidity_extent(double &rapmin, double & rapmax) const{ rapmax = _qmax.comparison_value(); rapmin = -_qmax.comparison_value(); } virtual bool has_known_area() const { return true;} ///< the area is analytically known virtual double known_area() const { return twopi * 2 * (_qmax.comparison_value()-max(_qmin.comparison_value(),0.0)); // this should handle properly absrapmin<0 } }; // returns a selector for a minimum |rapidity| Selector SelectorAbsRapMin(double absrapmin) { return Selector(new SW_QuantityMin(absrapmin)); } // returns a selector for a maximum |rapidity| Selector SelectorAbsRapMax(double absrapmax) { return Selector(new SW_AbsRapMax(absrapmax)); } // returns a selector for a |rapidity| range Selector SelectorAbsRapRange(double rapmin, double rapmax) { return Selector(new SW_AbsRapRange(rapmin, rapmax)); } //---------------------------------------------------------------------- /// helper for selecting on pseudo-rapidities class QuantityEta : public QuantityBase{ public: QuantityEta(double eta) : QuantityBase(eta){} virtual double operator()(const PseudoJet & jet ) const { return jet.eta();} virtual string description() const {return "eta";} // virtual bool is_geometric() const { return true;} // not strictly only y and phi-dependent }; // returns a selector for a pseudo-minimum rapidity Selector SelectorEtaMin(double etamin) { return Selector(new SW_QuantityMin(etamin)); } // returns a selector for a pseudo-maximum rapidity Selector SelectorEtaMax(double etamax) { return Selector(new SW_QuantityMax(etamax)); } // returns a selector for a pseudo-rapidity range Selector SelectorEtaRange(double etamin, double etamax) { return Selector(new SW_QuantityRange(etamin, etamax)); } //---------------------------------------------------------------------- /// helper for selecting on |pseudo-rapidities| class QuantityAbsEta : public QuantityBase{ public: QuantityAbsEta(double abseta) : QuantityBase(abseta){} virtual double operator()(const PseudoJet & jet ) const { return abs(jet.eta());} virtual string description() const {return "|eta|";} virtual bool is_geometric() const { return true;} }; // returns a selector for a minimum |pseudo-rapidity| Selector SelectorAbsEtaMin(double absetamin) { return Selector(new SW_QuantityMin(absetamin)); } // returns a selector for a maximum |pseudo-rapidity| Selector SelectorAbsEtaMax(double absetamax) { return Selector(new SW_QuantityMax(absetamax)); } // returns a selector for a |pseudo-rapidity| range Selector SelectorAbsEtaRange(double absetamin, double absetamax) { return Selector(new SW_QuantityRange(absetamin, absetamax)); } //---------------------------------------------------------------------- /// helper for selecting on azimuthal angle /// /// Note that the bounds have to be specified as min -2pi /// phimax has to be < 4pi class SW_PhiRange : public SelectorWorker { public: /// detfault ctor (initialises the pt cut) SW_PhiRange(double phimin, double phimax) : _phimin(phimin), _phimax(phimax){ assert(_phimin<_phimax); assert(_phimin>-twopi); assert(_phimax<2*twopi); _phispan = _phimax - _phimin; } /// returns true is the given object passes the selection pt cut virtual bool pass(const PseudoJet & jet) const { double dphi=jet.phi()-_phimin; if (dphi >= twopi) dphi -= twopi; if (dphi < 0) dphi += twopi; return (dphi <= _phispan); } /// returns a description of the worker virtual string description() const { ostringstream ostr; ostr << _phimin << " <= phi <= " << _phimax; return ostr.str(); } virtual bool is_geometric() const { return true;} protected: double _phimin; // the lower cut double _phimax; // the upper cut double _phispan; // the span of the range }; // returns a selector for a phi range Selector SelectorPhiRange(double phimin, double phimax) { return Selector(new SW_PhiRange(phimin, phimax)); } //---------------------------------------------------------------------- /// helper for selecting on both rapidity and azimuthal angle class SW_RapPhiRange : public SW_And{ public: SW_RapPhiRange(double rapmin, double rapmax, double phimin, double phimax) : SW_And(SelectorRapRange(rapmin, rapmax), SelectorPhiRange(phimin, phimax)){ _known_area = ((phimax-phimin > twopi) ? twopi : phimax-phimin) * (rapmax-rapmin); } /// if it has a computable area, return it virtual double known_area() const{ return _known_area; } protected: double _known_area; }; Selector SelectorRapPhiRange(double rapmin, double rapmax, double phimin, double phimax) { return Selector(new SW_RapPhiRange(rapmin, rapmax, phimin, phimax)); } //---------------------------------------------------------------------- /// helper for selecting the n hardest jets class SW_NHardest : public SelectorWorker { public: /// ctor with specification of the number of objects to keep SW_NHardest(unsigned int n) : _n(n) {}; /// pass makes no sense here normally the parent selector will throw /// an error but for internal use in the SW, we'll throw one from /// here by security virtual bool pass(const PseudoJet &) const { if (!applies_jet_by_jet()) throw Error("Cannot apply this selector worker to an individual jet"); return false; } /// For each jet that does not pass the cuts, this routine sets the /// pointer to 0. virtual void terminator(vector & jets) const { // nothing to do if the size is too small if (jets.size() < _n) return; // do we want to first chech if things are already ordered before // going through the ordering process? For now, no. Maybe carry // out timing tests at some point to establish the optimal // strategy. vector minus_pt2(jets.size()); vector indices(jets.size()); for (unsigned int i=0; iperp2() : 0.0; } IndexedSortHelper sort_helper(& minus_pt2); partial_sort(indices.begin(), indices.begin()+_n, indices.end(), sort_helper); for (unsigned int i=_n; i= _radius_in2); } /// returns a description of the worker virtual string description() const { ostringstream ostr; ostr << sqrt(_radius_in2) << " <= distance from the centre <= " << sqrt(_radius_out2); return ostr.str(); } /// returns the rapidity range for which it may return "true" virtual void get_rapidity_extent(double & rapmin, double & rapmax) const{ // make sure the centre is initialised if (! _is_initialised) throw Error("To use a SelectorDoughnut (or any selector that requires a reference), you first have to call set_reference(...)"); rapmax = _reference.rap()+sqrt(_radius_out2); rapmin = _reference.rap()-sqrt(_radius_out2); } virtual bool is_geometric() const { return true;} ///< implies a finite area virtual bool has_finite_area() const { return true;} ///< regardless of the reference virtual bool has_known_area() const { return true;} ///< the area is analytically known virtual double known_area() const { return pi * (_radius_out2-_radius_in2); } protected: double _radius_in2, _radius_out2; }; // select on objets with distance from the centre is between 'radius_in' and 'radius_out' Selector SelectorDoughnut(const double & radius_in, const double & radius_out) { return Selector(new SW_Doughnut(radius_in, radius_out)); } //---------------------------------------------------------------------- /// helper for selecting on objects with rapidity within a distance 'delta' of a reference class SW_Strip : public SW_WithReference { public: SW_Strip(const double &delta) : _delta(delta) {} /// return a copy of the current object virtual SelectorWorker* copy(){ return new SW_Strip(*this);} /// returns true if a given object passes the selection criterium /// this has to be overloaded by derived workers virtual bool pass(const PseudoJet & jet) const { // make sure the centre is initialised if (! _is_initialised) throw Error("To use a SelectorStrip (or any selector that requires a reference), you first have to call set_reference(...)"); return abs(jet.rap()-_reference.rap()) <= _delta; } /// returns a description of the worker virtual string description() const { ostringstream ostr; ostr << "|rap - rap_reference| <= " << _delta; return ostr.str(); } /// returns the rapidity range for which it may return "true" virtual void get_rapidity_extent(double & rapmin, double & rapmax) const{ // make sure the centre is initialised if (! _is_initialised) throw Error("To use a SelectorStrip (or any selector that requires a reference), you first have to call set_reference(...)"); rapmax = _reference.rap()+_delta; rapmin = _reference.rap()-_delta; } virtual bool is_geometric() const { return true;} ///< implies a finite area virtual bool has_finite_area() const { return true;} ///< regardless of the reference virtual bool has_known_area() const { return true;} ///< the area is analytically known virtual double known_area() const { return twopi * 2 * _delta; } protected: double _delta; }; // select on objets within a distance 'radius' of a variable location Selector SelectorStrip(const double & half_width) { return Selector(new SW_Strip(half_width)); } //---------------------------------------------------------------------- /// helper for selecting on objects with rapidity within a distance /// 'delta_rap' of a reference and phi within a distanve delta_phi of /// a reference class SW_Rectangle : public SW_WithReference { public: SW_Rectangle(const double &delta_rap, const double &delta_phi) : _delta_rap(delta_rap), _delta_phi(delta_phi) {} /// return a copy of the current object virtual SelectorWorker* copy(){ return new SW_Rectangle(*this);} /// returns true if a given object passes the selection criterium /// this has to be overloaded by derived workers virtual bool pass(const PseudoJet & jet) const { // make sure the centre is initialised if (! _is_initialised) throw Error("To use a SelectorRectangle (or any selector that requires a reference), you first have to call set_reference(...)"); return (abs(jet.rap()-_reference.rap()) <= _delta_rap) && (abs(jet.delta_phi_to(_reference)) <= _delta_phi); } /// returns a description of the worker virtual string description() const { ostringstream ostr; ostr << "|rap - rap_reference| <= " << _delta_rap << " && |phi - phi_reference| <= " << _delta_phi ; return ostr.str(); } /// returns the rapidity range for which it may return "true" virtual void get_rapidity_extent(double & rapmin, double & rapmax) const{ // make sure the centre is initialised if (! _is_initialised) throw Error("To use a SelectorRectangle (or any selector that requires a reference), you first have to call set_reference(...)"); rapmax = _reference.rap()+_delta_rap; rapmin = _reference.rap()-_delta_rap; } virtual bool is_geometric() const { return true;} ///< implies a finite area virtual bool has_finite_area() const { return true;} ///< regardless of the reference virtual bool has_known_area() const { return true;} ///< the area is analytically known virtual double known_area() const { return 4 * _delta_rap * _delta_phi; } protected: double _delta_rap, _delta_phi; }; // select on objets within a distance 'radius' of a variable location Selector SelectorRectangle(const double & half_rap_width, const double & half_phi_width) { return Selector(new SW_Rectangle(half_rap_width, half_phi_width)); } //---------------------------------------------------------------------- /// helper for selecting the jets that carry at least a given fraction /// of the reference jet class SW_PtFractionMin : public SW_WithReference { public: /// ctor with specification of the number of objects to keep SW_PtFractionMin(double fraction) : _fraction2(fraction*fraction){} /// return a copy of the current object virtual SelectorWorker* copy(){ return new SW_PtFractionMin(*this);} /// return true if the jet carries a large enough fraction of the reference. /// Throw an error if the reference is not initialised. virtual bool pass(const PseudoJet & jet) const { // make sure the centre is initialised if (! _is_initialised) throw Error("To use a SelectorPtFractionMin (or any selector that requires a reference), you first have to call set_reference(...)"); // otherwise, just call that method on the jet return (jet.perp2() >= _fraction2*_reference.perp2()); } /// returns a description of the worker virtual string description() const { ostringstream ostr; ostr << "pt >= " << sqrt(_fraction2) << "* pt_ref"; return ostr.str(); } protected: double _fraction2; }; // select objects that carry at least a fraction "fraction" of the reference jet // (Note that this selectir takes a reference) Selector SelectorPtFractionMin(double fraction){ return Selector(new SW_PtFractionMin(fraction)); } //---------------------------------------------------------------------- // additional (mostly helper) selectors //---------------------------------------------------------------------- //---------------------------------------------------------------------- /// helper for selecting the 0-momentum jets class SW_IsZero : public SelectorWorker { public: /// ctor SW_IsZero(){} /// return true if the jet has zero momentum virtual bool pass(const PseudoJet & jet) const { return jet==0; } /// rereturns a description of the worker virtual string description() const { return "zero";} }; // select objects with zero momentum Selector SelectorIsZero(){ return Selector(new SW_IsZero()); } //---------------------------------------------------------------------- #ifndef __FJCORE__ /// helper for selecting the pure ghost class SW_IsPureGhost : public SelectorWorker { public: /// ctor SW_IsPureGhost(){} /// return true if the jet is a pure-ghost jet virtual bool pass(const PseudoJet & jet) const { // if the jet has no area support then it's certainly not a ghost if (!jet.has_area()) return false; // otherwise, just call that method on the jet return jet.is_pure_ghost(); } /// rereturns a description of the worker virtual string description() const { return "pure ghost";} }; // select objects that are (or are only made of) ghosts Selector SelectorIsPureGhost(){ return Selector(new SW_IsPureGhost()); } //---------------------------------------------------------------------- // Selector and workers for obtaining a Selector from an old // RangeDefinition // // This is mostly intended for backward compatibility and is likely to // be removed in a future major release of FastJet //---------------------------------------------------------------------- //---------------------------------------------------------------------- /// helper for selecting on both rapidity and azimuthal angle class SW_RangeDefinition : public SelectorWorker{ public: /// ctor from a RangeDefinition SW_RangeDefinition(const RangeDefinition &range) : _range(&range){} /// transfer the selection creterium to the underlying RangeDefinition virtual bool pass(const PseudoJet & jet) const { return _range->is_in_range(jet); } /// returns a description of the worker virtual string description() const { return _range->description(); } /// returns the rapidity range for which it may return "true" virtual void get_rapidity_extent(double & rapmin, double & rapmax) const{ _range->get_rap_limits(rapmin, rapmax); } /// check if it has a finite area virtual bool is_geometric() const { return true;} /// check if it has an analytically computable area virtual bool has_known_area() const { return true;} /// if it has a computable area, return it virtual double known_area() const{ return _range->area(); } protected: const RangeDefinition *_range; }; // ctor from a RangeDefinition //---------------------------------------------------------------------- // // This is provided for backward compatibility and will be removed in // a future major release of FastJet Selector::Selector(const RangeDefinition &range) { _worker.reset(new SW_RangeDefinition(range)); } #endif // __FJCORE__ // operators applying directly on a Selector //---------------------------------------------------------------------- // operator &= // For 2 Selectors a and b, a &= b is eauivalent to a = a & b; Selector & Selector::operator &=(const Selector & b){ _worker.reset(new SW_And(*this, b)); return *this; } // operator &= // For 2 Selectors a and b, a &= b is eauivalent to a = a & b; Selector & Selector::operator |=(const Selector & b){ _worker.reset(new SW_Or(*this, b)); return *this; } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/src/CompositeJetStructure.cc0000644000175000017500000001317212127746207020672 0ustar sunsun//STARTHEADER // $Id: CompositeJetStructure.cc 3071 2013-04-01 12:52:46Z cacciari $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //------------------------------------------------------------------------------- // \class CompositeJetStructure // The structure for a jet made of pieces // // This stores the vector of the pieces that make the jet and provide // the methods to access them // ------------------------------------------------------------------------------- CompositeJetStructure::CompositeJetStructure(const std::vector & initial_pieces, const JetDefinition::Recombiner * recombiner) : _pieces(initial_pieces){ #ifndef __FJCORE__ // deal with area support (cache the area if needed) //-------------------------------------------------- // check if all the pieces have area, in which case store it bool has_area_local = true; for (vector::const_iterator pit=_pieces.begin(); pit!=_pieces.end(); pit++){ if (!pit->has_area()){ has_area_local = false; continue; } } if (has_area_local){ _area_4vector_ptr = new PseudoJet(); for (unsigned int i=0; i<_pieces.size(); i++){ const PseudoJet & p = _pieces[i]; if (recombiner) recombiner->plus_equal(*_area_4vector_ptr, p.area_4vector()); else *_area_4vector_ptr += p.area_4vector(); } } else { _area_4vector_ptr = 0; } #else if (recombiner){}; // ugly trick to prevent a gcc warning _area_4vector_ptr = 0; #endif } // description std::string CompositeJetStructure::description() const{ string str = "Composite PseudoJet"; return str; } // things reimplemented from the base structure //------------------------------------------------------------------------------ bool CompositeJetStructure::has_constituents() const{ //for (vector::const_iterator pit=_pieces.begin(); pit!=_pieces.end(); pit++) // if (!pit->has_constituents()) return false; // //return true; // the only case where we do not have constituents is the case where // there is no pieces! return _pieces.size()!=0; } std::vector CompositeJetStructure::constituents(const PseudoJet & /*jet*/) const{ // recurse into the pieces that ahve constituents, just append the others // the following code automatically throws an Error if any of the // pieces has no constituents vector all_constituents; for (unsigned i = 0; i < _pieces.size(); i++) { if (_pieces[i].has_constituents()){ vector constits = _pieces[i].constituents(); copy(constits.begin(), constits.end(), back_inserter(all_constituents)); } else { all_constituents.push_back(_pieces[i]); } } return all_constituents; } std::vector CompositeJetStructure::pieces(const PseudoJet & /*jet*/) const{ return _pieces; } #ifndef __FJCORE__ // area-related material // check if it has a well-defined area bool CompositeJetStructure::has_area() const{ return (_area_4vector_ptr != 0); } // return the jet (scalar) area. double CompositeJetStructure::area(const PseudoJet & /*reference*/) const{ if (! has_area()) throw Error("One or more of this composite jet's pieces does not support area"); double a=0; for (unsigned i = 0; i < _pieces.size(); i++) a += _pieces[i].area(); return a; } // return the error (uncertainty) associated with the determination // of the area of this jet. // // Be conservative: return the sum of the errors double CompositeJetStructure::area_error(const PseudoJet & /*reference*/) const{ if (! has_area()) throw Error("One or more of this composite jet's pieces does not support area"); double a_err=0; for (unsigned i = 0; i < _pieces.size(); i++) a_err += _pieces[i].area(); return a_err; } // return the jet 4-vector area. PseudoJet CompositeJetStructure::area_4vector(const PseudoJet & /*reference*/) const{ if (! has_area()) throw Error("One or more of this composite jet's pieces does not support area"); return *_area_4vector_ptr; // one is supposed to call has_area before! } // true if this jet is made exclusively of ghosts. // // In this case, it will be true if all pieces are pure ghost bool CompositeJetStructure::is_pure_ghost(const PseudoJet & /*reference*/) const{ for (unsigned i = 0; i < _pieces.size(); i++) if (! _pieces[i].is_pure_ghost()) return false; return true; } #endif // __FJCORE__ FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/src/ClusterSequence_DumbN3.cc0000644000175000017500000001105111766120140020606 0ustar sunsun//STARTHEADER // $Id: ClusterSequence_DumbN3.cc 2690 2011-11-14 14:57:54Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequence.hh" #include #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //---------------------------------------------------------------------- /// Run the clustering in a very slow variant of the N^3 algorithm. /// /// The only thing this routine has going for it is that memory usage /// is O(N)! void ClusterSequence::_really_dumb_cluster () { // the array that will be overwritten here will be one // of pointers to jets. vector jetsp(_jets.size()); vector indices(_jets.size()); for (size_t i = 0; i<_jets.size(); i++) { jetsp[i] = & _jets[i]; indices[i] = i; } for (int n = jetsp.size(); n > 0; n--) { int ii, jj; // find smallest beam distance [remember jet_scale_for_algorithm // will return kt^2 for the kt-algorithm and 1 for the Cambridge/Aachen] double ymin = jet_scale_for_algorithm(*(jetsp[0])); ii = 0; jj = -2; for (int i = 0; i < n; i++) { double yiB = jet_scale_for_algorithm(*(jetsp[i])); if (yiB < ymin) { ymin = yiB; ii = i; jj = -2;} } // find smallest distance between pair of jetsp for (int i = 0; i < n-1; i++) { for (int j = i+1; j < n; j++) { //double y = jetsp[i]->kt_distance(*jetsp[j])*_invR2; double y = min(jet_scale_for_algorithm(*(jetsp[i])), jet_scale_for_algorithm(*(jetsp[j]))) * jetsp[i]->plain_distance(*jetsp[j])*_invR2; if (y < ymin) {ymin = y; ii = i; jj = j;} } } // output recombination sequence // old "ktclus" way of labelling //cout < & input_points, const bool & ignore_nearest_is_mirror, const bool & verbose) { _verbose = verbose; _ignore_nearest_is_mirror = ignore_nearest_is_mirror; vector plane_points; //plane_points.reserve(2*input_points.size()); for (unsigned int i=0; i < input_points.size(); i++) { _RegisterCylinderPoint(input_points[i], plane_points); } if (_verbose) cout << "============== Preparing _DNN" << endl; _DNN = new DnnPlane(plane_points, verbose); } //---------------------------------------------------------------------- /// What on earth does this do? /// /// Example: last true "cylinder" index was 15 /// last plane index was 23 /// /// Then: _cylinder_index_of_plane_vertex.size() = 24 and /// _mirror_info.size() = 16 /// /// IF cylinder_point's phi < pi then /// create: _mirror_info[16] = (main_index = 24, mirror_index=25) /// _cylinder_index_of_plane_vertex[24] = 16 /// _cylinder_index_of_plane_vertex[25] = 16 /// ELSE /// create: _mirror_info[16] = (main_index = 24, mirror_index=INEXISTENT..) /// _cylinder_index_of_plane_vertex[24] = 16 /// /// ADDITIONALLY push the cylinder_point (and if it exists the mirror /// copy) onto the vector plane_points. void Dnn3piCylinder::_RegisterCylinderPoint (const EtaPhi & cylinder_point, vector & plane_points) { double phi = cylinder_point.second; assert(phi >= 0.0 && phi < 2*pi); // do main point MirrorVertexInfo mvi; mvi.main_index = _cylinder_index_of_plane_vertex.size(); _cylinder_index_of_plane_vertex.push_back(_mirror_info.size()); plane_points.push_back(cylinder_point); // do mirror point if need be if (phi < pi) { mvi.mirror_index = _cylinder_index_of_plane_vertex.size(); _cylinder_index_of_plane_vertex.push_back(_mirror_info.size()); plane_points.push_back(_remap_phi(cylinder_point)); } else { mvi.mirror_index = INEXISTENT_VERTEX; } // _mirror_info.push_back(mvi); } //---------------------------------------------------------------------- /// insertion and removal of points void Dnn3piCylinder::RemoveAndAddPoints(const vector & indices_to_remove, const vector & points_to_add, vector & indices_added, vector & indices_of_updated_neighbours) { // translate from "cylinder" indices of points to remove to the // plane indices of points to remove, bearing in mind that sometimes // there are multple plane points to remove. vector plane_indices_to_remove; for (unsigned int i=0; i < indices_to_remove.size(); i++) { MirrorVertexInfo * mvi; mvi = & _mirror_info[indices_to_remove[i]]; plane_indices_to_remove.push_back(mvi->main_index); if (mvi->mirror_index != INEXISTENT_VERTEX) { plane_indices_to_remove.push_back(mvi->mirror_index); } } // given "cylinder" points to add get hold of the list of // plane-points to add. vector plane_points_to_add; indices_added.clear(); for (unsigned int i=0; i < points_to_add.size(); i++) { indices_added.push_back(_mirror_info.size()); _RegisterCylinderPoint(points_to_add[i], plane_points_to_add); } // now get the hard work done (note that we need to supply the // plane_indices_added vector but that we will not actually check // its contents in any way -- the indices_added that is actually // returned has been calculated above). vector updated_plane_neighbours, plane_indices_added; _DNN->RemoveAndAddPoints(plane_indices_to_remove, plane_points_to_add, plane_indices_added, updated_plane_neighbours); // extract, from the updated_plane_neighbours, the set of cylinder // neighbours that have changed set index_set; unsigned int i; for (i=0; i < updated_plane_neighbours.size(); i++) { index_set.insert( _cylinder_index_of_plane_vertex[updated_plane_neighbours[i]]);} // decant the set into the vector that needs to be returned indices_of_updated_neighbours.clear(); for (set::iterator iter = index_set.begin(); iter != index_set.end(); iter++) { indices_of_updated_neighbours.push_back(*iter); } } FASTJET_END_NAMESPACE #endif // DROP_CGAL fastjet-3.0.6+dfsg.orig/src/ClusterSequence_Delaunay.cc0000644000175000017500000002241412153571474021300 0ustar sunsun//STARTHEADER // $Id: ClusterSequence_Delaunay.cc 3114 2013-05-04 08:46:00Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/Error.hh" #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequence.hh" #include "fastjet/internal/DynamicNearestNeighbours.hh" #include #include #include #include #include #include // #ifndef DROP_CGAL // in case we do not have the code for CGAL #include "fastjet/internal/Dnn4piCylinder.hh" #include "fastjet/internal/Dnn3piCylinder.hh" #include "fastjet/internal/Dnn2piCylinder.hh" #endif // DROP_CGAL FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //---------------------------------------------------------------------- /// Run the clustering using a Hierarchical Delaunay triangulation and /// STL maps to achieve O(N*ln N) behaviour. /// /// There may be internally asserted assumptions about absence of /// points with coincident eta-phi coordinates. void ClusterSequence::_delaunay_cluster () { int n = _jets.size(); vector points(n); // recall EtaPhi is just a typedef'd pair for (int i = 0; i < n; i++) { points[i] = EtaPhi(_jets[i].rap(),_jets[i].phi_02pi()); points[i].sanitize(); // make sure things are in the right range } // initialise our DNN structure with the set of points auto_ptr DNN; #ifndef DROP_CGAL // strategy = NlnN* are not supported if we drop CGAL... bool verbose = false; bool ignore_nearest_is_mirror = (_Rparam < twopi); if (_strategy == NlnN4pi) { DNN.reset(new Dnn4piCylinder(points,verbose)); } else if (_strategy == NlnN3pi) { DNN.reset(new Dnn3piCylinder(points,ignore_nearest_is_mirror,verbose)); } else if (_strategy == NlnN) { DNN.reset(new Dnn2piCylinder(points,ignore_nearest_is_mirror,verbose)); } else #else if (_strategy == NlnN4pi || _strategy == NlnN3pi || _strategy == NlnN) { ostringstream err; err << "ERROR: Requested strategy "<first; SmallestDijPair = DijMap.begin()->second; jet_i = SmallestDijPair.first; jet_j = SmallestDijPair.second; // distance is immediately removed regardless of whether or not // it is used. // Some temporary testing code relating to problems with the gcc-3.2 compiler //cout << "got here and size is "<< DijMap.size()<< " and it is "<Valid(jet_j);} else {Valid2 = true;} } while ( !DNN->Valid(jet_i) || !Valid2); // The following part acts just on jet momenta and on the history. // The action on the nearest-neighbour structures takes place // later (only if at least 2 jets are around). if (! recombine_with_beam) { int nn; // will be index of new jet _do_ij_recombination_step(jet_i, jet_j, SmallestDij, nn); //OBS // merge the two jets, add new jet, remove old ones //OBS _jets.push_back(_jets[jet_i] + _jets[jet_j]); //OBS //OBS int nn = _jets.size()-1; //OBS _jets[nn].set_cluster_hist_index(n+i); //OBS //OBS // get corresponding indices in history structure //OBS int hist_i = _jets[jet_i].cluster_hist_index(); //OBS int hist_j = _jets[jet_j].cluster_hist_index(); //OBS //OBS //OBS _add_step_to_history(n+i,min(hist_i,hist_j), max(hist_i,hist_j), //OBS _jets.size()-1, SmallestDij); // add new point to points vector EtaPhi newpoint(_jets[nn].rap(), _jets[nn].phi_02pi()); newpoint.sanitize(); // make sure it is in correct range points.push_back(newpoint); } else { // recombine the jet with the beam _do_iB_recombination_step(jet_i, SmallestDij); //OBS _add_step_to_history(n+i,_jets[jet_i].cluster_hist_index(),BeamJet, //OBS Invalid, SmallestDij); } // exit the loop because we do not want to look for nearest neighbours // etc. of zero partons if (i == n-1) {break;} vector updated_neighbours; if (! recombine_with_beam) { // update DNN int point3; DNN->RemoveCombinedAddCombination(jet_i, jet_j, points[points.size()-1], point3, updated_neighbours); // C++ beginners' comment: static_cast to unsigned int is necessary // to do away with warnings about type mismatch between point3 (int) // and points.size (unsigned int) if (static_cast (point3) != points.size()-1) { throw Error("INTERNAL ERROR: point3 != points.size()-1");} } else { // update DNN DNN->RemovePoint(jet_i, updated_neighbours); } // update map vector::iterator it = updated_neighbours.begin(); for (; it != updated_neighbours.end(); ++it) { int ii = *it; _add_ktdistance_to_map(ii, DijMap, DNN.get()); } } // end clustering loop } //---------------------------------------------------------------------- /// Add the current kt distance for particle ii to the map (DijMap) /// using information from the DNN object. Work as follows: /// /// . if the kt is zero then it's nearest neighbour is taken to be the /// the beam jet and the distance is zero. /// /// . if cylinder distance to nearest neighbour > _Rparam then it is /// yiB that is smallest and this is added to map. /// /// . otherwise if the nearest neighbour jj has a larger kt then add /// dij to the map. /// /// . otherwise do nothing /// void ClusterSequence::_add_ktdistance_to_map( const int & ii, DistMap & DijMap, const DynamicNearestNeighbours * DNN) { double yiB = jet_scale_for_algorithm(_jets[ii]); if (yiB == 0.0) { // in this case convention is that we do not worry about distances // but directly state that nearest neighbour is beam DijMap.insert(DijEntry(yiB, TwoVertices(ii,-1))); } else { double DeltaR2 = DNN->NearestNeighbourDistance(ii) * _invR2; // Logic of following bit is: only add point to map if it has // smaller kt2 than nearest neighbour j (if it has larger kt, // then: either it is j's nearest neighbour and then we will // include dij when we come to j; or it is not j's nearest // neighbour and j will recombine with someone else). // If DeltaR2 > 1.0 then in any case it will recombine with beam rather // than with any neighbours. // (put general normalisation here at some point) if (DeltaR2 > 1.0) { DijMap.insert(DijEntry(yiB, TwoVertices(ii,-1))); } else { double kt2i = jet_scale_for_algorithm(_jets[ii]); int jj = DNN->NearestNeighbourIndex(ii); if (kt2i <= jet_scale_for_algorithm(_jets[jj])) { double dij = DeltaR2 * kt2i; DijMap.insert(DijEntry(dij, TwoVertices(ii,jj))); } } } } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/ClusterSequence_TiledN2.cc0000644000175000017500000010322412233477116020773 0ustar sunsun//STARTHEADER // $Id: ClusterSequence_TiledN2.cc 3213 2013-09-16 06:59:06Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER // The plain N^2 part of the ClusterSequence class -- separated out // from the rest of the class implementation so as to speed up // compilation of this particular part while it is under test. #include #include #include #include #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequence.hh" #include "fastjet/internal/MinHeap.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //---------------------------------------------------------------------- void ClusterSequence::_bj_remove_from_tiles(TiledJet * const jet) { Tile * tile = & _tiles[jet->tile_index]; if (jet->previous == NULL) { // we are at head of the tile, so reset it. // If this was the only jet on the tile then tile->head will now be NULL tile->head = jet->next; } else { // adjust link from previous jet in this tile jet->previous->next = jet->next; } if (jet->next != NULL) { // adjust backwards-link from next jet in this tile jet->next->previous = jet->previous; } } //---------------------------------------------------------------------- /// Set up the tiles: /// - decide the range in eta /// - allocate the tiles /// - set up the cross-referencing info between tiles /// /// The neighbourhood of a tile is set up as follows /// /// LRR /// LXR /// LLR /// /// such that tiles is an array containing XLLLLRRRR with pointers /// | \ RH_tiles /// \ surrounding_tiles /// /// with appropriate precautions when close to the edge of the tiled /// region. /// void ClusterSequence::_initialise_tiles() { // first decide tile sizes (with a lower bound to avoid huge memory use with // very small R) double default_size = max(0.1,_Rparam); _tile_size_eta = default_size; // it makes no sense to go below 3 tiles in phi -- 3 tiles is // sufficient to make sure all pair-wise combinations up to pi in // phi are possible _n_tiles_phi = max(3,int(floor(twopi/default_size))); _tile_size_phi = twopi / _n_tiles_phi; // >= _Rparam and fits in 2pi // always include zero rapidity in the tiling region _tiles_eta_min = 0.0; _tiles_eta_max = 0.0; // but go no further than following const double maxrap = 7.0; // and find out how much further one should go for(unsigned int i = 0; i < _jets.size(); i++) { double eta = _jets[i].rap(); // first check if eta is in range -- to avoid taking into account // very spurious rapidities due to particles with near-zero kt. if (abs(eta) < maxrap) { if (eta < _tiles_eta_min) {_tiles_eta_min = eta;} if (eta > _tiles_eta_max) {_tiles_eta_max = eta;} } } // now adjust the values _tiles_ieta_min = int(floor(_tiles_eta_min/_tile_size_eta)); _tiles_ieta_max = int(floor( _tiles_eta_max/_tile_size_eta)); _tiles_eta_min = _tiles_ieta_min * _tile_size_eta; _tiles_eta_max = _tiles_ieta_max * _tile_size_eta; // allocate the tiles _tiles.resize((_tiles_ieta_max-_tiles_ieta_min+1)*_n_tiles_phi); // now set up the cross-referencing between tiles for (int ieta = _tiles_ieta_min; ieta <= _tiles_ieta_max; ieta++) { for (int iphi = 0; iphi < _n_tiles_phi; iphi++) { Tile * tile = & _tiles[_tile_index(ieta,iphi)]; // no jets in this tile yet tile->head = NULL; // first element of tiles points to itself tile->begin_tiles[0] = tile; Tile ** pptile = & (tile->begin_tiles[0]); pptile++; // // set up L's in column to the left of X tile->surrounding_tiles = pptile; if (ieta > _tiles_ieta_min) { // with the itile subroutine, we can safely run tiles from // idphi=-1 to idphi=+1, because it takes care of // negative and positive boundaries for (int idphi = -1; idphi <=+1; idphi++) { *pptile = & _tiles[_tile_index(ieta-1,iphi+idphi)]; pptile++; } } // now set up last L (below X) *pptile = & _tiles[_tile_index(ieta,iphi-1)]; pptile++; // set up first R (above X) tile->RH_tiles = pptile; *pptile = & _tiles[_tile_index(ieta,iphi+1)]; pptile++; // set up remaining R's, to the right of X if (ieta < _tiles_ieta_max) { for (int idphi = -1; idphi <= +1; idphi++) { *pptile = & _tiles[_tile_index(ieta+1,iphi+idphi)]; pptile++; } } // now put semaphore for end tile tile->end_tiles = pptile; // finally make sure tiles are untagged tile->tagged = false; } } } //---------------------------------------------------------------------- /// return the tile index corresponding to the given eta,phi point int ClusterSequence::_tile_index(const double & eta, const double & phi) const { int ieta, iphi; if (eta <= _tiles_eta_min) {ieta = 0;} else if (eta >= _tiles_eta_max) {ieta = _tiles_ieta_max-_tiles_ieta_min;} else { //ieta = int(floor((eta - _tiles_eta_min) / _tile_size_eta)); ieta = int(((eta - _tiles_eta_min) / _tile_size_eta)); // following needed in case of rare but nasty rounding errors if (ieta > _tiles_ieta_max-_tiles_ieta_min) { ieta = _tiles_ieta_max-_tiles_ieta_min;} } // allow for some extent of being beyond range in calculation of phi // as well //iphi = (int(floor(phi/_tile_size_phi)) + _n_tiles_phi) % _n_tiles_phi; // with just int and no floor, things run faster but beware iphi = int((phi+twopi)/_tile_size_phi) % _n_tiles_phi; return (iphi + ieta * _n_tiles_phi); } //---------------------------------------------------------------------- // overloaded version which additionally sets up information regarding the // tiling inline void ClusterSequence::_tj_set_jetinfo( TiledJet * const jet, const int _jets_index) { // first call the generic setup _bj_set_jetinfo<>(jet, _jets_index); // Then do the setup specific to the tiled case. // Find out which tile it belonds to jet->tile_index = _tile_index(jet->eta, jet->phi); // Insert it into the tile's linked list of jets Tile * tile = &_tiles[jet->tile_index]; jet->previous = NULL; jet->next = tile->head; if (jet->next != NULL) {jet->next->previous = jet;} tile->head = jet; } //---------------------------------------------------------------------- /// output the contents of the tiles void ClusterSequence::_print_tiles(TiledJet * briefjets ) const { for (vector::const_iterator tile = _tiles.begin(); tile < _tiles.end(); tile++) { cout << "Tile " << tile - _tiles.begin()<<" = "; vector list; for (TiledJet * jetI = tile->head; jetI != NULL; jetI = jetI->next) { list.push_back(jetI-briefjets); //cout <<" "< & tile_union, int & n_near_tiles) const { for (Tile * const * near_tile = _tiles[tile_index].begin_tiles; near_tile != _tiles[tile_index].end_tiles; near_tile++){ // get the tile number tile_union[n_near_tiles] = *near_tile - & _tiles[0]; n_near_tiles++; } } //---------------------------------------------------------------------- /// Like _add_neighbours_to_tile_union, but only adds neighbours if /// their "tagged" status is false; when a neighbour is added its /// tagged status is set to true. inline void ClusterSequence::_add_untagged_neighbours_to_tile_union( const int tile_index, vector & tile_union, int & n_near_tiles) { for (Tile ** near_tile = _tiles[tile_index].begin_tiles; near_tile != _tiles[tile_index].end_tiles; near_tile++){ if (! (*near_tile)->tagged) { (*near_tile)->tagged = true; // get the tile number tile_union[n_near_tiles] = *near_tile - & _tiles[0]; n_near_tiles++; } } } //---------------------------------------------------------------------- /// run a tiled clustering void ClusterSequence::_tiled_N2_cluster() { _initialise_tiles(); int n = _jets.size(); TiledJet * briefjets = new TiledJet[n]; TiledJet * jetA = briefjets, * jetB; TiledJet oldB; oldB.tile_index=0; // prevents a gcc warning // will be used quite deep inside loops, but declare it here so that // memory (de)allocation gets done only once vector tile_union(3*n_tile_neighbours); // initialise the basic jet info for (int i = 0; i< n; i++) { _tj_set_jetinfo(jetA, i); //cout << i<<": "<tile_index<<"\n"; jetA++; // move on to next entry of briefjets } TiledJet * tail = jetA; // a semaphore for the end of briefjets TiledJet * head = briefjets; // a nicer way of naming start // set up the initial nearest neighbour information vector::const_iterator tile; for (tile = _tiles.begin(); tile != _tiles.end(); tile++) { // first do it on this tile for (jetA = tile->head; jetA != NULL; jetA = jetA->next) { for (jetB = tile->head; jetB != jetA; jetB = jetB->next) { double dist = _bj_dist(jetA,jetB); if (dist < jetA->NN_dist) {jetA->NN_dist = dist; jetA->NN = jetB;} if (dist < jetB->NN_dist) {jetB->NN_dist = dist; jetB->NN = jetA;} } } // then do it for RH tiles for (Tile ** RTile = tile->RH_tiles; RTile != tile->end_tiles; RTile++) { for (jetA = tile->head; jetA != NULL; jetA = jetA->next) { for (jetB = (*RTile)->head; jetB != NULL; jetB = jetB->next) { double dist = _bj_dist(jetA,jetB); if (dist < jetA->NN_dist) {jetA->NN_dist = dist; jetA->NN = jetB;} if (dist < jetB->NN_dist) {jetB->NN_dist = dist; jetB->NN = jetA;} } } } } // now create the diJ (where J is i's NN) table -- remember that // we differ from standard normalisation here by a factor of R2 double * diJ = new double[n]; jetA = head; for (int i = 0; i < n; i++) { diJ[i] = _bj_diJ(jetA); jetA++; // have jetA follow i } // now run the recombination loop int history_location = n-1; while (tail != head) { // find the minimum of the diJ on this round double diJ_min = diJ[0]; int diJ_min_jet = 0; for (int i = 1; i < n; i++) { if (diJ[i] < diJ_min) {diJ_min_jet = i; diJ_min = diJ[i];} } // do the recombination between A and B history_location++; jetA = & briefjets[diJ_min_jet]; jetB = jetA->NN; // put the normalisation back in diJ_min *= _invR2; //if (n == 19) {cout << "Hello "<_jets_index, jetB->_jets_index, diJ_min, nn); //OBS// get the two history indices //OBSint hist_a = _jets[jetA->_jets_index].cluster_hist_index(); //OBSint hist_b = _jets[jetB->_jets_index].cluster_hist_index(); //OBS// create the recombined jet //OBS_jets.push_back(_jets[jetA->_jets_index] + _jets[jetB->_jets_index]); //OBSint nn = _jets.size() - 1; //OBS_jets[nn].set_cluster_hist_index(history_location); //OBS// update history //OBS//cout <_jets_index, diJ_min); //OBS// get the hist_index //OBSint hist_a = _jets[jetA->_jets_index].cluster_hist_index(); //OBS//cout <tile_index, tile_union, n_near_tiles); if (jetB != NULL) { bool sort_it = false; if (jetB->tile_index != jetA->tile_index) { sort_it = true; _add_neighbours_to_tile_union(jetB->tile_index,tile_union,n_near_tiles); } if (oldB.tile_index != jetA->tile_index && oldB.tile_index != jetB->tile_index) { sort_it = true; _add_neighbours_to_tile_union(oldB.tile_index,tile_union,n_near_tiles); } if (sort_it) { // sort the tiles before then compressing the list sort(tile_union.begin(), tile_union.begin()+n_near_tiles); // and now condense the list int nnn = 1; for (int i = 1; i < n_near_tiles; i++) { if (tile_union[i] != tile_union[nnn-1]) { tile_union[nnn] = tile_union[i]; nnn++; } } n_near_tiles = nnn; } } // now update our nearest neighbour info and diJ table // first reduce size of table tail--; n--; if (jetA == tail) { // there is nothing to be done } else { // Copy last jet contents and diJ info into position of jetA *jetA = *tail; diJ[jetA - head] = diJ[tail-head]; // IN the tiling fix pointers to tail and turn them into // pointers to jetA (from predecessors, successors and the tile // head if need be) if (jetA->previous == NULL) { _tiles[jetA->tile_index].head = jetA; } else { jetA->previous->next = jetA; } if (jetA->next != NULL) {jetA->next->previous = jetA;} } // Initialise jetB's NN distance as well as updating it for // other particles. for (int itile = 0; itile < n_near_tiles; itile++) { Tile * tile_ptr = &_tiles[tile_union[itile]]; for (TiledJet * jetI = tile_ptr->head; jetI != NULL; jetI = jetI->next) { // see if jetI had jetA or jetB as a NN -- if so recalculate the NN if (jetI->NN == jetA || (jetI->NN == jetB && jetB != NULL)) { jetI->NN_dist = _R2; jetI->NN = NULL; // now go over tiles that are neighbours of I (include own tile) for (Tile ** near_tile = tile_ptr->begin_tiles; near_tile != tile_ptr->end_tiles; near_tile++) { // and then over the contents of that tile for (TiledJet * jetJ = (*near_tile)->head; jetJ != NULL; jetJ = jetJ->next) { double dist = _bj_dist(jetI,jetJ); if (dist < jetI->NN_dist && jetJ != jetI) { jetI->NN_dist = dist; jetI->NN = jetJ; } } } diJ[jetI-head] = _bj_diJ(jetI); // update diJ } // check whether new jetB is closer than jetI's current NN and // if need to update things if (jetB != NULL) { double dist = _bj_dist(jetI,jetB); if (dist < jetI->NN_dist) { if (jetI != jetB) { jetI->NN_dist = dist; jetI->NN = jetB; diJ[jetI-head] = _bj_diJ(jetI); // update diJ... } } if (dist < jetB->NN_dist) { if (jetI != jetB) { jetB->NN_dist = dist; jetB->NN = jetI;} } } } } if (jetB != NULL) {diJ[jetB-head] = _bj_diJ(jetB);} //cout << n<<" "<tile_index].begin_tiles; near_tile!= _tiles[tail->tile_index].end_tiles; near_tile++){ // and then the contents of that tile for (TiledJet * jetJ = (*near_tile)->head; jetJ != NULL; jetJ = jetJ->next) { if (jetJ->NN == tail) {jetJ->NN = jetA;} } } //for (int i = 0; i < n; i++) { // if (briefjets[i].NN-briefjets >= n && briefjets[i].NN != NULL) {cout <<"YOU MUST BE CRAZY for n ="< tile_union(3*n_tile_neighbours); // initialise the basic jet info for (int i = 0; i< n; i++) { _tj_set_jetinfo(jetA, i); //cout << i<<": "<tile_index<<"\n"; jetA++; // move on to next entry of briefjets } TiledJet * head = briefjets; // a nicer way of naming start // set up the initial nearest neighbour information vector::const_iterator tile; for (tile = _tiles.begin(); tile != _tiles.end(); tile++) { // first do it on this tile for (jetA = tile->head; jetA != NULL; jetA = jetA->next) { for (jetB = tile->head; jetB != jetA; jetB = jetB->next) { double dist = _bj_dist(jetA,jetB); if (dist < jetA->NN_dist) {jetA->NN_dist = dist; jetA->NN = jetB;} if (dist < jetB->NN_dist) {jetB->NN_dist = dist; jetB->NN = jetA;} } } // then do it for RH tiles for (Tile ** RTile = tile->RH_tiles; RTile != tile->end_tiles; RTile++) { for (jetA = tile->head; jetA != NULL; jetA = jetA->next) { for (jetB = (*RTile)->head; jetB != NULL; jetB = jetB->next) { double dist = _bj_dist(jetA,jetB); if (dist < jetA->NN_dist) {jetA->NN_dist = dist; jetA->NN = jetB;} if (dist < jetB->NN_dist) {jetB->NN_dist = dist; jetB->NN = jetA;} } } } // no need to do it for LH tiles, since they are implicitly done // when we set NN for both jetA and jetB on the RH tiles. } // now create the diJ (where J is i's NN) table -- remember that // we differ from standard normalisation here by a factor of R2 // (corrected for at the end). struct diJ_plus_link { double diJ; // the distance TiledJet * jet; // the jet (i) for which we've found this distance // (whose NN will the J). }; diJ_plus_link * diJ = new diJ_plus_link[n]; jetA = head; for (int i = 0; i < n; i++) { diJ[i].diJ = _bj_diJ(jetA); // kt distance * R^2 diJ[i].jet = jetA; // our compact diJ table will not be in jetA->diJ_posn = i; // one-to-one corresp. with non-compact jets, // so set up bi-directional correspondence here. jetA++; // have jetA follow i } // now run the recombination loop int history_location = n-1; while (n > 0) { // find the minimum of the diJ on this round diJ_plus_link * best, *stop; // pointers a bit faster than indices // could use best to keep track of diJ min, but it turns out to be // marginally faster to have a separate variable (avoids n // dereferences at the expense of n/2 assignments). double diJ_min = diJ[0].diJ; // initialise the best one here. best = diJ; // and here stop = diJ+n; for (diJ_plus_link * here = diJ+1; here != stop; here++) { if (here->diJ < diJ_min) {best = here; diJ_min = here->diJ;} } // do the recombination between A and B history_location++; jetA = best->jet; jetB = jetA->NN; // put the normalisation back in diJ_min *= _invR2; if (jetB != NULL) { // jet-jet recombination // If necessary relabel A & B to ensure jetB < jetA, that way if // the larger of them == newtail then that ends up being jetA and // the new jet that is added as jetB is inserted in a position that // has a future! if (jetA < jetB) {std::swap(jetA,jetB);} int nn; // new jet index _do_ij_recombination_step(jetA->_jets_index, jetB->_jets_index, diJ_min, nn); //OBS// get the two history indices //OBSint ihstry_a = _jets[jetA->_jets_index].cluster_hist_index(); //OBSint ihstry_b = _jets[jetB->_jets_index].cluster_hist_index(); //OBS// create the recombined jet //OBS_jets.push_back(_jets[jetA->_jets_index] + _jets[jetB->_jets_index]); //OBSint nn = _jets.size() - 1; //OBS_jets[nn].set_cluster_hist_index(history_location); //OBS// update history //OBS//cout <_jets_index, diJ_min); //OBSint ihstry_a = _jets[jetA->_jets_index].cluster_hist_index(); //OBS//cout <tile_index, tile_union, n_near_tiles); if (jetB != NULL) { if (jetB->tile_index != jetA->tile_index) { _add_untagged_neighbours_to_tile_union(jetB->tile_index, tile_union,n_near_tiles); } if (oldB.tile_index != jetA->tile_index && oldB.tile_index != jetB->tile_index) { _add_untagged_neighbours_to_tile_union(oldB.tile_index, tile_union,n_near_tiles); } } // now update our nearest neighbour info and diJ table // first reduce size of table n--; // then compactify the diJ by taking the last of the diJ and copying // it to the position occupied by the diJ for jetA diJ[n].jet->diJ_posn = jetA->diJ_posn; diJ[jetA->diJ_posn] = diJ[n]; // Initialise jetB's NN distance as well as updating it for // other particles. // Run over all tiles in our union for (int itile = 0; itile < n_near_tiles; itile++) { Tile * tile_ptr = &_tiles[tile_union[itile]]; tile_ptr->tagged = false; // reset tag, since we're done with unions // run over all jets in the current tile for (TiledJet * jetI = tile_ptr->head; jetI != NULL; jetI = jetI->next) { // see if jetI had jetA or jetB as a NN -- if so recalculate the NN if (jetI->NN == jetA || (jetI->NN == jetB && jetB != NULL)) { jetI->NN_dist = _R2; jetI->NN = NULL; // now go over tiles that are neighbours of I (include own tile) for (Tile ** near_tile = tile_ptr->begin_tiles; near_tile != tile_ptr->end_tiles; near_tile++) { // and then over the contents of that tile for (TiledJet * jetJ = (*near_tile)->head; jetJ != NULL; jetJ = jetJ->next) { double dist = _bj_dist(jetI,jetJ); if (dist < jetI->NN_dist && jetJ != jetI) { jetI->NN_dist = dist; jetI->NN = jetJ; } } } diJ[jetI->diJ_posn].diJ = _bj_diJ(jetI); // update diJ kt-dist } // check whether new jetB is closer than jetI's current NN and // if jetI is closer than jetB's current (evolving) nearest // neighbour. Where relevant update things if (jetB != NULL) { double dist = _bj_dist(jetI,jetB); if (dist < jetI->NN_dist) { if (jetI != jetB) { jetI->NN_dist = dist; jetI->NN = jetB; diJ[jetI->diJ_posn].diJ = _bj_diJ(jetI); // update diJ... } } if (dist < jetB->NN_dist) { if (jetI != jetB) { jetB->NN_dist = dist; jetB->NN = jetI;} } } } } // finally, register the updated kt distance for B if (jetB != NULL) {diJ[jetB->diJ_posn].diJ = _bj_diJ(jetB);} } // final cleaning up; delete[] diJ; delete[] briefjets; } //---------------------------------------------------------------------- /// run a tiled clustering, with our minheap for keeping track of the /// smallest dij void ClusterSequence::_minheap_faster_tiled_N2_cluster() { _initialise_tiles(); int n = _jets.size(); TiledJet * briefjets = new TiledJet[n]; TiledJet * jetA = briefjets, * jetB; TiledJet oldB; oldB.tile_index=0; // prevents a gcc warning // will be used quite deep inside loops, but declare it here so that // memory (de)allocation gets done only once vector tile_union(3*n_tile_neighbours); // initialise the basic jet info for (int i = 0; i< n; i++) { _tj_set_jetinfo(jetA, i); //cout << i<<": "<tile_index<<"\n"; jetA++; // move on to next entry of briefjets } TiledJet * head = briefjets; // a nicer way of naming start // set up the initial nearest neighbour information vector::const_iterator tile; for (tile = _tiles.begin(); tile != _tiles.end(); tile++) { // first do it on this tile for (jetA = tile->head; jetA != NULL; jetA = jetA->next) { for (jetB = tile->head; jetB != jetA; jetB = jetB->next) { double dist = _bj_dist(jetA,jetB); if (dist < jetA->NN_dist) {jetA->NN_dist = dist; jetA->NN = jetB;} if (dist < jetB->NN_dist) {jetB->NN_dist = dist; jetB->NN = jetA;} } } // then do it for RH tiles for (Tile ** RTile = tile->RH_tiles; RTile != tile->end_tiles; RTile++) { for (jetA = tile->head; jetA != NULL; jetA = jetA->next) { for (jetB = (*RTile)->head; jetB != NULL; jetB = jetB->next) { double dist = _bj_dist(jetA,jetB); if (dist < jetA->NN_dist) {jetA->NN_dist = dist; jetA->NN = jetB;} if (dist < jetB->NN_dist) {jetB->NN_dist = dist; jetB->NN = jetA;} } } } // no need to do it for LH tiles, since they are implicitly done // when we set NN for both jetA and jetB on the RH tiles. } //// now create the diJ (where J is i's NN) table -- remember that //// we differ from standard normalisation here by a factor of R2 //// (corrected for at the end). //struct diJ_plus_link { // double diJ; // the distance // TiledJet * jet; // the jet (i) for which we've found this distance // // (whose NN will the J). //}; //diJ_plus_link * diJ = new diJ_plus_link[n]; //jetA = head; //for (int i = 0; i < n; i++) { // diJ[i].diJ = _bj_diJ(jetA); // kt distance * R^2 // diJ[i].jet = jetA; // our compact diJ table will not be in // jetA->diJ_posn = i; // one-to-one corresp. with non-compact jets, // // so set up bi-directional correspondence here. // jetA++; // have jetA follow i //} vector diJs(n); for (int i = 0; i < n; i++) { diJs[i] = _bj_diJ(&briefjets[i]); briefjets[i].label_minheap_update_done(); } MinHeap minheap(diJs); // have a stack telling us which jets we'll have to update on the heap vector jets_for_minheap; jets_for_minheap.reserve(n); // now run the recombination loop int history_location = n-1; while (n > 0) { double diJ_min = minheap.minval() *_invR2; jetA = head + minheap.minloc(); // do the recombination between A and B history_location++; jetB = jetA->NN; if (jetB != NULL) { // jet-jet recombination // If necessary relabel A & B to ensure jetB < jetA, that way if // the larger of them == newtail then that ends up being jetA and // the new jet that is added as jetB is inserted in a position that // has a future! if (jetA < jetB) {std::swap(jetA,jetB);} int nn; // new jet index _do_ij_recombination_step(jetA->_jets_index, jetB->_jets_index, diJ_min, nn); // what was jetB will now become the new jet _bj_remove_from_tiles(jetA); oldB = * jetB; // take a copy because we will need it... _bj_remove_from_tiles(jetB); _tj_set_jetinfo(jetB, nn); // cause jetB to become _jets[nn] // (also registers the jet in the tiling) } else { // jet-beam recombination // get the hist_index _do_iB_recombination_step(jetA->_jets_index, diJ_min); _bj_remove_from_tiles(jetA); } // remove the minheap entry for jetA minheap.remove(jetA-head); // first establish the set of tiles over which we are going to // have to run searches for updated and new nearest-neighbours -- // basically a combination of vicinity of the tiles of the two old // and one new jet. int n_near_tiles = 0; _add_untagged_neighbours_to_tile_union(jetA->tile_index, tile_union, n_near_tiles); if (jetB != NULL) { if (jetB->tile_index != jetA->tile_index) { _add_untagged_neighbours_to_tile_union(jetB->tile_index, tile_union,n_near_tiles); } if (oldB.tile_index != jetA->tile_index && oldB.tile_index != jetB->tile_index) { // GS: the line below generates a warning that oldB.tile_index // may be used uninitialised. However, to reach this point, we // ned jetB != NULL (see test a few lines above) and is jetB // !=NULL, one would have gone through "oldB = *jetB before // (see piece of code ~20 line above), so the index is // initialised. We do not do anything to avoid the warning to // avoid any potential speed impact. _add_untagged_neighbours_to_tile_union(oldB.tile_index, tile_union,n_near_tiles); } // indicate that we'll have to update jetB in the minheap jetB->label_minheap_update_needed(); jets_for_minheap.push_back(jetB); } // Initialise jetB's NN distance as well as updating it for // other particles. // Run over all tiles in our union for (int itile = 0; itile < n_near_tiles; itile++) { Tile * tile_ptr = &_tiles[tile_union[itile]]; tile_ptr->tagged = false; // reset tag, since we're done with unions // run over all jets in the current tile for (TiledJet * jetI = tile_ptr->head; jetI != NULL; jetI = jetI->next) { // see if jetI had jetA or jetB as a NN -- if so recalculate the NN if (jetI->NN == jetA || (jetI->NN == jetB && jetB != NULL)) { jetI->NN_dist = _R2; jetI->NN = NULL; // label jetI as needing heap action... if (!jetI->minheap_update_needed()) { jetI->label_minheap_update_needed(); jets_for_minheap.push_back(jetI);} // now go over tiles that are neighbours of I (include own tile) for (Tile ** near_tile = tile_ptr->begin_tiles; near_tile != tile_ptr->end_tiles; near_tile++) { // and then over the contents of that tile for (TiledJet * jetJ = (*near_tile)->head; jetJ != NULL; jetJ = jetJ->next) { double dist = _bj_dist(jetI,jetJ); if (dist < jetI->NN_dist && jetJ != jetI) { jetI->NN_dist = dist; jetI->NN = jetJ; } } } } // check whether new jetB is closer than jetI's current NN and // if jetI is closer than jetB's current (evolving) nearest // neighbour. Where relevant update things if (jetB != NULL) { double dist = _bj_dist(jetI,jetB); if (dist < jetI->NN_dist) { if (jetI != jetB) { jetI->NN_dist = dist; jetI->NN = jetB; // label jetI as needing heap action... if (!jetI->minheap_update_needed()) { jetI->label_minheap_update_needed(); jets_for_minheap.push_back(jetI);} } } if (dist < jetB->NN_dist) { if (jetI != jetB) { jetB->NN_dist = dist; jetB->NN = jetI;} } } } } // deal with jets whose minheap entry needs updating while (jets_for_minheap.size() > 0) { TiledJet * jetI = jets_for_minheap.back(); jets_for_minheap.pop_back(); minheap.update(jetI-head, _bj_diJ(jetI)); jetI->label_minheap_update_done(); } n--; } // final cleaning up; delete[] briefjets; } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/AreaDefinition.cc0000644000175000017500000000514611766120140017215 0ustar sunsun//STARTHEADER // $Id: AreaDefinition.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/AreaDefinition.hh" #include #include using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh string VoronoiAreaSpec::description() const { ostringstream ostr; ostr << "Voronoi area with effective_Rfact = " << effective_Rfact() ; return ostr.str(); } //---------------------------------------------------------------------- /// return info about the type of area being used by this defn string AreaDefinition::description() const { ostringstream ostr; switch(area_type()) { case active_area: ostr << "Active area (hidden ghosts) with " ; ostr << ghost_spec().description(); break; case active_area_explicit_ghosts: ostr << "Active area (explicit ghosts) with " ; ostr << ghost_spec().description(); break; case one_ghost_passive_area: ostr << "Passive area (one ghost at a time) with " ; ostr << ghost_spec().description(); break; case passive_area: ostr << "Passive area (optimal alg. based on jet.def.), where relevant with " ; ostr << ghost_spec().description() ; break; case voronoi_area: ostr << voronoi_spec().description(); break; default: cerr << "Error: unrecognized area_type in AreaDefinition::description():" << area_type() << endl; exit(-1); } return ostr.str(); } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/src/FunctionOfPseudoJet.cc0000644000175000017500000001266711766120140020237 0ustar sunsun//STARTHEADER // $Id: FunctionOfPseudoJet.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include using namespace std; FASTJET_BEGIN_NAMESPACE // //---------------------------------------------------------------------- // /// helper for the selector "FunctionOfPJ(jet) > ref" // class SW_FofPJ_larger : public SelectorWorker { // public: // /// ctor with specification of the number of objects to keep // SW_FofPJ_larger(const FunctionOfPseudoJet & fn, const double &ref) // : _fn(fn), _ref(ref){} // // /// return true if the jet is a pure-ghost jet // virtual bool pass(const PseudoJet & jet) const { return _fn(jet) > _ref; } // // /// returns a description of the worker // virtual string description() const { // ostringstream oss; // oss << "(" << _fn.description() << " > " << _ref << ")"; // return oss.str(); // } // // protected: // const FunctionOfPseudoJet & _fn; // double _ref; // }; // // // // select objects that are (or are only made of) ghosts // Selector operator >(const FunctionOfPseudoJet & fn, const double & ref){ // return Selector(new SW_FofPJ_larger(fn, ref)); // } // // // // //---------------------------------------------------------------------- // /// helper for the selector "FunctionOfPJ(jet) < ref" // class SW_FofPJ_smaller : public SelectorWorker { // public: // /// ctor with specification of the number of objects to keep // SW_FofPJ_smaller(const FunctionOfPseudoJet & fn, const double &ref) // : _fn(fn), _ref(ref){} // // /// return true if the jet is a pure-ghost jet // virtual bool pass(const PseudoJet & jet) const { return _fn(jet) < _ref; } // // /// returns a description of the worker // virtual string description() const { // ostringstream oss; // oss << "(" << _fn.description() << " < " << _ref << ")"; // return oss.str(); // } // // protected: // const FunctionOfPseudoJet & _fn; // double _ref; // }; // // // // select objects that are (or are only made of) ghosts // Selector operator <(const FunctionOfPseudoJet & fn, const double & ref){ // return Selector(new SW_FofPJ_smaller(fn, ref)); // } // // // //---------------------------------------------------------------------- // /// helper for the selector "FunctionOfPJ(jet) >= ref" // class SW_FofPJ_larger_equal : public SelectorWorker { // public: // /// ctor with specification of the number of objects to keep // SW_FofPJ_larger_equal(const FunctionOfPseudoJet & fn, const double &ref) // : _fn(fn), _ref(ref){} // // /// return true if the jet is a pure-ghost jet // virtual bool pass(const PseudoJet & jet) const { return _fn(jet) >= _ref; } // // /// returns a description of the worker // virtual string description() const { // ostringstream oss; // oss << "(" << _fn.description() << " >= " << _ref << ")"; // return oss.str(); // } // // protected: // const FunctionOfPseudoJet & _fn; // double _ref; // }; // // // // select objects that are (or are only made of) ghosts // Selector operator >=(const FunctionOfPseudoJet & fn, const double & ref){ // return Selector(new SW_FofPJ_larger_equal(fn, ref)); // } // // // // //---------------------------------------------------------------------- // /// helper for the selector "FunctionOfPJ(jet) <= ref" // class SW_FofPJ_smaller_equal : public SelectorWorker { // public: // /// ctor with specification of the number of objects to keep // SW_FofPJ_smaller_equal(const FunctionOfPseudoJet & fn, const double &ref) // : _fn(fn), _ref(ref){} // // /// return true if the jet is a pure-ghost jet // virtual bool pass(const PseudoJet & jet) const { return _fn(jet) <= _ref; } // // /// returns a description of the worker // virtual string description() const { // ostringstream oss; // oss << "(" << _fn.description() << " <= " << _ref << ")"; // return oss.str(); // } // // protected: // const FunctionOfPseudoJet & _fn; // double _ref; // }; // // // // select objects that are (or are only made of) ghosts // Selector operator <=(const FunctionOfPseudoJet & fn, const double & ref){ // return Selector(new SW_FofPJ_smaller_equal(fn, ref)); // } // FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/DnnPlane.cc0000644000175000017500000003475211766120140016040 0ustar sunsun//STARTHEADER // $Id: DnnPlane.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef DROP_CGAL // in case we do not have the code for CGAL #include #include #include "fastjet/internal/DnnPlane.hh" using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// Initialiser from a set of points on an Eta-Phi plane, where both /// eta and phi can have arbitrary ranges DnnPlane::DnnPlane(const vector & input_points, const bool & verbose ) { _verbose = verbose; int n = input_points.size(); // construct Voronoi diagram in such a way as to get the vertex handles // and remember to set CGAL info with the index of the vertex SuperVertex sv; for (int i = 0; i < n; i++) { sv.vertex = _TR.insert(Point(input_points[i].first, input_points[i].second)); // we are not up to dealing with coincident vertices, so make // sure the user knows! _CrashIfVertexPresent(sv.vertex, i); // we need to assicate an index to each vertex -- thus when we get // a vertex (e.g. as a nearest neighbour) from CGAL, we will be // able to figure out which particle it corresponded to. sv.vertex->info() = i; _supervertex.push_back(sv); } // label infinite vertex info with negative index _TR.infinite_vertex()->info() = INFINITE_VERTEX; // set up the structure that holds nearest distances and neighbours for (int j = 0; j < n; j++) {_SetNearest(j);} } //---------------------------------------------------------------------- /// Crashes if the given vertex handle already exists. Otherwise /// it does the bookkeeping for future such tests void DnnPlane::_CrashIfVertexPresent( const Vertex_handle & vertex, const int & its_index) { if (!_crash_on_coincidence) return; // vertices that do not have the same geometric position as any // other vertex so far added have info().val() == NEW_VERTEX -- this // is ensured by the InitialisedInt class, which forms the "info" // part of our // CGAL::Triangulation_vertex_base_with_info_2 // // If the vertex coincides with one that already exists, then // info().val() it's info().val() will have been updated (in // DNN:DNN) to be equal to a vertex "index". if (vertex->info().val() != NEW_VERTEX) { ostringstream err; err << "ERROR in DnnPlane::_CrashIfVertexPresent" <info().val() << endl; throw DnnError(err.str()); } } //---------------------------------------------------------------------- /// remove the points labelled by the vector indices_to_remove, and /// add the points specified by the vector points_to_add /// (corresponding indices will be calculated automatically); the /// idea behind this routine is that the points to be added will /// somehow be close to the one or other of the points being removed /// and this can be used by the implementation to provide hints for /// inserting the new points in whatever structure it is using. In a /// kt-algorithm the points being added will be a result of a /// combination of the points to be removed -- hence the proximity /// is (more or less) guaranteed. void DnnPlane::RemoveAndAddPoints( const vector & indices_to_remove, const vector & points_to_add, vector & indices_added, vector & indices_of_updated_neighbours) { // build set of UNION of Voronoi neighbours of a pair of nearest // neighbours set NeighbourUnion; // later on it will be convenient to have access to a set (rather // than vector) of indices being removed set indices_removed; // for each of the indices to be removed add the voronoi neighbourhood to // the NeighbourUnion set. for (size_t ir = 0; ir < indices_to_remove.size(); ir++) { int index = indices_to_remove[ir]; indices_removed.insert(index); if (_verbose) cout << " Starting RemoveAndAddPoints" << endl; if (_verbose) cout << " point " << index << endl; // have a circulators that will go round the Voronoi neighbours of // _supervertex[index1].vertex Vertex_circulator vc = _TR.incident_vertices(_supervertex[index].vertex); Vertex_circulator done = vc; do { // if a neighbouring vertex not the infinite vertex, then add it // to our union of neighbouring vertices. if (_verbose) cout << "examining " << vc->info().val() << endl; if (vc->info().val() != INFINITE_VERTEX) { // NB: from it=1 onwards occasionally it might already have // been inserted -- but double insertion still leaves only one // copy in the set, so there's no problem NeighbourUnion.insert(vc->info().val()); if (_verbose) cout << "inserted " << vc->info().val() << endl; } } while (++vc != done); } if (_verbose) { set::iterator it = NeighbourUnion.begin(); cout << "Union of neighbours of combined points" << endl; for ( ; it != NeighbourUnion.end(); ++it ) { cout << *it << endl; } } // update set, triangulation and supervertex info for (size_t ir = 0; ir < indices_to_remove.size(); ir++) { int index = indices_to_remove[ir]; // NeighbourUnion should not contain the points to be removed // (because later we will assume they still exist). NeighbourUnion.erase(indices_to_remove[ir]); // points to be removed should also be eliminated from the // triangulation and the supervertex structure should be updated // to reflect the fact that the points are no longer valid. _TR.remove(_supervertex[index].vertex); _supervertex[index].vertex = NULL; } // add new point: give a "hint" to the inserter that // the new point should be added close to old points -- the easiest way // of getting this is to take a point from the NeighbourUnion AFTER we have // removed point1, point2, and to get one of its incident faces. // // This hinting improves speed by c. 25% for 10^4 points because it // avoids the need for a costly (sqrt{N}) location step (at least // with a non-hierarchical triangulation -- with a hierarchical one, // this step could be done away with, though there will still be a // cost of O(ln N) to pay. // // For some reason inserting the point before the two removals // slows things down by c. 25%. This importance of the order // is not understood. // // At some point it might be worth trying to select the "nearest" // of the various points in the neighbour union to avoid large // steps in cases where we have 0..2pi periodicity and the first member // of the neighbour union happens to be on the wrong side. Face_handle face; if (indices_to_remove.size() > 0) { // face can only be found if there were points to remove in first place face = _TR.incident_faces( _supervertex[*NeighbourUnion.begin()].vertex);} // make sure the output arrays are empty indices_added.clear(); indices_of_updated_neighbours.clear(); for (size_t ia = 0; ia < points_to_add.size(); ia++) { SuperVertex sv; _supervertex.push_back(sv); int index = _supervertex.size()-1; indices_added.push_back(index); if (indices_to_remove.size() > 0) { // be careful of using face (for location hinting) only when it exists _supervertex[index].vertex = _TR.insert(Point(points_to_add[ia].first, points_to_add[ia].second),face);} else { _supervertex[index].vertex = _TR.insert(Point(points_to_add[ia].first, points_to_add[ia].second)); } // we are not up to dealing with coincident vertices, so make // sure the user knows! _CrashIfVertexPresent(_supervertex[index].vertex, index); _supervertex[index].vertex->info() = index; // first find nearest neighbour of "newpoint" (shorthand for // _supervertex[index].vertex); while we're at it, for each of the // voronoi neighbours, "D", of newpoint, examine whether newpoint is // closer to "D" than D's current nearest neighbour -- when this // occurs, put D into indices_of_updated_neighbours. // // manually put newpoint on indices_of_updated_neighbours indices_of_updated_neighbours.push_back(index); _SetAndUpdateNearest(index, indices_of_updated_neighbours); } // for Voronoi neighbours j of any of the removed points for which // one of those removed points was the nearest neighbour, // redetermine the nearest neighbour of j and add j onto the vector // of indices_of_updated_neighbours. set::iterator it2 = NeighbourUnion.begin(); for ( ; it2 != NeighbourUnion.end(); ++it2 ) { int j = *it2; // the if avoids the vertex at infinity, which gets a negative index if( j != INFINITE_VERTEX ) { // this is where we check if the nearest neighbour of j was one // of the removed points if (indices_removed.count(_supervertex[j].NNindex)) { if (_verbose) cout << "j " << j << endl; _SetNearest(j); indices_of_updated_neighbours.push_back(j); if (_verbose) cout << "NN of " << j << " : " << _supervertex[j].NNindex << ", dist = " << _supervertex[j].NNdistance <info().val() != INFINITE_VERTEX) { // find distance between j and its Voronoi neighbour (vc) if (_verbose) cout << current->info().val() << " " << vc->info().val() << endl; dist = _euclid_distance(current->point(), vc->point()); // check if j is closer to vc than vc's currently registered // nearest neighbour (and update things if it is) if (dist < mindist) { mindist = dist; nearest = vc; if (_verbose) cout << "nearer "; } if (_verbose) cout << vc->point() << "; "<< dist << endl; } } while (++vc != done); // move on to next Voronoi neighbour // set j's supervertex info about nearest neighbour _supervertex[j].NNindex = nearest->info().val(); _supervertex[j].NNdistance = mindist; } //---------------------------------------------------------------------- /// Determines and stores the nearest neighbour of j, and where /// necessary update the nearest-neighbour info of Voronoi neighbours /// of j; /// /// For each voronoi neighbour D of j if the distance between j and D /// is less than D's own nearest neighbour, then update the /// nearest-neighbour info in D; push D's index onto /// indices_of_updated_neighbours /// /// Note that j is NOT pushed onto indices_of_updated_neighbours -- /// if you want it there, put it there yourself. /// /// NB: note that we have _SetAndUpdateNearest as a completely /// separate routine from _SetNearest because we want to /// use one single ciruclation over voronoi neighbours to find the /// nearest neighbour and to update the voronoi neighbours if need /// be. void DnnPlane::_SetAndUpdateNearest( const int & j, vector & indices_of_updated_neighbours) { Vertex_handle current = _supervertex[j].vertex; Vertex_circulator vc = _TR.incident_vertices(current); Vertex_circulator done = vc; double dist; double mindist = HUGE_DOUBLE; // change this to "HUGE" or max_double? Vertex_handle nearest = _TR.infinite_vertex(); // when there is only one finite point left in the triangulation, // there are no triangles. Presumably this is why voronoi returns // NULL for the incident vertex circulator. Check if this is // happening before circulating over it... (Otherwise it crashes // when looking for neighbours of last point) if (vc != NULL) do { if (vc->info().val() != INFINITE_VERTEX) { if (_verbose) cout << current->info().val() << " " << vc->info().val() << endl; // find distance between j and its Voronoi neighbour (vc) dist = _euclid_distance(current->point(), vc->point()); // update the mindist if we are closer than anything found so far if (dist < mindist) { mindist = dist; nearest = vc; if (_verbose) cout << "nearer "; } // find index corresponding to vc for easy manipulation int vcindx = vc->info().val(); if (_verbose) cout << vc->point() << "; "<< dist << endl; // check if j is closer to vc than vc's currently registered // nearest neighbour (and update things if it is) if (dist < _supervertex[vcindx].NNdistance) { if (_verbose) cout << vcindx << "'s NN becomes " << current->info().val() << endl; _supervertex[vcindx].NNdistance = dist; _supervertex[vcindx].NNindex = j; indices_of_updated_neighbours.push_back(vcindx); } } } while (++vc != done); // move on to next Voronoi neighbour // set j's supervertex info about nearest neighbour _supervertex[j].NNindex = nearest->info().val(); _supervertex[j].NNdistance = mindist; } FASTJET_END_NAMESPACE #endif // DROP_CGAL fastjet-3.0.6+dfsg.orig/src/makefile.static0000644000175000017500000004105611766120140017013 0ustar sunsun# fastjet/src/makefile.static # include the Makefile in the top directory, which has the bits and pieces # needed to get CGAL working include ../makefile.static # make sure we use the pedantic flags here (defined in ../Makefile) #CXXFLAGS += $(CXXPEDANTIC) FASTJET_INCLUDE = -I../include INCLUDE += $(FASTJET_INCLUDE) #INCLUDE = SRCS = DnnPlane.cc Dnn4piCylinder.cc Dnn3piCylinder.cc Dnn2piCylinder.cc ClusterSequence.cc PseudoJet.cc ClusterSequence_N2.cc ClusterSequence_TiledN2.cc ClusterSequence_Delaunay.cc ClusterSequence_DumbN3.cc ClusterSequence_CP2DChan.cc ClosestPair2D.cc MinHeap.cc ClusterSequenceAreaBase.cc ClusterSequenceActiveAreaExplicitGhosts.cc GhostedAreaSpec.cc ClusterSequenceActiveArea.cc Voronoi.cc ClusterSequenceVoronoiArea.cc ClusterSequencePassiveArea.cc ClusterSequence1GhostPassiveArea.cc BasicRandom.cc JetDefinition.cc Error.cc AreaDefinition.cc RangeDefinition.cc ClusterSequenceArea.cc OBJS = $(patsubst %.cc,%.o,$(SRCS)) all: libfastjet.a libfastjet.a: $(OBJS) ar cru libfastjet.a $(OBJS) ranlib libfastjet.a # generate the config_auto.h file ../include/fastjet/config_auto.h: ../configure.ac genconfig.sh ./genconfig.sh install: libfastjet.a ../install-sh libfastjet.a ../lib/libfastjet.a # cp -p libfastjet.a ../lib/ clean: rm -f $(OBJS) libfastjet.a depend: makedepend -f makefile.static $(FASTJET_INCLUDE) -Y -- -- $(SRCS) # DO NOT DELETE DnnPlane.o: ../include/fastjet/internal/DnnPlane.hh DnnPlane.o: ../include/fastjet/internal/Triangulation.hh DnnPlane.o: ../include/fastjet/internal/base.hh DnnPlane.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh DnnPlane.o: ../include/fastjet/internal/numconsts.hh Dnn4piCylinder.o: ../include/fastjet/internal/Dnn4piCylinder.hh Dnn4piCylinder.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh Dnn4piCylinder.o: ../include/fastjet/internal/numconsts.hh Dnn4piCylinder.o: ../include/fastjet/internal/base.hh Dnn4piCylinder.o: ../include/fastjet/internal/DnnPlane.hh Dnn4piCylinder.o: ../include/fastjet/internal/Triangulation.hh Dnn3piCylinder.o: ../include/fastjet/internal/Dnn3piCylinder.hh Dnn3piCylinder.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh Dnn3piCylinder.o: ../include/fastjet/internal/numconsts.hh Dnn3piCylinder.o: ../include/fastjet/internal/base.hh Dnn3piCylinder.o: ../include/fastjet/internal/DnnPlane.hh Dnn3piCylinder.o: ../include/fastjet/internal/Triangulation.hh Dnn2piCylinder.o: ../include/fastjet/internal/Dnn2piCylinder.hh Dnn2piCylinder.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh Dnn2piCylinder.o: ../include/fastjet/internal/numconsts.hh Dnn2piCylinder.o: ../include/fastjet/internal/base.hh Dnn2piCylinder.o: ../include/fastjet/internal/DnnPlane.hh Dnn2piCylinder.o: ../include/fastjet/internal/Triangulation.hh ClusterSequence.o: ../include/fastjet/Error.hh ClusterSequence.o: ../include/fastjet/internal/base.hh ClusterSequence.o: ../include/fastjet/PseudoJet.hh ClusterSequence.o: ../include/fastjet/internal/numconsts.hh ClusterSequence.o: ../include/fastjet/ClusterSequence.hh ClusterSequence.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequence.o: ../include/fastjet/JetDefinition.hh ClusterSequence.o: ../include/fastjet/version.hh ../include/fastjet/config.h ClusterSequence.o: ../include/fastjet/config_auto.h PseudoJet.o: ../include/fastjet/Error.hh ../include/fastjet/internal/base.hh PseudoJet.o: ../include/fastjet/PseudoJet.hh PseudoJet.o: ../include/fastjet/internal/numconsts.hh ClusterSequence_N2.o: ../include/fastjet/PseudoJet.hh ClusterSequence_N2.o: ../include/fastjet/internal/numconsts.hh ClusterSequence_N2.o: ../include/fastjet/internal/base.hh ClusterSequence_N2.o: ../include/fastjet/ClusterSequence.hh ClusterSequence_N2.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequence_N2.o: ../include/fastjet/Error.hh ClusterSequence_N2.o: ../include/fastjet/JetDefinition.hh ClusterSequence_TiledN2.o: ../include/fastjet/PseudoJet.hh ClusterSequence_TiledN2.o: ../include/fastjet/internal/numconsts.hh ClusterSequence_TiledN2.o: ../include/fastjet/internal/base.hh ClusterSequence_TiledN2.o: ../include/fastjet/ClusterSequence.hh ClusterSequence_TiledN2.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequence_TiledN2.o: ../include/fastjet/Error.hh ClusterSequence_TiledN2.o: ../include/fastjet/JetDefinition.hh ClusterSequence_TiledN2.o: ../include/fastjet/internal/MinHeap.hh ClusterSequence_Delaunay.o: ../include/fastjet/Error.hh ClusterSequence_Delaunay.o: ../include/fastjet/internal/base.hh ClusterSequence_Delaunay.o: ../include/fastjet/PseudoJet.hh ClusterSequence_Delaunay.o: ../include/fastjet/internal/numconsts.hh ClusterSequence_Delaunay.o: ../include/fastjet/ClusterSequence.hh ClusterSequence_Delaunay.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequence_Delaunay.o: ../include/fastjet/JetDefinition.hh ClusterSequence_Delaunay.o: ../include/fastjet/internal/Dnn4piCylinder.hh ClusterSequence_Delaunay.o: ../include/fastjet/internal/DnnPlane.hh ClusterSequence_Delaunay.o: ../include/fastjet/internal/Triangulation.hh ClusterSequence_Delaunay.o: ../include/fastjet/internal/Dnn3piCylinder.hh ClusterSequence_Delaunay.o: ../include/fastjet/internal/Dnn2piCylinder.hh ClusterSequence_DumbN3.o: ../include/fastjet/PseudoJet.hh ClusterSequence_DumbN3.o: ../include/fastjet/internal/numconsts.hh ClusterSequence_DumbN3.o: ../include/fastjet/internal/base.hh ClusterSequence_DumbN3.o: ../include/fastjet/ClusterSequence.hh ClusterSequence_DumbN3.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequence_DumbN3.o: ../include/fastjet/Error.hh ClusterSequence_DumbN3.o: ../include/fastjet/JetDefinition.hh ClusterSequence_CP2DChan.o: ../include/fastjet/ClusterSequence.hh ClusterSequence_CP2DChan.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequence_CP2DChan.o: ../include/fastjet/internal/numconsts.hh ClusterSequence_CP2DChan.o: ../include/fastjet/internal/base.hh ClusterSequence_CP2DChan.o: ../include/fastjet/PseudoJet.hh ClusterSequence_CP2DChan.o: ../include/fastjet/Error.hh ClusterSequence_CP2DChan.o: ../include/fastjet/JetDefinition.hh ClusterSequence_CP2DChan.o: ../include/fastjet/internal/ClosestPair2D.hh ClusterSequence_CP2DChan.o: ../include/fastjet/internal/ClosestPair2DBase.hh ClusterSequence_CP2DChan.o: ../include/fastjet/internal/SearchTree.hh ClusterSequence_CP2DChan.o: ../include/fastjet/internal/MinHeap.hh ClosestPair2D.o: ../include/fastjet/internal/ClosestPair2D.hh ClosestPair2D.o: ../include/fastjet/internal/ClosestPair2DBase.hh ClosestPair2D.o: ../include/fastjet/internal/base.hh ClosestPair2D.o: ../include/fastjet/internal/SearchTree.hh ClosestPair2D.o: ../include/fastjet/internal/MinHeap.hh MinHeap.o: ../include/fastjet/internal/MinHeap.hh MinHeap.o: ../include/fastjet/internal/base.hh ClusterSequenceAreaBase.o: ../include/fastjet/ClusterSequenceAreaBase.hh ClusterSequenceAreaBase.o: ../include/fastjet/ClusterSequence.hh ClusterSequenceAreaBase.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequenceAreaBase.o: ../include/fastjet/internal/numconsts.hh ClusterSequenceAreaBase.o: ../include/fastjet/internal/base.hh ClusterSequenceAreaBase.o: ../include/fastjet/PseudoJet.hh ClusterSequenceAreaBase.o: ../include/fastjet/Error.hh ClusterSequenceAreaBase.o: ../include/fastjet/JetDefinition.hh ClusterSequenceAreaBase.o: ../include/fastjet/internal/LimitedWarning.hh ClusterSequenceAreaBase.o: ../include/fastjet/RangeDefinition.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/PseudoJet.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/internal/numconsts.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/internal/base.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/ClusterSequenceAreaBase.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/ClusterSequence.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/Error.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/JetDefinition.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/internal/LimitedWarning.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/RangeDefinition.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/GhostedAreaSpec.hh ClusterSequenceActiveAreaExplicitGhosts.o: ../include/fastjet/internal/BasicRandom.hh GhostedAreaSpec.o: ../include/fastjet/GhostedAreaSpec.hh GhostedAreaSpec.o: ../include/fastjet/PseudoJet.hh GhostedAreaSpec.o: ../include/fastjet/internal/numconsts.hh GhostedAreaSpec.o: ../include/fastjet/internal/base.hh GhostedAreaSpec.o: ../include/fastjet/internal/BasicRandom.hh ClusterSequenceActiveArea.o: ../include/fastjet/PseudoJet.hh ClusterSequenceActiveArea.o: ../include/fastjet/internal/numconsts.hh ClusterSequenceActiveArea.o: ../include/fastjet/internal/base.hh ClusterSequenceActiveArea.o: ../include/fastjet/ClusterSequence.hh ClusterSequenceActiveArea.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequenceActiveArea.o: ../include/fastjet/Error.hh ClusterSequenceActiveArea.o: ../include/fastjet/JetDefinition.hh ClusterSequenceActiveArea.o: ../include/fastjet/ClusterSequenceActiveArea.hh ClusterSequenceActiveArea.o: ../include/fastjet/ClusterSequenceAreaBase.hh ClusterSequenceActiveArea.o: ../include/fastjet/internal/LimitedWarning.hh ClusterSequenceActiveArea.o: ../include/fastjet/RangeDefinition.hh ClusterSequenceActiveArea.o: ../include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh ClusterSequenceActiveArea.o: ../include/fastjet/GhostedAreaSpec.hh ClusterSequenceActiveArea.o: ../include/fastjet/internal/BasicRandom.hh ClusterSequenceActiveArea.o: ../include/fastjet/ActiveAreaSpec.hh ClusterSequenceActiveArea.o: ../include/fastjet/ClusterSequenceWithArea.hh Voronoi.o: ../include/fastjet/internal/Voronoi.hh Voronoi.o: ../include/fastjet/ClusterSequenceWithArea.hh Voronoi.o: ../include/fastjet/ClusterSequenceAreaBase.hh Voronoi.o: ../include/fastjet/ClusterSequence.hh Voronoi.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh Voronoi.o: ../include/fastjet/internal/numconsts.hh Voronoi.o: ../include/fastjet/internal/base.hh Voronoi.o: ../include/fastjet/PseudoJet.hh ../include/fastjet/Error.hh Voronoi.o: ../include/fastjet/JetDefinition.hh Voronoi.o: ../include/fastjet/internal/LimitedWarning.hh Voronoi.o: ../include/fastjet/RangeDefinition.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/ClusterSequenceVoronoiArea.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/PseudoJet.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/internal/numconsts.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/internal/base.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/AreaDefinition.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/GhostedAreaSpec.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/internal/BasicRandom.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/ClusterSequenceAreaBase.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/ClusterSequence.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/Error.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/JetDefinition.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/internal/LimitedWarning.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/RangeDefinition.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/internal/Voronoi.hh ClusterSequenceVoronoiArea.o: ../include/fastjet/ClusterSequenceWithArea.hh ClusterSequencePassiveArea.o: ../include/fastjet/ClusterSequencePassiveArea.hh ClusterSequencePassiveArea.o: ../include/fastjet/PseudoJet.hh ClusterSequencePassiveArea.o: ../include/fastjet/internal/numconsts.hh ClusterSequencePassiveArea.o: ../include/fastjet/internal/base.hh ClusterSequencePassiveArea.o: ../include/fastjet/ClusterSequence1GhostPassiveArea.hh ClusterSequencePassiveArea.o: ../include/fastjet/ClusterSequenceAreaBase.hh ClusterSequencePassiveArea.o: ../include/fastjet/ClusterSequence.hh ClusterSequencePassiveArea.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequencePassiveArea.o: ../include/fastjet/Error.hh ClusterSequencePassiveArea.o: ../include/fastjet/JetDefinition.hh ClusterSequencePassiveArea.o: ../include/fastjet/internal/LimitedWarning.hh ClusterSequencePassiveArea.o: ../include/fastjet/RangeDefinition.hh ClusterSequencePassiveArea.o: ../include/fastjet/ClusterSequenceActiveArea.hh ClusterSequencePassiveArea.o: ../include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh ClusterSequencePassiveArea.o: ../include/fastjet/GhostedAreaSpec.hh ClusterSequencePassiveArea.o: ../include/fastjet/internal/BasicRandom.hh ClusterSequencePassiveArea.o: ../include/fastjet/ActiveAreaSpec.hh ClusterSequencePassiveArea.o: ../include/fastjet/ClusterSequenceWithArea.hh ClusterSequencePassiveArea.o: ../include/fastjet/ClusterSequenceVoronoiArea.hh ClusterSequencePassiveArea.o: ../include/fastjet/AreaDefinition.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/ClusterSequence1GhostPassiveArea.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/PseudoJet.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/internal/numconsts.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/internal/base.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/ClusterSequenceAreaBase.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/ClusterSequence.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/Error.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/JetDefinition.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/internal/LimitedWarning.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/RangeDefinition.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/ClusterSequenceActiveArea.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/GhostedAreaSpec.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/internal/BasicRandom.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/ActiveAreaSpec.hh ClusterSequence1GhostPassiveArea.o: ../include/fastjet/ClusterSequenceWithArea.hh BasicRandom.o: ../include/fastjet/internal/BasicRandom.hh BasicRandom.o: ../include/fastjet/internal/base.hh JetDefinition.o: ../include/fastjet/JetDefinition.hh JetDefinition.o: ../include/fastjet/internal/numconsts.hh JetDefinition.o: ../include/fastjet/internal/base.hh JetDefinition.o: ../include/fastjet/PseudoJet.hh ../include/fastjet/Error.hh Error.o: ../include/fastjet/Error.hh ../include/fastjet/internal/base.hh AreaDefinition.o: ../include/fastjet/AreaDefinition.hh AreaDefinition.o: ../include/fastjet/GhostedAreaSpec.hh AreaDefinition.o: ../include/fastjet/PseudoJet.hh AreaDefinition.o: ../include/fastjet/internal/numconsts.hh AreaDefinition.o: ../include/fastjet/internal/base.hh AreaDefinition.o: ../include/fastjet/internal/BasicRandom.hh RangeDefinition.o: ../include/fastjet/RangeDefinition.hh RangeDefinition.o: ../include/fastjet/PseudoJet.hh RangeDefinition.o: ../include/fastjet/internal/numconsts.hh RangeDefinition.o: ../include/fastjet/internal/base.hh ClusterSequenceArea.o: ../include/fastjet/ClusterSequenceArea.hh ClusterSequenceArea.o: ../include/fastjet/ClusterSequenceAreaBase.hh ClusterSequenceArea.o: ../include/fastjet/ClusterSequence.hh ClusterSequenceArea.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh ClusterSequenceArea.o: ../include/fastjet/internal/numconsts.hh ClusterSequenceArea.o: ../include/fastjet/internal/base.hh ClusterSequenceArea.o: ../include/fastjet/PseudoJet.hh ClusterSequenceArea.o: ../include/fastjet/Error.hh ClusterSequenceArea.o: ../include/fastjet/JetDefinition.hh ClusterSequenceArea.o: ../include/fastjet/internal/LimitedWarning.hh ClusterSequenceArea.o: ../include/fastjet/RangeDefinition.hh ClusterSequenceArea.o: ../include/fastjet/ClusterSequenceActiveArea.hh ClusterSequenceArea.o: ../include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh ClusterSequenceArea.o: ../include/fastjet/GhostedAreaSpec.hh ClusterSequenceArea.o: ../include/fastjet/internal/BasicRandom.hh ClusterSequenceArea.o: ../include/fastjet/ActiveAreaSpec.hh ClusterSequenceArea.o: ../include/fastjet/ClusterSequenceWithArea.hh ClusterSequenceArea.o: ../include/fastjet/ClusterSequencePassiveArea.hh ClusterSequenceArea.o: ../include/fastjet/ClusterSequence1GhostPassiveArea.hh ClusterSequenceArea.o: ../include/fastjet/ClusterSequenceVoronoiArea.hh ClusterSequenceArea.o: ../include/fastjet/AreaDefinition.hh fastjet-3.0.6+dfsg.orig/src/PseudoJet.cc0000644000175000017500000007460212130047770016244 0ustar sunsun//STARTHEADER // $Id: PseudoJet.cc 3083 2013-04-06 12:15:17Z cacciari $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/Error.hh" #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequence.hh" #ifndef __FJCORE__ #include "fastjet/ClusterSequenceAreaBase.hh" #endif // __FJCORE__ #include "fastjet/CompositeJetStructure.hh" #include #include #include #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //---------------------------------------------------------------------- // another constructor... PseudoJet::PseudoJet(const double px_in, const double py_in, const double pz_in, const double E_in) { _E = E_in ; _px = px_in; _py = py_in; _pz = pz_in; this->_finish_init(); // some default values for the history and user indices _reset_indices(); } //---------------------------------------------------------------------- /// do standard end of initialisation void PseudoJet::_finish_init () { _kt2 = this->px()*this->px() + this->py()*this->py(); _phi = pseudojet_invalid_phi; // strictly speaking, _rap does not need initialising, because // it's never used as long as _phi == pseudojet_invalid_phi // (and gets set when _phi is requested). However ATLAS // 2013-03-28 complained that they sometimes have NaN's in // _rap and this interferes with some of their internal validation. // So we initialise it; penalty is about 0.3ns per PseudoJet out of about // 10ns total initialisation time (on a intel Core i7 2.7GHz) _rap = pseudojet_invalid_rap; } //---------------------------------------------------------------------- void PseudoJet::_set_rap_phi() const { if (_kt2 == 0.0) { _phi = 0.0; } else { _phi = atan2(this->py(),this->px()); } if (_phi < 0.0) {_phi += twopi;} if (_phi >= twopi) {_phi -= twopi;} // can happen if phi=-|eps<1e-15|? if (this->E() == abs(this->pz()) && _kt2 == 0) { // Point has infinite rapidity -- convert that into a very large // number, but in such a way that different 0-pt momenta will have // different rapidities (so as to lift the degeneracy between // them) [this can be relevant at parton-level] double MaxRapHere = MaxRap + abs(this->pz()); if (this->pz() >= 0.0) {_rap = MaxRapHere;} else {_rap = -MaxRapHere;} } else { // get the rapidity in a way that's modestly insensitive to roundoff // error when things pz,E are large (actually the best we can do without // explicit knowledge of mass) double effective_m2 = max(0.0,m2()); // force non tachyonic mass double E_plus_pz = _E + abs(_pz); // the safer of p+, p- // p+/p- = (p+ p-) / (p-)^2 = (kt^2+m^2)/(p-)^2 _rap = 0.5*log((_kt2 + effective_m2)/(E_plus_pz*E_plus_pz)); if (_pz > 0) {_rap = - _rap;} } } //---------------------------------------------------------------------- // return a valarray four-momentum valarray PseudoJet::four_mom() const { valarray mom(4); mom[0] = _px; mom[1] = _py; mom[2] = _pz; mom[3] = _E ; return mom; } //---------------------------------------------------------------------- // Return the component corresponding to the specified index. // taken from CLHEP double PseudoJet::operator () (int i) const { switch(i) { case X: return px(); case Y: return py(); case Z: return pz(); case T: return e(); default: ostringstream err; err << "PseudoJet subscripting: bad index (" << i << ")"; throw Error(err.str()); } return 0.; } //---------------------------------------------------------------------- // return the pseudorapidity double PseudoJet::pseudorapidity() const { if (px() == 0.0 && py() ==0.0) return MaxRap; if (pz() == 0.0) return 0.0; double theta = atan(perp()/pz()); if (theta < 0) theta += pi; return -log(tan(theta/2)); } //---------------------------------------------------------------------- // return "sum" of two pseudojets PseudoJet operator+ (const PseudoJet & jet1, const PseudoJet & jet2) { //return PseudoJet(jet1.four_mom()+jet2.four_mom()); return PseudoJet(jet1.px()+jet2.px(), jet1.py()+jet2.py(), jet1.pz()+jet2.pz(), jet1.E() +jet2.E() ); } //---------------------------------------------------------------------- // return difference of two pseudojets PseudoJet operator- (const PseudoJet & jet1, const PseudoJet & jet2) { //return PseudoJet(jet1.four_mom()-jet2.four_mom()); return PseudoJet(jet1.px()-jet2.px(), jet1.py()-jet2.py(), jet1.pz()-jet2.pz(), jet1.E() -jet2.E() ); } //---------------------------------------------------------------------- // return the product, coeff * jet PseudoJet operator* (double coeff, const PseudoJet & jet) { //return PseudoJet(coeff*jet.four_mom()); // the following code is hopefully more efficient PseudoJet coeff_times_jet(jet); coeff_times_jet *= coeff; return coeff_times_jet; } //---------------------------------------------------------------------- // return the product, coeff * jet PseudoJet operator* (const PseudoJet & jet, double coeff) { return coeff*jet; } //---------------------------------------------------------------------- // return the ratio, jet / coeff PseudoJet operator/ (const PseudoJet & jet, double coeff) { return (1.0/coeff)*jet; } //---------------------------------------------------------------------- /// multiply the jet's momentum by the coefficient void PseudoJet::operator*=(double coeff) { _px *= coeff; _py *= coeff; _pz *= coeff; _E *= coeff; _kt2*= coeff*coeff; // phi and rap are unchanged } //---------------------------------------------------------------------- /// divide the jet's momentum by the coefficient void PseudoJet::operator/=(double coeff) { (*this) *= 1.0/coeff; } //---------------------------------------------------------------------- /// add the other jet's momentum to this jet void PseudoJet::operator+=(const PseudoJet & other_jet) { _px += other_jet._px; _py += other_jet._py; _pz += other_jet._pz; _E += other_jet._E ; _finish_init(); // we need to recalculate phi,rap,kt2 } //---------------------------------------------------------------------- /// subtract the other jet's momentum from this jet void PseudoJet::operator-=(const PseudoJet & other_jet) { _px -= other_jet._px; _py -= other_jet._py; _pz -= other_jet._pz; _E -= other_jet._E ; _finish_init(); // we need to recalculate phi,rap,kt2 } //---------------------------------------------------------------------- bool operator==(const PseudoJet & a, const PseudoJet & b) { if (a.px() != b.px()) return false; if (a.py() != b.py()) return false; if (a.pz() != b.pz()) return false; if (a.E () != b.E ()) return false; if (a.user_index() != b.user_index()) return false; if (a.cluster_hist_index() != b.cluster_hist_index()) return false; if (a.user_info_ptr() != b.user_info_ptr()) return false; if (a.structure_ptr() != b.structure_ptr()) return false; return true; } //---------------------------------------------------------------------- // check if the jet has zero momentum bool operator==(const PseudoJet & jet, const double val) { if (val != 0) throw Error("comparing a PseudoJet with a non-zero constant (double) is not allowed."); return (jet.px() == 0 && jet.py() == 0 && jet.pz() == 0 && jet.E() == 0); } //---------------------------------------------------------------------- /// transform this jet (given in lab) into a jet in the rest /// frame of prest // // NB: code adapted from that in herwig f77 (checked how it worked // long ago) PseudoJet & PseudoJet::boost(const PseudoJet & prest) { if (prest.px() == 0.0 && prest.py() == 0.0 && prest.pz() == 0.0) return *this; double m_local = prest.m(); assert(m_local != 0); double pf4 = ( px()*prest.px() + py()*prest.py() + pz()*prest.pz() + E()*prest.E() )/m_local; double fn = (pf4 + E()) / (prest.E() + m_local); _px += fn*prest.px(); _py += fn*prest.py(); _pz += fn*prest.pz(); _E = pf4; _finish_init(); // we need to recalculate phi,rap,kt2 return *this; } //---------------------------------------------------------------------- /// transform this jet (given in the rest frame of prest) into a jet /// in the lab frame; // // NB: code adapted from that in herwig f77 (checked how it worked // long ago) PseudoJet & PseudoJet::unboost(const PseudoJet & prest) { if (prest.px() == 0.0 && prest.py() == 0.0 && prest.pz() == 0.0) return *this; double m_local = prest.m(); assert(m_local != 0); double pf4 = ( -px()*prest.px() - py()*prest.py() - pz()*prest.pz() + E()*prest.E() )/m_local; double fn = (pf4 + E()) / (prest.E() + m_local); _px -= fn*prest.px(); _py -= fn*prest.py(); _pz -= fn*prest.pz(); _E = pf4; _finish_init(); // we need to recalculate phi,rap,kt2 return *this; } //---------------------------------------------------------------------- /// returns true if the momenta of the two input jets are identical bool have_same_momentum(const PseudoJet & jeta, const PseudoJet & jetb) { return jeta.px() == jetb.px() && jeta.py() == jetb.py() && jeta.pz() == jetb.pz() && jeta.E() == jetb.E(); } //---------------------------------------------------------------------- void PseudoJet::set_cached_rap_phi(double rap_in, double phi_in) { _rap = rap_in; _phi = phi_in; if (_phi >= twopi) _phi -= twopi; if (_phi < 0) _phi += twopi; } //---------------------------------------------------------------------- void PseudoJet::reset_momentum_PtYPhiM(double pt_in, double y_in, double phi_in, double m_in) { assert(phi_in < 2*twopi && phi_in > -twopi); double ptm = (m_in == 0) ? pt_in : sqrt(pt_in*pt_in+m_in*m_in); double exprap = exp(y_in); double pminus = ptm/exprap; double pplus = ptm*exprap; double px_local = pt_in*cos(phi_in); double py_local = pt_in*sin(phi_in); reset_momentum(px_local,py_local,0.5*(pplus-pminus),0.5*(pplus+pminus)); set_cached_rap_phi(y_in,phi_in); } //---------------------------------------------------------------------- /// return a pseudojet with the given pt, y, phi and mass PseudoJet PtYPhiM(double pt, double y, double phi, double m) { assert(phi < 2*twopi && phi > -twopi); double ptm = (m == 0) ? pt : sqrt(pt*pt+m*m); double exprap = exp(y); double pminus = ptm/exprap; double pplus = ptm*exprap; double px = pt*cos(phi); double py = pt*sin(phi); PseudoJet mom(px,py,0.5*(pplus-pminus),0.5*(pplus+pminus)); mom.set_cached_rap_phi(y,phi); return mom; //return PseudoJet(pt*cos(phi), pt*sin(phi), ptm*sinh(y), ptm*cosh(y)); } //---------------------------------------------------------------------- // return kt-distance between this jet and another one double PseudoJet::kt_distance(const PseudoJet & other) const { //double distance = min(this->kt2(), other.kt2()); double distance = min(_kt2, other._kt2); double dphi = abs(phi() - other.phi()); if (dphi > pi) {dphi = twopi - dphi;} double drap = rap() - other.rap(); distance = distance * (dphi*dphi + drap*drap); return distance; } //---------------------------------------------------------------------- // return squared cylinder (eta-phi) distance between this jet and another one double PseudoJet::plain_distance(const PseudoJet & other) const { double dphi = abs(phi() - other.phi()); if (dphi > pi) {dphi = twopi - dphi;} double drap = rap() - other.rap(); return (dphi*dphi + drap*drap); } //---------------------------------------------------------------------- /// returns other.phi() - this.phi(), i.e. the phi distance to /// other, constrained to be in range -pi .. pi double PseudoJet::delta_phi_to(const PseudoJet & other) const { double dphi = other.phi() - phi(); if (dphi > pi) dphi -= twopi; if (dphi < -pi) dphi += twopi; return dphi; } string PseudoJet::description() const{ // the "default" case of a PJ which does not belong to any cluster sequence if (!_structure()) return "standard PseudoJet (with no associated clustering information)"; // for all the other cases, the description comes from the structure return _structure()->description(); } //---------------------------------------------------------------------- // // The following methods access the associated jet structure (if any) // //---------------------------------------------------------------------- //---------------------------------------------------------------------- // check whether this PseudoJet has an associated parent // ClusterSequence bool PseudoJet::has_associated_cluster_sequence() const{ return (_structure()) && (_structure->has_associated_cluster_sequence()); } //---------------------------------------------------------------------- // get a (const) pointer to the associated ClusterSequence (NULL if // inexistent) const ClusterSequence* PseudoJet::associated_cluster_sequence() const{ if (! has_associated_cluster_sequence()) return NULL; return _structure->associated_cluster_sequence(); } //---------------------------------------------------------------------- // check whether this PseudoJet has an associated parent // ClusterSequence that is still valid bool PseudoJet::has_valid_cluster_sequence() const{ return (_structure()) && (_structure->has_valid_cluster_sequence()); } //---------------------------------------------------------------------- // If there is a valid cluster sequence associated with this jet, // returns a pointer to it; otherwise throws an Error. // // Open question: should these errors be upgraded to classes of their // own so that they can be caught? [Maybe, but later] const ClusterSequence * PseudoJet::validated_cs() const { return validated_structure_ptr()->validated_cs(); } //---------------------------------------------------------------------- // set the associated structure void PseudoJet::set_structure_shared_ptr(const SharedPtr &structure_in){ _structure = structure_in; } //---------------------------------------------------------------------- // return true if there is some strusture associated with this PseudoJet bool PseudoJet::has_structure() const{ return _structure(); } //---------------------------------------------------------------------- // return a pointer to the structure (of type // PseudoJetStructureBase*) associated with this PseudoJet. // // return NULL if there is no associated structure const PseudoJetStructureBase* PseudoJet::structure_ptr() const { if (!_structure()) return NULL; return _structure(); } //---------------------------------------------------------------------- // return a non-const pointer to the structure (of type // PseudoJetStructureBase*) associated with this PseudoJet. // // return NULL if there is no associated structure // // Only use this if you know what you are doing. In any case, // prefer the 'structure_ptr()' (the const version) to this method, // unless you really need a write access to the PseudoJet's // underlying structure. PseudoJetStructureBase* PseudoJet::structure_non_const_ptr(){ if (!_structure()) return NULL; return _structure(); } //---------------------------------------------------------------------- // return a pointer to the structure (of type // PseudoJetStructureBase*) associated with this PseudoJet. // // throw an error if there is no associated structure const PseudoJetStructureBase* PseudoJet::validated_structure_ptr() const { if (!_structure()) throw Error("Trying to access the structure of a PseudoJet which has no associated structure"); return _structure(); } //---------------------------------------------------------------------- // return a reference to the shared pointer to the // PseudoJetStructureBase associated with this PseudoJet const SharedPtr & PseudoJet::structure_shared_ptr() const { return _structure; } //---------------------------------------------------------------------- // check if it has been recombined with another PseudoJet in which // case, return its partner through the argument. Otherwise, // 'partner' is set to 0. // // false is also returned if this PseudoJet has no associated // ClusterSequence bool PseudoJet::has_partner(PseudoJet &partner) const{ return validated_structure_ptr()->has_partner(*this, partner); } //---------------------------------------------------------------------- // check if it has been recombined with another PseudoJet in which // case, return its child through the argument. Otherwise, 'child' // is set to 0. // // false is also returned if this PseudoJet has no associated // ClusterSequence, with the child set to 0 bool PseudoJet::has_child(PseudoJet &child) const{ return validated_structure_ptr()->has_child(*this, child); } //---------------------------------------------------------------------- // check if it is the product of a recombination, in which case // return the 2 parents through the 'parent1' and 'parent2' // arguments. Otherwise, set these to 0. // // false is also returned if this PseudoJet has no parent // ClusterSequence bool PseudoJet::has_parents(PseudoJet &parent1, PseudoJet &parent2) const{ return validated_structure_ptr()->has_parents(*this, parent1, parent2); } //---------------------------------------------------------------------- // check if the current PseudoJet contains the one passed as // argument // // false is also returned if this PseudoJet has no associated // ClusterSequence. bool PseudoJet::contains(const PseudoJet &constituent) const{ return validated_structure_ptr()->object_in_jet(constituent, *this); } //---------------------------------------------------------------------- // check if the current PseudoJet is contained the one passed as // argument // // false is also returned if this PseudoJet has no associated // ClusterSequence bool PseudoJet::is_inside(const PseudoJet &jet) const{ return validated_structure_ptr()->object_in_jet(*this, jet); } //---------------------------------------------------------------------- // returns true if the PseudoJet has constituents bool PseudoJet::has_constituents() const{ return (_structure()) && (_structure->has_constituents()); } //---------------------------------------------------------------------- // retrieve the constituents. vector PseudoJet::constituents() const{ return validated_structure_ptr()->constituents(*this); } //---------------------------------------------------------------------- // returns true if the PseudoJet has support for exclusive subjets bool PseudoJet::has_exclusive_subjets() const{ return (_structure()) && (_structure->has_exclusive_subjets()); } //---------------------------------------------------------------------- // return a vector of all subjets of the current jet (in the sense // of the exclusive algorithm) that would be obtained when running // the algorithm with the given dcut. // // Time taken is O(m ln m), where m is the number of subjets that // are found. If m gets to be of order of the total number of // constituents in the jet, this could be substantially slower than // just getting that list of constituents. // // an Error is thrown if this PseudoJet has no currently valid // associated ClusterSequence std::vector PseudoJet::exclusive_subjets (const double & dcut) const { return validated_structure_ptr()->exclusive_subjets(*this, dcut); } //---------------------------------------------------------------------- // return the size of exclusive_subjets(...); still n ln n with same // coefficient, but marginally more efficient than manually taking // exclusive_subjets.size() // // an Error is thrown if this PseudoJet has no currently valid // associated ClusterSequence int PseudoJet::n_exclusive_subjets(const double & dcut) const { return validated_structure_ptr()->n_exclusive_subjets(*this, dcut); } //---------------------------------------------------------------------- // return the list of subjets obtained by unclustering the supplied // jet down to n subjets (or all constituents if there are fewer // than n). // // requires n ln n time // // an Error is thrown if this PseudoJet has no currently valid // associated ClusterSequence std::vector PseudoJet::exclusive_subjets_up_to (int nsub) const { return validated_structure_ptr()->exclusive_subjets_up_to(*this, nsub); } //---------------------------------------------------------------------- // Same as exclusive_subjets_up_to but throws an error if there are // fewer than nsub particles in the jet std::vector PseudoJet::exclusive_subjets (int nsub) const { vector subjets = exclusive_subjets_up_to(nsub); if (int(subjets.size()) < nsub) { ostringstream err; err << "Requested " << nsub << " exclusive subjets, but there were only " << subjets.size() << " particles in the jet"; throw Error(err.str()); } return subjets; } //---------------------------------------------------------------------- // return the dij that was present in the merging nsub+1 -> nsub // subjets inside this jet. // // an Error is thrown if this PseudoJet has no currently valid // associated ClusterSequence double PseudoJet::exclusive_subdmerge(int nsub) const { return validated_structure_ptr()->exclusive_subdmerge(*this, nsub); } //---------------------------------------------------------------------- // return the maximum dij that occurred in the whole event at the // stage that the nsub+1 -> nsub merge of subjets occurred inside // this jet. // // an Error is thrown if this PseudoJet has no currently valid // associated ClusterSequence double PseudoJet::exclusive_subdmerge_max(int nsub) const { return validated_structure_ptr()->exclusive_subdmerge_max(*this, nsub); } // returns true if a jet has pieces // // By default a single particle or a jet coming from a // ClusterSequence have no pieces and this methos will return false. bool PseudoJet::has_pieces() const{ return ((_structure()) && (_structure->has_pieces(*this))); } // retrieve the pieces that make up the jet. // // By default a jet does not have pieces. // If the underlying interface supports "pieces" retrieve the // pieces from there. std::vector PseudoJet::pieces() const{ return validated_structure_ptr()->pieces(*this); // if (!has_pieces()) // throw Error("Trying to retrieve the pieces of a PseudoJet that has no support for pieces."); // // return _structure->pieces(*this); } //---------------------------------------------------------------------- // the following ones require a computation of the area in the // associated ClusterSequence (See ClusterSequenceAreaBase for details) //---------------------------------------------------------------------- #ifndef __FJCORE__ //---------------------------------------------------------------------- // if possible, return a valid ClusterSequenceAreaBase pointer; otherwise // throw an error const ClusterSequenceAreaBase * PseudoJet::validated_csab() const { const ClusterSequenceAreaBase *csab = dynamic_cast(validated_cs()); if (csab == NULL) throw Error("you requested jet-area related information, but the PseudoJet does not have associated area information."); return csab; } //---------------------------------------------------------------------- // check if it has a defined area bool PseudoJet::has_area() const{ //if (! has_associated_cluster_sequence()) return false; if (! has_structure()) return false; return (validated_structure_ptr()->has_area() != 0); } //---------------------------------------------------------------------- // return the jet (scalar) area. // throw an Error if there is no support for area in the associated CS double PseudoJet::area() const{ return validated_structure_ptr()->area(*this); } //---------------------------------------------------------------------- // return the error (uncertainty) associated with the determination // of the area of this jet. // throws an Error if there is no support for area in the associated CS double PseudoJet::area_error() const{ return validated_structure_ptr()->area_error(*this); } //---------------------------------------------------------------------- // return the jet 4-vector area // throws an Error if there is no support for area in the associated CS PseudoJet PseudoJet::area_4vector() const{ return validated_structure_ptr()->area_4vector(*this); } //---------------------------------------------------------------------- // true if this jet is made exclusively of ghosts // throws an Error if there is no support for area in the associated CS bool PseudoJet::is_pure_ghost() const{ return validated_structure_ptr()->is_pure_ghost(*this); } #endif // __FJCORE__ //---------------------------------------------------------------------- // // end of the methods accessing the information in the associated // Cluster Sequence // //---------------------------------------------------------------------- //---------------------------------------------------------------------- /// provide a meaningful error message for InexistentUserInfo PseudoJet::InexistentUserInfo::InexistentUserInfo() : Error("you attempted to perform a dynamic cast of a PseudoJet's extra info, but the extra info pointer was null") {} //---------------------------------------------------------------------- // sort the indices so that values[indices[0..n-1]] is sorted // into increasing order void sort_indices(vector & indices, const vector & values) { IndexedSortHelper index_sort_helper(&values); sort(indices.begin(), indices.end(), index_sort_helper); } //---------------------------------------------------------------------- /// given a vector of values with a one-to-one correspondence with the /// vector of objects, sort objects into an order such that the /// associated values would be in increasing order template vector objects_sorted_by_values( const vector & objects, const vector & values) { assert(objects.size() == values.size()); // get a vector of indices vector indices(values.size()); for (size_t i = 0; i < indices.size(); i++) {indices[i] = i;} // sort the indices sort_indices(indices, values); // copy the objects vector objects_sorted(objects.size()); // place the objects in the correct order for (size_t i = 0; i < indices.size(); i++) { objects_sorted[i] = objects[indices[i]]; } return objects_sorted; } //---------------------------------------------------------------------- /// return a vector of jets sorted into decreasing kt2 vector sorted_by_pt(const vector & jets) { vector minus_kt2(jets.size()); for (size_t i = 0; i < jets.size(); i++) {minus_kt2[i] = -jets[i].kt2();} return objects_sorted_by_values(jets, minus_kt2); } //---------------------------------------------------------------------- /// return a vector of jets sorted into increasing rapidity vector sorted_by_rapidity(const vector & jets) { vector rapidities(jets.size()); for (size_t i = 0; i < jets.size(); i++) {rapidities[i] = jets[i].rap();} return objects_sorted_by_values(jets, rapidities); } //---------------------------------------------------------------------- /// return a vector of jets sorted into decreasing energy vector sorted_by_E(const vector & jets) { vector energies(jets.size()); for (size_t i = 0; i < jets.size(); i++) {energies[i] = -jets[i].E();} return objects_sorted_by_values(jets, energies); } //---------------------------------------------------------------------- /// return a vector of jets sorted into increasing pz vector sorted_by_pz(const vector & jets) { vector pz(jets.size()); for (size_t i = 0; i < jets.size(); i++) {pz[i] = jets[i].pz();} return objects_sorted_by_values(jets, pz); } //------------------------------------------------------------------------------- // helper functions to build a jet made of pieces //------------------------------------------------------------------------------- // build a "CompositeJet" from the vector of its pieces // // In this case, E-scheme recombination is assumed to compute the // total momentum PseudoJet join(const vector & pieces){ // compute the total momentum //-------------------------------------------------- PseudoJet result; // automatically initialised to 0 for (unsigned int i=0; i(cj_struct)); return result; } // build a "CompositeJet" from a single PseudoJet PseudoJet join(const PseudoJet & j1){ return join(vector(1,j1)); } // build a "CompositeJet" from two PseudoJet PseudoJet join(const PseudoJet & j1, const PseudoJet & j2){ vector pieces; pieces.push_back(j1); pieces.push_back(j2); return join(pieces); } // build a "CompositeJet" from 3 PseudoJet PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const PseudoJet & j3){ vector pieces; pieces.push_back(j1); pieces.push_back(j2); pieces.push_back(j3); return join(pieces); } // build a "CompositeJet" from 4 PseudoJet PseudoJet join(const PseudoJet & j1, const PseudoJet & j2, const PseudoJet & j3, const PseudoJet & j4){ vector pieces; pieces.push_back(j1); pieces.push_back(j2); pieces.push_back(j3); pieces.push_back(j4); return join(pieces); } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/ClusterSequence1GhostPassiveArea.cc0000644000175000017500000000746511766120140022666 0ustar sunsun//STARTHEADER // $Id: ClusterSequence1GhostPassiveArea.cc 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequence1GhostPassiveArea.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //---------------------------------------------------------------------- /// global routine for initialising and running a general passive area void ClusterSequence1GhostPassiveArea::_initialise_and_run_1GPA ( const JetDefinition & jet_def_in, const GhostedAreaSpec & area_spec, const bool & writeout_combinations) { bool continue_running; _initialise_AA(jet_def_in, area_spec, writeout_combinations, continue_running); if (continue_running) { _run_1GPA(area_spec); _postprocess_AA(area_spec); } } //---------------------------------------------------------------------- /// routine for running a passive area one ghost at a time. void ClusterSequence1GhostPassiveArea::_run_1GPA (const GhostedAreaSpec & area_spec) { // record the input jets as they are currently vector input_jets(_jets); // code for testing the unique tree vector unique_tree; // initialise our temporary average area^2 valarray lcl_average_area2(0.0, _average_area.size()); valarray last_average_area(0.0, _average_area.size()); // run the clustering multiple times so as to get areas of all the jets for (int irepeat = 0; irepeat < area_spec.repeat(); irepeat++) { // first establish list of all ghosts vector all_ghosts; area_spec.add_ghosts(all_ghosts); // then run many subsets of ghosts (actually each subset contains just one ghost) for (unsigned ig = 0; ig < all_ghosts.size(); ig++) { vector some_ghosts; some_ghosts.push_back(all_ghosts[ig]); ClusterSequenceActiveAreaExplicitGhosts clust_seq(input_jets, jet_def(), some_ghosts, area_spec.actual_ghost_area()); if (irepeat == 0 && ig == 0) { // take the non-ghost part of the history and put into our own // history. _transfer_ghost_free_history(clust_seq); // get the "unique" order that will be used for transferring all areas. unique_tree = unique_history_order(); } // transfer areas from clust_seq into our object _transfer_areas(unique_tree, clust_seq); } // keep track of fluctuations in area lcl_average_area2 += (_average_area - last_average_area)* (_average_area - last_average_area); last_average_area = _average_area; } _average_area2 = lcl_average_area2; } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/src/ClusterSequenceActiveArea.cc0000644000175000017500000007204711766120140021377 0ustar sunsun//STARTHEADER // $Id: ClusterSequenceActiveArea.cc 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequence.hh" #include "fastjet/ClusterSequenceActiveArea.hh" #include "fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh" #include #include #include #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //int ClusterSequenceActiveArea::_n_seed_warnings = 0; //const int _max_seed_warnings = 10; //---------------------------------------------------------------------- /// global routine for running active area void ClusterSequenceActiveArea::_initialise_and_run_AA ( const JetDefinition & jet_def_in, const GhostedAreaSpec & ghost_spec, const bool & writeout_combinations) { bool continue_running; _initialise_AA(jet_def_in, ghost_spec, writeout_combinations, continue_running); if (continue_running) { _run_AA(ghost_spec); _postprocess_AA(ghost_spec); } } //---------------------------------------------------------------------- void ClusterSequenceActiveArea::_resize_and_zero_AA () { // initialize our local area information _average_area.resize(2*_jets.size()); _average_area = 0.0; _average_area2.resize(2*_jets.size()); _average_area2 = 0.0; _average_area_4vector.resize(2*_jets.size()); _average_area_4vector = PseudoJet(0.0,0.0,0.0,0.0); _non_jet_area = 0.0; _non_jet_area2 = 0.0; _non_jet_number=0.0; } //---------------------------------a------------------------------------- void ClusterSequenceActiveArea::_initialise_AA ( const JetDefinition & jet_def_in, const GhostedAreaSpec & ghost_spec, const bool & writeout_combinations, bool & continue_running) { // store this for future use _ghost_spec_repeat = ghost_spec.repeat(); // make sure placeholders are there & zeroed _resize_and_zero_AA(); // for future reference... _maxrap_for_area = ghost_spec.ghost_maxrap(); _safe_rap_for_area = _maxrap_for_area - jet_def_in.R(); // Make sure we'll have at least one repetition -- then we can // deduce the unghosted clustering sequence from one of the ghosted // sequences. If we do not have any repetitions, then get the // unghosted sequence from the plain unghosted clustering. // // NB: all decanting and filling of initial history will then // be carried out by base-class routine if (ghost_spec.repeat() <= 0) { _initialise_and_run(jet_def_in, writeout_combinations); continue_running = false; return; } // transfer all relevant info into internal variables _decant_options(jet_def_in, writeout_combinations); // set up the history entries for the initial particles (those // currently in _jets) _fill_initial_history(); // by default it does not... _has_dangerous_particles = false; continue_running = true; } //---------------------------------------------------------------------- void ClusterSequenceActiveArea::_run_AA (const GhostedAreaSpec & ghost_spec) { // record the input jets as they are currently vector input_jets(_jets); // code for testing the unique tree vector unique_tree; // run the clustering multiple times so as to get areas of all the jets for (int irepeat = 0; irepeat < ghost_spec.repeat(); irepeat++) { ClusterSequenceActiveAreaExplicitGhosts clust_seq(input_jets, jet_def(), ghost_spec); _has_dangerous_particles |= clust_seq.has_dangerous_particles(); if (irepeat == 0) { // take the non-ghost part of the history and put into our own // history. _transfer_ghost_free_history(clust_seq); // get the "unique" order that will be used for transferring all areas. unique_tree = unique_history_order(); } // transfer areas from clust_seq into our object _transfer_areas(unique_tree, clust_seq); } } //---------------------------------------------------------------------- /// run the postprocessing for the active area (and derived classes) void ClusterSequenceActiveArea::_postprocess_AA (const GhostedAreaSpec & ghost_spec) { _average_area /= ghost_spec.repeat(); _average_area2 /= ghost_spec.repeat(); if (ghost_spec.repeat() > 1) { // the VC compiler complains if one puts everything on a single line. // An alternative solution would be to use -1.0 (+single line) const double tmp = ghost_spec.repeat()-1; _average_area2 = sqrt(abs(_average_area2 - _average_area*_average_area)/tmp); } else { _average_area2 = 0.0; } _non_jet_area /= ghost_spec.repeat(); _non_jet_area2 /= ghost_spec.repeat(); _non_jet_area2 = sqrt(abs(_non_jet_area2 - _non_jet_area*_non_jet_area)/ ghost_spec.repeat()); _non_jet_number /= ghost_spec.repeat(); // following bizarre way of writing things is related to // poverty of operations on PseudoJet objects (as well as some confusion // in one or two places) for (unsigned i = 0; i < _average_area_4vector.size(); i++) { _average_area_4vector[i] = (1.0/ghost_spec.repeat()) * _average_area_4vector[i]; } //cerr << "Non-jet area = " << _non_jet_area << " +- " << _non_jet_area2< input_jets(_jets); // // // code for testing the unique tree // vector unique_tree; // // // // // // run the clustering multiple times so as to get areas of all the jets // for (int irepeat = 0; irepeat < ghost_spec.repeat(); irepeat++) { // // ClusterSequenceActiveAreaExplicitGhosts clust_seq(input_jets, // jet_def, ghost_spec); // // if (irepeat == 0) { // // take the non-ghost part of the history and put into our own // // history. // _transfer_ghost_free_history(clust_seq); // // get the "unique" order that will be used for transferring all areas. // unique_tree = unique_history_order(); // } // // // transfer areas from clust_seq into our object // _transfer_areas(unique_tree, clust_seq); // } // // _average_area /= ghost_spec.repeat(); // _average_area2 /= ghost_spec.repeat(); // if (ghost_spec.repeat() > 1) { // _average_area2 = sqrt(abs(_average_area2 - _average_area*_average_area)/ // (ghost_spec.repeat()-1)); // } else { // _average_area2 = 0.0; // } // // _non_jet_area /= ghost_spec.repeat(); // _non_jet_area2 /= ghost_spec.repeat(); // _non_jet_area2 = sqrt(abs(_non_jet_area2 - _non_jet_area*_non_jet_area)/ // ghost_spec.repeat()); // _non_jet_number /= ghost_spec.repeat(); // // // following bizarre way of writing things is related to // // poverty of operations on PseudoJet objects (as well as some confusion // // in one or two places) // for (unsigned i = 0; i < _average_area_4vector.size(); i++) { // _average_area_4vector[i] = (1.0/ghost_spec.repeat()) * _average_area_4vector[i]; // } // //cerr << "Non-jet area = " << _non_jet_area << " +- " << _non_jet_area2< incl_jets = inclusive_jets(); vector pt_over_areas; for (unsigned i = 0; i < incl_jets.size(); i++) { if (abs(incl_jets[i].rap()) < _safe_rap_for_area) { double this_area; if ( strat == median_4vector ) { this_area = area_4vector(incl_jets[i]).perp(); } else { this_area = area(incl_jets[i]); } pt_over_areas.push_back(incl_jets[i].perp()/this_area); } } // there is nothing inside our region, so answer will always be zero if (pt_over_areas.size() == 0) {return 0.0;} // get median (pt/area) [this is the "old" median definition. It considers // only the "real" jets in calculating the median, i.e. excluding the // only-ghost ones] sort(pt_over_areas.begin(), pt_over_areas.end()); double non_ghost_median_ratio = pt_over_areas[pt_over_areas.size()/2]; // new median definition that takes into account non-jet area (i.e. // jets composed only of ghosts), and for fractional median position // interpolates between the corresponding entries in the pt_over_areas array double nj_median_pos = (pt_over_areas.size()-1 - _non_jet_number)/2.0; double nj_median_ratio; if (nj_median_pos >= 0 && pt_over_areas.size() > 1) { int int_nj_median = int(nj_median_pos); nj_median_ratio = pt_over_areas[int_nj_median] * (int_nj_median+1-nj_median_pos) + pt_over_areas[int_nj_median+1] * (nj_median_pos - int_nj_median); } else { nj_median_ratio = 0.0; } // get various forms of mean (pt/area) double pt_sum = 0.0, pt_sum_with_cut = 0.0; double area_sum = _non_jet_area, area_sum_with_cut = _non_jet_area; double ratio_sum = 0.0; double ratio_n = _non_jet_number; for (unsigned i = 0; i < incl_jets.size(); i++) { if (abs(incl_jets[i].rap()) < _safe_rap_for_area) { double this_area; if ( strat == median_4vector ) { this_area = area_4vector(incl_jets[i]).perp(); } else { this_area = area(incl_jets[i]); } pt_sum += incl_jets[i].perp(); area_sum += this_area; double ratio = incl_jets[i].perp()/this_area; if (ratio < range*nj_median_ratio) { pt_sum_with_cut += incl_jets[i].perp(); area_sum_with_cut += this_area; ratio_sum += ratio; ratio_n++; } } } if (strat == play) { double trunc_sum = 0, trunc_sumsqr = 0; vector means(pt_over_areas.size()), sd(pt_over_areas.size()); for (unsigned i = 0; i < pt_over_areas.size() ; i++ ) { double ratio = pt_over_areas[i]; trunc_sum += ratio; trunc_sumsqr += ratio*ratio; means[i] = trunc_sum / (i+1); sd[i] = sqrt(abs(means[i]*means[i] - trunc_sumsqr/(i+1))); cerr << "i, means, sd: " < incl_jets = inclusive_jets(); // // for (unsigned i = 0; i < incl_jets.size(); i++) { // if (abs(incl_jets[i].rap()) < this_raprange) { // double this_area; // if ( use_area_4vector ) { // this_area = area_4vector(incl_jets[i]).perp(); // } else { // this_area = area(incl_jets[i]); // } // double f = incl_jets[i].perp()/this_area; // if (exclude_above <= 0.0 || f < exclude_above) { // double x = incl_jets[i].rap(); double x2 = x*x; // mean_f += f; // mean_x2 += x2; // mean_x4 += x2*x2; // mean_fx2 += f*x2; // n++; // } else { // n_excluded++; // } // } // } // // if (n <= 1) { // // meaningful results require at least two jets inside the // // area -- mind you if there are empty jets we should be in // // any case doing something special... // a = 0.0; // b = 0.0; // } else { // mean_f /= n; // mean_x2 /= n; // mean_x4 /= n; // mean_fx2 /= n; // // b = (mean_f*mean_x2 - mean_fx2)/(mean_x2*mean_x2 - mean_x4); // a = mean_f - b*mean_x2; // } // //cerr << "n_excluded = "<< n_excluded << endl; // } //---------------------------------------------------------------------- double ClusterSequenceActiveArea::empty_area(const Selector & selector) const { // make sure that the selector applies jet by jet if (! selector.applies_jet_by_jet()){ throw Error("ClusterSequenceActiveArea: empty area can only be computed from selectors applying jet by jet"); } double empty = 0.0; // first deal with ghost jets for (unsigned i = 0; i < _ghost_jets.size(); i++) { if (selector.pass(_ghost_jets[i])) { empty += _ghost_jets[i].area; } } // then deal with unclustered ghosts for (unsigned i = 0; i < _unclustered_ghosts.size(); i++) { if (selector.pass(_unclustered_ghosts[i])) { empty += _unclustered_ghosts[i].area; } } empty /= _ghost_spec_repeat; return empty; } //---------------------------------------------------------------------- double ClusterSequenceActiveArea::n_empty_jets(const Selector & selector) const { _check_selector_good_for_median(selector); double inrange = 0; for (unsigned i = 0; i < _ghost_jets.size(); i++) { if (selector.pass(_ghost_jets[i])) inrange++; } inrange /= _ghost_spec_repeat; return inrange; } //---------------------------------------------------------------------- /// transfer the history (and jet-momenta) from clust_seq to our /// own internal structure while removing ghosts void ClusterSequenceActiveArea::_transfer_ghost_free_history( const ClusterSequenceActiveAreaExplicitGhosts & ghosted_seq) { const vector & gs_history = ghosted_seq.history(); vector gs2self_hist_map(gs_history.size()); // first transfer info about strategy used (which isn't necessarily // always the one that got asked for...) _strategy = ghosted_seq.strategy_used(); // work our way through to first non-trivial combination unsigned igs = 0; unsigned iself = 0; while (igs < gs_history.size() && gs_history[igs].parent1 == InexistentParent) { // record correspondence if (!ghosted_seq.is_pure_ghost(igs)) { gs2self_hist_map[igs] = iself++; } else { gs2self_hist_map[igs] = Invalid; } igs++; }; // make sure the count of non-ghost initial jets is equal to // what we already have in terms of initial jets assert(iself == _history.size()); // if there was no clustering in this event (e.g. SISCone passive // area with zero input particles, or with a pt cut on stable cones // that kills all jets), then don't bother with the rest (which // would crash!) if (igs == gs_history.size()) return; // now actually transfer things do { // if we are a pure ghost, then go on to next round if (ghosted_seq.is_pure_ghost(igs)) { gs2self_hist_map[igs] = Invalid; continue; } const history_element & gs_hist_el = gs_history[igs]; bool parent1_is_ghost = ghosted_seq.is_pure_ghost(gs_hist_el.parent1); bool parent2_is_ghost = ghosted_seq.is_pure_ghost(gs_hist_el.parent2); // if exactly one parent is a ghost then maintain info about the // non-ghost correspondence for this jet, and then go on to next // recombination in the ghosted sequence if (parent1_is_ghost && !parent2_is_ghost && gs_hist_el.parent2 >= 0) { gs2self_hist_map[igs] = gs2self_hist_map[gs_hist_el.parent2]; continue; } if (!parent1_is_ghost && parent2_is_ghost) { gs2self_hist_map[igs] = gs2self_hist_map[gs_hist_el.parent1]; continue; } // no parents are ghosts... if (gs_hist_el.parent2 >= 0) { // recombination of two non-ghosts gs2self_hist_map[igs] = _history.size(); // record the recombination in our own sequence int newjet_k; // dummy var -- not used int jet_i = _history[gs2self_hist_map[gs_hist_el.parent1]].jetp_index; int jet_j = _history[gs2self_hist_map[gs_hist_el.parent2]].jetp_index; //cerr << "recombining "<< jet_i << " and "<< jet_j << endl; _do_ij_recombination_step(jet_i, jet_j, gs_hist_el.dij, newjet_k); } else { // we have a non-ghost that has become a beam-jet assert(gs_history[igs].parent2 == BeamJet); // record position gs2self_hist_map[igs] = _history.size(); // record the recombination in our own sequence _do_iB_recombination_step( _history[gs2self_hist_map[gs_hist_el.parent1]].jetp_index, gs_hist_el.dij); } } while (++igs < gs_history.size()); } //---------------------------------------------------------------------- void ClusterSequenceActiveArea::_transfer_areas( const vector & unique_hist_order, const ClusterSequenceActiveAreaExplicitGhosts & ghosted_seq ) { const vector & gs_history = ghosted_seq.history(); const vector & gs_jets = ghosted_seq.jets(); vector gs_unique_hist_order = ghosted_seq.unique_history_order(); const double tolerance = 1e-11; // to decide when two jets are the same int j = -1; int hist_index = -1; valarray our_areas(_history.size()); our_areas = 0.0; valarray our_area_4vectors(_history.size()); our_area_4vectors = PseudoJet(0.0,0.0,0.0,0.0); for (unsigned i = 0; i < gs_history.size(); i++) { // only consider composite particles unsigned gs_hist_index = gs_unique_hist_order[i]; if (gs_hist_index < ghosted_seq.n_particles()) continue; const history_element & gs_hist = gs_history[gs_unique_hist_order[i]]; int parent1 = gs_hist.parent1; int parent2 = gs_hist.parent2; if (parent2 == BeamJet) { // need to look at parent to get the actual jet const PseudoJet & jet = gs_jets[gs_history[parent1].jetp_index]; double area_local = ghosted_seq.area(jet); PseudoJet ext_area = ghosted_seq.area_4vector(jet); if (ghosted_seq.is_pure_ghost(parent1)) { // record the existence of the pure ghost jet for future use _ghost_jets.push_back(GhostJet(jet,area_local)); if (abs(jet.rap()) < _safe_rap_for_area) { _non_jet_area += area_local; _non_jet_area2 += area_local*area_local; _non_jet_number += 1; } } else { // get next "combined-particle" index in our own history // making sure we don't go beyond its bounds (if we do // then we're in big trouble anyway...) while (++j < int(_history.size())) { hist_index = unique_hist_order[j]; if (hist_index >= _initial_n) break;} // sanity checking -- do not overrun if (j >= int(_history.size())) throw Error("ClusterSequenceActiveArea: overran reference array in diB matching"); // sanity check -- make sure we are taking about the same // jet in reference and new sequences int refjet_index = _history[_history[hist_index].parent1].jetp_index; assert(refjet_index >= 0 && refjet_index < int(_jets.size())); const PseudoJet & refjet = _jets[refjet_index]; //cerr << "Inclusive" << endl; //cerr << gs_history[parent1].jetp_index << " " << gs_jets.size() << endl; //cerr << _history[_history[hist_index].parent1].jetp_index << " " << _jets.size() << endl; // If pt disagrees check E; if they both disagree there's a // problem here... NB: a massive particle with zero pt may // have its pt changed when a ghost is added -- this is why we // also require the energy to be wrong before complaining _throw_unless_jets_have_same_perp_or_E(jet, refjet, tolerance, ghosted_seq); // set the area at this clustering stage our_areas[hist_index] = area_local; our_area_4vectors[hist_index] = ext_area; // update the parent as well -- that way its area is the area // immediately before clustering (i.e. resolve an ambiguity in // the Cambridge case and ensure in the kt case that the original // particles get a correct area) our_areas[_history[hist_index].parent1] = area_local; our_area_4vectors[_history[hist_index].parent1] = ext_area; } } else if (!ghosted_seq.is_pure_ghost(parent1) && !ghosted_seq.is_pure_ghost(parent2)) { // get next "combined-particle" index in our own history while (++j < int(_history.size())) { hist_index = unique_hist_order[j]; if (hist_index >= _initial_n) break;} // sanity checking -- do not overrun if (j >= int(_history.size())) throw Error("ClusterSequenceActiveArea: overran reference array in dij matching"); // make sure that our reference history entry is also for // an exclusive (dij) clustering (otherwise the comparison jet // will not exist) if (_history[hist_index].parent2 == BeamJet) throw Error("ClusterSequenceActiveArea: could not match clustering sequences (encountered dij matched with diB)"); //cerr << "Exclusive: hist_index,hist_size: " << hist_index << " " << _history.size()<< endl; //cerr << gs_hist.jetp_index << " " << gs_jets.size() << endl; //cerr << _history[hist_index].jetp_index << " " << _jets.size() << endl; const PseudoJet & jet = gs_jets[gs_hist.jetp_index]; const PseudoJet & refjet = _jets[_history[hist_index].jetp_index]; // run sanity check _throw_unless_jets_have_same_perp_or_E(jet, refjet, tolerance, ghosted_seq); // update area and our local index (maybe redundant since later // the descendants will reupdate it?) double area_local = ghosted_seq.area(jet); our_areas[hist_index] += area_local; PseudoJet ext_area = ghosted_seq.area_4vector(jet); // GPS TMP debugging (jetclu) ----------------------- //ext_area = PseudoJet(1e-100,1e-100,1e-100,4e-100); //our_area_4vectors[hist_index] = ext_area; //cout << "aa " // << our_area_4vectors[hist_index].px() << " " // << our_area_4vectors[hist_index].py() << " " // << our_area_4vectors[hist_index].pz() << " " // << our_area_4vectors[hist_index].E() << endl; //cout << "bb " // << ext_area.px() << " " // << ext_area.py() << " " // << ext_area.pz() << " " // << ext_area.E() << endl; //--------------------------------------------------- _jet_def.recombiner()->plus_equal(our_area_4vectors[hist_index], ext_area); // now update areas of parents (so that they becomes areas // immediately before clustering occurred). This is of use // because it allows us to set the areas of the original hard // particles in the kt algorithm; for the Cambridge case it // means a jet's area will be the area just before it clusters // with another hard jet. const PseudoJet & jet1 = gs_jets[gs_history[parent1].jetp_index]; int our_parent1 = _history[hist_index].parent1; our_areas[our_parent1] = ghosted_seq.area(jet1); our_area_4vectors[our_parent1] = ghosted_seq.area_4vector(jet1); const PseudoJet & jet2 = gs_jets[gs_history[parent2].jetp_index]; int our_parent2 = _history[hist_index].parent2; our_areas[our_parent2] = ghosted_seq.area(jet2); our_area_4vectors[our_parent2] = ghosted_seq.area_4vector(jet2); } } // now add unclustered ghosts to the relevant list so that we can // calculate empty area later. vector unclust = ghosted_seq.unclustered_particles(); for (unsigned iu = 0; iu < unclust.size(); iu++) { if (ghosted_seq.is_pure_ghost(unclust[iu])) { double area_local = ghosted_seq.area(unclust[iu]); _unclustered_ghosts.push_back(GhostJet(unclust[iu],area_local)); } } /* * WARNING: * _average_area has explicitly been sized initially to 2*jets().size() * which can be bigger than our_areas (of size _history.size() * if there are some unclustered particles. * So we must take care about boundaries */ for (unsigned int area_index = 0; area_indexplus_equal(_average_area_4vector[i], our_area_4vectors[i]); } } /// check if two jets have the same momentum to within the /// tolerance (and if pt's are not the same we're forgiving and /// look to see if the energy is the same) void ClusterSequenceActiveArea::_throw_unless_jets_have_same_perp_or_E( const PseudoJet & jet, const PseudoJet & refjet, double tolerance, const ClusterSequenceActiveAreaExplicitGhosts & jets_ghosted_seq ) const { if (abs(jet.perp2()-refjet.perp2()) > tolerance*max(jet.perp2(),refjet.perp2()) && abs(jet.E()-refjet.E()) > tolerance*max(jet.E(),refjet.E())) { ostringstream ostr; ostr << "Could not match clustering sequence for an inclusive/exclusive jet when reconstructing areas. See FAQ for possible explanations." << endl; ostr << " Ref-Jet: " << refjet.px() << " " << refjet.py() << " " << refjet.pz() << " " << refjet.E() << endl; ostr << " New-Jet: " << jet.px() << " " << jet.py() << " " << jet.pz() << " " << jet.E() << endl; if (jets_ghosted_seq.has_dangerous_particles()) { ostr << " NB: some particles have pt too low wrt ghosts -- this may be the cause" << endl;} //ostr << jet.perp() << " " << refjet.perp() << " " // << jet.perp() - refjet.perp() << endl; throw Error(ostr.str()); } } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/ClusterSequenceVoronoiArea.cc0000644000175000017500000002441011766120140021606 0ustar sunsun//STARTHEADER // $Id: ClusterSequenceVoronoiArea.cc 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2006-2007 Matteo Cacciari, Gavin Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of a simple command-line handling environment // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequenceVoronoiArea.hh" #include "fastjet/internal/Voronoi.hh" #include #include #include #include #include #include #include using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh typedef ClusterSequenceVoronoiArea::VoronoiAreaCalc VAC; /// class for carrying out a voronoi area calculation on a set of /// initial vectors class ClusterSequenceVoronoiArea::VoronoiAreaCalc { public: /// constructor that takes a range of a vector together with the /// effective radius for the intersection of discs with voronoi /// cells VoronoiAreaCalc(const vector::const_iterator &, const vector::const_iterator &, double effective_R); /// return the area of the particle associated with the given /// index inline double area (int index) const {return _areas[index];}; private: std::vector _areas; ///< areas, numbered as jets double _effective_R; ///< effective radius double _effective_R_squared; ///< effective radius squared /** * compute the intersection of one triangle with the circle * the area is returned */ double edge_circle_intersection(const VPoint &p0, const GraphEdge &edge); /// get the area of a circle of radius R centred on the point 0 with /// 1 and 2 on each "side" of the arc. dij is the distance between /// point i and point j and all distances are squared inline double circle_area(const double d12_2, double d01_2, double d02_2){ return 0.5*_effective_R_squared *acos(min(1.0,(d01_2+d02_2-d12_2)/(2*sqrt(d01_2*d02_2)))); } }; /** * compute the intersection of one triangle with the circle * the area is returned */ double VAC::edge_circle_intersection(const VPoint &p0, const GraphEdge &edge){ VPoint p1(edge.x1-p0.x, edge.y1-p0.y); VPoint p2(edge.x2-p0.x, edge.y2-p0.y); VPoint pdiff = p2-p1; //fprintf(stdout, "\tpt(%f,%f)\n", p0.x, p0.y); double cross = vector_product(p1, p2); double d12_2 = norm(pdiff); double d01_2 = norm(p1); double d02_2 = norm(p2); // compute intersections between edge line and circle double delta = d12_2*_effective_R_squared - cross*cross; // if no intersection, area=area_circle if (delta<=0){ return circle_area(d12_2, d01_2, d02_2); } // we'll only need delta's sqrt now delta = sqrt(delta); // b is the projection of 01 onto 12 double b = scalar_product(pdiff, p1); // intersections with the circle: // we compute the "coordinate along the line" of the intersection // with t=0 (1) corresponding to p1 (p2) // points with 0 inters = circle if (tp<0) return circle_area(d12_2, d01_2, d02_2); // we need the second intersection double tm = -(delta+b)/d12_2; // if tp<1, it lies in the circle if (tp<1){ // if tm<0, the segment has one intersection // with the circle at p (t=tp) // the area is a triangle from 1 to p // then a circle from p to 2 // several tricks can be used: // - the area of the triangle is tp*area triangle // - the lenght for the circle are easily obtained if (tm<0) return tp*0.5*fabs(cross) +circle_area((1-tp)*(1-tp)*d12_2, _effective_R_squared, d02_2); // now, 0 < tm < tp < 1 // the segment intersects twice the circle // area = 2 cirles at ends + a triangle in the middle // again, simplifications are staightforward return (tp-tm)*0.5*fabs(cross) + circle_area(tm*tm*d12_2, d01_2, _effective_R_squared) + circle_area((1-tp)*(1-tp)*d12_2, _effective_R_squared, d02_2); } // now, we have tp>1 // if in addition tm>1, intersectino is a circle if (tm>1) return circle_area(d12_2, d01_2, d02_2); // if tm<0, the triangle is inside the circle if (tm<0) return 0.5*fabs(cross); // otherwise, only the "tm point" is on the segment // area = circle from 1 to m and triangle from m to 2 return (1-tm)*0.5*fabs(cross) +circle_area(tm*tm*d12_2, d01_2, _effective_R_squared); } // the constructor... //---------------------------------------------------------------------- VAC::VoronoiAreaCalc(const vector::const_iterator &jet_begin, const vector::const_iterator &jet_end, double effective_R) { assert(effective_R < 0.5*pi); vector voronoi_particles; vector voronoi_indices; _effective_R = effective_R; _effective_R_squared = effective_R*effective_R; double minrap = numeric_limits::max(); double maxrap = -minrap; unsigned int n_tot = 0, n_added = 0; // loop over jets and create the triangulation, as well as cross-referencing // info for (vector::const_iterator jet_it = jet_begin; jet_it != jet_end; jet_it++) { _areas.push_back(0.0); if ((jet_it->perp2()) != 0.0 || (jet_it->E() != jet_it->pz())){ // generate the corresponding point double rap = jet_it->rap(), phi = jet_it->phi(); voronoi_particles.push_back(VPoint(rap, phi)); voronoi_indices.push_back(n_tot); n_added++; // insert a copy of the point if it falls within 2*_R_effective // of the 0,2pi borders (because we are interested in any // voronoi edge within _R_effective of the other border) if (phi < 2*_effective_R) { voronoi_particles.push_back(VPoint(rap,phi+twopi)); voronoi_indices.push_back(-1); n_added++; } else if (twopi-phi < 2*_effective_R) { voronoi_particles.push_back(VPoint(rap,phi-twopi)); voronoi_indices.push_back(-1); n_added++; } // track the rapidity range maxrap = max(maxrap,rap); minrap = min(minrap,rap); } n_tot++; } // allow for 0-particle case in graceful way if (n_added == 0) return; // assert(n_added > 0); // old (pre 2.4) non-graceful exit // add extreme cases (corner particles): double max_extend = 2*max(maxrap-minrap+4*_effective_R, twopi+8*_effective_R); voronoi_particles.push_back(VPoint(0.5*(minrap+maxrap)-max_extend, pi)); voronoi_particles.push_back(VPoint(0.5*(minrap+maxrap)+max_extend, pi)); voronoi_particles.push_back(VPoint(0.5*(minrap+maxrap), pi-max_extend)); voronoi_particles.push_back(VPoint(0.5*(minrap+maxrap), pi+max_extend)); // Build the VD VoronoiDiagramGenerator vdg; vdg.generateVoronoi(&voronoi_particles, 0.5*(minrap+maxrap)-max_extend, 0.5*(minrap+maxrap)+max_extend, pi-max_extend, pi+max_extend); vdg.resetIterator(); GraphEdge *e=NULL; unsigned int v_index; int p_index; vector::const_iterator jet; while(vdg.getNext(&e)){ v_index = e->point1; if (v_indexpoint2; if (v_indexarea(i)); // make a stab at a 4-vector area if (_jets[i].perp2() > 0) { _voronoi_area_4vector.push_back((_pa_calc->area(i)/_jets[i].perp()) * _jets[i]); } else { // not sure what to do here -- just put zero (it won't be meaningful // anyway) _voronoi_area_4vector.push_back(PseudoJet(0.0,0.0,0.0,0.0)); } } // -- then the combined areas that arise from the clustering for (unsigned int i = n_particles(); i < _history.size(); i++) { double area_local; PseudoJet area_4vect; if (_history[i].parent2 >= 0) { area_local = _voronoi_area[_history[i].parent1] + _voronoi_area[_history[i].parent2]; area_4vect = _voronoi_area_4vector[_history[i].parent1] + _voronoi_area_4vector[_history[i].parent2]; } else { area_local = _voronoi_area[_history[i].parent1]; area_4vect = _voronoi_area_4vector[_history[i].parent1]; } _voronoi_area.push_back(area_local); _voronoi_area_4vector.push_back(area_4vect); } } //---------------------------------------------------------------------- ClusterSequenceVoronoiArea::~ClusterSequenceVoronoiArea() { delete _pa_calc; } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/BasicRandom.cc0000644000175000017500000000330211766120140016506 0ustar sunsun//STARTHEADER // simple random number generator class taken from nlojet++. // $Id: BasicRandom.cc 2471 2011-07-26 09:54:37Z cacciari $ // // Copyright (C) 2002 Zoltan Nagy // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //ENDHEADER // nlo includes #include "fastjet/internal/BasicRandom.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // // random number generator // uses method of L'Ecuyer, (via F.James, comp. phys. comm. 60(1990)329) // int __default_random_generator(int *__iseed) { int __k = __iseed[0]/53668; __iseed[0] = (__iseed[0] - __k*53668)*40014 - __k*12211; if(__iseed[0] < 0) __iseed[0] += 2147483563; __k = __iseed[1]/52774; __iseed[1] = (__iseed[1] - __k*52774)*40692 - __k*3791; if(__iseed[1] < 0) __iseed[1] += 2147483399; int __iz = __iseed[0] - __iseed[1]; if(__iz < 1) __iz += 2147483562; return __iz; } // global defined random number generator BasicRandom _G_random_int; BasicRandom _G_random_double; FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/ClusterSequence_CP2DChan.cc0000644000175000017500000003036111766120140021005 0ustar sunsun//STARTHEADER // $Id: ClusterSequence_CP2DChan.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequence.hh" #include "fastjet/internal/ClosestPair2D.hh" #include #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; // place for things we don't want outside world to run into namespace Private { /// class for helping us deal with mirror-image particles. class MirrorInfo{ public: int orig, mirror; MirrorInfo(int a, int b) : orig(a), mirror(b) {}; MirrorInfo() {}; }; /// if there is a need for a mirror when looking for closest pairs /// up to distance D, then return true and turn the supplied point /// into its mirror copy bool make_mirror(Coord2D & point, double Dlim) { if (point.y < Dlim) {point.y += twopi; return true;} if (twopi-point.y < Dlim) {point.y -= twopi; return true;} return false; } } using namespace Private; //---------------------------------------------------------------------- /// clusters only up to a distance Dlim -- does not deal with "inclusive" jets /// -- these are left to some other part of the program void ClusterSequence::_CP2DChan_limited_cluster (double Dlim) { unsigned int n = _initial_n; vector coordIDs(2*n); // coord IDs of a given jetID vector jetIDs(2*n); // jet ID for a given coord ID vector coords(2*n); // our coordinates (and copies) // particles within a distance Dlim of the phi edges (phi2pi-Dli;) will be mirrored. For Dlim>pi, this could lead to // particles copies outside the fixed range in phi which is // [-pi:3pi] (see make_mirror above). Since in that case all // particles get copied anywaym we can just copy particles up to a // distance "pi" from the edges double Dlim4mirror = min(Dlim,pi); // start things off... double minrap = numeric_limits::max(); double maxrap = -minrap; int coord_index = -1; int n_active = 0; for (unsigned jet_i = 0; jet_i < _jets.size(); jet_i++) { // skip jets that already have children or that have infinite // rapidity if (_history[_jets[jet_i].cluster_hist_index()].child != Invalid || (_jets[jet_i].E() == abs(_jets[jet_i].pz()) && _jets[jet_i].perp2() == 0.0) ) {continue;} n_active++; coordIDs[jet_i].orig = ++coord_index; coords[coord_index] = Coord2D(_jets[jet_i].rap(), _jets[jet_i].phi_02pi()); jetIDs[coord_index] = jet_i; minrap = min(coords[coord_index].x,minrap); maxrap = max(coords[coord_index].x,maxrap); Coord2D mirror_point(coords[coord_index]); if (make_mirror(mirror_point, Dlim4mirror)) { coordIDs[jet_i].mirror = ++coord_index; coords[coord_index] = mirror_point; jetIDs[coord_index] = jet_i; } else { coordIDs[jet_i].mirror = Invalid; } } // set them to their actual size... coords.resize(coord_index+1); // establish limits (with some leeway on rapidity) Coord2D left_edge(minrap-1.0, -3.15); // a security margin below -pi Coord2D right_edge(maxrap+1.0, 9.45); // a security margin above 3*pi //cerr << "minrap, maxrap = " << minrap << " " << maxrap << endl; // now create the closest pair search object ClosestPair2D cp(coords, left_edge, right_edge); // cross check to see what's going on... //cerr << "Tree depths before: "; //cp.print_tree_depths(cerr); // and start iterating... vector new_points(2); vector cIDs_to_remove(4); vector new_cIDs(2); do { // find out which pair we recombine unsigned int cID1, cID2; double distance2; cp.closest_pair(cID1,cID2,distance2); // if the closest distance > Dlim, we exit and go to "inclusive" stage if (distance2 > Dlim*Dlim) {break;} // normalise distance as we like it distance2 *= _invR2; // do the recombination... int jet_i = jetIDs[cID1]; int jet_j = jetIDs[cID2]; assert (jet_i != jet_j); // to catch issue of recombining with mirror point int newjet_k; _do_ij_recombination_step(jet_i, jet_j, distance2, newjet_k); // don't bother with any further action if only one active particle // is left (also avoid closest-pair error [cannot remove last particle]). if (--n_active == 1) {break;} // now prepare operations on CP structure cIDs_to_remove.resize(0); cIDs_to_remove.push_back(coordIDs[jet_i].orig); cIDs_to_remove.push_back(coordIDs[jet_j].orig); if (coordIDs[jet_i].mirror != Invalid) cIDs_to_remove.push_back(coordIDs[jet_i].mirror); if (coordIDs[jet_j].mirror != Invalid) cIDs_to_remove.push_back(coordIDs[jet_j].mirror); Coord2D new_point(_jets[newjet_k].rap(),_jets[newjet_k].phi_02pi()); new_points.resize(0); new_points.push_back(new_point); if (make_mirror(new_point, Dlim4mirror)) new_points.push_back(new_point); //< same warning as before concerning the mirroring // carry out actions on search tree cp.replace_many(cIDs_to_remove, new_points, new_cIDs); // now fill in info for new points... coordIDs[newjet_k].orig = new_cIDs[0]; jetIDs[new_cIDs[0]] = newjet_k; if (new_cIDs.size() == 2) { coordIDs[newjet_k].mirror = new_cIDs[1]; jetIDs[new_cIDs[1]] = newjet_k; } else {coordIDs[newjet_k].mirror = Invalid;} //// if we've reached one "active" jet we should exit... //n_active--; //if (n_active == 1) {break;} } while(true); // cross check to see what's going on... //cerr << "Max tree depths after: "; //cp.print_tree_depths(cerr); } //---------------------------------------------------------------------- /// a variant of the closest pair clustering which uses a region of /// size 2pi+2R in phi. void ClusterSequence::_CP2DChan_cluster_2pi2R () { if (_jet_algorithm != cambridge_algorithm) throw Error("CP2DChan clustering method called for a jet-finder that is not the cambridge algorithm"); // run the clustering with mirror copies kept such that only things // within _Rparam of a border are mirrored _CP2DChan_limited_cluster(_Rparam); // _do_Cambridge_inclusive_jets(); } //---------------------------------------------------------------------- /// a variant of the closest pair clustering which uses a region of /// size 2pi + 2*0.3 and then carries on with 2pi+2*R void ClusterSequence::_CP2DChan_cluster_2piMultD () { // do a first run of clustering up to a small distance parameter, if (_Rparam >= 0.39) { _CP2DChan_limited_cluster(min(_Rparam/2,0.3)); } // and then the final round of clustering _CP2DChan_cluster_2pi2R (); } //---------------------------------------------------------------------- /// a 4pi variant of the closest pair clustering void ClusterSequence::_CP2DChan_cluster () { if (_jet_algorithm != cambridge_algorithm) throw Error("_CP2DChan_cluster called for a jet-finder that is not the cambridge algorithm"); unsigned int n = _jets.size(); vector coordIDs(2*n); // link from original to mirror indices vector jetIDs(2*n); // link from mirror to original indices vector coords(2*n); // our coordinates (and copies) // start things off... double minrap = numeric_limits::max(); double maxrap = -minrap; int coord_index = 0; for (unsigned i = 0; i < n; i++) { // separate out points with infinite rapidity if (_jets[i].E() == abs(_jets[i].pz()) && _jets[i].perp2() == 0.0) { coordIDs[i] = MirrorInfo(BeamJet,BeamJet); } else { coordIDs[i].orig = coord_index; coordIDs[i].mirror = coord_index+1; coords[coord_index] = Coord2D(_jets[i].rap(), _jets[i].phi_02pi()); coords[coord_index+1] = Coord2D(_jets[i].rap(), _jets[i].phi_02pi()+twopi); jetIDs[coord_index] = i; jetIDs[coord_index+1] = i; minrap = min(coords[coord_index].x,minrap); maxrap = max(coords[coord_index].x,maxrap); coord_index += 2; } } // label remaining "mirror info" as saying that there are no jets for (unsigned i = n; i < 2*n; i++) {coordIDs[i].orig = Invalid;} // set them to their actual size... coords.resize(coord_index); // establish limits (with some leeway on rapidity) Coord2D left_edge(minrap-1.0, 0.0); Coord2D right_edge(maxrap+1.0, 2*twopi); // now create the closest pair search object ClosestPair2D cp(coords, left_edge, right_edge); // and start iterating... vector new_points(2); vector cIDs_to_remove(4); vector new_cIDs(2); do { // find out which pair we recombine unsigned int cID1, cID2; double distance2; cp.closest_pair(cID1,cID2,distance2); distance2 *= _invR2; // if the closest distance > 1, we exit and go to "inclusive" stage if (distance2 > 1.0) {break;} // do the recombination... int jet_i = jetIDs[cID1]; int jet_j = jetIDs[cID2]; assert (jet_i != jet_j); // to catch issue of recombining with mirror point int newjet_k; _do_ij_recombination_step(jet_i, jet_j, distance2, newjet_k); // now prepare operations on CP structure cIDs_to_remove[0] = coordIDs[jet_i].orig; cIDs_to_remove[1] = coordIDs[jet_i].mirror; cIDs_to_remove[2] = coordIDs[jet_j].orig; cIDs_to_remove[3] = coordIDs[jet_j].mirror; new_points[0] = Coord2D(_jets[newjet_k].rap(),_jets[newjet_k].phi_02pi()); new_points[1] = Coord2D(_jets[newjet_k].rap(),_jets[newjet_k].phi_02pi()+twopi); // carry out the CP operation //cp.replace_many(cIDs_to_remove, new_points, new_cIDs); // remarkable the following is faster... new_cIDs[0] = cp.replace(cIDs_to_remove[0], cIDs_to_remove[2], new_points[0]); new_cIDs[1] = cp.replace(cIDs_to_remove[1], cIDs_to_remove[3], new_points[1]); // signal that the following jets no longer exist coordIDs[jet_i].orig = Invalid; coordIDs[jet_j].orig = Invalid; // and do bookkeeping for new jet coordIDs[newjet_k] = MirrorInfo(new_cIDs[0], new_cIDs[1]); jetIDs[new_cIDs[0]] = newjet_k; jetIDs[new_cIDs[1]] = newjet_k; // if we've reached one jet we should exit... n--; if (n == 1) {break;} } while(true); // now do "beam" recombinations //for (unsigned int jet_i = 0; jet_i < coordIDs.size(); jet_i++) { // // if we have a predeclared beam jet or a valid set of mirror // // coordinates, recombine then recombine this jet with the beam // if (coordIDs[jet_i].orig == BeamJet || coordIDs[jet_i].orig > 0) { // // diB = 1 _always_ (for the cambridge alg.) // _do_iB_recombination_step(jet_i, 1.0); // } //} _do_Cambridge_inclusive_jets(); //n = _history.size(); //for (unsigned int hist_i = 0; hist_i < n; hist_i++) { // if (_history[hist_i].child == Invalid) { // _do_iB_recombination_step(_history[hist_i].jetp_index, 1.0); // } //} } //---------------------------------------------------------------------- void ClusterSequence::_do_Cambridge_inclusive_jets () { unsigned int n = _history.size(); for (unsigned int hist_i = 0; hist_i < n; hist_i++) { if (_history[hist_i].child == Invalid) { _do_iB_recombination_step(_history[hist_i].jetp_index, 1.0); } } } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/Voronoi.cc0000644000175000017500000010124011766120140015757 0ustar sunsun//STARTHEADER // $Id: Voronoi.cc 2767 2011-11-24 21:43:09Z salam $ // // Copyright (c) 1994 by AT&T Bell Laboratories (see below) // // //---------------------------------------------------------------------- // This file is included as part of FastJet but was mostly written by // S. Fortune in C, put into C++ with memory management by S // O'Sullivan, and with further interface and memory management // modifications by Gregory Soyez. // // Permission to use, copy, modify, and distribute this software for // any purpose without fee is hereby granted, provided that this // entire notice is included in all copies of any software which is or // includes a copy or modification of this software and in all copies // of the supporting documentation for such software. THIS SOFTWARE IS // BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTY. // IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY REPRESENTATION // OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS // SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. // //---------------------------------------------------------------------- //ENDHEADER /* * The author of this software is Steven Fortune. * Copyright (c) 1994 by AT&T Bell Laboratories. * Permission to use, copy, modify, and distribute this software for any * purpose without fee is hereby granted, provided that this entire notice * is included in all copies of any software which is or includes a copy * or modification of this software and in all copies of the supporting * documentation for such software. * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. */ /* * This code was originally written by Stephan Fortune in C code. I, * Shane O'Sullivan, have since modified it, encapsulating it in a C++ * class and, fixing memory leaks and adding accessors to the Voronoi * Edges. Permission to use, copy, modify, and distribute this * software for any purpose without fee is hereby granted, provided * that this entire notice is included in all copies of any software * which is or includes a copy or modification of this software and in * all copies of the supporting documentation for such software. THIS * SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR * PURPOSE. */ /* * This code, included in the FastJet distribution, was originally * written by Stephan Fortune in C and adapted to C++ by Shane * O'Sullivan under the terms reported above. * * Below are the list of changes implemented by the FastJet authors: * * 2011-11-14 Gregory Soyez * * * removed 'plot' and 'triangulate' (were always 0) * * removed unused plot functions (openpl, circle, range, * out_bisector, out_ep, out_vertex, out_site, out_triple) * * removed unused 'VPoint p' in 'intersect' * * * 2011-07-22 Gregory Soyez * * * replaced Point by VPoint (to avoid any potential conflict * with an already existing class Point in FastJet * * * 2011-06-28 Gregory Soyez * * * added support for situations with degenerate particles (we just * discard the particles degenerate wiht an already existing * one which is perfectly sufficient for our needs) * * in 'VoronoiDiagramGenerator::intersect', improved the numerical * precision in cases where the 2 parents are nearly degenerate * * * 2011-06-14 Gregory Soyez * * * fixed a potential overflow bug in VoronoiDiagramGenerator::PQbucket * * * 2007-05-07 Gregory Soyez * * * fied a few memory leaks * * * put the code in the fastjet namespace * * * replaced float by double * * * generateVoronoi() takes a vector of Point instead of 2 * pointers * * * added info about the parent sites to GraphEdge (and clip_line) * * * removed condition on minimal distance between sites */ #include #include "fastjet/internal/Voronoi.hh" using namespace std; FASTJET_BEGIN_NAMESPACE LimitedWarning VoronoiDiagramGenerator::_warning_degeneracy; VoronoiDiagramGenerator::VoronoiDiagramGenerator(){ siteidx = 0; sites = NULL; parent_sites = NULL; allMemoryList = new FreeNodeArrayList; allMemoryList->memory = NULL; allMemoryList->next = NULL; currentMemoryBlock = allMemoryList; allEdges = NULL; iteratorEdges = 0; minDistanceBetweenSites = 0; ELhash = NULL; PQhash = NULL; } VoronoiDiagramGenerator::~VoronoiDiagramGenerator(){ cleanup(); cleanupEdges(); if (allMemoryList != NULL) delete allMemoryList; } bool VoronoiDiagramGenerator::generateVoronoi(vector *_parent_sites, double minX, double maxX, double minY, double maxY, double minDist){ cleanup(); cleanupEdges(); int i; double x, y; minDistanceBetweenSites = minDist; parent_sites = _parent_sites; nsites = n_parent_sites = parent_sites->size(); debug = 1; sorted = 0; freeinit(&sfl, sizeof (Site)); //sites = (Site *) myalloc(nsites*sizeof( *sites)); sites = (Site *) myalloc(nsites*sizeof( Site)); //parent_sites = (Site *) myalloc(nsites*sizeof( Site)); if (sites == 0) return false; xmax = xmin = (*parent_sites)[0].x; ymax = ymin = (*parent_sites)[0].y; for(i=0;ixmax) xmax=x; if (yymax) ymax=y; } qsort(sites, nsites, sizeof (*sites), scomp); // Gregory Soyez // // check if some of the particles are degenerate to avoid a crash. // // At the moment, we work under the assumption that they will be // "clustered" later on, so we just keep the 1st one and discard the // others unsigned int offset=0; for (int is=1;is0){ sites[is-offset] = sites[is]; } } if (offset>0){ nsites-=offset; _warning_degeneracy.warn("VoronoiDiagramGenerator: two (or more) particles are degenerate in rapidity and azimuth, Voronoi cell assigned to the first of each set of degenerate particles."); } siteidx = 0; geominit(); double temp = 0; if(minX > maxX){ temp = minX; minX = maxX; maxX = temp; } if(minY > maxY){ temp = minY; minY = maxY; maxY = temp; } borderMinX = minX; borderMinY = minY; borderMaxX = maxX; borderMaxY = maxY; siteidx = 0; voronoi(); return true; } bool VoronoiDiagramGenerator::ELinitialize(){ int i; freeinit(&hfl, sizeof(Halfedge)); ELhashsize = 2 * sqrt_nsites; //ELhash = (Halfedge **) myalloc ( sizeof *ELhash * ELhashsize); ELhash = (Halfedge **) myalloc ( sizeof(Halfedge*)*ELhashsize); if(ELhash == 0) return false; for(i=0; iELleft = (Halfedge*) NULL; ELleftend->ELright = ELrightend; ELrightend->ELleft = ELleftend; ELrightend->ELright = (Halfedge*) NULL; ELhash[0] = ELleftend; ELhash[ELhashsize-1] = ELrightend; return true; } Halfedge* VoronoiDiagramGenerator::HEcreate(Edge *e,int pm){ Halfedge *answer; answer = (Halfedge*) getfree(&hfl); answer->ELedge = e; answer->ELpm = pm; answer->PQnext = (Halfedge*) NULL; answer->vertex = (Site*) NULL; answer->ELrefcnt = 0; return answer; } void VoronoiDiagramGenerator::ELinsert(Halfedge *lb, Halfedge *newHe) { newHe->ELleft = lb; newHe->ELright = lb->ELright; (lb->ELright)->ELleft = newHe; lb->ELright = newHe; } /* Get entry from hash table, pruning any deleted nodes */ Halfedge* VoronoiDiagramGenerator::ELgethash(int b){ Halfedge *he; if ((b<0) || (b>=ELhashsize)) return (Halfedge *) NULL; he = ELhash[b]; if ((he==(Halfedge*) NULL) || (he->ELedge!=(Edge*) DELETED)) return he; /* Hash table points to deleted half edge. Patch as necessary. */ ELhash[b] = (Halfedge*) NULL; if ((he->ELrefcnt -= 1) == 0) makefree((Freenode*)he, &hfl); return (Halfedge*) NULL; } Halfedge * VoronoiDiagramGenerator::ELleftbnd(VPoint *p){ int i, bucket; Halfedge *he; /* Use hash table to get close to desired halfedge */ // use the hash function to find the place in the hash map that this // HalfEdge should be // Gregory Soyez: the original code was // // bucket = (int)((p->x - xmin)/deltax * ELhashsize); // // make sure that the bucket position in within the range of the // //hash array // if (bucket<0) bucket =0; // if (bucket>=ELhashsize) bucket = ELhashsize - 1; // // but this runs the risk of having a overflow which would // cause bucket to be truncated at 0 instead of ELhashsize - 1 // (or vice-versa) // We fix this by performing the test immediately on the double // We put in a extra bit of margin to be sure the conversion does // not play dirty tricks on us //const double &px = p->x; if (p->x < xmin){ bucket=0;} else if (p->x >= xmax){ bucket = ELhashsize - 1;} else{ bucket= (int)((p->x - xmin)/deltax * ELhashsize); if (bucket>=ELhashsize) bucket = ELhashsize - 1; // the lower cut should be robust } he = ELgethash(bucket); // if the HE isn't found, search backwards and forwards in the hash // map for the first non-null entry if (he == (Halfedge*) NULL){ for(i=1;1;i++){ if ((he=ELgethash(bucket-i)) != (Halfedge*) NULL) break; if ((he=ELgethash(bucket+i)) != (Halfedge*) NULL) break; }; totalsearch += i; }; ntry += 1; /* Now search linear list of halfedges for the correct one */ if ((he==ELleftend) || (he != ELrightend && right_of(he,p))){ do{ he = he->ELright; } while (he!=ELrightend && right_of(he,p)); // keep going right on the list until either the end is reached, // or you find the 1st edge which the point he = he->ELleft; //isn't to the right of } else // if the point is to the left of the HalfEdge, then search left // for the HE just to the left of the point do{ he = he->ELleft; } while ((he!=ELleftend )&& (!right_of(he,p))); /* Update hash table and reference counts */ if ((bucket > 0) && (bucket ELrefcnt -= 1; } ELhash[bucket] = he; ELhash[bucket]->ELrefcnt += 1; }; return he; } /* This delete routine can't reclaim node, since pointers from hash table may be present. */ void VoronoiDiagramGenerator::ELdelete(Halfedge *he){ (he->ELleft)->ELright = he->ELright; (he->ELright)->ELleft = he->ELleft; he->ELedge = (Edge*) DELETED; } Halfedge* VoronoiDiagramGenerator::ELright(Halfedge *he){ return he->ELright; } Halfedge* VoronoiDiagramGenerator::ELleft(Halfedge *he){ return he->ELleft; } Site * VoronoiDiagramGenerator::leftreg(Halfedge *he){ if (he->ELedge == (Edge*) NULL) return(bottomsite); return (he->ELpm == le) ? he->ELedge->reg[le] : he->ELedge->reg[re]; } Site * VoronoiDiagramGenerator::rightreg(Halfedge *he){ if (he->ELedge == (Edge*) NULL) // if this halfedge has no edge, return the bottom site (whatever // that is) return bottomsite; // if the ELpm field is zero, return the site 0 that this edge // bisects, otherwise return site number 1 return (he->ELpm == le) ? he->ELedge->reg[re] : he->ELedge->reg[le]; } void VoronoiDiagramGenerator::geominit(){ double sn; freeinit(&efl, sizeof(Edge)); nvertices = 0; nedges = 0; sn = (double)nsites+4; sqrt_nsites = (int)sqrt(sn); deltay = ymax - ymin; deltax = xmax - xmin; } Edge * VoronoiDiagramGenerator::bisect(Site *s1, Site *s2){ double dx,dy,adx,ady; Edge *newedge; newedge = (Edge*) getfree(&efl); newedge->reg[0] = s1; //store the sites that this edge is bisecting newedge->reg[1] = s2; ref(s1); ref(s2); // to begin with, there are no endpoints on the bisector - it goes // to infinity newedge->ep[0] = (Site*) NULL; newedge->ep[1] = (Site*) NULL; // get the difference in x dist between the sites dx = s2->coord.x - s1->coord.x; dy = s2->coord.y - s1->coord.y; // make sure that the difference is positive adx = dx>0 ? dx : -dx; ady = dy>0 ? dy : -dy; // get the slope of the line newedge->c = (double)(s1->coord.x * dx + s1->coord.y * dy + (dx*dx + dy*dy)*0.5); if (adx>ady){ //set formula of line, with x fixed to 1 newedge->a = 1.0; newedge->b = dy/dx; newedge->c /= dx; } else { //set formula of line, with y fixed to 1 newedge->b = 1.0; newedge->a = dx/dy; newedge->c /= dy; } newedge->edgenbr = nedges; nedges++; return newedge; } // create a new site where the HalfEdges el1 and el2 intersect - note // that the VPoint in the argument list is not used, don't know why // it's there // // Gregory Soyez: removed the uinused point p Site* VoronoiDiagramGenerator::intersect(Halfedge *el1, Halfedge *el2 /*, VPoint *p*/){ Edge *e1,*e2, *e; Halfedge *el; double d, xint, yint; int right_of_site; Site *v; e1 = el1->ELedge; e2 = el2->ELedge; if ((e1==(Edge*)NULL) || (e2==(Edge*)NULL)) return ((Site*) NULL); // if the two edges bisect the same parent, return null if (e1->reg[1] == e2->reg[1]) return (Site*) NULL; // Gregory Soyez: // // if the 2 parents are too close, the intersection is going to be // computed from the "long edges" of the triangle which could causes // large rounding errors. In this case, use the bisector of the 2 // parents to find the interaction point // // The following replaces // d = e1->a * e2->b - e1->b * e2->a; // if (-1.0e-10c*e2->b - e2->c*e1->b)/d; // yint = (e2->c*e1->a - e1->c*e2->a)/d; double dx = e2->reg[1]->coord.x - e1->reg[1]->coord.x; double dy = e2->reg[1]->coord.y - e1->reg[1]->coord.y; double dxref = e1->reg[1]->coord.x - e1->reg[0]->coord.x; double dyref = e1->reg[1]->coord.y - e1->reg[0]->coord.y; if (dx*dx + dy*dy < 1e-14*(dxref*dxref+dyref*dyref)){ // make sure that the difference is positive double adx = dx>0 ? dx : -dx; double ady = dy>0 ? dy : -dy; // get the slope of the line double a,b; double c = (double)(e1->reg[1]->coord.x * dx + e1->reg[1]->coord.y * dy + (dx*dx + dy*dy)*0.5); if (adx>ady){ a = 1.0; b = dy/dx; c /= dx; } else { b = 1.0; a = dx/dy; c /= dy; } d = e1->a * b - e1->b * a; if (-1.0e-10c*b - c*e1->b)/d; yint = (c*e1->a - e1->c*a)/d; } else { d = e1->a * e2->b - e1->b * e2->a; if (-1.0e-10c*e2->b - e2->c*e1->b)/d; yint = (e2->c*e1->a - e1->c*e2->a)/d; } // end of Gregory Soyez's modifications volatile double local_y1 = e1->reg[1]->coord.y; volatile double local_y2 = e2->reg[1]->coord.y; if( (local_y1 < local_y2) || ((local_y1 == local_y2) && (e1->reg[1]->coord.x < e2->reg[1]->coord.x)) ){ el = el1; e = e1; } else { el = el2; e = e2; } right_of_site = xint >= e->reg[1]->coord.x; if ((right_of_site && el->ELpm == le) || (!right_of_site && el->ELpm == re)) return (Site*) NULL; // create a new site at the point of intersection - this is a new // vector event waiting to happen v = (Site*) getfree(&sfl); v->refcnt = 0; v->coord.x = xint; v->coord.y = yint; return v; } //HERE /* returns 1 if p is to right of halfedge e */ int VoronoiDiagramGenerator::right_of(Halfedge *el,VPoint *p) { Edge *e; Site *topsite; int right_of_site, above, fast; double dxp, dyp, dxs, t1, t2, t3, yl; e = el->ELedge; topsite = e->reg[1]; right_of_site = p->x > topsite->coord.x; if(right_of_site && el->ELpm == le) return(1); if(!right_of_site && el->ELpm == re) return (0); if (e->a == 1.0) { dyp = p->y - topsite->coord.y; dxp = p->x - topsite->coord.x; fast = 0; if ((!right_of_site & (e->b<0.0)) | (right_of_site & (e->b>=0.0)) ) { above = dyp>= e->b*dxp; fast = above; } else { above = p->x + p->y*e->b > e-> c; if(e->b<0.0) above = !above; if (!above) fast = 1; }; if (!fast) { dxs = topsite->coord.x - (e->reg[0])->coord.x; above = e->b * (dxp*dxp - dyp*dyp) < dxs*dyp*(1.0+2.0*dxp/dxs + e->b*e->b); if(e->b<0.0) above = !above; }; } else /*e->b==1.0 */ { yl = e->c - e->a*p->x; t1 = p->y - yl; t2 = p->x - topsite->coord.x; t3 = yl - topsite->coord.y; above = t1*t1 > t2*t2 + t3*t3; }; return (el->ELpm==le ? above : !above); } void VoronoiDiagramGenerator::endpoint(Edge *e,int lr,Site * s) { e->ep[lr] = s; ref(s); if(e->ep[re-lr]== (Site *) NULL) return; clip_line(e); deref(e->reg[le]); deref(e->reg[re]); makefree((Freenode*)e, &efl); } double VoronoiDiagramGenerator::dist(Site *s,Site *t) { double dx,dy; dx = s->coord.x - t->coord.x; dy = s->coord.y - t->coord.y; return (double)(sqrt(dx*dx + dy*dy)); } void VoronoiDiagramGenerator::makevertex(Site *v) { v->sitenbr = nvertices; nvertices += 1; //GS unused plot: out_vertex(v); } void VoronoiDiagramGenerator::deref(Site *v) { v->refcnt -= 1; if (v->refcnt == 0 ) makefree((Freenode*)v, &sfl); } void VoronoiDiagramGenerator::ref(Site *v) { v->refcnt += 1; } //push the HalfEdge into the ordered linked list of vertices void VoronoiDiagramGenerator::PQinsert(Halfedge *he,Site * v, double offset) { Halfedge *last, *next; he->vertex = v; ref(v); he->ystar = (double)(v->coord.y + offset); last = &PQhash[PQbucket(he)]; while ((next = last->PQnext) != (Halfedge *) NULL && (he->ystar > next->ystar || (he->ystar == next->ystar && v->coord.x > next->vertex->coord.x))) { last = next; }; he->PQnext = last->PQnext; last->PQnext = he; PQcount += 1; } //remove the HalfEdge from the list of vertices void VoronoiDiagramGenerator::PQdelete(Halfedge *he) { Halfedge *last; if(he->vertex != (Site *) NULL) { last = &PQhash[PQbucket(he)]; while (last->PQnext != he) last = last->PQnext; last->PQnext = he->PQnext; PQcount -= 1; deref(he->vertex); he->vertex = (Site *) NULL; }; } int VoronoiDiagramGenerator::PQbucket(Halfedge *he) { // Gregory Soyez: the original code was // // bucket = (int)((he->ystar - ymin)/deltay * PQhashsize); // if (bucket<0) bucket = 0; // if (bucket>=PQhashsize) bucket = PQhashsize-1 ; // if (bucket < PQmin) PQmin = bucket; // return(bucket); // // but this runs the risk of having a overflow which would // cause bucket to be truncated at 0 instead of PQhashsize-1 // (or vice-versa) // We fix this by performing the test immediately on the double // We put in a extra bit of margin to be sure the conversion does // not play dirty tricks on us int bucket; double hey = he->ystar; if (hey < ymin){ bucket = 0;} else if (hey >= ymax){ bucket = PQhashsize-1;} else { bucket = (int)((hey - ymin)/deltay * PQhashsize); if (bucket>=PQhashsize) bucket = PQhashsize-1 ; } if (bucket < PQmin) PQmin = bucket; return(bucket); } int VoronoiDiagramGenerator::PQempty() { return(PQcount==0); } VPoint VoronoiDiagramGenerator::PQ_min() { VPoint answer; while(PQhash[PQmin].PQnext == (Halfedge *)NULL) {PQmin += 1;}; answer.x = PQhash[PQmin].PQnext->vertex->coord.x; answer.y = PQhash[PQmin].PQnext->ystar; return (answer); } Halfedge * VoronoiDiagramGenerator::PQextractmin() { Halfedge *curr; curr = PQhash[PQmin].PQnext; PQhash[PQmin].PQnext = curr->PQnext; PQcount -= 1; return(curr); } bool VoronoiDiagramGenerator::PQinitialize() { int i; PQcount = 0; PQmin = 0; PQhashsize = 4 * sqrt_nsites; //PQhash = (Halfedge *) myalloc(PQhashsize * sizeof *PQhash); PQhash = (Halfedge *) myalloc(PQhashsize * sizeof(Halfedge)); if(PQhash == 0) return false; for(i=0; ihead = (Freenode *) NULL; fl->nodesize = size; } char * VoronoiDiagramGenerator::getfree(Freelist *fl) { int i; Freenode *t; if(fl->head == (Freenode *) NULL) { t = (Freenode *) myalloc(sqrt_nsites * fl->nodesize); if(t == 0) return 0; currentMemoryBlock->next = new FreeNodeArrayList; currentMemoryBlock = currentMemoryBlock->next; currentMemoryBlock->memory = t; currentMemoryBlock->next = 0; for(i=0; inodesize), fl); }; t = fl->head; fl->head = (fl->head)->nextfree; return((char *)t); } void VoronoiDiagramGenerator::makefree(Freenode *curr,Freelist *fl) { curr->nextfree = fl->head; fl->head = curr; } void VoronoiDiagramGenerator::cleanup() { if(sites != NULL){ free(sites); sites = 0; } FreeNodeArrayList* current=NULL, *prev=NULL; current = prev = allMemoryList; while(current->next!=NULL){ prev = current; current = current->next; free(prev->memory); delete prev; prev = NULL; } if(current!=NULL){ if (current->memory!=NULL){ free(current->memory); } delete current; } allMemoryList = new FreeNodeArrayList; allMemoryList->next = NULL; allMemoryList->memory = NULL; currentMemoryBlock = allMemoryList; if (ELhash!=NULL) free(ELhash); if (PQhash!=NULL) free(PQhash); } void VoronoiDiagramGenerator::cleanupEdges() { GraphEdge* geCurrent = NULL, *gePrev = NULL; geCurrent = gePrev = allEdges; while(geCurrent!=NULL){ gePrev = geCurrent; geCurrent = geCurrent->next; delete gePrev; } allEdges = 0; } void VoronoiDiagramGenerator::pushGraphEdge(double x1, double y1, double x2, double y2, Site *s1, Site *s2) { GraphEdge* newEdge = new GraphEdge; newEdge->next = allEdges; allEdges = newEdge; newEdge->x1 = x1; newEdge->y1 = y1; newEdge->x2 = x2; newEdge->y2 = y2; newEdge->point1 = s1->sitenbr; newEdge->point2 = s2->sitenbr; } char * VoronoiDiagramGenerator::myalloc(unsigned n) { char *t=0; t=(char*)malloc(n); total_alloc += n; return(t); } // unused plot functions // // /* for those who don't have Cherry's plot */ // /* #include */ // void VoronoiDiagramGenerator::openpl(){} // void VoronoiDiagramGenerator::circle(double x, double y, double radius){} // void VoronoiDiagramGenerator::range(double minX, double minY, double maxX, double maxY){} // // // // void VoronoiDiagramGenerator::out_bisector(Edge *e) // { // // // } // // // void VoronoiDiagramGenerator::out_ep(Edge *e) // { // // // } // // void VoronoiDiagramGenerator::out_vertex(Site *v) // { // // } // // // void VoronoiDiagramGenerator::out_site(Site *s) // { // // Gregory Soyez: // // plot was always 0 so the expression below was always false // // and even if it was not, 'circle' does nothing! // // // // if(!triangulate & plot & !debug) // // circle (s->coord.x, s->coord.y, cradius); // // } // // // void VoronoiDiagramGenerator::out_triple(Site *s1, Site *s2,Site * s3) // { // // } void VoronoiDiagramGenerator::plotinit() { double dx,dy,d; dy = ymax - ymin; dx = xmax - xmin; d = (double)(( dx > dy ? dx : dy) * 1.1); pxmin = (double)(xmin - (d-dx)/2.0); pxmax = (double)(xmax + (d-dx)/2.0); pymin = (double)(ymin - (d-dy)/2.0); pymax = (double)(ymax + (d-dy)/2.0); cradius = (double)((pxmax - pxmin)/350.0); //GS unused: openpl(); //GS unused: range(pxmin, pymin, pxmax, pymax); } void VoronoiDiagramGenerator::clip_line(Edge *e) { Site *s1, *s2; double x1=0,x2=0,y1=0,y2=0; //, temp = 0; x1 = e->reg[0]->coord.x; x2 = e->reg[1]->coord.x; y1 = e->reg[0]->coord.y; y2 = e->reg[1]->coord.y; //if the distance between the two points this line was created from is less than //the square root of 2, then ignore it //TODO improve/remove //if(sqrt(((x2 - x1) * (x2 - x1)) + ((y2 - y1) * (y2 - y1))) < minDistanceBetweenSites) // { // return; // } pxmin = borderMinX; pxmax = borderMaxX; pymin = borderMinY; pymax = borderMaxY; if(e->a == 1.0 && e ->b >= 0.0) { s1 = e->ep[1]; s2 = e->ep[0]; } else { s1 = e->ep[0]; s2 = e->ep[1]; }; if(e->a == 1.0) { y1 = pymin; if (s1!=(Site *)NULL && s1->coord.y > pymin) { y1 = s1->coord.y; } if(y1>pymax) { // printf("\nClipped (1) y1 = %f to %f",y1,pymax); y1 = pymax; //return; } x1 = e->c - e->b * y1; y2 = pymax; if (s2!=(Site *)NULL && s2->coord.y < pymax) y2 = s2->coord.y; if(y2c) - (e->b) * y2; if (((x1> pxmax) & (x2>pxmax)) | ((x1 pxmax) { x1 = pxmax; y1 = (e->c - x1)/e->b;}; if(x1c - x1)/e->b;}; if(x2>pxmax) { x2 = pxmax; y2 = (e->c - x2)/e->b;}; if(x2c - x2)/e->b;}; } else { x1 = pxmin; if (s1!=(Site *)NULL && s1->coord.x > pxmin) x1 = s1->coord.x; if(x1>pxmax) { //printf("\nClipped (3) x1 = %f to %f",x1,pxmin); //return; x1 = pxmax; } y1 = e->c - e->a * x1; x2 = pxmax; if (s2!=(Site *)NULL && s2->coord.x < pxmax) x2 = s2->coord.x; if(x2c - e->a * x2; if (((y1> pymax) & (y2>pymax)) | ((y1 pymax) { y1 = pymax; x1 = (e->c - y1)/e->a;}; if(y1c - y1)/e->a;}; if(y2>pymax) { y2 = pymax; x2 = (e->c - y2)/e->a;}; if(y2c - y2)/e->a;}; }; //printf("\nPushing line (%f,%f,%f,%f)",x1,y1,x2,y2); //fprintf(stdout, "Line with vertices (%f,%f) and (%f,%f)\n", // e->reg[0]->coord.x, e->reg[1]->coord.x, e->reg[0]->coord.y, e->reg[1]->coord.y); pushGraphEdge(x1,y1,x2,y2,e->reg[0],e->reg[1]); } /* implicit parameters: nsites, sqrt_nsites, xmin, xmax, ymin, ymax, deltax, deltay (can all be estimates). Performance suffers if they are wrong; better to make nsites, deltax, and deltay too big than too small. (?) */ bool VoronoiDiagramGenerator::voronoi() { Site *newsite, *bot, *top, *temp, *p; Site *v; VPoint newintstar; int pm; Halfedge *lbnd, *rbnd, *llbnd, *rrbnd, *bisector; Edge *e; PQinitialize(); bottomsite = nextone(); //GS unused plot: out_site(bottomsite); bool retval = ELinitialize(); if(!retval) return false; newsite = nextone(); while(1) { if(!PQempty()) newintstar = PQ_min(); //if the lowest site has a smaller y value than the lowest vector intersection, process the site //otherwise process the vector intersection if (newsite != (Site *)NULL && (PQempty() || newsite->coord.y < newintstar.y || (newsite->coord.y == newintstar.y && newsite->coord.x < newintstar.x))) {/* new site is smallest - this is a site event*/ //GS unused plot: out_site(newsite); //output the site lbnd = ELleftbnd(&(newsite->coord)); //get the first HalfEdge to the LEFT of the new site rbnd = ELright(lbnd); //get the first HalfEdge to the RIGHT of the new site bot = rightreg(lbnd); //if this halfedge has no edge, , bot = bottom site (whatever that is) e = bisect(bot, newsite); //create a new edge that bisects bisector = HEcreate(e, le); //create a new HalfEdge, setting its ELpm field to 0 ELinsert(lbnd, bisector); //insert this new bisector edge between the left and right vectors in a linked list if ((p = intersect(lbnd, bisector)) != (Site *) NULL) //if the new bisector intersects with the left edge, remove the left edge's vertex, and put in the new one { PQdelete(lbnd); PQinsert(lbnd, p, dist(p,newsite)); }; lbnd = bisector; bisector = HEcreate(e, re); //create a new HalfEdge, setting its ELpm field to 1 ELinsert(lbnd, bisector); //insert the new HE to the right of the original bisector earlier in the IF stmt if ((p = intersect(bisector, rbnd)) != (Site *) NULL) //if this new bisector intersects with the { PQinsert(bisector, p, dist(p,newsite)); //push the HE into the ordered linked list of vertices }; newsite = nextone(); } else if (!PQempty()) /* intersection is smallest - this is a vector event */ { lbnd = PQextractmin(); //pop the HalfEdge with the lowest vector off the ordered list of vectors llbnd = ELleft(lbnd); //get the HalfEdge to the left of the above HE rbnd = ELright(lbnd); //get the HalfEdge to the right of the above HE rrbnd = ELright(rbnd); //get the HalfEdge to the right of the HE to the right of the lowest HE bot = leftreg(lbnd); //get the Site to the left of the left HE which it bisects top = rightreg(rbnd); //get the Site to the right of the right HE which it bisects //GS unused plot: out_triple(bot, top, rightreg(lbnd)); //output the triple of sites, stating that a circle goes through them v = lbnd->vertex; //get the vertex that caused this event makevertex(v); //set the vertex number - couldn't do this earlier since we didn't know when it would be processed endpoint(lbnd->ELedge,lbnd->ELpm,v); //set the endpoint of the left HalfEdge to be this vector endpoint(rbnd->ELedge,rbnd->ELpm,v); //set the endpoint of the right HalfEdge to be this vector ELdelete(lbnd); //mark the lowest HE for deletion - can't delete yet because there might be pointers to it in Hash Map PQdelete(rbnd); //remove all vertex events to do with the right HE ELdelete(rbnd); //mark the right HE for deletion - can't delete yet because there might be pointers to it in Hash Map pm = le; //set the pm variable to zero if (bot->coord.y > top->coord.y) //if the site to the left of the event is higher than the Site { //to the right of it, then swap them and set the 'pm' variable to 1 temp = bot; bot = top; top = temp; pm = re; } e = bisect(bot, top); //create an Edge (or line) that is between the two Sites. This creates //the formula of the line, and assigns a line number to it bisector = HEcreate(e, pm); //create a HE from the Edge 'e', and make it point to that edge with its ELedge field ELinsert(llbnd, bisector); //insert the new bisector to the right of the left HE endpoint(e, re-pm, v); //set one endpoint to the new edge to be the vector point 'v'. //If the site to the left of this bisector is higher than the right //Site, then this endpoint is put in position 0; otherwise in pos 1 deref(v); //delete the vector 'v' //if left HE and the new bisector don't intersect, then delete the left HE, and reinsert it if((p = intersect(llbnd, bisector)) != (Site *) NULL) { PQdelete(llbnd); PQinsert(llbnd, p, dist(p,bot)); }; //if right HE and the new bisector don't intersect, then reinsert it if ((p = intersect(bisector, rrbnd)) != (Site *) NULL) { PQinsert(bisector, p, dist(p,bot)); }; } else break; }; for(lbnd=ELright(ELleftend); lbnd != ELrightend; lbnd=ELright(lbnd)) { e = lbnd->ELedge; clip_line(e); }; //cleanup(); return true; } int scomp(const void *p1,const void *p2) { VPoint *s1 = (VPoint*)p1, *s2=(VPoint*)p2; if(s1->y < s2->y) return(-1); if(s1->y > s2->y) return(1); if(s1->x < s2->x) return(-1); if(s1->x > s2->x) return(1); return(0); } /* return a single in-storage site */ Site * VoronoiDiagramGenerator::nextone() { Site *s; if(siteidx < nsites) { s = &sites[siteidx]; siteidx += 1; return(s); } else return( (Site *)NULL); } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/ClosestPair2D.cc0000644000175000017500000004070112127746207016760 0ustar sunsun//STARTHEADER // $Id: ClosestPair2D.cc 3071 2013-04-01 12:52:46Z cacciari $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/internal/ClosestPair2D.hh" #include #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh const unsigned int huge_unsigned = 4294967295U; const unsigned int twopow31 = 2147483648U; using namespace std; //---------------------------------------------------------------------- /// takes a point and sets a shuffle with the given shift... void ClosestPair2D::_point2shuffle(Point & point, Shuffle & shuffle, unsigned int shift) { Coord2D renorm_point = (point.coord - _left_corner)/_range; // make sure the point is sensible //cerr << point.coord.x <<" "<=0); assert(renorm_point.x <=1); assert(renorm_point.y >=0); assert(renorm_point.y <=1); shuffle.x = static_cast(twopow31 * renorm_point.x) + shift; shuffle.y = static_cast(twopow31 * renorm_point.y) + shift; shuffle.point = &point; } //---------------------------------------------------------------------- /// compares this shuffle with the other one bool ClosestPair2D::Shuffle::operator<(const Shuffle & q) const { if (floor_ln2_less(x ^ q.x, y ^ q.y)) { // i = 2 in Chan's algorithm return (y < q.y); } else { // i = 1 in Chan's algorithm return (x < q.x); } } //---------------------------------------------------------------------- void ClosestPair2D::_initialize(const std::vector & positions, const Coord2D & left_corner, const Coord2D & right_corner, unsigned int max_size) { unsigned int n_positions = positions.size(); assert(max_size >= n_positions); //_points(positions.size()) // allow the points array to grow to the following size _points.resize(max_size); // currently unused points are immediately made available on the // stack for (unsigned int i = n_positions; i < max_size; i++) { _available_points.push(&(_points[i])); } _left_corner = left_corner; _range = max((right_corner.x - left_corner.x), (right_corner.y - left_corner.y)); // initialise the coordinates for the points and create the zero-shifted // shuffle array vector shuffles(n_positions); for (unsigned int i = 0; i < n_positions; i++) { // set up the points _points[i].coord = positions[i]; _points[i].neighbour_dist2 = numeric_limits::max(); _points[i].review_flag = 0; // create shuffle with 0 shift. _point2shuffle(_points[i], shuffles[i], 0); } // establish what our shifts will be for (unsigned ishift = 0; ishift < _nshift; ishift++) { // make sure we use double-precision for calculating the shifts // since otherwise we will hit integer overflow. _shifts[ishift] = static_cast(((twopow31*1.0)*ishift)/_nshift); if (ishift == 0) {_rel_shifts[ishift] = 0;} else {_rel_shifts[ishift] = _shifts[ishift] - _shifts[ishift-1];} } //_shifts[0] = 0; //_shifts[1] = static_cast((twopow31*1.0)/3.0); //_shifts[2] = static_cast((twopow31*2.0)/3.0); //_rel_shifts[0] = 0; //_rel_shifts[1] = _shifts[1]; //_rel_shifts[2] = _shifts[2]-_shifts[1]; // and how we will search... //_cp_search_range = 49; _cp_search_range = 30; _points_under_review.reserve(_nshift * _cp_search_range); // now initialise the three trees for (unsigned int ishift = 0; ishift < _nshift; ishift++) { // shift the shuffles if need be. if (ishift > 0) { unsigned rel_shift = _rel_shifts[ishift]; for (unsigned int i = 0; i < shuffles.size(); i++) { shuffles[i] += rel_shift; } } // sort the shuffles sort(shuffles.begin(), shuffles.end()); // and create the search tree _trees[ishift] = auto_ptr(new Tree(shuffles, max_size)); // now we look for the closest-pair candidates on this tree circulator circ = _trees[ishift]->somewhere(), start=circ; // the actual range in which we search unsigned int CP_range = min(_cp_search_range, n_positions-1); do { Point * this_point = circ->point; //cout << _ID(this_point) << " "; this_point->circ[ishift] = circ; // run over all points within _cp_search_range of this_point on tree circulator other = circ; for (unsigned i=0; i < CP_range; i++) { ++other; double dist2 = this_point->distance2(*other->point); if (dist2 < this_point->neighbour_dist2) { this_point->neighbour_dist2 = dist2; this_point->neighbour = other->point; } } } while (++circ != start); //cout << endl< mindists2(n_positions); for (unsigned int i = 0; i < n_positions; i++) { mindists2[i] = _points[i].neighbour_dist2;} _heap = auto_ptr(new MinHeap(mindists2, max_size)); } //----------------------------------------------------------------------= void ClosestPair2D::closest_pair(unsigned int & ID1, unsigned int & ID2, double & distance2) const { ID1 = _heap->minloc(); ID2 = _ID(_points[ID1].neighbour); distance2 = _points[ID1].neighbour_dist2; if (ID1 > ID2) std::swap(ID1,ID2); } //---------------------------------------------------------------------- inline void ClosestPair2D::_add_label(Point * point, unsigned int review_flag) { // if it's not already under review, then put it on the list of // points needing review if (point->review_flag == 0) _points_under_review.push_back(point); // OR the point's current flag with the requested review flag point->review_flag |= review_flag; } //---------------------------------------------------------------------- inline void ClosestPair2D::_set_label(Point * point, unsigned int review_flag) { // if it's not already under review, then put it on the list of // points needing review if (point->review_flag == 0) _points_under_review.push_back(point); // SET the point's current flag to the requested review flag point->review_flag = review_flag; } //---------------------------------------------------------------------- void ClosestPair2D::remove(unsigned int ID) { //cout << "While removing " << ID <neighbour)<<")"<neighbour == point_to_remove) { // we'll deal with it later... _add_label(left_point, _review_neighbour); } else { // check to see if right point has become its closest neighbour double dist2 = left_point->distance2(*right_end->point); if (dist2 < left_point->neighbour_dist2) { left_point->neighbour = right_end->point; left_point->neighbour_dist2 = dist2; // NB: (LESSER) REVIEW NEEDED HERE TOO... _add_label(left_point, _review_heap_entry); } } ++right_end; } while (++left_end != orig_right_end); } // ishift... } //---------------------------------------------------------------------- void ClosestPair2D::_deal_with_points_to_review() { // the range in which we carry out searches for new neighbours on // the search tree unsigned int CP_range = min(_cp_search_range, size()-1); // now deal with the points that are "under review" in some way // (have lost their neighbour, or need their heap entry updating) while(_points_under_review.size() > 0) { // get the point to be considered Point * this_point = _points_under_review.back(); // remove it from the list _points_under_review.pop_back(); if (this_point->review_flag & _remove_heap_entry) { // make sure no other flags are on (it wouldn't be consistent?) assert(!(this_point->review_flag ^ _remove_heap_entry)); _heap->remove(_ID(this_point)); } // check to see if the _review_neighbour flag is on else { if (this_point->review_flag & _review_neighbour) { this_point->neighbour_dist2 = numeric_limits::max(); // among all three shifts for (unsigned int ishift = 0; ishift < _nshift; ishift++) { circulator other = this_point->circ[ishift]; // among points within CP_range for (unsigned i=0; i < CP_range; i++) { ++other; double dist2 = this_point->distance2(*other->point); if (dist2 < this_point->neighbour_dist2) { this_point->neighbour_dist2 = dist2; this_point->neighbour = other->point; } } } } // for any non-zero review flag we'll have to update the heap _heap->update(_ID(this_point), this_point->neighbour_dist2); } // "delabel" the point this_point->review_flag = 0; } } //---------------------------------------------------------------------- unsigned int ClosestPair2D::insert(const Coord2D & new_coord) { // get hold of a point assert(_available_points.size() > 0); Point * new_point = _available_points.top(); _available_points.pop(); // set the point's coordinate new_point->coord = new_coord; // now find it's neighbour in the search tree _insert_into_search_tree(new_point); // sort out other points that may have been affected by this, // and/or for which the heap needs to be updated _deal_with_points_to_review(); // return _ID(new_point); } //---------------------------------------------------------------------- unsigned int ClosestPair2D::replace(unsigned int ID1, unsigned int ID2, const Coord2D & position) { // deletion from tree... Point * point_to_remove = & (_points[ID1]); _remove_from_search_tree(point_to_remove); point_to_remove = & (_points[ID2]); _remove_from_search_tree(point_to_remove); // insertion into tree // get hold of a point Point * new_point = _available_points.top(); _available_points.pop(); // set the point's coordinate new_point->coord = position; // now find it's neighbour in the search tree _insert_into_search_tree(new_point); // the above statement labels certain points as needing "review" -- // deal with them... _deal_with_points_to_review(); // return _ID(new_point); } //---------------------------------------------------------------------- void ClosestPair2D::replace_many( const std::vector & IDs_to_remove, const std::vector & new_positions, std::vector & new_IDs) { // deletion from tree... for (unsigned int i = 0; i < IDs_to_remove.size(); i++) { _remove_from_search_tree(& (_points[IDs_to_remove[i]])); } // insertion into tree new_IDs.resize(0); for (unsigned int i = 0; i < new_positions.size(); i++) { Point * new_point = _available_points.top(); _available_points.pop(); // set the point's coordinate new_point->coord = new_positions[i]; // now find it's neighbour in the search tree _insert_into_search_tree(new_point); // record the ID new_IDs.push_back(_ID(new_point)); } // the above statement labels certain points as needing "review" -- // deal with them... _deal_with_points_to_review(); } //---------------------------------------------------------------------- void ClosestPair2D::_insert_into_search_tree(Point * new_point) { // this point will have to have it's heap entry reviewed... _set_label(new_point, _review_heap_entry); // set the current distance to "infinity" new_point->neighbour_dist2 = numeric_limits::max(); // establish how far we will be searching; unsigned int CP_range = min(_cp_search_range, size()-1); for (unsigned ishift = 0; ishift < _nshift; ishift++) { // create the shuffle Shuffle new_shuffle; _point2shuffle(*new_point, new_shuffle, _shifts[ishift]); // insert it into the tree circulator new_circ = _trees[ishift]->insert(new_shuffle); new_point->circ[ishift] = new_circ; // now get hold of the right and left edges of the region we will be // looking at (cf CCN28-43) circulator right_edge = new_circ; right_edge++; circulator left_edge = new_circ; for (unsigned int i = 0; i < CP_range; i++) {left_edge--;} // now do { Point * left_point = left_edge->point; Point * right_point = right_edge->point; // see if the new point is closer to the left-edge than the latter's // current neighbour double new_dist2 = left_point->distance2(*new_point); if (new_dist2 < left_point->neighbour_dist2) { left_point->neighbour_dist2 = new_dist2; left_point->neighbour = new_point; _add_label(left_point, _review_heap_entry); } // see if the right-point is closer to the new point than it's current // neighbour new_dist2 = new_point->distance2(*right_point); if (new_dist2 < new_point->neighbour_dist2) { new_point->neighbour_dist2 = new_dist2; new_point->neighbour = right_point; } // if the right-edge point was the left-edge's neighbour, then // then it's just gone off-radar and the left-point will need to // have its neighbour recalculated [actually, this is overdoing // it a little, since right point may be an less "distant" // (circulator distance) in one of the other shifts -- but not // sure how to deal with this...] if (left_point->neighbour == right_point) { _add_label(left_point, _review_neighbour); } // shift the left and right edges until left edge hits new_circ right_edge++; } while (++left_edge != new_circ); } } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/ClusterSequenceAreaBase.cc0000644000175000017500000003542211766120140021032 0ustar sunsun //STARTHEADER // $Id: ClusterSequenceAreaBase.cc 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequenceAreaBase.hh" #include FASTJET_BEGIN_NAMESPACE using namespace std; /// allow for warnings LimitedWarning ClusterSequenceAreaBase::_warnings; LimitedWarning ClusterSequenceAreaBase::_warnings_zero_area; LimitedWarning ClusterSequenceAreaBase::_warnings_empty_area; //---------------------------------------------------------------------- /// return the total area, within the selector's range, that is free /// of jets. /// /// Calculate this as (range area) - \sum_{i in range} A_i /// /// for ClusterSequences with explicit ghosts, assume that there will /// never be any empty area, i.e. it is always filled in by pure /// ghosts jets. This holds for seq.rec. algorithms double ClusterSequenceAreaBase::empty_area(const Selector & selector) const { if (has_explicit_ghosts()) {return 0.0;} else { return empty_area_from_jets(inclusive_jets(0.0), selector);} } //---------------------------------------------------------------------- /// return the total area, within range, that is free of jets. /// /// Calculate this as (range area) - \sum_{i in range} A_i /// double ClusterSequenceAreaBase::empty_area_from_jets( const std::vector & all_jets, const Selector & selector) const { _check_selector_good_for_median(selector); double empty = selector.area(); for (unsigned i = 0; i < all_jets.size(); i++) { if (selector.pass(all_jets[i])) empty -= area(all_jets[i]); } return empty; } double ClusterSequenceAreaBase::median_pt_per_unit_area(const Selector & selector) const { return median_pt_per_unit_something(selector,false); } double ClusterSequenceAreaBase::median_pt_per_unit_area_4vector(const Selector & selector) const { return median_pt_per_unit_something(selector,true); } //---------------------------------------------------------------------- /// the median of (pt/area) for jets contained within range, counting /// the empty area as if it were made up of a collection of empty /// jets each of area (0.55 * pi R^2). double ClusterSequenceAreaBase::median_pt_per_unit_something( const Selector & selector, bool use_area_4vector) const { double median, sigma, mean_area; get_median_rho_and_sigma(selector, use_area_4vector, median, sigma, mean_area); return median; } //---------------------------------------------------------------------- /// fits a form pt_per_unit_area(y) = a + b*y^2 for jets in range. /// exclude_above allows one to exclude large values of pt/area from fit. /// use_area_4vector = true uses the 4vector areas. void ClusterSequenceAreaBase::parabolic_pt_per_unit_area( double & a, double & b, const Selector & selector, double exclude_above, bool use_area_4vector) const { // sanity check on the selector: we require a finite area and that // it applies jet by jet (see BackgroundEstimator for more advanced // usage) _check_selector_good_for_median(selector); int n=0; int n_excluded = 0; double mean_f=0, mean_x2=0, mean_x4=0, mean_fx2=0; vector incl_jets = inclusive_jets(); for (unsigned i = 0; i < incl_jets.size(); i++) { if (selector.pass(incl_jets[i])) { double this_area; if ( use_area_4vector ) { this_area = area_4vector(incl_jets[i]).perp(); } else { this_area = area(incl_jets[i]); } double f = incl_jets[i].perp()/this_area; if (exclude_above <= 0.0 || f < exclude_above) { double x = incl_jets[i].rap(); double x2 = x*x; mean_f += f; mean_x2 += x2; mean_x4 += x2*x2; mean_fx2 += f*x2; n++; } else { n_excluded++; } } } if (n <= 1) { // meaningful results require at least two jets inside the // area -- mind you if there are empty jets we should be in // any case doing something special... a = 0.0; b = 0.0; } else { mean_f /= n; mean_x2 /= n; mean_x4 /= n; mean_fx2 /= n; b = (mean_f*mean_x2 - mean_fx2)/(mean_x2*mean_x2 - mean_x4); a = mean_f - b*mean_x2; } //cerr << "n_excluded = "<< n_excluded << endl; } void ClusterSequenceAreaBase::get_median_rho_and_sigma( const Selector & selector, bool use_area_4vector, double & median, double & sigma, double & mean_area) const { vector incl_jets = inclusive_jets(); get_median_rho_and_sigma(incl_jets, selector, use_area_4vector, median, sigma, mean_area, true); } void ClusterSequenceAreaBase::get_median_rho_and_sigma( const vector & all_jets, const Selector & selector, bool use_area_4vector, double & median, double & sigma, double & mean_area, bool all_are_incl) const { _check_jet_alg_good_for_median(); // sanity check on the selector: we require a finite area and that // it applies jet by jet (see BackgroundEstimator for more advanced // usage) _check_selector_good_for_median(selector); vector pt_over_areas; double total_area = 0.0; double total_njets = 0; for (unsigned i = 0; i < all_jets.size(); i++) { if (selector.pass(all_jets[i])) { double this_area; if (use_area_4vector) { this_area = area_4vector(all_jets[i]).perp(); } else { this_area = area(all_jets[i]); } if (this_area>0) { pt_over_areas.push_back(all_jets[i].perp()/this_area); } else { _warnings_zero_area.warn("ClusterSequenceAreaBase::get_median_rho_and_sigma(...): discarded jet with zero area. Zero-area jets may be due to (i) too large a ghost area (ii) a jet being outside the ghost range (iii) the computation not being done using an appropriate algorithm (kt;C/A)."); } total_area += this_area; total_njets += 1.0; } } // there is nothing inside our region, so answer will always be zero if (pt_over_areas.size() == 0) { median = 0.0; sigma = 0.0; mean_area = 0.0; return; } // get median (pt/area) [this is the "old" median definition. It considers // only the "real" jets in calculating the median, i.e. excluding the // only-ghost ones; it will be supplemented with more info below] sort(pt_over_areas.begin(), pt_over_areas.end()); // now get the median & error, accounting for empty jets // define the fractions of distribution at median, median-1sigma double posn[2] = {0.5, (1.0-0.6827)/2.0}; double res[2]; double n_empty, empty_a; if (has_explicit_ghosts()) { // NB: the following lines of code are potentially incorrect in cases // where there are unclustered particles (empty_area would do a better job, // at least for active areas). This is not an issue with kt or C/A, or other // algorithms that cluster all particles (and the median estimation should in // any case only be done with kt or C/A!) empty_a = 0.0; n_empty = 0; } else if (all_are_incl) { // the default case empty_a = empty_area(selector); n_empty = n_empty_jets(selector); } else { // this one is intended to be used when e.g. one runs C/A, then looks at its // exclusive jets in order to get an effective smaller R value, and passes those // to this routine. empty_a = empty_area_from_jets(all_jets, selector); mean_area = total_area / total_njets; // temporary value n_empty = empty_a / mean_area; } //cout << "*** tot_area = " << total_area << ", empty_a = " << empty_a << endl; //cout << "*** n_empty = " << n_empty << ", ntotal = " << total_njets << endl; total_njets += n_empty; total_area += empty_a; // we need an int (rather than an unsigned int) with the size of the // pt_over_areas array, because we'll often be doing subtraction of // -1, negating it, etc. All of these operations go crazy with unsigned ints. int pt_over_areas_size = pt_over_areas.size(); if (n_empty < -pt_over_areas_size/4.0) _warnings_empty_area.warn("ClusterSequenceAreaBase::get_median_rho_and_sigma(...): the estimated empty area is suspiciously large and negative and may lead to an over-estimation of rho. This may be due to (i) a rare statistical fluctuation or (ii) too small a range used to estimate the background properties."); for (int i = 0; i < 2; i++) { double nj_median_pos = (pt_over_areas_size-1.0 + n_empty)*posn[i] - n_empty; double nj_median_ratio; if (nj_median_pos >= 0 && pt_over_areas_size > 1) { int int_nj_median = int(nj_median_pos); // avoid potential overflow issues if (int_nj_median+1 > pt_over_areas_size-1){ int_nj_median = pt_over_areas_size-2; nj_median_pos = pt_over_areas_size-1; } nj_median_ratio = pt_over_areas[int_nj_median] * (int_nj_median+1-nj_median_pos) + pt_over_areas[int_nj_median+1] * (nj_median_pos - int_nj_median); } else { nj_median_ratio = 0.0; } res[i] = nj_median_ratio; } median = res[0]; double error = res[0] - res[1]; mean_area = total_area / total_njets; sigma = error * sqrt(mean_area); } /// return a vector of all subtracted jets, using area_4vector, given rho. /// Only inclusive_jets above ptmin are subtracted and returned. /// the ordering is the same as that of sorted_by_pt(cs.inclusive_jets()), /// i.e. not necessarily ordered in pt once subtracted vector ClusterSequenceAreaBase::subtracted_jets(const double rho, const double ptmin) const { vector sub_jets; vector jets_local = sorted_by_pt(inclusive_jets(ptmin)); for (unsigned i=0; i ClusterSequenceAreaBase::subtracted_jets( const Selector & selector, const double ptmin) const { double rho = median_pt_per_unit_area_4vector(selector); return subtracted_jets(rho,ptmin); } /// return a subtracted jet, using area_4vector, given rho PseudoJet ClusterSequenceAreaBase::subtracted_jet(const PseudoJet & jet, const double rho) const { PseudoJet area4vect = area_4vector(jet); PseudoJet sub_jet; // sanity check if (rho*area4vect.perp() < jet.perp() ) { sub_jet = jet - rho*area4vect; } else { sub_jet = PseudoJet(0.0,0.0,0.0,0.0); } // make sure the subtracted jet has the same index (cluster, user, csw) // (i.e. "looks like") the original jet sub_jet.set_cluster_hist_index(jet.cluster_hist_index()); sub_jet.set_user_index(jet.user_index()); // do not use CS::_set_structure_shared_ptr here, which should // only be called to maintain the tally during construction sub_jet.set_structure_shared_ptr(jet.structure_shared_ptr()); return sub_jet; } /// return a subtracted jet, using area_4vector; note that this is /// potentially inefficient if repeatedly used for many different /// jets, because rho will be recalculated each time around. PseudoJet ClusterSequenceAreaBase::subtracted_jet(const PseudoJet & jet, const Selector & selector) const { double rho = median_pt_per_unit_area_4vector(selector); PseudoJet sub_jet = subtracted_jet(jet, rho); return sub_jet; } /// return the subtracted pt, given rho double ClusterSequenceAreaBase::subtracted_pt(const PseudoJet & jet, const double rho, bool use_area_4vector) const { if ( use_area_4vector ) { PseudoJet sub_jet = subtracted_jet(jet,rho); return sub_jet.perp(); } else { return jet.perp() - rho*area(jet); } } /// return the subtracted pt; note that this is /// potentially inefficient if repeatedly used for many different /// jets, because rho will be recalculated each time around. double ClusterSequenceAreaBase::subtracted_pt(const PseudoJet & jet, const Selector & selector, bool use_area_4vector) const { if ( use_area_4vector ) { PseudoJet sub_jet = subtracted_jet(jet,selector); return sub_jet.perp(); } else { double rho = median_pt_per_unit_area(selector); return subtracted_pt(jet,rho,false); } } // check the selector is suited for the computations i.e. applies jet // by jet and has a finite area void ClusterSequenceAreaBase::_check_selector_good_for_median(const Selector &selector) const{ // make sure the selector has a finite area if ((! has_explicit_ghosts()) && (! selector.has_finite_area())){ throw Error("ClusterSequenceAreaBase: empty area can only be computed from selectors with a finite area"); } // make sure the selector applies jet by jet if (! selector.applies_jet_by_jet()){ throw Error("ClusterSequenceAreaBase: empty area can only be computed from selectors that apply jet by jet"); } } /// check the jet algorithm is suitable (and if not issue a warning) void ClusterSequenceAreaBase::_check_jet_alg_good_for_median() const { if (jet_def().jet_algorithm() != kt_algorithm && jet_def().jet_algorithm() != cambridge_algorithm && jet_def().jet_algorithm() != cambridge_for_passive_algorithm) { _warnings.warn("ClusterSequenceAreaBase: jet_def being used may not be suitable for estimating diffuse backgrounds (good options are kt, cam)"); } } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/ClusterSequenceActiveAreaExplicitGhosts.cc0000644000175000017500000001641511766120140024266 0ustar sunsun//STARTHEADER // $Id: ClusterSequenceActiveAreaExplicitGhosts.cc 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh" #include using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // save some typing typedef ClusterSequenceActiveAreaExplicitGhosts ClustSeqActAreaEG; LimitedWarning ClustSeqActAreaEG::_warnings; //---------------------------------------------------------------------- /// void ClustSeqActAreaEG::_add_ghosts ( const GhostedAreaSpec & ghost_spec) { // add the ghosts to the jets ghost_spec.add_ghosts(_jets); // now add labelling... for (unsigned i = _initial_hard_n; i < _jets.size(); i++) { //_jets[i].set_user_index(1); _is_pure_ghost.push_back(true); } // and record some info from the ghost_spec _ghost_area = ghost_spec.actual_ghost_area(); _n_ghosts = ghost_spec.n_ghosts(); } //---------------------------------------------------------------------- // return the area of a jet double ClustSeqActAreaEG::area (const PseudoJet & jet) const { return _areas[jet.cluster_hist_index()]; } //---------------------------------------------------------------------- // return the total area double ClustSeqActAreaEG::total_area () const { return _n_ghosts * _ghost_area; } //---------------------------------------------------------------------- // return the extended area of a jet PseudoJet ClustSeqActAreaEG::area_4vector (const PseudoJet & jet) const { return _area_4vectors[jet.cluster_hist_index()]; } //---------------------------------------------------------------------- bool ClustSeqActAreaEG::is_pure_ghost(const PseudoJet & jet) const { return _is_pure_ghost[jet.cluster_hist_index()]; } //---------------------------------------------------------------------- bool ClustSeqActAreaEG::is_pure_ghost(int hist_ix) const { return hist_ix >= 0 ? _is_pure_ghost[hist_ix] : false; } //---------------------------------------------------------------------- double ClustSeqActAreaEG::empty_area(const Selector & selector) const { // make sure that the selector applies jet by jet if (! selector.applies_jet_by_jet()){ throw Error("ClusterSequenceActiveAreaExplicitGhosts: empty area can only be computed from selectors applying jet by jet"); } vector unclust = unclustered_particles(); double area_local = 0.0; for (unsigned iu = 0; iu < unclust.size(); iu++) { if (is_pure_ghost(unclust[iu]) && selector.pass(unclust[iu])) { area_local += _ghost_area; } } return area_local; } //====================================================================== // sort out the areas void ClustSeqActAreaEG::_post_process() { // first check for danger signals. // Establish largest ghost transverse momentum _max_ghost_perp2 = 0.0; for (int i = 0; i < _initial_n; i++) { if (_is_pure_ghost[i] && _jets[i].perp2() > _max_ghost_perp2) _max_ghost_perp2 = _jets[i].perp2(); } // now find out if any of the particles are close to danger double danger_ratio = numeric_limits::epsilon(); danger_ratio = danger_ratio * danger_ratio; _has_dangerous_particles = false; for (int i = 0; i < _initial_n; i++) { if (!_is_pure_ghost[i] && danger_ratio * _jets[i].perp2() <= _max_ghost_perp2) { _has_dangerous_particles = true; break; } } if (_has_dangerous_particles) _warnings.warn("ClusterSequenceActiveAreaExplicitGhosts: \n ghosts not sufficiently soft wrt some of the input particles\n a common cause is (unphysical?) input particles with pt=0 but finite rapidity"); // sort out sizes _areas.resize(_history.size()); _area_4vectors.resize(_history.size()); _is_pure_ghost.resize(_history.size()); // copy(_jets.begin(), _jets.begin()+_initial_n, _area_4vectors.begin()); // for (int i = 0; i < _initial_n; i++) { // if (_is_pure_ghost[i]) { // _areas[i] = _ghost_area; // // normalise pt to be _ghost_area (NB we make use of fact that // // for initial particles, jet and clust_hist index are the same). // _area_4vectors[i] *= (_ghost_area/_jets[i].perp()); // } else { // _areas[i] = 0; // _area_4vectors[i].reset(0,0,0,0); // } // } // First set up areas for the initial particles (ghost=_ghost_area, // real particles = 0); recall that _initial_n here is the number of // particles including ghosts for (int i = 0; i < _initial_n; i++) { if (_is_pure_ghost[i]) { _areas[i] = _ghost_area; // normalise pt to be _ghost_area (NB we make use of fact that // for initial particles, jet and clust_hist index are the same). //_area_4vectors[i] = (_ghost_area/_jets[i].perp()) * _jets[i]; // NB: we use reset_momentum here, to ensure that the area 4 // vectors do not acquire any structure (the structure would not // be meaningful for an area, and it messes up the use count (-> // memory leaks if the user call delete_self_when_unused). _area_4vectors[i].reset_momentum(_jets[i]); _area_4vectors[i] *= (_ghost_area/_jets[i].perp()); } else { _areas[i] = 0; _area_4vectors[i] = PseudoJet(0.0,0.0,0.0,0.0); } } // next follow the branching through and set up the areas // and ghost-nature at each step of the clustering (rather than // each jet). for (unsigned i = _initial_n; i < _history.size(); i++) { if (_history[i].parent2 == BeamJet) { _is_pure_ghost[i] = _is_pure_ghost[_history[i].parent1]; _areas[i] = _areas[_history[i].parent1]; _area_4vectors[i] = _area_4vectors[_history[i].parent1]; } else { _is_pure_ghost[i] = _is_pure_ghost[_history[i].parent1] && _is_pure_ghost[_history[i].parent2] ; _areas[i] = _areas[_history[i].parent1] + _areas[_history[i].parent2] ; _jet_def.recombiner()->recombine(_area_4vectors[_history[i].parent1], _area_4vectors[_history[i].parent2], _area_4vectors[i]); // _area_4vectors[i] = _area_4vectors[_history[i].parent1] + // _area_4vectors[_history[i].parent2] ; } } } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/src/Makefile.am0000644000175000017500000000163411766120140016057 0ustar sunsun# shared library lib_LTLIBRARIES = libfastjet.la libfastjet_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/../include libfastjet_la_SOURCES = DnnPlane.cc\ Dnn4piCylinder.cc Dnn3piCylinder.cc Dnn2piCylinder.cc\ ClusterSequence.cc PseudoJet.cc Selector.cc\ ClusterSequence_N2.cc ClusterSequence_TiledN2.cc\ ClusterSequence_Delaunay.cc ClusterSequence_DumbN3.cc\ ClusterSequence_CP2DChan.cc ClosestPair2D.cc MinHeap.cc\ ClusterSequenceAreaBase.cc ClusterSequenceActiveAreaExplicitGhosts.cc\ ClusterSequenceArea.cc GhostedAreaSpec.cc ClusterSequenceActiveArea.cc\ Voronoi.cc ClusterSequenceVoronoiArea.cc\ ClusterSequencePassiveArea.cc ClusterSequence1GhostPassiveArea.cc\ PseudoJetStructureBase.cc ClusterSequenceStructure.cc\ BasicRandom.cc JetDefinition.cc Error.cc AreaDefinition.cc\ RangeDefinition.cc CompositeJetStructure.cc \ FunctionOfPseudoJet.cc\ LimitedWarning.cc EXTRA_DIST = makefile.static genconfig.sh fastjet-3.0.6+dfsg.orig/src/Error.cc0000644000175000017500000000535411766120140015426 0ustar sunsun//STARTHEADER // $Id: Error.cc 2687 2011-11-14 11:17:51Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/Error.hh" #include "fastjet/config.h" #include // printing the stack would need execinfo #ifdef FASTJET_HAVE_EXECINFO_H #include #include #endif FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; bool Error::_print_errors = true; bool Error::_print_backtrace = false; ostream * Error::_default_ostr = & cerr; Error::Error(const std::string & message_in) { _message = message_in; if (_print_errors && _default_ostr){ ostringstream oss; oss << "fastjet::Error: "<< message_in << endl; // only print the stack if execinfo is available and stack enabled #ifdef FASTJET_HAVE_EXECINFO_H if (_print_backtrace){ void * array[10]; char ** messages; int size = backtrace(array, 10); messages = backtrace_symbols(array, size); oss << "stack:" << endl; for (int i = 1; i < size && messages != NULL; ++i){ oss << " #" << i << ": " << messages[i] << endl; } free(messages); } #endif *_default_ostr << oss.str(); // get something written to file even // if the program aborts _default_ostr->flush(); // // output error message either to cerr or to the user-set stream // if (_default_ostr) { *_default_ostr << oss.str(); // // get something written to file even // // if the program aborts // _default_ostr->flush(); } // else { std::cerr << oss.str(); } } } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/aclocal.m40000644000175000017500000010531712233506211015074 0ustar sunsun# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, [m4_warning([this file was generated for autoconf 2.63. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/CGAL.m4]) m4_include([m4/ax_prefix_config_h.m4]) m4_include([m4/compiler_flags.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) m4_include([m4/plugin.m4]) fastjet-3.0.6+dfsg.orig/tools/0000755000175000017500000000000012233507303014370 5ustar sunsunfastjet-3.0.6+dfsg.orig/tools/CASubJetTagger.cc0000644000175000017500000001370111766120131017433 0ustar sunsun//STARTHEADER // $Id: CASubJetTagger.cc 2689 2011-11-14 14:51:06Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include #include #include using namespace std; FASTJET_BEGIN_NAMESPACE LimitedWarning CASubJetTagger::_non_ca_warnings; // the tagger's description //---------------------------------------------------------------------- string CASubJetTagger::description() const{ ostringstream oss; oss << "CASubJetTagger with z_threshold=" << _z_threshold ; if (_absolute_z_cut) oss << " (defined wrt original jet)"; oss << " and scale choice "; switch (_scale_choice) { case kt2_distance: oss << "kt2_distance"; break; case jade_distance: oss << "jade_distance"; break; case jade2_distance: oss << "jade2_distance"; break; case plain_distance: oss << "plain_distance"; break; case mass_drop_distance: oss << "mass_drop_distance"; break; case dot_product_distance: oss << "dot_product_distance"; break; default: throw Error("unrecognized scale choice"); } return oss.str(); } // run the tagger on the given cs/jet // returns the tagged PseudoJet if successful, 0 otherwise //---------------------------------------------------------------------- PseudoJet CASubJetTagger::result(const PseudoJet & jet) const{ // make sure that the jet results from a Cambridge/Aachen clustering if (jet.validated_cs()->jet_def().jet_algorithm() != cambridge_algorithm) _non_ca_warnings.warn("CASubJetTagger should only be applied on jets from a Cambridge/Aachen clustering; use it with other algorithms at your own risk"); // recurse in the jet to find the max distance JetAux aux; aux.jet = PseudoJet(); aux.aux_distance = -numeric_limits::max(); aux.delta_r = 0.0; aux.z = 1.0; _recurse_through_jet(jet, aux, jet); // last arg remains original jet // create the result and its associated structure PseudoJet result_local = aux.jet; // the tagger is considered to have failed if aux has never been set // (in which case it will not have parents). if (result_local == PseudoJet()) return result_local; // otherwise sort out the structure CASubJetTaggerStructure * s = new CASubJetTaggerStructure(result_local); // s->_original_jet = jet; s->_scale_choice = _scale_choice; s->_distance = aux.aux_distance; s->_absolute_z = _absolute_z_cut; s->_z = aux.z; result_local.set_structure_shared_ptr(SharedPtr(s)); return result_local; } ///---------------------------------------------------------------------- /// work through the jet, establishing a distance at each branching inline void CASubJetTagger::_recurse_through_jet(const PseudoJet & jet, JetAux &aux, const PseudoJet & original_jet) const { PseudoJet parent1, parent2; if (! jet.has_parents(parent1, parent2)) return; /// make sure the objects are not _too_ close together if (parent1.squared_distance(parent2) < _dr2_min) return; // distance double dist=0.0; switch (_scale_choice) { case kt2_distance: // a standard (LI) kt distance dist = parent1.kt_distance(parent2); break; case jade_distance: // something a bit like a mass: pti ptj Delta R_ij^2 dist = parent1.perp()*parent2.perp()*parent1.squared_distance(parent2); break; case jade2_distance: // something a bit like a mass*deltaR^2: pti ptj Delta R_ij^4 dist = parent1.perp()*parent2.perp()*pow(parent1.squared_distance(parent2),2); break; case plain_distance: // Delta R_ij^2 dist = parent1.squared_distance(parent2); break; case mass_drop_distance: // Delta R_ij^2 dist = jet.m() - std::max(parent1.m(),parent2.m()); break; case dot_product_distance: // parent1 . parent2 // ( = jet.m2() - parent1.m2() - parent2.m() in a // 4-vector recombination scheme) dist = dot_product(parent1, parent2); break; default: throw Error("unrecognized scale choice"); } // check the z cut bool zcut1 = true; bool zcut2 = true; double z2 = 0.0; // not very efficient -- sort out later if (parent1.perp2() < parent2.perp2()) std::swap(parent1,parent2); if (_absolute_z_cut) { z2 = parent2.perp() / original_jet.perp(); zcut1 = parent1.perp() / original_jet.perp() >= _z_threshold; } else { z2 = parent2.perp()/(parent1.perp()+parent2.perp()); } zcut2 = z2 >= _z_threshold; if (zcut1 && zcut2){ if (dist > aux.aux_distance){ aux.jet = jet; aux.aux_distance = dist; aux.delta_r = sqrt(parent1.squared_distance(parent2)); aux.z = z2; // the softest } } if (zcut1) _recurse_through_jet(parent1, aux, original_jet); if (zcut2) _recurse_through_jet(parent2, aux, original_jet); } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/tools/MassDropTagger.cc0000644000175000017500000000712412233477116017575 0ustar sunsun//STARTHEADER // $Id: MassDropTagger.cc 3249 2013-10-28 15:06:25Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include FASTJET_BEGIN_NAMESPACE LimitedWarning MassDropTagger::_warnings_nonca; using namespace std; //---------------------------------------------------------------------- // MassDropTagger class implementation //---------------------------------------------------------------------- //------------------------------------------------------------------------ // description of the tagger string MassDropTagger::description() const{ ostringstream oss; oss << "MassDropTagger with mu=" << _mu << " and ycut=" << _ycut; return oss.str(); } //------------------------------------------------------------------------ // returns the tagged PseudoJet if successful, 0 otherwise // - jet the PseudoJet to tag PseudoJet MassDropTagger::result(const PseudoJet & jet) const{ PseudoJet j = jet; // issue a warning if the jet is not obtained through a C/A // clustering if ((! j.has_associated_cluster_sequence()) || (j.validated_cs()->jet_def().jet_algorithm() != cambridge_algorithm)) _warnings_nonca.warn("MassDropTagger should only be applied on jets from a Cambridge/Aachen clustering; use it with other algorithms at your own risk."); PseudoJet j1, j2; bool had_parents; // we just ask that we can "walk" in the cluster sequence. // appropriate errors will be thrown automatically if this is not // the case while ((had_parents = j.has_parents(j1,j2))) { // make parent1 the more massive jet if (j1.m2() < j2.m2()) std::swap(j1,j2); // if we pass the conditions on the mass drop and its degree of // asymmetry (kt_dist/m^2 > rtycut [where kt_dist/m^2 \sim // z/(1-z)), then we've found something interesting, so exit the // loop if ( (j1.m2() < _mu*_mu*j.m2()) && (j1.kt_distance(j2) > _ycut*j.m2()) ) break; else j = j1; } if (!had_parents) // no Higgs found, return an empty PseudoJet return PseudoJet(); // create the result and its structure PseudoJet result_local = j; MassDropTaggerStructure * s = new MassDropTaggerStructure(result_local); // s->_original_jet = jet; s->_mu = (j.m2()!=0.0) ? sqrt(j1.m2()/j.m2()) : 0.0; s->_y = (j.m2()!=0.0) ? j1.kt_distance(j2)/j.m2() : 0.0; result_local.set_structure_shared_ptr(SharedPtr(s)); return result_local; } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/tools/Filter.cc0000644000175000017500000004012011766120131016121 0ustar sunsun//STARTHEADER // $Id: Filter.cc 2695 2011-11-14 22:33:07Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/tools/Filter.hh" #include #include #include #include #include using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // Filter class implementation //---------------------------------------------------------------------- // class description string Filter::description() const { ostringstream ostr; ostr << "Filter with subjet_def = "; if (_Rfiltfunc) { ostr << "Cambridge/Aachen algorithm with dynamic Rfilt" << " (recomb. scheme deduced from jet, or E-scheme if not unique)"; } else if (_Rfilt > 0) { ostr << "Cambridge/Aachen algorithm with Rfilt = " << _Rfilt << " (recomb. scheme deduced from jet, or E-scheme if not unique)"; } else { ostr << _subjet_def.description(); } ostr<< ", selection " << _selector.description(); if (_subtractor) { ostr << ", subtractor: " << _subtractor->description(); } else if (_rho != 0) { ostr << ", subtracting with rho = " << _rho; } return ostr.str(); } // core functions //---------------------------------------------------------------------- // return a vector of subjets, which are the ones that would be kept // by the filtering PseudoJet Filter::result(const PseudoJet &jet) const { // start by getting the list of subjets (including a list of sanity // checks) // NB: subjets is empty to begin with (see the comment for // _set_filtered_elements_cafilt) vector subjets; JetDefinition subjet_def; bool discard_area; // NB: on return, subjet_def is set to the jet definition actually // used (so that we can make use of its recombination scheme // when joining the jets to be kept). _set_filtered_elements(jet, subjets, subjet_def, discard_area); // now build the vector of kept and rejected subjets vector kept, rejected; // Note that in the following line we make a copy of the _selector // to avoid issues with needing a mutable _selector Selector selector_copy = _selector; if (selector_copy.takes_reference()) selector_copy.set_reference(jet); selector_copy.sift(subjets, kept, rejected); // gather the info under the form of a PseudoJet return _finalise(jet, kept, rejected, subjet_def, discard_area); } // sets filtered_elements to be all the subjets on which filtering will work void Filter::_set_filtered_elements(const PseudoJet & jet, vector & filtered_elements, JetDefinition & subjet_def, bool & discard_area) const { // sanity checks //------------------------------------------------------------------- // make sure that the jet has constituents if (! jet.has_constituents()) throw Error("Filter can only be applied on jets having constituents"); // for a whole variety of checks, we shall need the "recursive" // pieces of the jet (the jet itself or recursing down to its most // fundamental pieces). // So we do compute these once and for all vector all_pieces; //.clear(); if ((!_get_all_pieces(jet, all_pieces)) || (all_pieces.size()==0)) throw Error("Attempt to filter a jet that has no associated ClusterSequence or is not a superposition of jets associated with a ClusterSequence"); // if the filter uses subtraction, make sure we have a CS that supports area and has // explicit ghosts if (_uses_subtraction()) { if (!jet.has_area()) throw Error("Attempt to filter and subtract (non-zero rho or subtractor) without area info for the original jet"); if (!_check_explicit_ghosts(all_pieces)) throw Error("Attempt to filter and subtract (non-zero rho or subtractor) without explicit ghosts"); } // if we're dealing with a dynamic determination of the filtering // radius, do it now if ((_Rfilt>=0) || (_Rfiltfunc)){ double Rfilt = (_Rfiltfunc) ? (*_Rfiltfunc)(jet) : _Rfilt; const JetDefinition::Recombiner * common_recombiner = _get_common_recombiner(all_pieces); if (common_recombiner) { if (typeid(*common_recombiner) == typeid(JetDefinition::DefaultRecombiner)) { RecombinationScheme scheme = static_cast(common_recombiner)->scheme(); subjet_def = JetDefinition(cambridge_algorithm, Rfilt, scheme); } else { subjet_def = JetDefinition(cambridge_algorithm, Rfilt, common_recombiner); } } else { subjet_def = JetDefinition(cambridge_algorithm, Rfilt); } } else { subjet_def = _subjet_def; } // get the jet definition to be use and whether we can apply our // simplified C/A+C/A filter // // we apply C/A clustering iff // - the request subjet_def is C/A // - the jet is either directly coming from C/A or if it is a // superposition of C/A jets // - the pieces agree with the recombination scheme of subjet_def //------------------------------------------------------------------ bool simple_cafilt = _check_ca(all_pieces); // extract the subjets //------------------------------------------------------------------- discard_area = false; if (simple_cafilt){ // first make sure that 'filtered_elements' is empty filtered_elements.clear(); _set_filtered_elements_cafilt(jet, filtered_elements, subjet_def.R()); // in the following case, areas can be erroneous and will be discarded discard_area = (!_uses_subtraction()) && (jet.has_area()) && (!_check_explicit_ghosts(all_pieces)); } else { // here we'll simply recluster the jets. // // To include an area support we need // - the jet to have an area // - subtraction requested or explicit ghosts bool do_areas = (jet.has_area()) && ((_uses_subtraction()) || (_check_explicit_ghosts(all_pieces))); _set_filtered_elements_generic(jet, filtered_elements, subjet_def, do_areas); } // order the filtered elements in pt filtered_elements = sorted_by_pt(filtered_elements); } // set the filtered elements in the simple case of C/A+C/A // // WATCH OUT: this could be recursively called, so filtered elements // of 'jet' are APPENDED to 'filtered_elements' void Filter::_set_filtered_elements_cafilt(const PseudoJet & jet, vector & filtered_elements, double Rfilt) const{ // we know that the jet is either a C/A jet or a superposition of // such pieces if (jet.has_associated_cluster_sequence()){ // just extract the exclusive subjets of 'jet' const ClusterSequence *cs = jet.associated_cluster_sequence(); vector local_fe; double dcut = Rfilt / cs->jet_def().R(); if (dcut>=1.0){ local_fe.push_back(jet); } else { dcut *= dcut; local_fe = jet.exclusive_subjets(dcut); } // subtract the jets if needed // Note that this one would work on pieces!! //----------------------------------------------------------------- if (_uses_subtraction()){ const ClusterSequenceAreaBase * csab = jet.validated_csab(); for (unsigned int i=0;isubtracted_jet(local_fe[i], _rho); } } } copy(local_fe.begin(), local_fe.end(), back_inserter(filtered_elements)); return; } // just recurse into the pieces const vector & pieces = jet.pieces(); for (vector::const_iterator it = pieces.begin(); it!=pieces.end(); it++) _set_filtered_elements_cafilt(*it, filtered_elements, Rfilt); } // set the filtered elements in the generic re-clustering case (wo // subtraction) void Filter::_set_filtered_elements_generic(const PseudoJet & jet, vector & filtered_elements, const JetDefinition & subjet_def, bool do_areas) const{ // create a new, internal, ClusterSequence from the jet constituents // get the subjets directly from there // // If the jet has area support then we separate the ghosts from the // "regular" particles so the subjets will also have area // support. Note that we do this regardless of whether rho is zero // or not. // // Note that to be able to separate the ghosts, one needs explicit // ghosts!! // --------------------------------------------------------------- if (do_areas){ vector all_constituents = jet.constituents(); vector regular_constituents, ghosts; for (vector::iterator it = all_constituents.begin(); it != all_constituents.end(); it++){ if (it->is_pure_ghost()) ghosts.push_back(*it); else regular_constituents.push_back(*it); } // figure out the ghost area from the 1st ghost (if none, any value // would probably do as the area will be 0 and subtraction will have // no effect!) double ghost_area = (ghosts.size()) ? ghosts[0].area() : 0.01; ClusterSequenceActiveAreaExplicitGhosts * csa = new ClusterSequenceActiveAreaExplicitGhosts(regular_constituents, subjet_def, ghosts, ghost_area); // get the subjets: we use the subtracted or unsubtracted ones // depending on rho or _subtractor being non-zero if (_uses_subtraction()) { if (_subtractor) { filtered_elements = (*_subtractor)(csa->inclusive_jets()); } else { filtered_elements = csa->subtracted_jets(_rho); } } else { filtered_elements = csa->inclusive_jets(); } // allow the cs to be deleted when it's no longer used csa->delete_self_when_unused(); } else { ClusterSequence * cs = new ClusterSequence(jet.constituents(), subjet_def); filtered_elements = cs->inclusive_jets(); // allow the cs to be deleted when it's no longer used cs->delete_self_when_unused(); } } // gather the information about what is kept and rejected under the // form of a PseudoJet with a special ClusterSequenceInfo PseudoJet Filter::_finalise(const PseudoJet & /*jet*/, vector & kept, vector & rejected, const JetDefinition & subjet_def, const bool discard_area) const { // figure out which recombiner to use const JetDefinition::Recombiner &rec = *(subjet_def.recombiner()); // create an appropriate structure and transfer the info to it PseudoJet filtered_jet = join(kept, rec); StructureType *fs = (StructureType*) filtered_jet.structure_non_const_ptr(); // fs->_original_jet = jet; fs->_rejected = rejected; if (discard_area){ // safety check: make sure there is an area to discard!!! assert(fs->_area_4vector_ptr); delete fs->_area_4vector_ptr; fs->_area_4vector_ptr=0; } return filtered_jet; } // various checks //---------------------------------------------------------------------- // get the pieces down to the fundamental pieces // // Note that this just checks that there is an associated CS to the // fundamental pieces, not that it is still valid bool Filter::_get_all_pieces(const PseudoJet &jet, vector &all_pieces) const{ if (jet.has_associated_cluster_sequence()){ all_pieces.push_back(jet); return true; } if (jet.has_pieces()){ const vector pieces = jet.pieces(); for (vector::const_iterator it=pieces.begin(); it!=pieces.end(); it++) if (!_get_all_pieces(*it, all_pieces)) return false; return true; } return false; } // get the common recombiner to all pieces (NULL if none) // // Note that if the jet has an associated cluster sequence that is no // longer valid, an error will be thrown (needed since it could be the // 1st check called after the enumeration of the pieces) const JetDefinition::Recombiner* Filter::_get_common_recombiner(const vector &all_pieces) const{ const JetDefinition & jd_ref = all_pieces[0].validated_cs()->jet_def(); for (unsigned int i=1; ijet_def().has_same_recombiner(jd_ref)) return NULL; return jd_ref.recombiner(); } // check if the jet (or all its pieces) have explicit ghosts // (assuming the jet has area support // // Note that if the jet has an associated cluster sequence that is no // longer valid, an error will be thrown (needed since it could be the // 1st check called after the enumeration of the pieces) bool Filter::_check_explicit_ghosts(const vector &all_pieces) const{ for (vector::const_iterator it=all_pieces.begin(); it!=all_pieces.end(); it++) if (! it->validated_csab()->has_explicit_ghosts()) return false; return true; } // check if one can apply the simplification for C/A subjets // // This includes: // - the subjet definition asks for C/A subjets // - all the pieces share the same CS // - that CS is C/A with the same recombiner as the subjet def // - the filtering radius is not larger than any of the pairwise // distance between the pieces // // Note that if the jet has an associated cluster sequence that is no // longer valid, an error will be thrown (needed since it could be the // 1st check called after the enumeration of the pieces) bool Filter::_check_ca(const vector &all_pieces) const{ if (_subjet_def.jet_algorithm() != cambridge_algorithm) return false; // check that the 1st of all the pieces (we're sure there is at // least one) is coming from a C/A clustering. Then check that all // the following pieces share the same ClusterSequence const ClusterSequence * cs_ref = all_pieces[0].validated_cs(); if (cs_ref->jet_def().jet_algorithm() != cambridge_algorithm) return false; for (unsigned int i=1; ijet_def().has_same_recombiner(_subjet_def)) return false; // we also have to make sure that the filtering radius is not larger // than any of the inter-pieces distance double Rfilt2 = _subjet_def.R(); Rfilt2 *= Rfilt2; for (unsigned int i=0; i. //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/tools/GridMedianBackgroundEstimator.hh" using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // setting a new event //---------------------------------------------------------------------- // tell the background estimator that it has a new event, composed // of the specified particles. void GridMedianBackgroundEstimator::set_particles(const vector & particles) { fill(_scalar_pt.begin(), _scalar_pt.end(), 0.0); for (unsigned i = 0; i < particles.size(); i++) { int j = igrid(particles[i]); if (j >= 0){ if (_rescaling_class == 0) _scalar_pt[j] += particles[i].perp(); else _scalar_pt[j] += particles[i].perp()/(*_rescaling_class)(particles[i]); } } sort(_scalar_pt.begin(), _scalar_pt.end()); _has_particles = true; } //---------------------------------------------------------------------- // retrieving fundamental information //---------------------------------------------------------------------- // get rho, the median background density per unit area double GridMedianBackgroundEstimator::rho() const { verify_particles_set(); return _percentile(_scalar_pt, 0.5) / _cell_area; } //---------------------------------------------------------------------- // get sigma, the background fluctuations per unit area; must be // multipled by sqrt(area) to get fluctuations for a region of a // given area. double GridMedianBackgroundEstimator::sigma() const{ verify_particles_set(); // watch out: by definition, our sigma is the standard deviation of // the pt density multiplied by the square root of the cell area return (_percentile(_scalar_pt, 0.5) - _percentile(_scalar_pt, (1.0-0.6827)/2.0) )/sqrt(_cell_area); } //---------------------------------------------------------------------- // get rho, the background density per unit area, locally at the // position of a given jet. Note that this is not const, because a // user may then wish to query other aspects of the background that // could depend on the position of the jet last used for a rho(jet) // determination. double GridMedianBackgroundEstimator::rho(const PseudoJet & jet) { verify_particles_set(); double rescaling = (_rescaling_class == 0) ? 1.0 : (*_rescaling_class)(jet); return rescaling*rho(); } //---------------------------------------------------------------------- // get sigma, the background fluctuations per unit area, locally at // the position of a given jet. As for rho(jet), it is non-const. double GridMedianBackgroundEstimator::sigma(const PseudoJet & jet){ verify_particles_set(); double rescaling = (_rescaling_class == 0) ? 1.0 : (*_rescaling_class)(jet); return rescaling*sigma(); } //---------------------------------------------------------------------- // verify that particles have been set and throw an error if not void GridMedianBackgroundEstimator::verify_particles_set() const { if (!_has_particles) throw Error("GridMedianBackgroundEstimator::rho() or sigma() called without particles having been set"); } //---------------------------------------------------------------------- // description //---------------------------------------------------------------------- string GridMedianBackgroundEstimator::description() const { ostringstream desc; desc << "GridMedianBackgroundEstimator, with grid extension |y| < " << _ymax << " and requested grid spacing = " << _requested_grid_spacing; return desc.str(); } //---------------------------------------------------------------------- // configuring the behaviour //---------------------------------------------------------------------- // Set a pointer to a class that calculates the rescaling factor as // a function of the jet (position). Note that the rescaling factor // is used both in the determination of the "global" rho (the pt/A // of each jet is divided by this factor) and when asking for a // local rho (the result is multiplied by this factor). // // The BackgroundRescalingYPolynomial class can be used to get a // rescaling that depends just on rapidity. // // Note that this has to be called BEFORE any attempt to do an // actual computation void GridMedianBackgroundEstimator::set_rescaling_class(const FunctionOfPseudoJet * rescaling_class_in) { // The rescaling is taken into account when particles are set. So // you need to call set_particles again if you set the rescaling // class. We thus warn if there are already some available // particles if (_has_particles) _warning_rescaling.warn("GridMedianBackgroundEstimator::set_rescaling_class(): trying to set the rescaling class when there are already particles that have been set is dangerous: the rescaling will not affect the already existing particles resulting in mis-estimation of rho. You need to call set_particles() again before proceeding with any background estimation."); BackgroundEstimatorBase::set_rescaling_class(rescaling_class_in); } //---------------------------------------------------------------------- // protected material //---------------------------------------------------------------------- // configure the grid void GridMedianBackgroundEstimator::setup_grid() { // since we've exchanged the arguments of the grid constructor, // there's a danger of calls with exchanged ymax,spacing arguments -- // the following check should catch most such situations. assert(_ymax>0 && _ymax - _ymin >= _requested_grid_spacing); // this grid-definition code is becoming repetitive -- it should // probably be moved somewhere central... double ny_double = (_ymax-_ymin) / _requested_grid_spacing; _ny = int(ny_double+0.5); _dy = (_ymax-_ymin) / _ny; _nphi = int (twopi / _requested_grid_spacing + 0.5); _dphi = twopi / _nphi; // some sanity checking (could throw a fastjet::Error) assert(_ny >= 1 && _nphi >= 1); _ntotal = _nphi * _ny; _scalar_pt.resize(_ntotal); _cell_area = _dy * _dphi; } //---------------------------------------------------------------------- // retrieve the grid cell index for a given PseudoJet int GridMedianBackgroundEstimator::igrid(const PseudoJet & p) const { // directly taking int does not work for values between -1 and 0 // so use floor instead // double iy_double = (p.rap() - _ymin) / _dy; // if (iy_double < 0.0) return -1; // int iy = int(iy_double); // if (iy >= _ny) return -1; // writing it as below gives a huge speed gain (factor two!). Even // though answers are identical and the routine here is not the // speed-critical step. It's not at all clear why. int iy = int(floor( (p.rap() - _ymin) / _dy )); if (iy < 0 || iy >= _ny) return -1; int iphi = int( p.phi()/_dphi ); assert(iphi >= 0 && iphi <= _nphi); if (iphi == _nphi) iphi = 0; // just in case of rounding errors int igrid_res = iy*_nphi + iphi; assert (igrid_res >= 0 && igrid_res < _ny*_nphi); return igrid_res; } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/tools/JHTopTagger.cc0000644000175000017500000001606412233477116017034 0ustar sunsun//STARTHEADER // $Id: JHTopTagger.cc 3249 2013-10-28 15:06:25Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include #include #include #include FASTJET_BEGIN_NAMESPACE using namespace std; //---------------------------------------------------------------------- // JHTopTagger class implementation //---------------------------------------------------------------------- LimitedWarning JHTopTagger::_warnings_nonca; //------------------------------------------------------------------------ // description of the tagger string JHTopTagger::description() const{ ostringstream oss; oss << "JHTopTagger with delta_p=" << _delta_p << ", delta_r=" << _delta_r << ", cos_theta_W_max=" << _cos_theta_W_max << " and mW = " << _mW; oss << description_of_selectors(); return oss.str(); } //------------------------------------------------------------------------ // returns the tagged PseudoJet if successful, 0 otherwise // - jet the PseudoJet to tag PseudoJet JHTopTagger::result(const PseudoJet & jet) const{ // make sure that there is a "regular" cluster sequence associated // with the jet. Note that we also check it is valid (to avoid a // more criptic error later on) if (!jet.has_valid_cluster_sequence()){ throw Error("JHTopTagger can only be applied on jets having an associated (and valid) ClusterSequence"); } // warn if the jet has not been clustered with a Cambridge/Aachen // algorithm if (jet.validated_cs()->jet_def().jet_algorithm() != cambridge_algorithm) _warnings_nonca.warn("JHTopTagger should only be applied on jets from a Cambridge/Aachen clustering; use it with other algorithms at your own risk."); // do the first splitting vector split0 = _split_once(jet, jet); if (split0.size() == 0) return PseudoJet(); // now try a second splitting on each of the resulting objects vector subjets; for (unsigned i = 0; i < 2; i++) { vector split1 = _split_once(split0[i], jet); if (split1.size() > 0) { subjets.push_back(split1[0]); subjets.push_back(split1[1]); } else { subjets.push_back(split0[i]); } } // make sure things make sense if (subjets.size() < 3) return PseudoJet(); // now find the pair of objects closest in mass to the W double dmW_min = numeric_limits::max(); int ii=-1, jj=-1; for (unsigned i = 0 ; i < subjets.size()-1; i++) { for (unsigned j = i+1 ; j < subjets.size(); j++) { double dmW = abs(_mW - (subjets[i]+subjets[j]).m()); if (dmW < dmW_min) { dmW_min = dmW; ii = i; jj = j; } } } // order the subjets in the following order: // - hardest of the W subjets // - softest of the W subjets // - hardest of the remaining subjets // - softest of the remaining subjets (if any) if (ii>0) std::swap(subjets[ii], subjets[0]); if (jj>1) std::swap(subjets[jj], subjets[1]); if (subjets[0].perp2() < subjets[1].perp2()) std::swap(subjets[0], subjets[1]); if ((subjets.size()>3) && (subjets[2].perp2() < subjets[3].perp2())) std::swap(subjets[2], subjets[3]); // create the result and its structure const JetDefinition::Recombiner *rec = jet.associated_cluster_sequence()->jet_def().recombiner(); PseudoJet W = join(subjets[0], subjets[1], *rec); PseudoJet non_W; if (subjets.size()>3) { non_W = join(subjets[2], subjets[3], *rec); } else { non_W = join(subjets[2], *rec); } PseudoJet result_local = join(W, non_W, *rec); JHTopTaggerStructure *s = (JHTopTaggerStructure*) result_local.structure_non_const_ptr(); s->_cos_theta_w = _cos_theta_W(result_local); // if the polarisation angle does not pass the cut, consider that // the tagging has failed // // Note that we could perhaps ensure this cut before constructing // the result structure but this has the advantage that the top // 4-vector is already available and does not have to de re-computed if (s->_cos_theta_w >= _cos_theta_W_max || ! _top_selector.pass(result_local) || ! _W_selector.pass(W) ) { result_local *= 0.0; } return result_local; // // old version // PseudoJet result = join(subjets, *rec); // JHTopTaggerStructure *s = (JHTopTaggerStructure*) result.structure_non_const_ptr(); // // s->_original_jet = jet; // s->_W = join(subjets[0], subjets[1], *rec); // if (subjets.size()>3) // s->_non_W = join(subjets[2], subjets[3], *rec); // else // s->_non_W = join(subjets[2], *rec); // s->_cos_theta_w = _cos_theta_W(result); // // // if the polarisation angle does not pass the cut, consider that // // the tagging has failed // // // // Note that we could perhaps ensure this cut before constructing // // the result structure but this has the advantage that the top // // 4-vector is already available and does not have to de re-computed // if (s->_cos_theta_w >= _cos_theta_W_max) // return PseudoJet(); // // return result; } // runs the Johns Hopkins decomposition procedure vector JHTopTagger::_split_once(const PseudoJet & jet_to_split, const PseudoJet & reference_jet) const{ PseudoJet this_jet = jet_to_split; PseudoJet p1, p2; vector result_local; while (this_jet.has_parents(p1, p2)) { if (p2.perp2() > p1.perp2()) std::swap(p1,p2); // order with hardness if (p1.perp() < _delta_p * reference_jet.perp()) break; // harder is too soft wrt original jet if ( (abs(p2.rap()-p1.rap()) + abs(p2.delta_phi_to(p1))) < _delta_r) break; // distance is too small if (p2.perp() < _delta_p * reference_jet.perp()) { this_jet = p1; // softer is too soft wrt original, so ignore it continue; } //result.push_back(this_jet); result_local.push_back(p1); result_local.push_back(p2); break; } return result_local; } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/tools/Makefile.in0000644000175000017500000011215312233506216016442 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # shared library VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = tools DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libfastjettools_la_LIBADD = am_libfastjettools_la_OBJECTS = \ libfastjettools_la-BackgroundEstimatorBase.lo \ libfastjettools_la-JetMedianBackgroundEstimator.lo \ libfastjettools_la-GridMedianBackgroundEstimator.lo \ libfastjettools_la-Filter.lo libfastjettools_la-Pruner.lo \ libfastjettools_la-Subtractor.lo \ libfastjettools_la-MassDropTagger.lo \ libfastjettools_la-RestFrameNSubjettinessTagger.lo \ libfastjettools_la-CASubJetTagger.lo \ libfastjettools_la-JHTopTagger.lo \ libfastjettools_la-TopTaggerBase.lo libfastjettools_la_OBJECTS = $(am_libfastjettools_la_OBJECTS) libfastjettools_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libfastjettools_la_SOURCES) DIST_SOURCES = $(libfastjettools_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = fastjet lib_LTLIBRARIES = libfastjettools.la libfastjettools_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/../include -I$(srcdir) libfastjettools_la_SOURCES = \ BackgroundEstimatorBase.cc \ JetMedianBackgroundEstimator.cc \ GridMedianBackgroundEstimator.cc \ Filter.cc Pruner.cc Subtractor.cc\ MassDropTagger.cc RestFrameNSubjettinessTagger.cc CASubJetTagger.cc \ JHTopTagger.cc TopTaggerBase.cc all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tools/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libfastjettools.la: $(libfastjettools_la_OBJECTS) $(libfastjettools_la_DEPENDENCIES) $(libfastjettools_la_LINK) -rpath $(libdir) $(libfastjettools_la_OBJECTS) $(libfastjettools_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjettools_la-BackgroundEstimatorBase.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjettools_la-CASubJetTagger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjettools_la-Filter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjettools_la-GridMedianBackgroundEstimator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjettools_la-JHTopTagger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjettools_la-JetMedianBackgroundEstimator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjettools_la-MassDropTagger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjettools_la-Pruner.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjettools_la-RestFrameNSubjettinessTagger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjettools_la-Subtractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfastjettools_la-TopTaggerBase.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libfastjettools_la-BackgroundEstimatorBase.lo: BackgroundEstimatorBase.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjettools_la-BackgroundEstimatorBase.lo -MD -MP -MF $(DEPDIR)/libfastjettools_la-BackgroundEstimatorBase.Tpo -c -o libfastjettools_la-BackgroundEstimatorBase.lo `test -f 'BackgroundEstimatorBase.cc' || echo '$(srcdir)/'`BackgroundEstimatorBase.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjettools_la-BackgroundEstimatorBase.Tpo $(DEPDIR)/libfastjettools_la-BackgroundEstimatorBase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='BackgroundEstimatorBase.cc' object='libfastjettools_la-BackgroundEstimatorBase.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjettools_la-BackgroundEstimatorBase.lo `test -f 'BackgroundEstimatorBase.cc' || echo '$(srcdir)/'`BackgroundEstimatorBase.cc libfastjettools_la-JetMedianBackgroundEstimator.lo: JetMedianBackgroundEstimator.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjettools_la-JetMedianBackgroundEstimator.lo -MD -MP -MF $(DEPDIR)/libfastjettools_la-JetMedianBackgroundEstimator.Tpo -c -o libfastjettools_la-JetMedianBackgroundEstimator.lo `test -f 'JetMedianBackgroundEstimator.cc' || echo '$(srcdir)/'`JetMedianBackgroundEstimator.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjettools_la-JetMedianBackgroundEstimator.Tpo $(DEPDIR)/libfastjettools_la-JetMedianBackgroundEstimator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='JetMedianBackgroundEstimator.cc' object='libfastjettools_la-JetMedianBackgroundEstimator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjettools_la-JetMedianBackgroundEstimator.lo `test -f 'JetMedianBackgroundEstimator.cc' || echo '$(srcdir)/'`JetMedianBackgroundEstimator.cc libfastjettools_la-GridMedianBackgroundEstimator.lo: GridMedianBackgroundEstimator.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjettools_la-GridMedianBackgroundEstimator.lo -MD -MP -MF $(DEPDIR)/libfastjettools_la-GridMedianBackgroundEstimator.Tpo -c -o libfastjettools_la-GridMedianBackgroundEstimator.lo `test -f 'GridMedianBackgroundEstimator.cc' || echo '$(srcdir)/'`GridMedianBackgroundEstimator.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjettools_la-GridMedianBackgroundEstimator.Tpo $(DEPDIR)/libfastjettools_la-GridMedianBackgroundEstimator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GridMedianBackgroundEstimator.cc' object='libfastjettools_la-GridMedianBackgroundEstimator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjettools_la-GridMedianBackgroundEstimator.lo `test -f 'GridMedianBackgroundEstimator.cc' || echo '$(srcdir)/'`GridMedianBackgroundEstimator.cc libfastjettools_la-Filter.lo: Filter.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjettools_la-Filter.lo -MD -MP -MF $(DEPDIR)/libfastjettools_la-Filter.Tpo -c -o libfastjettools_la-Filter.lo `test -f 'Filter.cc' || echo '$(srcdir)/'`Filter.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjettools_la-Filter.Tpo $(DEPDIR)/libfastjettools_la-Filter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Filter.cc' object='libfastjettools_la-Filter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjettools_la-Filter.lo `test -f 'Filter.cc' || echo '$(srcdir)/'`Filter.cc libfastjettools_la-Pruner.lo: Pruner.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjettools_la-Pruner.lo -MD -MP -MF $(DEPDIR)/libfastjettools_la-Pruner.Tpo -c -o libfastjettools_la-Pruner.lo `test -f 'Pruner.cc' || echo '$(srcdir)/'`Pruner.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjettools_la-Pruner.Tpo $(DEPDIR)/libfastjettools_la-Pruner.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Pruner.cc' object='libfastjettools_la-Pruner.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjettools_la-Pruner.lo `test -f 'Pruner.cc' || echo '$(srcdir)/'`Pruner.cc libfastjettools_la-Subtractor.lo: Subtractor.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjettools_la-Subtractor.lo -MD -MP -MF $(DEPDIR)/libfastjettools_la-Subtractor.Tpo -c -o libfastjettools_la-Subtractor.lo `test -f 'Subtractor.cc' || echo '$(srcdir)/'`Subtractor.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjettools_la-Subtractor.Tpo $(DEPDIR)/libfastjettools_la-Subtractor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='Subtractor.cc' object='libfastjettools_la-Subtractor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjettools_la-Subtractor.lo `test -f 'Subtractor.cc' || echo '$(srcdir)/'`Subtractor.cc libfastjettools_la-MassDropTagger.lo: MassDropTagger.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjettools_la-MassDropTagger.lo -MD -MP -MF $(DEPDIR)/libfastjettools_la-MassDropTagger.Tpo -c -o libfastjettools_la-MassDropTagger.lo `test -f 'MassDropTagger.cc' || echo '$(srcdir)/'`MassDropTagger.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjettools_la-MassDropTagger.Tpo $(DEPDIR)/libfastjettools_la-MassDropTagger.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MassDropTagger.cc' object='libfastjettools_la-MassDropTagger.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjettools_la-MassDropTagger.lo `test -f 'MassDropTagger.cc' || echo '$(srcdir)/'`MassDropTagger.cc libfastjettools_la-RestFrameNSubjettinessTagger.lo: RestFrameNSubjettinessTagger.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjettools_la-RestFrameNSubjettinessTagger.lo -MD -MP -MF $(DEPDIR)/libfastjettools_la-RestFrameNSubjettinessTagger.Tpo -c -o libfastjettools_la-RestFrameNSubjettinessTagger.lo `test -f 'RestFrameNSubjettinessTagger.cc' || echo '$(srcdir)/'`RestFrameNSubjettinessTagger.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjettools_la-RestFrameNSubjettinessTagger.Tpo $(DEPDIR)/libfastjettools_la-RestFrameNSubjettinessTagger.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='RestFrameNSubjettinessTagger.cc' object='libfastjettools_la-RestFrameNSubjettinessTagger.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjettools_la-RestFrameNSubjettinessTagger.lo `test -f 'RestFrameNSubjettinessTagger.cc' || echo '$(srcdir)/'`RestFrameNSubjettinessTagger.cc libfastjettools_la-CASubJetTagger.lo: CASubJetTagger.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjettools_la-CASubJetTagger.lo -MD -MP -MF $(DEPDIR)/libfastjettools_la-CASubJetTagger.Tpo -c -o libfastjettools_la-CASubJetTagger.lo `test -f 'CASubJetTagger.cc' || echo '$(srcdir)/'`CASubJetTagger.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjettools_la-CASubJetTagger.Tpo $(DEPDIR)/libfastjettools_la-CASubJetTagger.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CASubJetTagger.cc' object='libfastjettools_la-CASubJetTagger.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjettools_la-CASubJetTagger.lo `test -f 'CASubJetTagger.cc' || echo '$(srcdir)/'`CASubJetTagger.cc libfastjettools_la-JHTopTagger.lo: JHTopTagger.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjettools_la-JHTopTagger.lo -MD -MP -MF $(DEPDIR)/libfastjettools_la-JHTopTagger.Tpo -c -o libfastjettools_la-JHTopTagger.lo `test -f 'JHTopTagger.cc' || echo '$(srcdir)/'`JHTopTagger.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjettools_la-JHTopTagger.Tpo $(DEPDIR)/libfastjettools_la-JHTopTagger.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='JHTopTagger.cc' object='libfastjettools_la-JHTopTagger.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjettools_la-JHTopTagger.lo `test -f 'JHTopTagger.cc' || echo '$(srcdir)/'`JHTopTagger.cc libfastjettools_la-TopTaggerBase.lo: TopTaggerBase.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -MT libfastjettools_la-TopTaggerBase.lo -MD -MP -MF $(DEPDIR)/libfastjettools_la-TopTaggerBase.Tpo -c -o libfastjettools_la-TopTaggerBase.lo `test -f 'TopTaggerBase.cc' || echo '$(srcdir)/'`TopTaggerBase.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libfastjettools_la-TopTaggerBase.Tpo $(DEPDIR)/libfastjettools_la-TopTaggerBase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TopTaggerBase.cc' object='libfastjettools_la-TopTaggerBase.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfastjettools_la_CXXFLAGS) $(CXXFLAGS) -c -o libfastjettools_la-TopTaggerBase.lo `test -f 'TopTaggerBase.cc' || echo '$(srcdir)/'`TopTaggerBase.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # EXTRA_DIST = makefile.static # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/tools/Pruner.cc0000644000175000017500000003215311766120131016156 0ustar sunsun//STARTHEADER // $Id: Pruner.cc 2689 2011-11-14 14:51:06Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/tools/Pruner.hh" #include "fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh" #include "fastjet/Selector.hh" #include #include #include #include using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // class Pruner //---------------------------------------------------------------------- //---------------------------------------------------------------------- // alternative (dynamic) ctor // \param jet_def the jet definition for the internal clustering // \param zcut_dyn dynamic pt-fraction cut in the pruning // \param Rcut_dyn dynamic angular distance cut in the pruning Pruner::Pruner(const JetDefinition &jet_def, FunctionOfPseudoJet *zcut_dyn, FunctionOfPseudoJet *Rcut_dyn) : _jet_def(jet_def), _zcut(0), _Rcut_factor(0), _zcut_dyn(zcut_dyn), _Rcut_dyn(Rcut_dyn), _get_recombiner_from_jet(false) { assert(_zcut_dyn != 0 && _Rcut_dyn != 0); } //---------------------------------------------------------------------- // action on a single jet PseudoJet Pruner::result(const PseudoJet &jet) const{ // pruning can only be applied to jets that have constituents if (!jet.has_constituents()){ throw Error("Pruner: trying to apply the Pruner transformer to a jet that has no constituents"); } // if the jet has area support and there are explicit ghosts, we can // transfer that support to the internal re-clustering bool do_areas = jet.has_area() && _check_explicit_ghosts(jet); // build the pruning plugin double Rcut = (_Rcut_dyn) ? (*_Rcut_dyn)(jet) : _Rcut_factor * 2.0*jet.m()/jet.perp(); double zcut = (_zcut_dyn) ? (*_zcut_dyn)(jet) : _zcut; PruningPlugin * pruning_plugin; // for some constructors, we get the recombiner from the // input jet -- some acrobatics are needed (see plans for FJ3.1 // for a hopefully better solution). if (_get_recombiner_from_jet) { const JetDefinition::Recombiner * common_recombiner = _get_common_recombiner(jet); if (common_recombiner) { JetDefinition jet_def = _jet_def; if (typeid(*common_recombiner) == typeid(JetDefinition::DefaultRecombiner)) { RecombinationScheme scheme = static_cast(common_recombiner)->scheme(); jet_def.set_recombination_scheme(scheme); } else { jet_def.set_recombiner(common_recombiner); } pruning_plugin = new PruningPlugin(jet_def, zcut, Rcut); } else { // if there wasn't a common recombiner, we just use the default // recombiner that was in _jet_def pruning_plugin = new PruningPlugin(_jet_def, zcut, Rcut); } } else { pruning_plugin = new PruningPlugin(_jet_def, zcut, Rcut); } // now recluster the constituents of the jet with that plugin JetDefinition internal_jet_def(pruning_plugin); // flag the plugin for automatic deletion _before_ we make // copies (so that as long as the copies are also present // it doesn't get deleted). internal_jet_def.delete_plugin_when_unused(); ClusterSequence * cs; if (do_areas){ vector particles, ghosts; SelectorIsPureGhost().sift(jet.constituents(), ghosts, particles); // determine the ghost area from the 1st ghost (if none, any value // will do, as the area will be 0 and subtraction will have // no effect!) double ghost_area = (ghosts.size()) ? ghosts[0].area() : 0.01; cs = new ClusterSequenceActiveAreaExplicitGhosts(particles, internal_jet_def, ghosts, ghost_area); } else { cs = new ClusterSequence(jet.constituents(), internal_jet_def); } PseudoJet result_local = SelectorNHardest(1)(cs->inclusive_jets())[0]; PrunerStructure * s = new PrunerStructure(result_local); result_local.set_structure_shared_ptr(SharedPtr(s)); // make sure things remain persistent -- i.e. tell the jet definition // and the cluster sequence that it is their responsibility to clean // up memory once the "result" reaches the end of its life in the user's // code. (The CS deletes itself when the result goes out of scope and // that also triggers deletion of the plugin) cs->delete_self_when_unused(); return result_local; } // check if the jet has explicit_ghosts (knowing that there is an // area support) bool Pruner::_check_explicit_ghosts(const PseudoJet &jet) const{ // if the jet comes from a Clustering check explicit ghosts in that // clustering if (jet.has_associated_cluster_sequence()) return jet.validated_csab()->has_explicit_ghosts(); // if the jet has pieces, recurse in the pieces if (jet.has_pieces()){ vector pieces = jet.pieces(); for (unsigned int i=0;ijet_def().recombiner(); // if the jet has pieces, recurse in the pieces if (jet.has_pieces()){ vector pieces = jet.pieces(); if (pieces.size() == 0) return 0; const JetDefinition::Recombiner * reco = _get_common_recombiner(pieces[0]); for (unsigned int i=1;idescription() << ")" << ", dynamic Rcut (" << _Rcut_dyn->description() << ")"; } else { oss << ", zcut = " << _zcut << ", Rcut_factor = " << _Rcut_factor; } return oss.str(); } //---------------------------------------------------------------------- // class PrunerStructure //---------------------------------------------------------------------- // return the other jets that may have been found along with the // result of the pruning // The resulting vector is sorted in pt vector PrunerStructure::extra_jets() const{ return sorted_by_pt((!SelectorNHardest(1))(validated_cs()->inclusive_jets()));; } //---------------------------------------------------------------------- // class PruningRecombiner //---------------------------------------------------------------------- // decide whether to recombine things or not void PruningRecombiner::recombine(const PseudoJet &pa, const PseudoJet &pb, PseudoJet &pab) const{ PseudoJet p; _recombiner->recombine(pa, pb, p); // if the 2 particles are close enough, do the recombination if (pa.squared_distance(pb)<=_Rcut2){ pab=p; return; } double pt2a = pa.perp2(); double pt2b = pb.perp2(); // check which is the softest if (pt2a < pt2b){ if (pt2a<_zcut2*p.perp2()){ pab = pb; _rejected.push_back(pa.cluster_hist_index()); } else { pab = p; } } else { if (pt2b<_zcut2*p.perp2()) { pab = pa; _rejected.push_back(pb.cluster_hist_index()); } else { pab = p; } } } // description string PruningRecombiner::description() const{ ostringstream oss; oss << "Pruning recombiner with zcut = " << sqrt(_zcut2) << ", Rcut = " << sqrt(_Rcut2) << ", and underlying recombiner = " << _recombiner->description(); return oss.str(); } //---------------------------------------------------------------------- // class PruningPlugin //---------------------------------------------------------------------- // the actual clustering work for the plugin void PruningPlugin::run_clustering(ClusterSequence &input_cs) const{ // declare a pruning recombiner PruningRecombiner pruning_recombiner(_zcut, _Rcut, _jet_def.recombiner()); JetDefinition jet_def = _jet_def; jet_def.set_recombiner(&pruning_recombiner); // cluster the particles using that recombiner ClusterSequence internal_cs(input_cs.jets(), jet_def); const vector & internal_hist = internal_cs.history(); // transfer the list of "childless" elements into a bool vector vector kept(internal_hist.size(), true); const vector &pr_rej = pruning_recombiner.rejected(); for (unsigned int i=0;i internal2input(internal_hist.size()); for (unsigned int i=0; i().W(); vector W_pieces = W.pieces(); assert(W_pieces.size() == 2); //assert(W_pieces[0].perp2() >= W_pieces[1].perp2()); //PseudoJet W2 = W_pieces[1]; // extract the softer of the two W pieces. PseudoJet W2 = (W_pieces[0].perp2() < W_pieces[1].perp2()) ? W_pieces[0] : W_pieces[1]; PseudoJet top = res; // transform these jets into jets in the rest frame of the W W2.unboost(W); top.unboost(W); return (W2.px()*top.px() + W2.py()*top.py() + W2.pz()*top.pz())/ sqrt(W2.modp2() * top.modp2()); } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/tools/Subtractor.cc0000644000175000017500000000554111766120131017034 0ustar sunsun//STARTHEADER // $Id: Subtractor.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/tools/Subtractor.hh" #include #include #include using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh const double Subtractor::_invalid_rho = -numeric_limits::infinity(); Subtractor::Subtractor(double rho) : _bge(0), _rho(rho) { assert(_rho>0.0); } PseudoJet Subtractor::result(const PseudoJet & jet) const { if (!jet.has_area()){ throw Error("Trying to subtract a jet without area support"); } double rho; if (_bge != 0) { rho = _bge->rho(jet); } else if (_rho != _invalid_rho) { rho = _rho; } else { throw Error("default Subtractor does not have any information about the background, which is needed to perform the subtraction"); } PseudoJet subtracted_jet = jet; PseudoJet area4vect = jet.area_4vector(); // sanity check if (rho*area4vect.perp() < jet.perp() ) { // this subtraction should retain the jet's structural // information subtracted_jet -= rho*area4vect; } else { // this sets the jet's momentum to zero while // maintaining all of the jet's structural information subtracted_jet *= 0; } return subtracted_jet; } //---------------------------------------------------------------------- std::string Subtractor::description() const{ if (_bge != 0) { return "Subtractor that uses the following background estimator to determine rho: "+_bge->description(); } else if (_rho != _invalid_rho) { ostringstream ostr; ostr << "Subtractor that uses a fixed value of rho = " << _rho; return ostr.str(); } else { return "Uninitialised subtractor"; } } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/tools/BackgroundEstimatorBase.cc0000644000175000017500000001345611766120131021452 0ustar sunsun//STARTHEADER // $Id: BackgroundEstimatorBase.cc 2616 2011-09-30 18:03:40Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/tools/BackgroundEstimatorBase.hh" using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh LimitedWarning BackgroundEstimatorBase::_warnings_empty_area; //---------------------------------------------------------------------- // given a quantity in a vector (e.g. pt_over_area) and knowledge // about the number of empty jets, calculate the median and // stand_dev_if_gaussian (roughly from the 16th percentile) // // If do_fj2_calculation is set to true then this performs FastJet // 2.X estimation of the standard deviation, which has a spurious // offset in the limit of a small number of jets. void BackgroundEstimatorBase::_median_and_stddev(const vector & quantity_vector, double n_empty_jets, double & median, double & stand_dev_if_gaussian, bool do_fj2_calculation) const { // this check is redundant (the code below behaves sensibly even // with a zero size), but serves as a reminder of what happens if // the quantity vector is zero-sized if (quantity_vector.size() == 0) { median = 0; stand_dev_if_gaussian = 0; return; } vector sorted_quantity_vector = quantity_vector; sort(sorted_quantity_vector.begin(), sorted_quantity_vector.end()); // empty area can sometimes be negative; with small ranges this can // become pathological, so warn the user int n_jets_used = sorted_quantity_vector.size(); if (n_empty_jets < -n_jets_used/4.0) _warnings_empty_area.warn("BackgroundEstimatorBase::_median_and_stddev(...): the estimated empty area is suspiciously large and negative and may lead to an over-estimation of rho. This may be due to (i) a rare statistical fluctuation or (ii) too small a range used to estimate the background properties."); // now get the median & error, accounting for empty jets; // define the fractions of distribution at median, median-1sigma double posn[2] = {0.5, (1.0-0.6827)/2.0}; double res[2]; for (int i = 0; i < 2; i++) { res[i] = _percentile(sorted_quantity_vector, posn[i], n_empty_jets, do_fj2_calculation); } median = res[0]; stand_dev_if_gaussian = res[0] - res[1]; } //---------------------------------------------------------------------- // computes a percentile of a given _sorted_ vector of quantities // - sorted_quantities the (sorted) vector contains the data sample // - percentile the percentile (defined between 0 and 1) to compute // - nempty an additional number of 0's // (considered at the beginning of // the quantity vector) // - do_fj2_calculation carry out the calculation as it // was done in fj2 (suffers from "edge effects") double BackgroundEstimatorBase::_percentile(const vector & sorted_quantities, const double percentile, const double nempty, const bool do_fj2_calculation ) const { assert(percentile >= 0.0 && percentile <= 1.0); int quantities_size = sorted_quantities.size(); if (quantities_size == 0) return 0; double total_njets = quantities_size + nempty; double percentile_pos; if (do_fj2_calculation) { percentile_pos = (total_njets-1)*percentile - nempty; } else { percentile_pos = (total_njets)*percentile - nempty - 0.5; } double result; if (percentile_pos >= 0 && quantities_size > 1) { int int_percentile_pos = int(percentile_pos); // avoid potential overflow issues if (int_percentile_pos+1 > quantities_size-1){ int_percentile_pos = quantities_size-2; percentile_pos = quantities_size-1; } result = sorted_quantities[int_percentile_pos] * (int_percentile_pos+1-percentile_pos) + sorted_quantities[int_percentile_pos+1] * (percentile_pos - int_percentile_pos); } else if (percentile_pos > -0.5 && quantities_size >= 1 && !do_fj2_calculation) { // in the LHS of this "bin", just keep a constant value (we could have // interpolated to zero, but this might misbehave in cases where all jets // are active, because it would go to zero too fast) result = sorted_quantities[0]; } else { result = 0.0; } return result; } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/tools/fastjet/0000755000175000017500000000000012233507303016030 5ustar sunsunfastjet-3.0.6+dfsg.orig/tools/fastjet/tools/0000755000175000017500000000000012233507304017171 5ustar sunsunfastjet-3.0.6+dfsg.orig/tools/fastjet/tools/Boost.hh0000644000175000017500000000554511766120131020610 0ustar sunsun//STARTHEADER // $Id: Boost.hh 2689 2011-11-14 14:51:06Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_TOOL_BOOST_HH__ #define __FASTJET_TOOL_BOOST_HH__ #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// @ingroup tools_generic /// \class Boost /// Class to boost a PseudoJet /// /// This is a FunctionOfPseudoJet with return type PseudoJet. Its /// action if to boost the PseudoJet by a boost vector passed to its /// constructor class Boost : public FunctionOfPseudoJet{ public: /// default ctor Boost(const PseudoJet & jet_rest) : _jet_rest(jet_rest){} /// the action of the function: boost the PseudoJet by a boost /// vector _jet_rest PseudoJet result(const PseudoJet & original) const{ PseudoJet res = original; return res.boost(_jet_rest); } protected: PseudoJet _jet_rest; ///< the boost vector }; /// @ingroup tools_generic /// \class Unboost /// Class to un-boost a PseudoJet /// /// This is a FunctionOfPseudoJet with return type PseudoJet. Its /// action if to un-boost the PseudoJet back in the restframe of the /// PseudoJet passed to its constructor class Unboost : public FunctionOfPseudoJet{ public: /// default ctor Unboost(const PseudoJet & jet_rest) : _jet_rest(jet_rest){} /// the action of the function: boost the PseudoJet to the rest /// frame of _jet_rest PseudoJet result(const PseudoJet & original) const{ PseudoJet res = original; return res.unboost(_jet_rest); } protected: PseudoJet _jet_rest; ///< the boost vector }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __FASTJET_TRANSFORMER_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/JHTopTagger.hh0000644000175000017500000002020511766120131021626 0ustar sunsun#ifndef __FASTJET_JH_TOP_TAGGER_HH__ #define __FASTJET_JH_TOP_TAGGER_HH__ //STARTHEADER // $Id: JHTopTagger.hh 2689 2011-11-14 14:51:06Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include FASTJET_BEGIN_NAMESPACE class JHTopTagger; class JHTopTaggerStructure; //---------------------------------------------------------------------- /// @ingroup tools_taggers /// \class JHTopTagger /// Class that helps perform boosted top tagging using the "Johns Hopkins" /// method from arXiv:0806.0848 (Kaplan, Rehermann, Schwartz /// and Tweedie) /// ///The tagger proceeds as follows: /// - start from a jet J obtained with the Cambridge/Aachen algorithm /// - undo the last iteration j -> j_1,j_2 (with pt_1>pt_2) until the /// two subjets satisfy pt_1 > delta_p pt_J (with pt_J the pt of /// the original jet) and |y_1 - y_2| + |phi_1 - phi_2| > delta_r. /// - if one of these criteria is not satisfied, carry on the /// procedure with j_1 (discarding j_2) /// - for each of the subjets found, repeat the procedure. If some /// new substructure is found, keep these 2 new subjets, otherwise /// keep the original subjet (found during the first iteration) /// - at this stage, one has at most 4 subjets. If one has less than /// 3, the tagger has failed. /// - reconstruct the W from the 2 subjets with a mass closest to the /// W mass /// - impose that the W helicity angle be less than a threshold /// cos_theta_W_max. /// /// \section input Input conditions /// /// - the original jet must have an associated (and valid) /// ClusterSequence /// - the tagger is designed to work with jets formed by the /// Cambridge/Aachen (C/A) algorithm; if a non-C/A jet is passed to /// the tagger, a warning will be issued /// /// \section Example /// /// A JHTopTagger can be used as follows: /// /// \code /// double delta_p = 0.10; // subjets must carry at least this fraction of the original jet's p_t /// double delta_r = 0.19; // subjets must be separated by at least this Manhattan distance /// double cos_theta_W_max = 0.7; // the maximal allowed value of the W helicity angle /// JHTopTagger top_tagger(delta_p, delta_r, cos_theta_W_max); /// // indicate the acceptable range of top, W masses (default: no limits) /// top_tagger.set_top_selector(SelectorMassRange(150,200)); /// top_tagger.set_W_selector (SelectorMassRange( 65, 95)); /// // now try and tag a jet /// PseudoJet top_candidate = top_tagger(jet); // jet should come from a Cambridge/Aachen clustering /// if (top_candidate != 0) { // successful tagging /// double top_mass = top_candidate.m(); /// double W_mass = top_candidate.structure_of().W().m(); /// } /// \endcode /// /// The full set of information available from the structure_of() /// call is /// /// - PseudoJet W() : the W subjet of the top candidate /// - PseudoJet non_W(): non-W subjet(s) of the top candidate (i.e. the b) /// - double cos_theta_W(): the W helicity angle /// - PseudoJet W1(): the harder of the two prongs of the W /// - PseudoJet W2(): the softer of the two prongs of the W /// /// The structure of the top_candidate can also be accessed through its /// pieces() function: /// /// - top_candidate.pieces()[0]: W /// - top_candidate.pieces()[1]: non_W /// /// The W itself has two pieces (corresponding to W1, W2). /// /// The existence of the first two of the structural calls (W(), /// non_W()) and the fact that the top is made of two pieces (W, /// non_W) are features that should be common to all taggers derived /// from TopTaggerBase. /// /// See also \subpage Example13 for a full usage example. /// class JHTopTagger : public TopTaggerBase { public: /// default ctor /// The parameters are the following: /// \param delta_p fractional pt cut imposed on the subjets /// (computed as a fraction of the original jet) /// \param delta_r minimal distance between 2 subjets /// (computed as |y1-y2|+|phi1-phi2|) /// \param cos_theta_W_max the maximal value for the polarisation /// angle of the W /// \param mW the W mass /// /// The default values of all these parameters are taken from /// arXiv:0806:0848 JHTopTagger(const double delta_p=0.10, const double delta_r=0.19, double cos_theta_W_max=0.7, double mW=80.4) : _delta_p(delta_p), _delta_r(delta_r), _cos_theta_W_max(cos_theta_W_max), _mW(mW){}; /// returns a textual description of the tagger virtual std::string description() const; /// runs the tagger on the given jet and /// returns the tagged PseudoJet if successful, or a PseudoJet==0 otherwise /// (standard access is through operator()). /// \param jet the PseudoJet to tag virtual PseudoJet result(const PseudoJet & jet) const; // the type of the associated structure typedef JHTopTaggerStructure StructureType; protected: /// runs the Johns Hopkins decomposition procedure std::vector _split_once(const PseudoJet & jet_to_split, const PseudoJet & reference_jet) const; double _delta_p, _delta_r, _cos_theta_W_max, _mW; static LimitedWarning _warnings_nonca; }; //------------------------------------------------------------------------ /// @ingroup tools_taggers /// \class JHTopTaggerStructure /// the structure returned by the JHTopTagger transformer. /// /// See the JHTopTagger class description for the details of what /// is inside this structure /// class JHTopTaggerStructure : public CompositeJetStructure, public TopTaggerBaseStructure { public: /// ctor with pieces initialisation JHTopTaggerStructure(std::vector pieces_in, const JetDefinition::Recombiner *recombiner = 0) : CompositeJetStructure(pieces_in, recombiner), _cos_theta_w(0.0){} /// returns the W subjet inline const PseudoJet & W() const{ return _pieces[0]; } /// returns the first W subjet (the harder) inline PseudoJet W1() const{ assert(W().pieces().size()>0); return W().pieces()[0]; } /// returns the second W subjet inline PseudoJet W2() const{ assert(W().pieces().size()>1); return W().pieces()[1]; } /// returns the non-W subjet /// It will have 1 or 2 pieces depending on whether the tagger has /// found 3 or 4 pieces inline const PseudoJet & non_W() const{ return _pieces[1]; } /// returns the W helicity angle inline double cos_theta_W() const {return _cos_theta_w;} // /// returns the original jet (before tagging) // const PseudoJet & original() const {return _original_jet;} protected: double _cos_theta_w; ///< the W helicity angle //PseudoJet _W; ///< the tagged W //PseudoJet _non_W; ///< the remaining pieces // PseudoJet _original_jet; ///< the original jet (before tagging) // allow the tagger to set these friend class JHTopTagger; }; FASTJET_END_NAMESPACE #endif // __FASTJET_JH_TOP_TAGGER_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/GridMedianBackgroundEstimator.hh0000644000175000017500000001460211766120131025407 0ustar sunsun#ifndef __GRID_MEDIAN_BACKGROUND_ESTIMATOR_HH__ #define __GRID_MEDIAN_BACKGROUND_ESTIMATOR_HH__ //STARTHEADER // $Id: GridMedianBackgroundEstimator.hh 2580 2011-09-13 17:25:43Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/tools/BackgroundEstimatorBase.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// @ingroup tools_background /// \class GridMedianBackgroundEstimator /// /// Background Estimator based on the median pt/area of a set of grid /// cells. /// /// Description of the method: /// This background estimator works by projecting the event onto a /// grid in rapidity and azimuth. In each grid cell, the scalar pt /// sum of the particles in the cell is computed. The background /// density is then estimated by the median of (scalar pt sum/cell /// area) for all cells. /// /// Parameters: /// The class takes 2 arguments: the absolute rapidity extent of the /// cells and the size of the grid cells. Note that the size of the cell /// will be adjusted in azimuth to satisfy the 2pi periodicity and /// in rapidity to match the requested rapidity extent. /// /// Rescaling: /// It is possible to use a rescaling profile. In this case, the /// profile needs to be set before setting the particles and it will /// be applied to each particle (i.e. not to each cell). /// Note also that in this case one needs to call rho(jet) instead of /// rho() [Without rescaling, they are identical] /// class GridMedianBackgroundEstimator : public BackgroundEstimatorBase { public: /// @name constructors and destructors //\{ //---------------------------------------------------------------- /// \param ymax maximal absolute rapidity extent of the grid /// \param requested_grid_spacing size of the grid cell. The /// "real" cell size could differ due e.g. to the 2pi /// periodicity in azimuthal angle (size, not area) GridMedianBackgroundEstimator(double ymax, double requested_grid_spacing) : _ymin(-ymax), _ymax(ymax), _requested_grid_spacing(requested_grid_spacing), _has_particles(false){setup_grid();} //\} /// @name setting a new event //\{ //---------------------------------------------------------------- /// tell the background estimator that it has a new event, composed /// of the specified particles. void set_particles(const std::vector & particles); //\} /// @name retrieving fundamental information //\{ //---------------------------------------------------------------- /// returns rho, the median background density per unit area double rho() const; /// returns sigma, the background fluctuations per unit area; must be /// multipled by sqrt(area) to get fluctuations for a region of a /// given area. double sigma() const; /// returns rho, the background density per unit area, locally at the /// position of a given jet. Note that this is not const, because a /// user may then wish to query other aspects of the background that /// could depend on the position of the jet last used for a rho(jet) /// determination. double rho(const PseudoJet & jet); /// returns sigma, the background fluctuations per unit area, locally at /// the position of a given jet. As for rho(jet), it is non-const. double sigma(const PseudoJet & jet); /// returns true if this background estimator has support for /// determination of sigma bool has_sigma() {return true;} /// returns the area of the grid cells (all identical, but /// referred to as "mean" area for uniformity with JetMedianBGE). double mean_area() const {return _cell_area;} //\} /// @name configuring the behaviour //\{ //---------------------------------------------------------------- /// Set a pointer to a class that calculates the rescaling factor as /// a function of the jet (position). Note that the rescaling factor /// is used both in the determination of the "global" rho (the pt/A /// of each jet is divided by this factor) and when asking for a /// local rho (the result is multiplied by this factor). /// /// The BackgroundRescalingYPolynomial class can be used to get a /// rescaling that depends just on rapidity. /// /// Note that this has to be called BEFORE any attempt to do an /// actual computation virtual void set_rescaling_class(const FunctionOfPseudoJet * rescaling_class); //\} /// @name description //\{ //---------------------------------------------------------------- /// returns a textual description of the background estimator std::string description() const; //\} private: /// configure the grid void setup_grid(); /// retrieve the grid cell index for a given PseudoJet int igrid(const PseudoJet & p) const; /// verify that particles have been set and throw an error if not void verify_particles_set() const; // information about the grid double _ymin, _ymax, _dy, _dphi, _requested_grid_spacing, _cell_area; int _ny, _nphi, _ntotal; // information abotu the event std::vector _scalar_pt; bool _has_particles; // various warnings to let people aware of potential dangers LimitedWarning _warning_rho_of_jet; LimitedWarning _warning_rescaling; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __GRID_MEDIAN_BACKGROUND_ESTIMATOR_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/RestFrameNSubjettinessTagger.hh0000644000175000017500000001427511766120131025265 0ustar sunsun#ifndef __FASTJET_RESTFRAMENSUBJETTINESS_TAGGER_HH__ #define __FASTJET_RESTFRAMENSUBJETTINESS_TAGGER_HH__ //STARTHEADER // $Id: RestFrameNSubjettinessTagger.hh 2689 2011-11-14 14:51:06Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include #include FASTJET_BEGIN_NAMESPACE class RestFrameNSubjettinessTagger; class RestFrameNSubjettinessTaggerStructure; //---------------------------------------------------------------------- /// @ingroup tools_taggers /// \class RestFrameNSubjettinessTagger /// Class that helps perform 2-pronged boosted tagging using /// a reclustering in the jet's rest frame, supplemented with a cut on N-subjettiness /// (and a decay angle), as discussed by Ji-Hun Kim in arXiv:1011.1493. /// /// To tag a fat jet, the tagger proceeds as follows: /// /// - boost its constituents into the rest frame of the jet /// /// - recluster them using another jet definition (the original /// choice was SISCone in spherical coordinates with R=0.6 and /// f=0.75. /// /// - keep the 2 most energetic subjets (\f$q_{1,2}\f$) and compute /// the 2-subjettiness /// \f[ /// \tau_2^j = \frac{2}{m_{\rm jet}^2}\, /// \sum_{k\in {\rm jet}} {\rm min}(q_1.p_k,q_2.p_k) /// \f] /// where the sum runs over the constituents of the jet. /// /// - require \f$\tau_2^j < \tau_2^{\rm cut}\f$ [0.08 by default] /// /// - impose that (in the rest frame of the fat jet), the angles /// between the 2 most energetic subjets and the boost axis are /// both large enough: \f$\cos(\theta_s)() /// function /// class RestFrameNSubjettinessTagger : public Transformer{ public: /// ctor with arguments (see the class description above) RestFrameNSubjettinessTagger(const JetDefinition subjet_def, const double tau2cut=0.08, const double costhetascut=0.8, const bool use_exclusive = false) : _subjet_def(subjet_def), _t2cut(tau2cut), _costscut(costhetascut), _use_exclusive(use_exclusive){}; /// returns a textual description of the tagger virtual std::string description() const; /// runs the tagger on the given jet and /// returns the tagged PseudoJet if successful, a PseudoJet==0 otherwise /// (standard access is through operator()). virtual PseudoJet result(const PseudoJet & jet) const; /// the type of Structure returned typedef RestFrameNSubjettinessTaggerStructure StructureType; protected: JetDefinition _subjet_def; double _t2cut, _costscut; bool _use_exclusive; }; //------------------------------------------------------------------------ /// @ingroup tools_taggers /// \class RestFrameNSubjettinessTaggerStructure /// the structure returned by the RestFrameNSubjettinessTagger transformer. /// /// See the RestFrameNSubjettinessTagger class description for the details of /// what is inside this structure /// class RestFrameNSubjettinessTaggerStructure : public CompositeJetStructure{ public: /// ctor with pieces initialisation RestFrameNSubjettinessTaggerStructure(const std::vector & pieces_in) : CompositeJetStructure(pieces_in), _tau2(0.0), _costhetas(1.0){} /// returns the associated N-subjettiness inline double tau2() const{return _tau2;} /// returns the associated angle with the boosted axis inline double costhetas() const {return _costhetas;} // /// returns the original jet (before tagging) // const PseudoJet & original() const {return _original_jet;} protected: double _tau2; ///< the value of the N-subjettiness double _costhetas; ///< the minimal angle between the dijets ///< and the boost axis // PseudoJet _original_jet; ///< the original jet (before tagging) // allow the tagger to set these friend class RestFrameNSubjettinessTagger; }; FASTJET_END_NAMESPACE #endif // __FASTJET_RESTFRAMENSUBJETTINESS_TAGGER_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/JetMedianBackgroundEstimator.hh0000644000175000017500000004310111766120131025240 0ustar sunsun#ifndef __FASTJET_BACKGROUND_ESTIMATOR_HH__ #define __FASTJET_BACKGROUND_ESTIMATOR_HH__ //STARTHEADER // $Id: JetMedianBackgroundEstimator.hh 2689 2011-11-14 14:51:06Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// @ingroup tools_background /// \class JetMedianBackgroundEstimator /// /// Class to estimate the pt density of the background per unit area, /// using the median of the distribution of pt/area from jets that /// pass some selection criterion. /// /// Events are passed either in the form of the event particles (in /// which they're clustered by the class), a ClusterSequenceArea (in /// which case the jets used are those returned by "inclusive_jets()") /// or directly as a set of jets. /// /// The selection criterion is typically a geometrical one (e.g. all /// jets with |y|<2) sometimes supplemented with some kinematical /// restriction (e.g. exclusion of the two hardest jets). It is passed /// to the class through a Selector. /// /// Beware: /// by default, to correctly handle partially empty events, the /// class attempts to calculate an "empty area", based /// (schematically) on /// /// range.total_area() - sum_{jets_in_range} jets.area() /// /// For ranges with small areas, this can be inaccurate (particularly /// relevant in dense events where empty_area should be zero and ends /// up not being zero). /// /// This calculation of empty area can be avoided if a /// ClusterSequenceArea class with explicit ghosts /// (ActiveAreaExplicitGhosts) is used. This is _recommended_ /// unless speed requirements cause you to use Voronoi areas. For /// speedy background estimation you could also consider using /// GridMedianBackgroundEstimator. /// /// class JetMedianBackgroundEstimator : public BackgroundEstimatorBase { public: /// @name constructors and destructors //\{ //---------------------------------------------------------------- /// Constructor that sets the rho range as well as the jet /// definition and area definition to be used to cluster the /// particles. Prior to the estimation of rho, one has to provide /// the particles to cluster using set_particles(...) /// /// \param rho_range the Selector specifying which jets will be considered /// \param jet_def the jet definition to use for the clustering /// \param area_def the area definition to use for the clustering JetMedianBackgroundEstimator(const Selector &rho_range, const JetDefinition &jet_def, const AreaDefinition &area_def); /// ctor from a ClusterSequenceAreaBase with area /// /// \param rho_range the Selector specifying which jets will be considered /// \param csa the ClusterSequenceArea to use /// /// Pre-conditions: /// - one should be able to estimate the "empty area" (i.e. the area /// not occupied by jets). This is feasible if at least one of the following /// conditions is satisfied: /// ( i) the ClusterSequence has explicit ghosts /// (ii) the range has a computable area. /// - the jet algorithm must be suited for median computation /// (otherwise a warning will be issues) /// /// Note that selectors with e.g. hardest-jets exclusion do not have /// a well-defined area. For this reasons, it is STRONGLY advised to /// use an area with explicit ghosts. JetMedianBackgroundEstimator(const Selector &rho_range, const ClusterSequenceAreaBase &csa); /// Default constructor that optionally sets the rho range. The /// configuration must be done later calling /// set_cluster_sequence(...) or set_jets(...). /// /// \param rho_range the Selector specifying which jets will be considered /// JetMedianBackgroundEstimator(const Selector &rho_range = SelectorIdentity()) : _rho_range(rho_range), _jet_def(JetDefinition()) { reset(); } /// default dtor ~JetMedianBackgroundEstimator(){} //\} /// @name setting a new event //\{ //---------------------------------------------------------------- /// tell the background estimator that it has a new event, composed /// of the specified particles. virtual void set_particles(const std::vector & particles); /// (re)set the cluster sequence (with area support) to be used by /// future calls to rho() etc. /// /// \param csa the cluster sequence area /// /// Pre-conditions: /// - one should be able to estimate the "empty area" (i.e. the area /// not occupied by jets). This is feasible if at least one of the following /// conditions is satisfied: /// ( i) the ClusterSequence has explicit ghosts /// (ii) the range selected has a computable area. /// - the jet algorithm must be suited for median computation /// (otherwise a warning will be issues) /// /// Note that selectors with e.g. hardest-jets exclusion do not have /// a well-defined area. For this reasons, it is STRONGLY advised to /// use an area with explicit ghosts. void set_cluster_sequence(const ClusterSequenceAreaBase & csa); /// (re)set the jets (which must have area support) to be used by future /// calls to rho() etc.; for the conditions that must be satisfied /// by the jets, see the Constructor that takes jets. void set_jets(const std::vector &jets); /// (re)set the selector to be used for future calls to rho() etc. void set_selector(const Selector & rho_range_selector) { _rho_range = rho_range_selector; _uptodate = false; } //\} /// @name retrieving fundamental information //\{ //---------------------------------------------------------------- /// get rho, the median background density per unit area double rho() const; /// get sigma, the background fluctuations per unit area double sigma() const; /// get rho, the median background density per unit area, locally at /// the position of a given jet. /// /// If the Selector associated with the range takes a reference jet /// (i.e. is relocatable), then for subsequent operations the /// Selector has that jet set as its reference. double rho(const PseudoJet & jet); /// get sigma, the background fluctuations per unit area, /// locally at the position of a given jet. /// /// If the Selector associated with the range takes a reference jet /// (i.e. is relocatable), then for subsequent operations the /// Selector has that jet set as its reference. double sigma(const PseudoJet &jet); /// returns true if this background estimator has support for /// determination of sigma virtual bool has_sigma() {return true;} //\} /// @name retrieving additional useful information //\{ //---------------------------------------------------------------- /// Returns the mean area of the jets used to actually compute the /// background properties in the last call of rho() or sigma() double mean_area() const{ _recompute_if_needed(); return _mean_area; } /// returns the number of jets used to actually compute the /// background properties in the last call of rho() or sigma() unsigned int n_jets_used() const{ _recompute_if_needed(); return _n_jets_used; } /// Returns the estimate of the area (within the range defined by /// the selector) that is not occupied by jets. The value is that /// for the last call of rho() or sigma() /// /// The answer is defined to be zero if the area calculation /// involved explicit ghosts; if the area calculation was an active /// area, then use is made of the active area's internal list of /// pure ghost jets (taking those that pass the selector); otherwise /// it is based on the difference between the selector's total area /// and the area of the jets that pass the selector. /// /// The result here is just the cached result of the corresponding /// call to the ClusterSequenceAreaBase function. double empty_area() const{ _recompute_if_needed(); return _empty_area; } /// Returns the number of empty jets used when computing the /// background properties. The value is that for the last call of /// rho() or sigma(). /// /// If the area has explicit ghosts the result is zero; for active /// areas it is the number of internal pure ghost jets that pass the /// selector; otherwise it is deduced from the empty area, divided by /// \f$ 0.55 \pi R^2 \f$ (the average pure-ghost-jet area). /// /// The result here is just the cached result of the corresponding /// call to the ClusterSequenceAreaBase function. double n_empty_jets() const{ _recompute_if_needed(); return _n_empty_jets; } //} /// @name configuring behaviour //\{ //---------------------------------------------------------------- /// Resets the class to its default state, including the choice to /// use 4-vector areas. /// void reset(); /// By default when calculating pt/Area for a jet, it is the /// transverse component of the 4-vector area that is used in the ratiof \f$p_t/A\f$. /// Calling this function with a "false" argument causes the scalar area to /// be used instead. /// /// While the difference between the two choices is usually small, /// for high-precision work it is usually the 4-vector area that is /// to be preferred. /// /// \param use_it whether one uses the 4-vector area or not (true by default) void set_use_area_4vector(bool use_it = true){ _use_area_4vector = use_it; _uptodate = false; } /// check if the estimator uses the 4-vector area or the scalar area bool use_area_4vector() const{ return _use_area_4vector;} /// The FastJet v2.X sigma calculation had a small spurious offset /// in the limit of a small number of jets. This is fixed by default /// in versions 3 upwards. The old behaviour can be obtained with a /// call to this function. void set_provide_fj2_sigma(bool provide_fj2_sigma = true) { _provide_fj2_sigma = provide_fj2_sigma; _uptodate = false; } /// Set a pointer to a class that calculates the quantity whose /// median will be calculated; if the pointer is null then pt/area /// is used (as occurs also if this function is not called). /// /// Note that this is still preliminary in FastJet 3.0 and /// that backward compatibility is not guaranteed in future releases /// of FastJet void set_jet_density_class(const FunctionOfPseudoJet * jet_density_class); /// return the pointer to the jet density class const FunctionOfPseudoJet * jet_density_class() const{ return _jet_density_class; } /// Set a pointer to a class that calculates the rescaling factor as /// a function of the jet (position). Note that the rescaling factor /// is used both in the determination of the "global" rho (the pt/A /// of each jet is divided by this factor) and when asking for a /// local rho (the result is multiplied by this factor). /// /// The BackgroundRescalingYPolynomial class can be used to get a /// rescaling that depends just on rapidity. virtual void set_rescaling_class(const FunctionOfPseudoJet * rescaling_class_in) { BackgroundEstimatorBase::set_rescaling_class(rescaling_class_in); _uptodate = false; } //\} /// @name description //\{ //---------------------------------------------------------------- /// returns a textual description of the background estimator std::string description() const; //\} private: /// do the actual job void _compute() const; /// check if the properties need to be recomputed /// and do so if needed void _recompute_if_needed() const { if (!_uptodate) _compute(); _uptodate = true; } /// for estimation using a selector that takes a reference jet /// (i.e. a selector that can be relocated) this function allows one /// to set its position. /// /// Note that this HAS to be called before any attempt to compute /// the background properties. The call is, however, performed /// automatically by the functions rho(jet) and sigma(jet). void _recompute_if_needed(const PseudoJet &jet); /// check that the underlying structure is still alive /// throw an error otherwise void _check_csa_alive() const; /// check that the algorithm used for the clustering is adapted for /// background estimation (i.e. either kt or C/A) /// Issue a warning otherwise void _check_jet_alg_good_for_median() const; // the basic parameters of this class (passed through the variou ctors) Selector _rho_range; ///< range to compute the background in JetDefinition _jet_def; ///< the jet def to use for teh clustering AreaDefinition _area_def; ///< the area def to use for teh clustering std::vector _included_jets; ///< jets to be used // the tunable aprameters of the class bool _use_area_4vector; bool _provide_fj2_sigma; const FunctionOfPseudoJet * _jet_density_class; //SharedPtr _rescaling_class_sharedptr; // the actual results of the computation mutable double _rho; ///< background estimated density per unit area mutable double _sigma; ///< background estimated fluctuations mutable double _mean_area; ///< mean area of the jets used to estimate the background mutable unsigned int _n_jets_used; ///< number of jets used to estimate the background mutable double _n_empty_jets; ///< number of empty (pure-ghost) jets mutable double _empty_area; ///< the empty (pure-ghost/unclustered) area! // internal variables SharedPtr _csi; ///< allows to check if _csa is still valid PseudoJet _current_reference; ///< current reference jet mutable bool _uptodate; ///< true when the background computation is up-to-date /// handle warning messages static LimitedWarning _warnings; static LimitedWarning _warnings_zero_area; static LimitedWarning _warnings_preliminary; }; //---------------------------------------------------------------------- /// @ingroup tools_background /// \class BackgroundJetPtDensity /// Class that implements pt/area_4vector.perp() for background estimation /// (this is a preliminary class). class BackgroundJetPtDensity : public FunctionOfPseudoJet { public: virtual double result(const PseudoJet & jet) const { return jet.perp() / jet.area_4vector().perp(); } virtual std::string description() const {return "BackgroundJetPtDensity";} }; //---------------------------------------------------------------------- /// @ingroup tools_background /// \class BackgroundJetScalarPtDensity /// Class that implements (scalar pt sum of jet)/(scalar area of jet) /// for background estimation (this is a preliminary class). /// /// Optionally it can return a quantity based on the sum of pt^n, /// e.g. for use in subtracting fragementation function moments. class BackgroundJetScalarPtDensity : public FunctionOfPseudoJet { public: /// Default constructor provides background estimation with scalar pt sum BackgroundJetScalarPtDensity() : _pt_power(1) {} /// Constructor to provide background estimation based on /// \f$ sum_{i\in jet} p_{ti}^{n} \f$ BackgroundJetScalarPtDensity(double n) : _pt_power(n) {} virtual double result(const PseudoJet & jet) const; virtual std::string description() const {return "BackgroundScalarJetPtDensity";} private: double _pt_power; }; //---------------------------------------------------------------------- /// @ingroup tools_background /// \class BackgroundJetPtMDensity /// Class that implements /// \f$ \frac{1}{A} \sum_{i \in jet} (\sqrt{p_{ti}^2+m^2} - p_{ti}) \f$ /// for background estimation (this is a preliminary class). /// /// /// This is useful for correcting jet masses in cases where the event /// involves massive particles. class BackgroundJetPtMDensity : public FunctionOfPseudoJet { public: virtual double result(const PseudoJet & jet) const { std::vector constituents = jet.constituents(); double scalar_ptm = 0; for (unsigned i = 0; i < constituents.size(); i++) { scalar_ptm += constituents[i].mperp() - constituents[i].perp(); } return scalar_ptm / jet.area(); } virtual std::string description() const {return "BackgroundPtMDensity";} }; FASTJET_END_NAMESPACE #endif // __BACKGROUND_ESTIMATOR_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/MassDropTagger.hh0000644000175000017500000001304311766120131022374 0ustar sunsun//STARTHEADER // $Id: MassDropTagger.hh 2731 2011-11-21 12:15:21Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_MASS_DROP_TAGGER_HH__ #define __FASTJET_MASS_DROP_TAGGER_HH__ #include #include #include FASTJET_BEGIN_NAMESPACE class MassDropTagger; class MassDropTaggerStructure; //---------------------------------------------------------------------- /// @ingroup tools_taggers /// \class MassDropTagger /// Class that helps perform 2-pronged boosted tagging using /// the "mass-drop" technique (with asymmetry cut) introduced by Jonathan /// Butterworth, Adam Davison, Mathieu Rubin and Gavin Salam in /// arXiv:0802.2470 in the context of a boosted Higgs search. /// /// The tagger proceeds as follows: /// /// 0. start from a jet obtained from with the Cambridge/Aachen /// algorithm /// /// 1. undo the last step of the clustering step j -> j1 + j2 (label /// them such as j1 is the most massive). /// /// 2. if there is a mass drop, i.e. m_j1/m_j < mu_cut, and the /// splitting is sufficiently symmetric, \f${\rm /// min}(p_{tj1}^2,p_{tj2}^2)\Delta R_{j1,j2}^2 > y_{\rm cut} /// m_j^2\f$, keep j as the result of the tagger (with j1 and j2 /// its 2 subjets) /// /// 3. otherwise, redefine j to be equal to j1 and return to step 1. /// /// Note that in the original proposal, j1 and j2 are both required /// to be b-tagged and a filter (with Rfilt=min(0.3,Rbb/2) and /// n_filt=3) is also applied to j to obtain the final "Higgs candidate". /// See the example \subpage Example12 for details. /// /// \section desc Options /// /// The constructor has the following arguments: /// - The first argument is the minimal mass drop that is required (mu_cut) [0.67 /// by default] /// - The second argument is the asymmetry cut (y_cut) [0.09 by default] /// /// \section input Input conditions /// /// - one must be able to successively "uncluster" the original jet /// using "has_parents" /// /// \section output Output/structure /// /// - the 2 subjets are kept as pieces if some substructure is found, /// otherwise a single 0-momentum piece is returned /// - the 'mu' and 'y' values corresponding to the unclustering step /// that passed the tagger's cuts /// /// See also \subpage Example12 for a usage example. class MassDropTagger : public Transformer{ public: /// default ctor MassDropTagger(const double mu=0.67, const double ycut=0.09) : _mu(mu), _ycut(ycut){}; /// returns a textual description of the tagger virtual std::string description() const; /// runs the tagger on the given jet and /// returns the tagged PseudoJet if successful, a PseudoJet==0 otherwise /// (standard access is through operator()). /// \param jet the PseudoJet to tag virtual PseudoJet result(const PseudoJet & jet) const; /// the type of the associated structure typedef MassDropTaggerStructure StructureType; protected: double _mu, _ycut; static LimitedWarning _warnings_nonca; }; //------------------------------------------------------------------------ /// @ingroup tools_taggers /// \class MassDropTaggerStructure /// the structure returned by the MassDropTagger transformer. /// /// See the MassDropTagger class description for the details of what /// is inside this structure /// class MassDropTaggerStructure : public WrappedStructure{ public: /// ctor with initialisation /// \param pieces the pieces of the created jet /// \param rec the recombiner from the underlying cluster sequence MassDropTaggerStructure(const PseudoJet & result_jet) : WrappedStructure(result_jet.structure_shared_ptr()), _mu(0.0), _y(0.0){} /// returns the mass-drop ratio, pieces[0].m()/jet.m(), for the splitting /// that triggered the mass-drop condition inline double mu() const{return _mu;} /// returns the value of y = (squared kt distance) / (squared mass) for the /// splitting that triggered the mass-drop condition inline double y() const {return _y;} // /// returns the original jet (before tagging) // const PseudoJet & original() const {return _original_jet;} protected: double _mu; ///< the value of the mass-drop parameter double _y; ///< the value of the asymmetry parameter // PseudoJet _original_jet; ///< the original jet (before tagging) // allow the tagger to set these friend class MassDropTagger; }; FASTJET_END_NAMESPACE #endif // __FASTJET_MASS_DROP_TAGGER_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/Subtractor.hh0000644000175000017500000000736111766120131021650 0ustar sunsun//STARTHEADER // $Id: Subtractor.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_TOOLS_SUBTRACTOR_HH__ #define __FASTJET_TOOLS_SUBTRACTOR_HH__ #include "fastjet/tools/Transformer.hh" // to derive Subtractor from Transformer #include "fastjet/tools/BackgroundEstimatorBase.hh" // used as a ctor argument FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- /// @ingroup tools_background /// \class Subtractor /// Class that helps perform jet background subtraction. /// /// This class derives from Transformer and makes use of a pointer to /// a BackgroundEstimatorBase object in order to determine the background /// in the vicinity of a given jet and then subtract area*background from /// the jet. It can also be initialised with a specific fixed value for the /// background pt density. /// /// \section input Input conditions /// /// The original jet must have area support (4-vector) /// /// \section output Output/interface /// /// The underlying structure of the returned, subtracted jet /// (i.e. constituents, pieces, etc.) is identical to that of the /// original jet. /// class Subtractor : public Transformer{ public: /// define a subtractor based on a BackgroundEstimator Subtractor(BackgroundEstimatorBase * bge) : _bge(bge), _rho(-1.0) {} /// define a subtractor that uses a fixed value of rho, the background /// pt density per unit area (which must be positive) Subtractor(double rho); /// default constructor Subtractor() : _bge(0), _rho(_invalid_rho) {} /// default dtor virtual ~Subtractor(){}; /// returns a jet that's subtracted /// /// \param jet the jet that is to be subtracted /// \return the subtracted jet virtual PseudoJet result(const PseudoJet & jet) const; /// class description virtual std::string description() const; protected: /// the tool used to estimate the background /// if has to be mutable in case its underlying selector takes a reference jet mutable BackgroundEstimatorBase * _bge; /// the fixed value of rho to use if the user has selected that option double _rho; /// a value of rho that is used as a default to label that the stored /// rho is not valid for subtraction. // // NB: there are two reasons for not having the value written here: // 1) that it caused problems on karnak with g++ 4.0.1 and 2) that // we anyway like -infinity as a default, and since that's a function, // that's not allowed in an include file. static const double _invalid_rho; }; FASTJET_END_NAMESPACE #endif // __FASTJET_TOOLS_SUBTRACTOR_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/Makefile.in0000644000175000017500000003457312233506216021253 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = tools/fastjet/tools DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(toolsinclude_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(toolsincludedir)" HEADERS = $(toolsinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ toolsincludedir = $(includedir)/fastjet/tools toolsinclude_HEADERS = \ BackgroundEstimatorBase.hh \ JetMedianBackgroundEstimator.hh \ GridMedianBackgroundEstimator.hh \ Transformer.hh Boost.hh \ Filter.hh Pruner.hh Subtractor.hh \ MassDropTagger.hh RestFrameNSubjettinessTagger.hh CASubJetTagger.hh \ JHTopTagger.hh TopTaggerBase.hh all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/fastjet/tools/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tools/fastjet/tools/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-toolsincludeHEADERS: $(toolsinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(toolsincludedir)" || $(MKDIR_P) "$(DESTDIR)$(toolsincludedir)" @list='$(toolsinclude_HEADERS)'; test -n "$(toolsincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(toolsincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(toolsincludedir)" || exit $$?; \ done uninstall-toolsincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(toolsinclude_HEADERS)'; test -n "$(toolsincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(toolsincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(toolsincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(toolsincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-toolsincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-toolsincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip \ install-toolsincludeHEADERS installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am \ uninstall-toolsincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/Transformer.hh0000644000175000017500000000647711766120131022031 0ustar sunsun//STARTHEADER // $Id: Transformer.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __FASTJET_TRANSFORMER_HH__ #define __FASTJET_TRANSFORMER_HH__ #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // forward declarations of what we will have down here class Transformer; /// @ingroup tools_generic /// \class Transformer /// /// Base (abstract) class for a jet transformer. /// /// A transformer, when it acts on a jet, returns a modified version /// of that jet, one that may have a different momentum and/or /// different internal structure. /// /// The typical usage of a class derived from Transformer is /// \code /// SomeTransformer transformer(...); /// PseudoJet transformed_jet = transformer(original_jet); /// // or /// vector transformed_jets = transformer(original_jets); /// \endcode /// /// For many transformers, the transformed jets have /// transformer-specific information that can be accessed through the /// /// \code /// transformed_jet.structure_of().transformer_specific_info(); /// \endcode /// /// See the description of the Filter class for a more detailed usage /// example. See the FastJet manual to find out how to implement /// new transformers. /// class Transformer : public FunctionOfPseudoJet{ public: /// default ctor Transformer(){} /// default dtor virtual ~Transformer(){} /// the result of the Transformer acting on the PseudoJet. /// this _has_ to be overloaded in derived classes /// \param original the PseudoJet input to the Transformer virtual PseudoJet result(const PseudoJet & original) const = 0; /// This should be overloaded to return a description of the /// Transformer virtual std::string description() const = 0; /// A typedef that is needed to ensure that the /// PseudoJet::structure_of() template function works // // Make sure you reimplement this appropriately in any // derived classes typedef PseudoJetStructureBase StructureType; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __FASTJET_TRANSFORMER_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/Filter.hh0000644000175000017500000002634211766120131020745 0ustar sunsun#ifndef __FASTJET_TOOLS_FILTER_HH__ #define __FASTJET_TOOLS_FILTER_HH__ //STARTHEADER // $Id: Filter.hh 2694 2011-11-14 22:27:51Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include // to derive the FilterStructure from CompositeJetStructure #include // to derive Filter from Transformer #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // fwd declarations class Filter; class FilterStructure; //---------------------------------------------------------------------- /// @ingroup tools_generic /// \class Filter /// Class that helps perform filtering (Butterworth, Davison, Rubin /// and Salam, arXiv:0802.2470) and trimming (Krohn, Thaler and Wang, /// arXiv:0912.1342) on jets, optionally in conjunction with /// subtraction (Cacciari and Salam, arXiv:0707.1378). /// /// For example, to apply filtering that reclusters a jet's /// constituents with the Cambridge/Aachen jet algorithm with R=0.3 /// and then selects the 3 hardest subjets, one can use the following /// code: /// \code /// Filter filter(JetDefinition(cambridge_algorithm, 0.3), SelectorNHardest(3)); /// PseudoJet filtered_jet = filter(original_jet); /// \endcode /// /// To obtain trimming, involving for example the selection of all /// subjets carrying at least 3% of the original jet's pt, the /// selector would be replaced by SelectorPtFractionMin(0.03). /// /// To additionally perform subtraction on the subjets prior to /// selection, either include a 3rd argument specifying the background /// density rho, or call the set_subtractor(...) member function. If /// subtraction is requested, the original jet must be the result of a /// clustering with active area with explicit ghosts support or a /// merging of such pieces. /// /// The information on the subjets that were kept and rejected can be /// obtained using: /// \code /// vector kept_subjets = filtered_jet.pieces(); /// vector rejected_subjets = filtered_jet.structure_of().rejected(); /// \endcode /// /// \section impl Implementation Note /// /// If the original jet was defined with the Cambridge/Aachen /// algorithm (or is made of pieces each of which comes from the C/A /// alg) and the filtering definition is C/A, then the filter does not /// rerun the C/A algorithm on the constituents, but instead makes use /// of the existent C/A cluster sequence in the original jet. This /// increases the speed of the filter. /// /// See also \subpage Example11 for a further usage example. /// /// Support for areas, reuse of C/A cluster sequences, etc., /// considerably complicates the implementation of Filter. For an /// explanation of how a simpler filter might be coded, see the /// "User-defined transformers" appendix of the manual. class Filter : public Transformer{ public: /// trivial ctor /// Note: this is just for derived classes /// a Filter initialised through this constructor will not work! Filter() : _Rfiltfunc(0){}; /// define a filter that decomposes a jet into subjets using a /// generic JetDefinition and then keeps only a subset of these /// subjets according to a Selector. Optionally, each subjet may be /// internally bakground-subtracted prior to selection. /// /// \param subjet_def the jet definition applied to obtain the subjets /// \param selector the Selector applied to compute the kept subjets /// \param rho if non-zero, backgruond-subtract each subjet befor selection /// /// Note: internal subtraction only applies on jets that are /// obtained with a cluster sequence with area support and explicit /// ghosts Filter(JetDefinition subjet_def, Selector selector, double rho = 0.0) : _subjet_def(subjet_def), _Rfiltfunc(0), _Rfilt(-1), _selector(selector), _rho(rho), _subtractor(0) {} /// Same as the full constructor (see above) but just specifying the radius /// By default, Cambridge-Aachen is used /// If the jet (or all its pieces) is obtained with a non-default /// recombiner, that one will be used /// \param Rfilt the filtering radius Filter(double Rfilt, Selector selector, double rho = 0.0) : _Rfiltfunc(0), _Rfilt(Rfilt), _selector(selector), _rho(rho), _subtractor(0) { if (_Rfilt<0) throw Error("Attempt to create a Filter with a negative filtering radius"); } /// Same as the full constructor (see above) but just specifying a /// filtering radius that will depend on the jet being filtered /// As for the previous case, Cambridge-Aachen is used /// If the jet (or all its pieces) is obtained with a non-default /// recombiner, that one will be used /// \param Rfilt_func the filtering radius function of a PseudoJet Filter(FunctionOfPseudoJet *Rfilt_func, Selector selector, double rho = 0.0) : _Rfiltfunc(Rfilt_func), _Rfilt(-1), _selector(selector), _rho(rho), _subtractor(0) {} /// default dtor virtual ~Filter(){}; /// Set a subtractor that is applied to all individual subjets before /// deciding which ones to keep. It takes precedence over a non-zero rho. void set_subtractor(const Transformer * subtractor) {_subtractor = subtractor;} /// runs the filtering and sets kept and rejected to be the jets of interest /// (with non-zero rho, they will have been subtracted). /// /// \param jet the jet that gets filtered /// \return the filtered jet virtual PseudoJet result(const PseudoJet & jet) const; /// class description virtual std::string description() const; // the type of the associated structure typedef FilterStructure StructureType; private: /// Sets filtered_elements to be all the subjets on which filtering will work. /// It also sets the subjet_def to be used in joining things (the bit of /// subjet def that is of interest for later is the recombiner). void _set_filtered_elements(const PseudoJet & jet, std::vector & filtered_elements, JetDefinition & subjet_def, bool & discard_area) const; /// set the filtered elements in the simple case of C/A+C/A void _set_filtered_elements_cafilt(const PseudoJet & jet, std::vector & filtered_elements, double Rfilt) const; /// set the filtered elements in the generic re-clustering case void _set_filtered_elements_generic(const PseudoJet & jet, std::vector & filtered_elements, const JetDefinition & subjet_def, bool do_areas) const; /// gather the information about what is kept and rejected under the /// form of a PseudoJet with a special ClusterSequenceInfo PseudoJet _finalise(const PseudoJet & jet, std::vector & kept, std::vector & rejected, const JetDefinition & subjet_def, const bool discard_area) const; // a series of checks //-------------------------------------------------------------------- /// get the pieces down to the fundamental pieces bool _get_all_pieces(const PseudoJet &jet, std::vector &all_pieces) const; /// get the common recombiner to all pieces (NULL if none) const JetDefinition::Recombiner* _get_common_recombiner(const std::vector &all_pieces) const; /// check if one can apply the simplified trick for C/A subjets bool _check_ca(const std::vector &all_pieces) const; /// check if the jet (or all its pieces) have explicit ghosts /// (assuming the jet has area support /// /// Note that if the jet has an associated cluster sequence that is no /// longer valid, an error will be thrown bool _check_explicit_ghosts(const std::vector &all_pieces) const; bool _uses_subtraction() const {return (_subtractor || _rho != 0);} JetDefinition _subjet_def; ///< the jet definition to use to extract the subjets FunctionOfPseudoJet *_Rfiltfunc; ///< a dynamic filtering radius function of the jet being filtered double _Rfilt; ///< a constant specifying the subjet radius (with C/A) Selector _selector; ///< the subjet selection criterium double _rho; ///< the background density (used for subtraction when possible) const Transformer * _subtractor; ///< for subtracting bkgd density from subjets }; //---------------------------------------------------------------------- /// @ingroup tools_generic /// \class FilterStructure /// Class to contain structure information for a filtered jet. class FilterStructure : public CompositeJetStructure { public: /// constructor from an original ClusterSequenceInfo /// We just share the original ClusterSequenceWrapper and initialise /// the rest FilterStructure(const std::vector & pieces_in, const JetDefinition::Recombiner *rec = 0) : CompositeJetStructure(pieces_in, rec){} /// virtual dtor to allow further overloading virtual ~FilterStructure(){} /// description virtual std::string description() const { return "Filtered PseudoJet"; } //------------------------------------------------------------------ /// @name The filter-specific information //------------------------------------------------------------------ // /// returns the original jet (the first of the original jets // /// if you filtered a collection of jets) // const PseudoJet & original() const {return _original_jet;} /// returns the subjets that were not kept during the filtering procedure /// (subtracted if the filter requests it, and valid in the original cs) const std::vector & rejected() const {return _rejected;} friend class Filter; // allow the filter to change the protected/private members protected: // PseudoJet _original_jet; ///< the original jet std::vector _rejected; ///< the subjets rejected by the filter }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __FASTJET_TOOLS_FILTER_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/Pruner.hh0000644000175000017500000002661311766120131020774 0ustar sunsun#ifndef __FASTJET_TOOLS_PRUNER_HH__ #define __FASTJET_TOOLS_PRUNER_HH__ //STARTHEADER // $Id: Pruner.hh 2616 2011-09-30 18:03:40Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequence.hh" #include "fastjet/WrappedStructure.hh" #include "fastjet/tools/Transformer.hh" #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // fwd declarations class Pruner; class PrunerStructure; class PruningRecombiner; class PruningPlugin; //---------------------------------------------------------------------- /// @ingroup tools_generic /// \class Pruner /// Transformer that prunes a jet /// /// This transformer prunes a jet according to the ideas presented in /// arXiv:0903.5081 (S.D. Ellis, C.K. Vermilion and J.R. Walsh). /// /// The jet's constituents are reclustered with a user-specified jet /// definition, with the modification that objects i and j are only /// recombined if at least one of the following two criteria is /// satisfied: /// /// - the geometric distance between i and j is smaller than 'Rcut' /// with Rcut = Rcut_factor*2m/pt (Rcut_factor is a parameter of /// the Pruner and m and pt obtained from the jet being pruned) /// - the transverse momenta of i and j are at least 'zcut' p_t(i+j) /// /// If both these criteria fail, i and j are not recombined, the /// harder of i and j is kept, and the softer is rejected. /// /// Usage: /// \code /// Pruner pruner(jet_def, zcut, Rcut_factor); /// PseudoJet pruned_jet = pruner(jet); /// \endcode /// /// The pruned_jet has a valid associated cluster sequence. In addition /// the subjets of the original jet that have been vetoed by pruning /// (i.e. have been 'pruned away') can be accessed using /// /// \code /// vector rejected_subjets = pruned_jet.structure_of().rejected(); /// \endcode /// /// If the re-clustering happens to find more than a single inclusive /// jet (this should normally not happen if the radius of the jet /// definition used for the reclustering was set large enough), /// the hardest of these jets is retured as the result of the /// Pruner. The other jets can be accessed through /// /// \code /// vector extra_jets = pruned_jet.structure_of().extra_jets(); /// \endcode /// /// Instead of using Rcut_factor and zcut, one can alternatively /// construct a Pruner by passing two (pointers to) functions of /// PseudoJet that dynamically compute the Rcut and zcut to /// be used for the jet being pruned. /// /// When the jet being pruned has area support and explicit ghosts, /// the resulting pruned jet will likewise have area. /// //---------------------------------------------------------------------- class Pruner : public Transformer{ public: /// minimal constructor, which takes a jet algorithm, sets the radius /// to JetDefinition::max_allowable_R (practically equivalent to /// infinity) and also tries to use a recombiner based on the one in /// the jet definition of the particular jet being pruned. /// /// \param jet_alg the jet algorithm for the internal clustering /// \param zcut pt-fraction cut in the pruning /// \param Rcut_factor the angular distance cut in the pruning will be /// Rcut_factor * 2m/pt Pruner(const JetAlgorithm jet_alg, double zcut, double Rcut_factor) : _jet_def(jet_alg, JetDefinition::max_allowable_R), _zcut(zcut), _Rcut_factor(Rcut_factor), _zcut_dyn(0), _Rcut_dyn(0), _get_recombiner_from_jet(true) {} /// alternative ctor in which the full reclustering jet definition can /// be specified. /// /// \param jet_def the jet definition for the internal clustering /// \param zcut pt-fraction cut in the pruning /// \param Rcut_factor the angular distance cut in the pruning will be /// Rcut_factor * 2m/pt Pruner(const JetDefinition &jet_def, double zcut, double Rcut_factor) : _jet_def(jet_def), _zcut(zcut), _Rcut_factor(Rcut_factor), _zcut_dyn(0), _Rcut_dyn(0), _get_recombiner_from_jet(false) {} /// alternative ctor in which the pt-fraction cut and angular distance /// cut are functions of the jet being pruned. /// /// \param jet_def the jet definition for the internal clustering /// \param zcut_dyn dynamic pt-fraction cut in the pruning /// \param Rcut_dyn dynamic angular distance cut in the pruning Pruner(const JetDefinition &jet_def, FunctionOfPseudoJet *zcut_dyn, FunctionOfPseudoJet *Rcut_dyn); /// action on a single jet virtual PseudoJet result(const PseudoJet &jet) const; /// description virtual std::string description() const; // the type of the associated structure typedef PrunerStructure StructureType; private: /// check if the jet has explicit_ghosts (knowing that there is an /// area support) bool _check_explicit_ghosts(const PseudoJet &jet) const; /// return a pointer to a "common" recombiner if there is one, /// alternatively a null pointer. const JetDefinition::Recombiner * _get_common_recombiner(const PseudoJet &jet) const; JetDefinition _jet_def; ///< the internal jet definition double _zcut; ///< the pt-fraction cut double _Rcut_factor; ///< the angular separation cut factor FunctionOfPseudoJet *_zcut_dyn; ///< dynamic zcut FunctionOfPseudoJet *_Rcut_dyn; ///< dynamic Rcut bool _get_recombiner_from_jet; ///< true for minimal constructor, ///< causes recombiner to be set equal ///< to that already used in the jet ///< (if it can be deduced) }; //---------------------------------------------------------------------- /// @ingroup tools_generic /// \class PrunerStructure /// The structure associated with a PseudoJet thas has gone through a /// Pruner transformer //---------------------------------------------------------------------- class PrunerStructure : public WrappedStructure{ public: /// default ctor /// \param result_jet the jet for which we have to keep the structure PrunerStructure(const PseudoJet & result_jet) : WrappedStructure(result_jet.structure_shared_ptr()){} /// description virtual std::string description() const{ return "Pruned PseudoJet";} /// return the constituents that have been rejected std::vector rejected() const{ return validated_cs()->childless_pseudojets(); } /// return the other jets that may have been found along with the /// result of the pruning /// The resulting vector is sorted in pt std::vector extra_jets() const; protected: friend class Pruner; ///< to allow setting the internal information }; //---------------------------------------------------------------------- /// \if internal_doc /// @ingroup internal /// \class PruningRecombiner /// recombines the objects that are not vetoed by pruning /// /// This recombiner only recombines, using the provided 'recombiner', /// objects (i and j) that pass at least one of the following two criteria: /// /// - the geometric distance between i and j is smaller than 'Rcut' /// - the transverse momenta of i and j are at least 'zcut' p_t(i+j) /// /// If both these criteria fail, the hardest of i and j is kept and /// the softest is rejected. /// /// Note that this in not meant for standalone use [in particular /// because it could lead to memory issues due to the rejected indices /// stored internally]. /// /// \endif class PruningRecombiner : public JetDefinition::Recombiner{ public: /// ctor /// \param zcut transverse momentum fraction cut /// \param Rcut angular separation cut /// \param recomb pointer to a recombiner to use to cluster pairs PruningRecombiner(double zcut, double Rcut, const JetDefinition::Recombiner *recombiner) : _zcut2(zcut*zcut), _Rcut2(Rcut*Rcut), _recombiner(recombiner){} /// perform a recombination taking into account the pruning /// conditions virtual void recombine(const PseudoJet &pa, const PseudoJet &pb, PseudoJet &pab) const; /// returns the description of the recombiner virtual std::string description() const; /// return the history indices that have been pruned away const std::vector & rejected() const{ return _rejected;} /// clears the list of rejected indices /// /// If one decides to use this recombiner standalone, one has to /// call this after each clustering in order for the rejected() vector /// to remain sensible and not grow to infinite size. void clear_rejected(){ _rejected.clear();} private: double _zcut2; ///< transverse momentum fraction cut (squared) double _Rcut2; ///< angular separation cut (squared) const JetDefinition::Recombiner *_recombiner; ///< the underlying recombiner to use mutable std::vector _rejected; ///< list of rejected history indices }; //---------------------------------------------------------------------- /// \if internal_doc /// @ingroup internal /// \class PruningPlugin /// FastJet internal plugin that clusters the particles using the /// PruningRecombiner. /// /// See PruningRecombiner for a description of what pruning does. /// /// Note that this is an internal FastJet class used by the Pruner /// transformer and it is not meant to be used as a standalone clustering /// tool. /// /// \endif //---------------------------------------------------------------------- class PruningPlugin : public JetDefinition::Plugin{ public: /// ctor /// \param jet_def the jet definition to be used for the /// internal clustering /// \param zcut transverse momentum fraction cut /// \param Rcut angular separation cut PruningPlugin(const JetDefinition &jet_def, double zcut, double Rcut) : _jet_def(jet_def), _zcut(zcut), _Rcut(Rcut){} /// the actual clustering work for the plugin virtual void run_clustering(ClusterSequence &input_cs) const; /// description of the plugin virtual std::string description() const; /// returns the radius virtual double R() const {return _jet_def.R();} private: JetDefinition _jet_def; ///< the internal jet definition double _zcut; ///< transverse momentum fraction cut double _Rcut; ///< angular separation cut }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __FASTJET_TOOLS_PRUNER_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/CASubJetTagger.hh0000644000175000017500000002110011766120131022235 0ustar sunsun//STARTHEADER // $Id: CASubJetTagger.hh 2616 2011-09-30 18:03:40Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __CASUBJET_TAGGER_HH__ #define __CASUBJET_TAGGER_HH__ #include #include #include #include "fastjet/LimitedWarning.hh" FASTJET_BEGIN_NAMESPACE class CASubJetTagger; class CASubJetTaggerStructure; //---------------------------------------------------------------------- /// @ingroup tools_taggers /// \class CASubJetTagger /// clean (almost parameter-free) tagger searching for the element in /// the clustering history that maximises a chosen distance /// /// class to help us get a clean (almost parameter-free) handle on /// substructure inside a C/A jet. It follows the logic described in /// arXiv:0906.0728 (and is inspired by the original Cambridge /// algorithm paper in its use of separate angular and dimensionful /// distances), but provides some extra flexibility. /// /// It searches for all splittings that pass a symmetry cut (zcut) and /// then selects the one with the largest auxiliary scale choice /// (e.g. jade distance of the splitting, kt distance of the /// splitting, etc.) /// /// By default, the zcut is calculated from the fraction of the child /// pt carried by the parent jet. If one calls set_absolute_z_cut the /// fraction of transverse momentum will be computed wrt the original /// jet. /// /// original code copyright (C) 2009 by Gavin Salam, released under /// the GPL. /// /// \section desc Options /// /// - the distance choice: options are /// kt2_distance : usual min(kti^2,ktj^2)DeltaR_{ij}^2 /// jade_distance : kti . ktj DeltaR_{ij}^2 (LI version of jade) /// jade2_distance : kti . ktj DeltaR_{ij}^4 (LI version of jade * DR^2) /// plain_distance : DeltaR_{ij}^2 /// mass_drop_distance : m_jet - max(m_parent1,m_parent2) /// dot_product_distance: parent1.parent2 /// (kt2_distance by default) /// /// - the z cut (0 by default) /// /// - by calling set_absolute_z_cut(), one can ask that the pt /// fraction if calculated wrt the original jet /// /// - by calling set_dr_min(drmin), one can ask that only the /// recombinations where the 2 objects are (geometrically) distant /// by at least drmin are kept in the maximisation. /// /// \section input Input conditions /// /// - the jet must have been obtained from a Cambridge/Aachen cluster /// sequence /// /// \section output Output/structure /// /// - the element of the cluster sequence maximising the requested /// distance (and satisfying the zcut) is returned. /// /// - if the original jet has no parents, it will be returned /// /// - the value of the "z" and distance corresponding to that history /// element are stored and accessible through /// result.structure_of().z(); /// result.structure_of().distance(); /// class CASubJetTagger : public Transformer { public: /// the available choices of auxiliary scale with respect to which /// to order the splittings enum ScaleChoice { kt2_distance, //< usual min(kti^2,ktj^2)DeltaR_{ij}^2 jade_distance, //< kti . ktj DeltaR_{ij}^2 (LI version of jade) jade2_distance, //< kti . ktj DeltaR_{ij}^4 (LI version of jade * DR^2) plain_distance, //< DeltaR_{ij}^2 mass_drop_distance, //< m_jet - max(m_parent1,m_parent2) dot_product_distance //< parent1.parent2 }; /// just constructs CASubJetTagger(ScaleChoice scale_choice = jade_distance, double z_threshold = 0.1) : _scale_choice(scale_choice), _z_threshold(z_threshold), _dr2_min(0.0), _absolute_z_cut(false){}; /// sets a minimum delta R below which spliting will be ignored /// (only relevant if set prior to calling run()) void set_dr_min(double drmin) {_dr2_min = drmin*drmin;} /// returns a textual description of the tagger virtual std::string description() const; /// If (abs_z_cut) is set to false (the default) then for a /// splitting to be considered, each subjet must satisfy /// /// p_{t,sub} > z_threshold * p_{t,parent} /// /// whereas if it is set to true, then each subject must satisfy /// /// p_{t,sub} > z_threshold * p_{t,original-jet} /// /// where parent is the immediate parent of the splitting, and /// original jet is the one supplied to the run() function. /// /// Only relevant is called prior to run(). void set_absolute_z_cut(bool abs_z_cut=true) {_absolute_z_cut = abs_z_cut;} /// runs the tagger on the given jet and /// returns the tagged PseudoJet if successful, or a PseudoJet==0 otherwise /// (standard access is through operator()). virtual PseudoJet result(const PseudoJet & jet) const; /// the type of Structure returned typedef CASubJetTaggerStructure StructureType; protected: /// class that contains the result internally class JetAux { public: PseudoJet jet; //< the subjet (immediate parent of splitting) double aux_distance; //< the auxiliary distance between its two subjets double delta_r; //< the angular distance between its two subjets double z; //< the transverse momentum fraction }; void _recurse_through_jet(const PseudoJet & current_jet, JetAux &aux_max, const PseudoJet & original_jet) const; ScaleChoice _scale_choice; double _z_threshold; double _dr2_min; bool _absolute_z_cut; static LimitedWarning _non_ca_warnings; }; //------------------------------------------------------------------------ /// @ingroup tools_taggers /// the structure returned by a CASubJetTagger /// /// Since this is directly an element of the ClusterSequence, we keep /// basically the original ClusterSequenceStructure (wrapped for /// memory-management reasons) and add information about the pt /// fraction and distance of the subjet structure class CASubJetTaggerStructure : public WrappedStructure{ public: /// default ctor /// \param result_jet the jet for which we have to keep the /// structure CASubJetTaggerStructure(const PseudoJet & result_jet) : WrappedStructure(result_jet.structure_shared_ptr()){} /// returns the scale choice asked for the maximisation CASubJetTagger::ScaleChoice scale_choice() const {return _scale_choice;} /// returns the value of the distance measure (corresponding to /// ScaleChoice) for this jet's splitting double distance() const {return _distance;} /// returns the pt fraction contained by the softer of the two component /// pieces of this jet (normalised relative to this jet) double z() const {return _z;} /// returns the pt fraction contained by the softer of the two component /// pieces of this jet (normalised relative to the original jet) bool absolute_z() const {return _absolute_z;} // /// returns the original jet (before tagging) // const PseudoJet & original() const {return _original_jet;} protected: CASubJetTagger::ScaleChoice _scale_choice; ///< the user scale choice double _distance; ///< the maximal distance associated with the result bool _absolute_z; ///< whether z is computed wrt to the original jet or not double _z; ///< the transverse momentum fraction // PseudoJet _original_jet; ///< the original jet (before tagging) friend class CASubJetTagger; ///< to allow setting the internal information }; FASTJET_END_NAMESPACE #endif // __CASUBJET_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/BackgroundEstimatorBase.hh0000644000175000017500000001725711766120131024267 0ustar sunsun#ifndef __FASTJET_BACKGROUND_ESTIMATOR_BASE_HH__ #define __FASTJET_BACKGROUND_ESTIMATOR_BASE_HH__ //STARTHEADER // $Id: BackgroundEstimatorBase.hh 2689 2011-11-14 14:51:06Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// @ingroup tools_background /// \class BackgroundEstimatorBase /// /// Abstract base class that provides the basic interface for classes /// that estimate levels of background radiation in hadrion and /// heavy-ion collider events. /// /// class BackgroundEstimatorBase { public: /// @name constructors and destructors //\{ //---------------------------------------------------------------- BackgroundEstimatorBase() : _rescaling_class(0) {} //\} /// a default virtual destructor that does nothing virtual ~BackgroundEstimatorBase() {} /// @name setting a new event //\{ //---------------------------------------------------------------- /// tell the background estimator that it has a new event, composed /// of the specified particles. virtual void set_particles(const std::vector & particles) = 0; //\} /// @name retrieving fundamental information //\{ //---------------------------------------------------------------- /// get rho, the background density per unit area virtual double rho() const = 0; /// get sigma, the background fluctuations per unit area; must be /// multipled by sqrt(area) to get fluctuations for a region of a /// given area. virtual double sigma() const { throw Error("sigma() not supported for this Background Estimator"); } /// get rho, the background density per unit area, locally at the /// position of a given jet. Note that this is not const, because a /// user may then wish to query other aspects of the background that /// could depend on the position of the jet last used for a rho(jet) /// determination. virtual double rho(const PseudoJet & jet) = 0; /// get sigma, the background fluctuations per unit area, locally at /// the position of a given jet. As for rho(jet), it is non-const. virtual double sigma(const PseudoJet & /*jet*/) { throw Error("sigma(jet) not supported for this Background Estimator"); } /// returns true if this background estimator has support for /// determination of sigma virtual bool has_sigma() {return false;} //\} /// @name configuring the behaviour //\{ //---------------------------------------------------------------- /// Set a pointer to a class that calculates the rescaling factor as /// a function of the jet (position). Note that the rescaling factor /// is used both in the determination of the "global" rho (the pt/A /// of each jet is divided by this factor) and when asking for a /// local rho (the result is multiplied by this factor). /// /// The BackgroundRescalingYPolynomial class can be used to get a /// rescaling that depends just on rapidity. virtual void set_rescaling_class(const FunctionOfPseudoJet * rescaling_class_in) { _rescaling_class = rescaling_class_in; } /// return the pointer to the jet density class const FunctionOfPseudoJet * rescaling_class() const{ return _rescaling_class; } //\} /// @name description //\{ //---------------------------------------------------------------- /// returns a textual description of the background estimator virtual std::string description() const = 0; //\} protected: /// @name helpers for derived classes /// /// Note that these helpers are related to median-based estimation /// of the background, so there is no guarantee that they will /// remain in this base class in the long term //\{ //---------------------------------------------------------------- /// given a quantity in a vector (e.g. pt_over_area) and knowledge /// about the number of empty jets, calculate the median and /// stand_dev_if_gaussian (roughly from the 16th percentile) /// /// If do_fj2_calculation is set to true then this performs FastJet /// 2.X estimation of the standard deviation, which has a spurious /// offset in the limit of a small number of jets. void _median_and_stddev(const std::vector & quantity_vector, double n_empty_jets, double & median, double & stand_dev_if_gaussian, bool do_fj2_calculation = false ) const; /// computes a percentile of a given _sorted_ vector /// \param sorted_quantity_vector the vector contains the data sample /// \param percentile the percentile (defined between 0 and 1) to compute /// \param nempty an additional number of 0's /// (considered at the beginning of /// the quantity vector) /// \param do_fj2_calculation carry out the calculation as it /// was done in fj2 (suffers from "edge effects") double _percentile(const std::vector & sorted_quantity_vector, const double percentile, const double nempty=0.0, const bool do_fj2_calculation = false) const; //\} const FunctionOfPseudoJet * _rescaling_class; static LimitedWarning _warnings_empty_area; }; //---------------------------------------------------------------------- /// @ingroup tools_background /// A background rescaling that is a simple polynomial in y class BackgroundRescalingYPolynomial : public FunctionOfPseudoJet { public: /// construct a background rescaling polynomial of the form /// a0 + a1*y + a2*y^2 + a3*y^3 + a4*y^4 /// /// The following values give a reasonable reproduction of the /// Pythia8 tune 4C background shape for pp collisions at /// sqrt(s)=7TeV: /// /// - a0 = 1.157 /// - a1 = 0 /// - a2 = -0.0266 /// - a3 = 0 /// - a4 = 0.000048 /// BackgroundRescalingYPolynomial(double a0=1, double a1=0, double a2=0, double a3=0, double a4=0) : _a0(a0), _a1(a1), _a2(a2), _a3(a3), _a4(a4) {} /// return the rescaling factor associated with this jet virtual double result(const PseudoJet & jet) const; private: double _a0, _a1, _a2, _a3, _a4; }; FASTJET_END_NAMESPACE #endif // __BACKGROUND_ESTIMATOR_BASE_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/Makefile.am0000644000175000017500000000053211766120131021224 0ustar sunsuntoolsincludedir=$(includedir)/fastjet/tools toolsinclude_HEADERS = \ BackgroundEstimatorBase.hh \ JetMedianBackgroundEstimator.hh \ GridMedianBackgroundEstimator.hh \ Transformer.hh Boost.hh \ Filter.hh Pruner.hh Subtractor.hh \ MassDropTagger.hh RestFrameNSubjettinessTagger.hh CASubJetTagger.hh \ JHTopTagger.hh TopTaggerBase.hh fastjet-3.0.6+dfsg.orig/tools/fastjet/tools/TopTaggerBase.hh0000644000175000017500000000747511766120131022215 0ustar sunsun#ifndef __FASTJET_TOP_TAGGER_BASE_HH__ #define __FASTJET_TOP_TAGGER_BASE_HH__ //STARTHEADER // $Id: TopTaggerBase.hh 2689 2011-11-14 14:51:06Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include FASTJET_BEGIN_NAMESPACE class TopTaggerBase; class TopTaggerBaseStructure; //---------------------------------------------------------------------- /// @ingroup tools_taggers /// \class TopTaggerBase /// A base class that provides a common interface for top taggers /// that are able to return a W (in addition to the top itself). /// /// Top taggers that derive from this should satisfy the following /// criteria: /// /// - their underlying structure should derive from TopTaggerBaseStructure /// - tagged tops should have two pieces, the first of which is the W candidate /// - they should apply the top and W selectors to decide if the top has been /// tagged class TopTaggerBase : public Transformer { public: TopTaggerBase() : _top_selector(SelectorIdentity()), _W_selector(SelectorIdentity()), _top_selector_set(false), _W_selector_set(false) {} /// the type of the associated structure typedef TopTaggerBaseStructure StructureType; /// sets the selector that is applied to the top candidate void set_top_selector(const Selector & sel) {_top_selector = sel; _top_selector_set = true;} /// sets the selector that is applied to the W candidate void set_W_selector (const Selector & sel) {_W_selector = sel; _W_selector_set = true;} /// returns a description of the top and W selectors virtual std::string description_of_selectors() const { std::string descr; if (_top_selector_set) descr = ", top selector: "+_top_selector.description(); if (_W_selector_set) descr += ", W selector: "+_W_selector.description(); return descr; } protected: /// computes the W helicity angle double _cos_theta_W(const PseudoJet & result) const; Selector _top_selector, _W_selector; bool _top_selector_set, _W_selector_set; }; //---------------------------------------------------------------------- /// @ingroup tools_taggers /// \class TopTaggerBaseStructure /// class that specifies the structure common to all top taggers /// /// Note that this specifies only the W, non_W part of the /// interface. An actual top tagger structure class will also need to /// derive from a PseudoJetStructureBase type class /// (e.g. CompositeJetStructure) class TopTaggerBaseStructure { public: virtual const PseudoJet & W() const = 0; virtual const PseudoJet & non_W() const = 0; virtual ~TopTaggerBaseStructure() {} }; FASTJET_END_NAMESPACE #endif // __FASTJET_TOP_TAGGER_BASE_HH__ fastjet-3.0.6+dfsg.orig/tools/fastjet/Makefile.in0000644000175000017500000004236212233506216020106 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = tools/fastjet DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = tools all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/fastjet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tools/fastjet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/tools/fastjet/Makefile.am0000644000175000017500000000001611766120131020061 0ustar sunsunSUBDIRS=tools fastjet-3.0.6+dfsg.orig/tools/JetMedianBackgroundEstimator.cc0000644000175000017500000004156011766120131022435 0ustar sunsun//STARTHEADER // $Id: JetMedianBackgroundEstimator.cc 2689 2011-11-14 14:51:06Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/tools/JetMedianBackgroundEstimator.hh" #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; double BackgroundJetScalarPtDensity::result(const PseudoJet & jet) const { std::vector constituents = jet.constituents(); double scalar_pt = 0; for (unsigned i = 0; i < constituents.size(); i++) { scalar_pt += pow(constituents[i].perp(), _pt_power); } return scalar_pt / jet.area(); } //---------------------------------------------------------------------- double BackgroundRescalingYPolynomial::result(const PseudoJet & jet) const { double y = jet.rap(); double y2 = y*y; double rescaling = _a0 + _a1*y + _a2*y2 + _a3*y2*y + _a4*y2*y2; return rescaling; } /// allow for warnings LimitedWarning JetMedianBackgroundEstimator::_warnings; LimitedWarning JetMedianBackgroundEstimator::_warnings_zero_area; LimitedWarning JetMedianBackgroundEstimator::_warnings_preliminary; //--------------------------------------------------------------------- // class JetMedianBackgroundEstimator // Class to estimate the density of the background per unit area //--------------------------------------------------------------------- //---------------------------------------------------------------------- // ctors and dtors //---------------------------------------------------------------------- // ctor that allows to set only the particles later on JetMedianBackgroundEstimator::JetMedianBackgroundEstimator(const Selector &rho_range, const JetDefinition &jet_def, const AreaDefinition &area_def) : _rho_range(rho_range), _jet_def(jet_def), _area_def(area_def) { // initialise things decently reset(); // make a few checks _check_jet_alg_good_for_median(); } //---------------------------------------------------------------------- // ctor from a cluster sequence // - csa the ClusterSequenceArea to use // - rho_range the Selector specifying which jets will be considered JetMedianBackgroundEstimator::JetMedianBackgroundEstimator( const Selector &rho_range, const ClusterSequenceAreaBase &csa) : _rho_range(rho_range), _jet_def(JetDefinition()){ // initialise things properly reset(); // tell the BGE about the cluster sequence set_cluster_sequence(csa); } //---------------------------------------------------------------------- // setting a new event //---------------------------------------------------------------------- // tell the background estimator that it has a new event, composed // of the specified particles. void JetMedianBackgroundEstimator::set_particles(const vector & particles) { // make sure that we have been provided a genuine jet definition if (_jet_def.jet_algorithm() == undefined_jet_algorithm) throw Error("JetMedianBackgroundEstimator::set_particles can only be called if you set the jet (and area) definition explicitly through the class constructor"); // initialise things decently (including setting uptodate to false!) //reset(); _uptodate=false; // cluster the particles // // One may argue that it is better to cache the particles and only // do the clustering later but clustering the particles now has 2 // practical advantages: // - it allows to une only '_included_jets' in all that follows // - it avoids adding another flag to ensure particles are // clustered only once ClusterSequenceArea *csa = new ClusterSequenceArea(particles, _jet_def, _area_def); _included_jets = csa->inclusive_jets(); // store the CS for later on _csi = csa->structure_shared_ptr(); csa->delete_self_when_unused(); } //---------------------------------------------------------------------- // (re)set the cluster sequence (with area support) to be used by // future calls to rho() etc. // // \param csa the cluster sequence area // // Pre-conditions: // - one should be able to estimate the "empty area" (i.e. the area // not occupied by jets). This is feasible if at least one of the following // conditions is satisfied: // ( i) the ClusterSequence has explicit ghosts // (ii) the range selected has a computable area. // - the jet algorithm must be suited for median computation // (otherwise a warning will be issues) // // Note that selectors with e.g. hardest-jets exclusion do not have // a well-defined area. For this reasons, it is STRONGLY advised to // use an area with explicit ghosts. void JetMedianBackgroundEstimator::set_cluster_sequence(const ClusterSequenceAreaBase & csa) { _csi = csa.structure_shared_ptr(); // sanity checks //--------------- // (i) check the alg is appropriate _check_jet_alg_good_for_median(); // (ii) check that, if there are no explicit ghosts, the selector has a finite area if ((!csa.has_explicit_ghosts()) && (!_rho_range.has_finite_area())){ throw Error("JetMedianBackgroundEstimator: either an area with explicit ghosts (recommended) or a Selector with finite area is needed (to allow for the computation of the empty area)"); } // get the initial list of jets _included_jets = csa.inclusive_jets(); _uptodate = false; } //---------------------------------------------------------------------- // (re)set the jets (which must have area support) to be used by future // calls to rho() etc.; for the conditions that must be satisfied // by the jets, see the Constructor that takes jets. void JetMedianBackgroundEstimator::set_jets(const vector &jets) { if (! jets.size()) throw Error("JetMedianBackgroundEstimator::JetMedianBackgroundEstimator: At least one jet is needed to compute the background properties"); // sanity checks //--------------- // (o) check that there is an underlying CS shared by all the jets if (! (jets[0].has_associated_cluster_sequence()) && (jets[0].has_area())) throw Error("JetMedianBackgroundEstimator::JetMedianBackgroundEstimator: the jets used to estimate the background properties must be associated with a valid ClusterSequenceAreaBase"); _csi = jets[0].structure_shared_ptr(); ClusterSequenceStructure * csi = dynamic_cast(_csi()); const ClusterSequenceAreaBase * csab = csi->validated_csab(); for (unsigned int i=1;ihas_explicit_ghosts()) && (!_rho_range.has_finite_area())){ throw Error("JetMedianBackgroundEstimator: either an area with explicit ghosts (recommended) or a Selector with finite area is needed (to allow for the computation of the empty area)"); } // get the initial list of jets _included_jets = jets; // ensure recalculation of quantities that need it _uptodate = false; } //---------------------------------------------------------------------- // retrieving fundamental information //---------------------------------------------------------------- // get rho, the median background density per unit area double JetMedianBackgroundEstimator::rho() const { if (_rho_range.takes_reference()) throw Error("The background estimation is obtained from a selector that takes a reference jet. rho(PseudoJet) should be used in that case"); _recompute_if_needed(); return _rho; } // get sigma, the background fluctuations per unit area double JetMedianBackgroundEstimator::sigma() const { if (_rho_range.takes_reference()) throw Error("The background estimation is obtained from a selector that takes a reference jet. rho(PseudoJet) should be used in that case"); _recompute_if_needed(); return _sigma; } // get rho, the median background density per unit area, locally at // the position of a given jet. // // If the Selector associated with the range takes a reference jet // (i.e. is relocatable), then for subsequent operations the // Selector has that jet set as its reference. double JetMedianBackgroundEstimator::rho(const PseudoJet & jet) { _recompute_if_needed(jet); double our_rho = _rho; if (_rescaling_class != 0) { our_rho *= (*_rescaling_class)(jet); } return our_rho; } // get sigma, the background fluctuations per unit area, // locally at the position of a given jet. // // If the Selector associated with the range takes a reference jet // (i.e. is relocatable), then for subsequent operations the // Selector has that jet set as its reference. double JetMedianBackgroundEstimator::sigma(const PseudoJet &jet) { _recompute_if_needed(jet); double our_sigma = _sigma; if (_rescaling_class != 0) { our_sigma *= (*_rescaling_class)(jet); } return our_sigma; } //---------------------------------------------------------------------- // configuring behaviour //---------------------------------------------------------------------- // reset to default values // // set the variou options to their default values void JetMedianBackgroundEstimator::reset(){ // set the remaining default parameters set_use_area_4vector(); // true by default set_provide_fj2_sigma(false); // reset the computed values _rho = _sigma = 0.0; _n_jets_used = _n_empty_jets = 0; _empty_area = _mean_area = 0.0; _included_jets.clear(); _jet_density_class = 0; // null pointer _rescaling_class = 0; // null pointer _uptodate = false; } // Set a pointer to a class that calculates the quantity whose // median will be calculated; if the pointer is null then pt/area // is used (as occurs also if this function is not called). void JetMedianBackgroundEstimator::set_jet_density_class(const FunctionOfPseudoJet * jet_density_class_in) { _warnings_preliminary.warn("JetMedianBackgroundEstimator::set_jet_density_class: density classes are still preliminary in FastJet 3.0. Their interface may differ in future releases (without guaranteeing backward compatibility)."); _jet_density_class = jet_density_class_in; _uptodate = false; } //---------------------------------------------------------------------- // description //---------------------------------------------------------------------- string JetMedianBackgroundEstimator::description() const { ostringstream desc; desc << "JetMedianBackgroundEstimator, using " << _jet_def.description() << " with " << _area_def.description() << " and selecting jets with " << _rho_range.description(); return desc.str(); } //---------------------------------------------------------------------- // computation of the background properties //---------------------------------------------------------------------- // for estimation using a relocatable selector (i.e. local range) // this allows to set its position. Note that this HAS to be called // before any attempt to compute the background properties void JetMedianBackgroundEstimator::_recompute_if_needed(const PseudoJet &jet){ // if the range is relocatable, handles its relocation if (_rho_range.takes_reference()){ // check that the reference is not the same as the previous one // (would avoid an unnecessary recomputation) if (jet == _current_reference) return; // relocate the range and make sure things get recomputed the next // time one tries to get some information _rho_range.set_reference(jet); _uptodate=false; } _recompute_if_needed(); } // do the actual job void JetMedianBackgroundEstimator::_compute() const { // check if the clustersequence is still valid _check_csa_alive(); // fill the vector of pt/area (or the quantity from the jet density class) // - in the range vector vector_for_median; double total_area = 0.0; _n_jets_used = 0; // apply the selector to the included jets vector selected_jets = _rho_range(_included_jets); // compute the pt/area for the selected jets for (unsigned i = 0; i < selected_jets.size(); i++) { const PseudoJet & current_jet = selected_jets[i]; double this_area = (_use_area_4vector) ? current_jet.area_4vector().perp() : current_jet.area(); if (this_area>0){ double median_input; if (_jet_density_class == 0) { median_input = current_jet.perp()/this_area; } else { median_input = (*_jet_density_class)(current_jet); } if (_rescaling_class != 0) { median_input /= (*_rescaling_class)(current_jet); } vector_for_median.push_back(median_input); total_area += this_area; _n_jets_used++; } else { _warnings_zero_area.warn("JetMedianBackgroundEstimator::_compute(...): discarded jet with zero area. Zero-area jets may be due to (i) too large a ghost area (ii) a jet being outside the ghost range (iii) the computation not being done using an appropriate algorithm (kt;C/A)."); } } // there is nothing inside our region, so answer will always be zero if (vector_for_median.size() == 0) { _rho = 0.0; _sigma = 0.0; _mean_area = 0.0; return; } // determine the number of empty jets const ClusterSequenceAreaBase * csab = (dynamic_cast(_csi()))->validated_csab(); if (csab->has_explicit_ghosts()) { _empty_area = 0.0; _n_empty_jets = 0; } else { _empty_area = csab->empty_area(_rho_range); _n_empty_jets = csab->n_empty_jets(_rho_range); } double total_njets = _n_jets_used + _n_empty_jets; total_area += _empty_area; double stand_dev; _median_and_stddev(vector_for_median, _n_empty_jets, _rho, stand_dev, _provide_fj2_sigma); // process and store the results (_rho was already stored above) _mean_area = total_area / total_njets; _sigma = stand_dev * sqrt(_mean_area); // record that the computation has been performed _uptodate = true; } // check that the underlying structure is still alive; // throw an error otherwise void JetMedianBackgroundEstimator::_check_csa_alive() const{ ClusterSequenceStructure* csa = dynamic_cast(_csi()); if (csa == 0) { throw Error("JetMedianBackgroundEstimator: there is no cluster sequence associated with the JetMedianBackgroundEstimator"); } if (! dynamic_cast(_csi())->has_associated_cluster_sequence()) throw Error("JetMedianBackgroundEstimator: modifications are no longer possible as the underlying ClusterSequence has gone out of scope"); } // check that the algorithm used for the clustering is suitable for // background estimation (i.e. either kt or C/A). // Issue a warning otherwise void JetMedianBackgroundEstimator::_check_jet_alg_good_for_median() const{ const JetDefinition * jet_def = &_jet_def; // if no explicit jet def has been provided, fall back on the // cluster sequence if (_jet_def.jet_algorithm() == undefined_jet_algorithm){ const ClusterSequence * cs = dynamic_cast(_csi())->validated_cs(); jet_def = &(cs->jet_def()); } if (jet_def->jet_algorithm() != kt_algorithm && jet_def->jet_algorithm() != cambridge_algorithm && jet_def->jet_algorithm() != cambridge_for_passive_algorithm) { _warnings.warn("JetMedianBackgroundEstimator: jet_def being used may not be suitable for estimating diffuse backgrounds (good alternatives are kt, cam)"); } } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/tools/RestFrameNSubjettinessTagger.cc0000644000175000017500000001117011766120131022442 0ustar sunsun//STARTHEADER // $Id: RestFrameNSubjettinessTagger.cc 2689 2011-11-14 14:51:06Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include #include using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //------------------------------------------------------------------------ // RestFrameNSubjettinessTagger class implementation //------------------------------------------------------------------------ //------------------------------------------------------------------------ // tagger description string RestFrameNSubjettinessTagger::description() const{ ostringstream oss; oss << "RestFrameNSubjettiness tagger that performs clustering in the jet rest frame with " << _subjet_def.description() << ", supplemented with cuts tau_2 < " << _t2cut << " and cos(theta_s) < " << _costscut; return oss.str(); } //------------------------------------------------------------------------ // action on a single jet // returns the tagged PseudoJet if successful, 0 otherwise PseudoJet RestFrameNSubjettinessTagger::result(const PseudoJet & jet) const{ // make sure that the jet has constituents if (!jet.has_constituents()) throw("The jet you try to tag needs to have accessible constituents"); // get the constituents and boost them into the rest frame of the jet vector rest_input = jet.constituents(); for (unsigned int i=0; i subjets = (_use_exclusive) ? cs_rest.exclusive_jets(2) : sorted_by_E(cs_rest.inclusive_jets()); // impose the cuts in the rest-frame if (subjets.size()<2) return PseudoJet(); const PseudoJet &j0 = subjets[0]; const PseudoJet &j1 = subjets[1]; /// impose the cut on cos(theta_s) double ct0 = (j0.px()*jet.px() + j0.py()*jet.py() + j0.pz()*jet.pz()) /sqrt(j0.modp2()*jet.modp2()); double ct1 = (j1.px()*jet.px() + j1.py()*jet.py() + j1.pz()*jet.pz()) /sqrt(j1.modp2()*jet.modp2()); if ((ct0 > _costscut) || (ct1 > _costscut)) return PseudoJet(); // ccompute the 2-subjettiness and impose the coresponding cut double tau2 = 0.0; for (unsigned int i=0; i _t2cut) return PseudoJet(); // We have a positive tag, // - boost everything back into the lab frame // - record the info in the interface // Note that in order to point to the correct Clustersequence, the // subjets must be taken from the boosted one. We extract that // through the history index of the rest-frame subjets ClusterSequence * cs_structure = new ClusterSequence(); Boost boost(jet); cs_structure->transfer_from_sequence(cs_rest, &boost); PseudoJet subjet_lab1 = cs_structure->jets()[cs_rest.history()[subjets[0].cluster_hist_index()].jetp_index]; PseudoJet subjet_lab2 = cs_structure->jets()[cs_rest.history()[subjets[0].cluster_hist_index()].jetp_index]; PseudoJet result_local = join(subjet_lab1,subjet_lab2); StructureType * s = (StructureType *) result_local.structure_non_const_ptr(); // s->_original_jet = jet; s->_tau2 = tau2; s->_costhetas = max(ct0, ct1); // keep the rest-frame CS alive cs_structure->delete_self_when_unused(); return result_local; } FASTJET_END_NAMESPACE fastjet-3.0.6+dfsg.orig/tools/Makefile.am0000644000175000017500000000071611766120131016430 0ustar sunsun# shared library SUBDIRS=fastjet lib_LTLIBRARIES = libfastjettools.la libfastjettools_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/../include -I$(srcdir) libfastjettools_la_SOURCES = \ BackgroundEstimatorBase.cc \ JetMedianBackgroundEstimator.cc \ GridMedianBackgroundEstimator.cc \ Filter.cc Pruner.cc Subtractor.cc\ MassDropTagger.cc RestFrameNSubjettinessTagger.cc CASubJetTagger.cc \ JHTopTagger.cc TopTaggerBase.cc # EXTRA_DIST = makefile.static fastjet-3.0.6+dfsg.orig/fortran_wrapper/0000755000175000017500000000000012233507304016444 5ustar sunsunfastjet-3.0.6+dfsg.orig/fortran_wrapper/fastjetfortran.cc0000644000175000017500000003665211766120132022023 0ustar sunsun//STARTHEADER // $Id: fastjetfortran.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include "fastjet/ClusterSequence.hh" #include "fastjet/ClusterSequenceArea.hh" #include "fastjet/Selector.hh" #include "fastjet/SISConePlugin.hh" using namespace std; using namespace fastjet; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh /// a namespace for the fortran-wrapper which contains commonly-used /// structures and means to transfer fortran <-> C++ namespace fwrapper { vector input_particles, jets; auto_ptr plugin; JetDefinition jet_def; auto_ptr cs; /// helper routine to transfer fortran input particles into void transfer_input_particles(const double * p, const int & npart) { input_particles.resize(0); input_particles.reserve(npart); for (int i=0; i mom(4); // mom[0..3] for (int j=0;j<=3; j++) { mom[j] = *(p++); } PseudoJet psjet(mom); input_particles.push_back(psjet); } } /// helper routine to help transfer jets -> f77jets[4*ijet+0..3] void transfer_jets(double * f77jets, int & njets) { njets = jets.size(); for (int i=0; i input_particles[i] transfer_input_particles(p, npart); // perform the clustering if ( ghost_maxrap == 0.0 ) { // cluster without areas cs.reset(new ClusterSequence(input_particles,jet_def)); } else { // cluster with areas GhostedAreaSpec area_spec(ghost_maxrap,nrepeat,ghost_area); AreaDefinition area_def(active_area, area_spec); cs.reset(new ClusterSequenceArea(input_particles,jet_def,area_def)); } // extract jets (pt-ordered) jets = sorted_by_pt(cs->inclusive_jets()); // transfer jets -> f77jets[4*ijet+0..3] transfer_jets(f77jets, njets); } } FASTJET_END_NAMESPACE using namespace fastjet::fwrapper; extern "C" { /// f77 interface to SISCone (via fastjet), as defined in arXiv:0704.0292 /// [see below for the interface to kt, Cam/Aachen & kt] // // Corresponds to the following Fortran subroutine // interface structure: // // SUBROUTINE FASTJETSISCONE(P,NPART,R,F,F77JETS,NJETS) // DOUBLE PRECISION P(4,*), R, F, F77JETS(4,*) // INTEGER NPART, NJETS // // where on input // // P the input particle 4-momenta // NPART the number of input momenta // R the radius parameter // F the overlap threshold // // and on output // // F77JETS the output jet momenta (whose second dim should be >= NPART) // sorted in order of decreasing p_t. // NJETS the number of output jets // // NOTE: if you are interfacing fastjet to Pythia 6, Pythia stores its // momenta as a matrix of the form P(4000,5), whereas this fortran // interface to fastjet expects them as P(4,NPART), i.e. you must take // the transpose of the Pythia array and drop the fifth component // (particle mass). // void fastjetsiscone_(const double * p, const int & npart, const double & R, const double & f, double * f77jets, int & njets) { // prepare jet def plugin.reset(new SISConePlugin(R,f)); jet_def = plugin.get(); // do everything transfer_cluster_transfer(p,npart,jet_def,f77jets,njets); } /// f77 interface to SISCone (via fastjet), as defined in arXiv:0704.0292 /// [see below for the interface to kt, Cam/Aachen & kt] /// Also calculates the active area of the jets, as defined in /// arXiv.org:0802.1188 // // Corresponds to the following Fortran subroutine // interface structure: // // SUBROUTINE FASTJETSISCONEWITHAREA(P,NPART,R,F,GHMAXRAP,NREP,GHAREA,F77JETS,NJETS) // DOUBLE PRECISION P(4,*), R, F, F77JETS(4,*), GHMAXRAP, GHAREA // INTEGER NPART, NJETS, NREP // // where on input // // P the input particle 4-momenta // NPART the number of input momenta // R the radius parameter // F the overlap threshold // GHMAXRAP the maximum (abs) rapidity covered by ghosts (FastJet default 6.0) // NREP the number of repetitions used to evaluate the area (FastJet default 1) // GHAREA the area of a single ghost (FastJet default 0.01) // // and on output // // F77JETS the output jet momenta (whose second dim should be >= NPART) // sorted in order of decreasing p_t. // NJETS the number of output jets // // NOTE: if you are interfacing fastjet to Pythia 6, Pythia stores its // momenta as a matrix of the form P(4000,5), whereas this fortran // interface to fastjet expects them as P(4,NPART), i.e. you must take // the transpose of the Pythia array and drop the fifth component // (particle mass). // void fastjetsisconewitharea_(const double * p, const int & npart, const double & R, const double & f, const double & ghost_rapmax, const int & nrepeat, const double & ghost_area, double * f77jets, int & njets) { // prepare jet def plugin.reset(new SISConePlugin(R,f)); jet_def = plugin.get(); // do everything transfer_cluster_transfer(p,npart,jet_def,f77jets,njets,ghost_rapmax,nrepeat,ghost_area); } /// f77 interface to the pp generalised-kt (sequential recombination) /// algorithms, as defined in arXiv.org:0802.1189, which includes /// kt, Cambridge/Aachen and anti-kt as special cases. // // Corresponds to the following Fortran subroutine // interface structure: // // SUBROUTINE FASTJETPPGENKT(P,NPART,R,PALG,F77JETS,NJETS) // DOUBLE PRECISION P(4,*), R, PALG, F, F77JETS(4,*) // INTEGER NPART, NJETS // // where on input // // P the input particle 4-momenta // NPART the number of input momenta // R the radius parameter // PALG the power for the generalised kt alg // (1.0=kt, 0.0=C/A, -1.0 = anti-kt) // // and on output // // F77JETS the output jet momenta (whose second dim should be >= NPART) // sorted in order of decreasing p_t. // NJETS the number of output jets // // For the values of PALG that correspond to "standard" cases (1.0=kt, // 0.0=C/A, -1.0 = anti-kt) this routine actually calls the direct // implementation of those algorithms, whereas for other values of // PALG it calls the generalised kt implementation. // // NOTE: if you are interfacing fastjet to Pythia 6, Pythia stores its // momenta as a matrix of the form P(4000,5), whereas this fortran // interface to fastjet expects them as P(4,NPART), i.e. you must take // the transpose of the Pythia array and drop the fifth component // (particle mass). // void fastjetppgenkt_(const double * p, const int & npart, const double & R, const double & palg, double * f77jets, int & njets) { // prepare jet def if (palg == 1.0) { jet_def = JetDefinition(kt_algorithm, R); } else if (palg == 0.0) { jet_def = JetDefinition(cambridge_algorithm, R); } else if (palg == -1.0) { jet_def = JetDefinition(antikt_algorithm, R); } else { jet_def = JetDefinition(genkt_algorithm, R, palg); } // do everything transfer_cluster_transfer(p,npart,jet_def,f77jets,njets); } /// f77 interface to the pp generalised-kt (sequential recombination) /// algorithms, as defined in arXiv.org:0802.1189, which includes /// kt, Cambridge/Aachen and anti-kt as special cases. /// Also calculates the active area of the jets, as defined in /// arXiv.org:0802.1188 // // Corresponds to the following Fortran subroutine // interface structure: // // SUBROUTINE FASTJETPPGENKTWITHAREA(P,NPART,R,PALG,GHMAXRAP,NREP,GHAREA,F77JETS,NJETS) // DOUBLE PRECISION P(4,*), R, PALG, GHMAXRAP, GHAREA, F77JETS(4,*) // INTEGER NPART, NREP, NJETS // // where on input // // P the input particle 4-momenta // NPART the number of input momenta // R the radius parameter // PALG the power for the generalised kt alg // (1.0=kt, 0.0=C/A, -1.0 = anti-kt) // GHMAXRAP the maximum (abs) rapidity covered by ghosts (FastJet default 6.0) // NREP the number of repetitions used to evaluate the area (FastJet default 1) // GHAREA the area of a single ghost (FastJet default 0.01) // // and on output // // F77JETS the output jet momenta (whose second dim should be >= NPART) // sorted in order of decreasing p_t. // NJETS the number of output jets // // For the values of PALG that correspond to "standard" cases (1.0=kt, // 0.0=C/A, -1.0 = anti-kt) this routine actually calls the direct // implementation of those algorithms, whereas for other values of // PALG it calls the generalised kt implementation. // // NOTE: if you are interfacing fastjet to Pythia 6, Pythia stores its // momenta as a matrix of the form P(4000,5), whereas this fortran // interface to fastjet expects them as P(4,NPART), i.e. you must take // the transpose of the Pythia array and drop the fifth component // (particle mass). // void fastjetppgenktwitharea_(const double * p, const int & npart, const double & R, const double & palg, const double & ghost_rapmax, const int & nrepeat, const double & ghost_area, double * f77jets, int & njets) { // prepare jet def if (palg == 1.0) { jet_def = JetDefinition(kt_algorithm, R); } else if (palg == 0.0) { jet_def = JetDefinition(cambridge_algorithm, R); } else if (palg == -1.0) { jet_def = JetDefinition(antikt_algorithm, R); } else { jet_def = JetDefinition(genkt_algorithm, R, palg); } // do everything transfer_cluster_transfer(p,npart,jet_def,f77jets,njets,ghost_rapmax,nrepeat,ghost_area); } /// f77 interface to provide access to the constituents of a jet found /// in the jet clustering with one of the above routines. /// /// Given the index ijet of a jet (in the range 1...njets) obtained in /// the last call to jet clustering, fill the array /// constituent_indices, with nconstituents entries, with the indices /// of the constituents that belong to that jet (which will be in the /// range 1...npart) // // Corresponds to the following Fortran subroutine // interface structure: // // SUBROUTINE FASTJETCONSTITUENTS(IJET,CONSTITUENT_INDICES,NCONSTITUENTS) // INTEGER IJET // INTEGER CONSTITUENT_INDICES(*) // INTEGER nconstituents // void fastjetconstituents_(const int & ijet, int * constituent_indices, int & nconstituents) { assert(cs.get() != 0); assert(ijet > 0 && ijet <= jets.size()); vector constituents = cs->constituents(jets[ijet-1]); nconstituents = constituents.size(); for (unsigned i = 0; i < nconstituents; i++) { constituent_indices[i] = constituents[i].cluster_hist_index()+1; } } /// f77 interface to provide access to the area of a jet found /// in the jet clustering with one of the above "...witharea" routines. /// /// Given the index ijet of a jet (in the range 1...njets) obtained in /// the last call to jet clustering, return its area. If the jets have /// not been obtained with a "...witharea" soutine it returns 0. // // Corresponds to the following Fortran subroutine // interface structure: // // FUNCTION FASTJETAREA(IJET) // DOUBLE PRECISION FASTJETAREA // INTEGER IJET // double fastjetarea_(const int & ijet) { assert(ijet > 0 && ijet <= jets.size()); const ClusterSequenceAreaBase * csab = dynamic_cast(cs.get()); if (csab != 0) { // we have areas and can use csab to access all the area-related info return csab->area(jets[ijet-1]); } else { return 0.; // Error("No area information associated to this jet."); } } /// return the dmin corresponding to the recombination that went from /// n+1 to n jets (sometimes known as d_{n n+1}). // // Corresponds to the following Fortran interface // // FUNCTION FASTJETDMERGE(N) // DOUBLE PRECISION FASTJETDMERGE // INTEGER N // double fastjetdmerge_(const int & n) { assert(cs.get() != 0); return cs->exclusive_dmerge(n); } /// return the maximum of the dmin encountered during all recombinations /// up to the one that led to an n-jet final state; identical to /// exclusive_dmerge, except in cases where the dmin do not increase /// monotonically. // // Corresponds to the following Fortran interface // // FUNCTION FASTJETDMERGEMAX(N) // DOUBLE PRECISION FASTJETDMERGEMAX // INTEGER N // double fastjetdmergemax_(const int & n) { assert(cs.get() != 0); return cs->exclusive_dmerge_max(n); } /// return the background transverse momentum density per unit scalar /// area rho, its fluctuation sigma, and the mean area of the jets used for the /// background estimation in a given event, /// as evaluated in the range [rapmin,rapmax] in rapidity and [phimin,phimax] in azimuth // // Corresponds to the following Fortran interface // // SUBROUTINE FASTJETGLOBALRHOANDSIGMA(RAPMIN,RAPMAX,PHIMIN,PHIMAX,RHO,SIGMA,MEANAREA) // DOUBLE PRECISION RAPMIN,RAPMAX,PHIMIN,PHIMAX // DOUBLE PRECISION RHO,SIGMA,MEANAREA // void fastjetglobalrhoandsigma_(const double & rapmin, const double & rapmax, const double & phimin, const double & phimax, double & rho, double & sigma, double & meanarea) { const ClusterSequenceAreaBase * csab = dynamic_cast(cs.get()); if (csab != 0) { // we have areas and can use csab to access all the area-related info Selector range = SelectorRapRange(rapmin,rapmax) && SelectorPhiRange(phimin,phimax); bool use_area_4vector = false; csab->get_median_rho_and_sigma(range,use_area_4vector,rho,sigma,meanarea); } else { Error("Clustering with area is necessary in order to be able to evaluate rho."); } } } fastjet-3.0.6+dfsg.orig/fortran_wrapper/fastjet_fortran_example.f0000644000175000017500000000701411766120132023523 0ustar sunsunC example program to run siscone and/or pp sequential recombination C algorithms from f77 C C To compile, first make sure that the installation bin directory is C in your path (so as to have access to fastjet-config) and then C type make -f Makefile.alt fastjet_fortran_example C C Given the complications inherent in mixing C++ and fortran, your C mileage may vary... C C To use, type: ./fastjet_fortran_example < ../example/data/single-event.dat C C $Id: fastjet_fortran_example.f 2027 2011-03-27 17:08:02Z cacciari $ C program siscone_example implicit none c ... maximum number of particles integer n parameter (n = 1000) integer i,j c ... momenta: first index is Lorentz index (1=px,2=py,3=pz,4=E), c ... second index indicates which particle it is c ... [note, indices are inverted relative to convention in Pythia] double precision p(4,n) c ... parameters of the jet algorithm double precision R, f, palg c ... array to store the returned jets double precision jets(4,n) double precision fastjetdmerge,fastjetarea integer constituents(n) integer npart, njets, nconst ! <= n double precision ghost_maxrap, ghost_area double precision rapmin,rapmax,phimin,phimax,rho,sigma,meanarea integer nrepeat c ... fill in p (NB, energy is p(4,i)) do i=1,n read(*,*,end=500) p(1,i),p(2,i),p(3,i),p(4,i) enddo 500 npart = i-1 R = 0.6d0 f = 0.75d0 c.....run the clustering with SISCone c call fastjetsiscone(p,npart,R,f,jets,njets) ! ... now you have the jets c.....or with a pp generalised-kt sequential recombination alg palg = 1d0 ! 1.0d0 = kt, 0.0d0 = Cam/Aachen, -1.0d0 = anti-kt c call fastjetppgenkt(p,npart,R,palg,jets,njets) ! ... now you have the jets c.....the same, but calculating area information too c.....(uselessy slower if you do not need areas) ghost_maxrap = 6.0d0 ! make sure you define this as a double precision (with the d0) nrepeat = 1 ghost_area = 0.01d0 ! make sure you define this as a double precision (with the d0) call fastjetppgenktwitharea(p,npart,R,palg, # ghost_maxrap,nrepeat,ghost_area, # jets,njets) ! ... now you have the jets c.....write out all inclusive jets, in order of decreasing pt write(*,*) ' px py pz E pT # area' do i=1,njets write(*,*) i,(jets(j,i),j=1,4), sqrt(jets(1,i)**2+jets(2,i)**2) # , fastjetarea(i) enddo c.....write out indices of constituents of first jet write(*,*) write(*,*) 'Indices of constituents of first jet' i = 1; call fastjetconstituents(i, constituents, nconst) write(*,*) (constituents(i),i=1,nconst) c.....write out the last 5 dmerge values write(*,*) write(*,*) "dmerge values from last 5 steps" do i=0,4 write(*,*) " dmerge from ",i+1," to ",i," = ", fastjetdmerge(i) end do c.....write out the values of rho, sigma and mean_area in the event write(*,*) write(*,*) "Background determination" rapmin = -3d0 rapmax = 3d0 phimin = 0d0 phimax = 8d0*datan(1d0) ! 2pi call fastjetglobalrhoandsigma(rapmin,rapmax,phimin,phimax, # rho,sigma,meanarea) write(*,*) " rho = ", rho write(*,*) " sigma = ", sigma write(*,*) " mean area = ", meanarea end fastjet-3.0.6+dfsg.orig/fortran_wrapper/Makefile.in0000644000175000017500000002435612233506213020521 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = fortran_wrapper DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = README Makefile.alt fastjetfortran.cc fastjet_fortran_example.f all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fortran_wrapper/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fortran_wrapper/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/fortran_wrapper/Makefile.alt0000644000175000017500000000113411766120132020662 0ustar sunsun# Makefile showing how to build the fortran wrapper given a properly # installed fastjet compilation FASTJET_CONFIG=fastjet-config CXXFLAGS += $(shell $(FASTJET_CONFIG) --cxxflags) LIBS += $(shell $(FASTJET_CONFIG) --libs --plugins ) # set compilers FC=gfortran F77=gfortran fastjet_fortran_example: fastjet_fortran_example.o fastjetfortran.o $(FC) -o fastjet_fortran_example fastjet_fortran_example.o fastjetfortran.o $(LIBS) -lstdc++ clean: rm -f *.o realclean: clean rm -f fastjet_fortran_example depend: makedepend $(FASTJET_INCLUDE) -Y -- -- $(SRCS) $(PROG_SRCS) # DO NOT DELETE fastjet-3.0.6+dfsg.orig/fortran_wrapper/README0000644000175000017500000000151411766120132017325 0ustar sunsunREADME file for fastjet-X.Y.Z/fortran_wrapper --------------------------------------------- This directory provides basic wrappers to fastjet's main pp sequential recombination algorithms and to SISCone so as to be able to access them from Fortran (or any other prehistoric language). fastjetfortran.cc the file that does the wrapping fastjet_fortran_example.f an example showing how to use it from a fortran main (look at the first few lines for compilation and usage) Makefile.alt for building (outside of the autotools framework) If you have installed fastjet (and it is in your path), then do > make -f Makefile.alt > ./fastjet_fortran_example < ../example/data/single-event.dat These wrappers are usually updated on request. If you need features that are not available, contact the authors for help. fastjet-3.0.6+dfsg.orig/fortran_wrapper/Makefile.am0000644000175000017500000000011511766120132020475 0ustar sunsunEXTRA_DIST = README Makefile.alt fastjetfortran.cc fastjet_fortran_example.f fastjet-3.0.6+dfsg.orig/doc/0000755000175000017500000000000012233507304013776 5ustar sunsunfastjet-3.0.6+dfsg.orig/doc/Makefile.in0000644000175000017500000004236012233506213016046 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = figs EXTRA_DIST = fastjet-doc.tex all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/doc/figs/0000755000175000017500000000000012233507304014726 5ustar sunsunfastjet-3.0.6+dfsg.orig/doc/figs/Makefile.in0000644000175000017500000002442012233506213016773 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/figs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = ghost-extent-y3.pdf ghost-extent-y3.eps ghost-extent-y4.eps ghost-extent-y4.pdf timings_best_3_0_1.eps timings_best_3_0_1.pdf all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/figs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/figs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/doc/figs/ghost-extent-y3.eps0000644000175000017500000014704711766120132020436 0ustar sunsun%!PS-Adobe-2.0 EPSF-2.0 %%Title: ghost-extent-y3.fig %%Creator: fig2dev Version 3.2 Patchlevel 5a %%CreationDate: Tue Nov 22 19:06:46 2011 %%BoundingBox: 0 0 545 351 %Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def /col32 {0.851 0.851 0.851 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /reencdict 12 dict def /ReEncode { reencdict begin /newcodesandnames exch def /newfontname exch def /basefontname exch def /basefontdict basefontname findfont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall newfont /FontName newfontname put newcodesandnames aload pop 128 1 255 { newfont /Encoding get exch /.notdef put } for newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat newfontname newfont definefont pop end } def /isovec [ 8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde 8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis 8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron 8#220 /dotlessi 8#230 /oe 8#231 /OE 8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling 8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis 8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot 8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus 8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph 8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine 8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf 8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute 8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring 8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute 8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute 8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve 8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply 8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex 8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave 8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring 8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute 8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute 8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve 8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide 8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex 8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def /Times-Roman /Times-Roman-iso isovec ReEncode /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { save newpath 0 351 moveto 0 0 lineto 545 0 lineto 545 351 lineto closepath clip newpath -81.3 433.4 translate 1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 50 % Polyline 0 slj 0 slc 0.000 slw n 3667 1402 m 8660 1402 l 8660 6642 l 3667 6642 l cp gs col32 1.00 shd ef gr % here ends figure; % % here starts figure with depth 40 % Arc 15.000 slw 0 slc n 8471.7 4478.4 771.7 -75.8779 76.8710 arcn gs col27 1.00 shd ef gr gs col20 s gr % Ellipse n 4665 2433 770 770 0 360 DrawEllipse gs col11 1.00 shd ef gr gs col8 s gr % here ends figure; % % here starts figure with depth 10 % Polyline 0 slj 1 slc 7.500 slw [15 60] 60 sd n 2004 6522 m 10327 6522 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 6522 m 2109 6522 l gs col-1 s gr % Polyline n 10327 6522 m 10222 6522 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 5690 m 10327 5690 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 5690 m 2109 5690 l gs col-1 s gr % Polyline n 10327 5690 m 10222 5690 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 4858 m 10327 4858 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 4858 m 2109 4858 l gs col-1 s gr % Polyline n 10327 4858 m 10222 4858 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 4025 m 10327 4025 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 4025 m 2109 4025 l gs col-1 s gr % Polyline n 10327 4025 m 10222 4025 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 3193 m 10327 3193 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 3193 m 2109 3193 l gs col-1 s gr % Polyline n 10327 3193 m 10222 3193 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 2361 m 10327 2361 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 2361 m 2109 2361 l gs col-1 s gr % Polyline n 10327 2361 m 10222 2361 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 1529 m 10327 1529 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 1529 m 2109 1529 l gs col-1 s gr % Polyline n 10327 1529 m 10222 1529 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 6640 m 2004 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 6640 m 2004 6535 l gs col-1 s gr % Polyline n 2004 1411 m 2004 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2836 6640 m 2836 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2836 6640 m 2836 6535 l gs col-1 s gr % Polyline n 2836 1411 m 2836 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 3669 6640 m 3669 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 3669 6640 m 3669 6535 l gs col-1 s gr % Polyline n 3669 1411 m 3669 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 4501 6640 m 4501 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 4501 6640 m 4501 6535 l gs col-1 s gr % Polyline n 4501 1411 m 4501 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 5333 6640 m 5333 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 5333 6640 m 5333 6535 l gs col-1 s gr % Polyline n 5333 1411 m 5333 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 6165 6640 m 6165 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 6165 6640 m 6165 6535 l gs col-1 s gr % Polyline n 6165 1411 m 6165 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 6998 6640 m 6998 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 6998 6640 m 6998 6535 l gs col-1 s gr % Polyline n 6998 1411 m 6998 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 7830 6640 m 7830 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 7830 6640 m 7830 6535 l gs col-1 s gr % Polyline n 7830 1411 m 7830 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 8662 6640 m 8662 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 8662 6640 m 8662 6535 l gs col-1 s gr % Polyline n 8662 1411 m 8662 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 9495 6640 m 9495 1516 l 9495 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 9495 6640 m 9495 6535 l gs col-1 s gr % Polyline n 9495 1411 m 9495 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 10327 6640 m 10327 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 10327 6640 m 10327 6535 l gs col-1 s gr % Polyline n 10327 1411 m 10327 1516 l gs col-1 s gr % Polyline n 2004 1411 m 2004 6640 l 10327 6640 l 10327 1411 l 2004 1411 l cp gs col-1 s gr % End plot #1 % Polyline n 2004 1411 m 2004 6640 l 10327 6640 l 10327 1411 l 2004 1411 l cp gs col-1 s gr % Ellipse % Begin plot #1 7.500 slw n 7082 1841 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7514 2070 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4185 1516 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4256 2334 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4937 1931 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4834 2005 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4488 1670 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4735 2403 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4284 2328 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5312 1762 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6164 3015 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6706 3386 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8537 2281 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5038 6454 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4553 1779 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4588 1956 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5322 6404 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6026 2365 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7010 5842 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6149 4140 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6285 4598 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7033 2244 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7203 2147 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8006 6130 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4804 6041 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5463 2989 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4434 3309 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5509 1543 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5621 4524 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7957 1614 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8221 6054 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8311 5574 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7793 6350 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4091 2460 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4487 2387 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4157 2688 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4577 2148 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6521 5882 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4883 3581 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4485 2137 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6427 5367 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4207 1807 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4180 2383 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5566 5534 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6298 6306 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5416 2174 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8244 1620 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3856 5721 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6580 2808 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7167 1505 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6809 2706 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5298 4195 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6436 2488 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5608 1570 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7826 3044 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6942 1418 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4558 1519 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5934 4059 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5631 6635 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6393 6536 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7416 3871 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5927 4169 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6754 5098 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7042 2493 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5093 3965 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4505 5048 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4650 2483 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6795 5023 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5922 2452 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7362 6387 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4964 2201 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8076 4382 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7526 1768 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4026 5374 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5616 5769 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5484 2694 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8448 1512 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6059 2291 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6364 2306 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5607 4929 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8232 5110 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4952 1961 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4777 2288 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4610 3734 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4153 1833 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4973 1951 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5633 4549 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4275 4410 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5893 2915 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8010 2135 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7430 6610 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7646 2101 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7422 4481 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6503 5918 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5517 3328 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8493 5929 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7380 2183 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4919 2721 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5272 5355 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4378 2884 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3897 6149 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4409 3519 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4019 3677 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5119 4587 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6077 3808 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4048 5409 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3876 3821 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5501 6493 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7703 2177 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6707 3753 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7706 5287 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6143 4171 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4903 6496 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4576 3997 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5676 2797 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6760 5200 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8248 2066 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7797 4198 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6853 4767 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8529 1872 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8498 4487 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7208 3963 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7882 4884 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5704 2281 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6560 5813 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3931 1702 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4516 2595 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4087 5201 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5218 4699 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3985 2226 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4894 4829 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5082 5050 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6606 6041 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6470 4221 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7120 1603 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7194 2271 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4978 5767 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5475 3216 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5608 1514 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8013 4844 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6963 2232 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7435 3672 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4902 2623 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5702 5726 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5972 4976 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4326 4011 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6021 6560 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7084 1681 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7013 2342 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6948 2152 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7110 1693 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6870 2137 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6648 1728 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6860 2096 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6936 1746 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6748 1562 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7098 2098 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8644 2806 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3914 2040 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3902 2431 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4707 1639 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4562 1978 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4710 2004 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4687 2428 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4614 2414 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5325 2255 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5598 3178 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6430 2598 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6381 2994 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6500 2918 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6470 2956 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6507 2893 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6828 3079 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6209 2694 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4125 2911 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4437 4566 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6218 2889 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4793 4791 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6266 2355 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5287 6582 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5375 2742 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6243 5884 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5956 1621 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6357 1894 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5358 3557 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6247 5921 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7181 2080 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7020 2094 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8150 1651 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8119 6412 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8067 1569 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7770 6521 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7959 2020 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6336 4324 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6214 4511 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6529 4590 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6496 6607 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6600 2954 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7181 1964 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6417 2821 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4811 3920 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5295 5013 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4802 5163 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4785 3495 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8481 3365 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7502 5591 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7615 6623 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6735 3257 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8590 1853 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8063 5069 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6708 5145 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6813 1499 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5904 2802 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3733 4282 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3923 2389 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3828 3026 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4035 1938 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4009 4038 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4361 5252 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4712 2452 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4543 1595 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4805 6334 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4893 1790 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5414 5705 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5750 5373 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5373 5841 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6978 5536 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5749 3831 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7912 5356 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7108 2884 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7914 2635 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7541 2676 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4939 4790 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7791 5128 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7608 4474 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6972 3645 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3886 3159 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4319 6101 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3946 1719 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6354 2911 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6527 2864 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7897 4052 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8035 5561 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7294 1658 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5761 1652 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6861 2388 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6000 3080 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7458 1902 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7814 1797 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7503 1775 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7447 6617 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4036 2415 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4028 6544 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4677 3474 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6802 3711 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7348 3357 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5544 2104 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7632 6324 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7186 5557 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6078 6448 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6868 5523 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6761 5638 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5264 1728 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4380 4885 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7947 2144 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7268 4520 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8117 4532 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8073 2682 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7880 4015 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5062 2359 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5554 4391 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5188 2468 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3916 3447 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4478 1810 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4027 4817 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4328 2937 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8244 4750 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7673 3061 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6972 1806 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6104 5000 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6440 2815 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7524 2162 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8353 3114 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5131 4650 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4890 5748 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7297 3408 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8111 5543 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7423 2055 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8450 5701 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8080 5944 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7445 3738 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7687 1850 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6815 4361 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4958 5050 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4041 5232 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4076 3535 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4104 2046 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8224 3999 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5444 4621 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7291 5018 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5859 1477 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6728 2028 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7429 5715 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7791 4116 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7143 1775 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5647 5407 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7770 3193 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7442 5475 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8481 6176 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7482 6432 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4679 5337 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4596 5640 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6089 4762 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4016 2571 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4035 3883 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4114 6208 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3819 2526 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4603 5500 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6922 5897 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4861 2912 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3684 2946 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3847 4715 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4238 1943 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3857 3368 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3895 1764 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5681 3583 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5132 3490 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6567 3436 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6608 1519 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5131 4341 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5817 2786 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5926 5303 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6289 5449 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5952 6607 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7866 3082 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7557 5311 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6771 3886 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6735 2082 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6263 1680 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6549 2428 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6921 6457 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6172 4473 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7111 6121 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8016 2122 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8210 5510 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7087 1654 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5818 2349 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5163 1508 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4805 1840 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5068 4150 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5781 4313 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7949 3942 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8039 6585 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7389 1520 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6930 2698 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6173 2384 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6768 5876 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8599 2266 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7312 6589 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6767 2804 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5902 1667 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6446 4117 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4633 4491 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3817 2897 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3889 4606 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5461 5525 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4635 2440 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4500 3387 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5804 4476 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5482 2181 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5649 5684 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6556 3615 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5793 2653 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5414 1967 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5968 4243 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5561 4947 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5722 4242 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5717 2495 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5123 4539 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7480 5549 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7784 2573 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7781 3658 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7936 2382 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6682 1776 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6368 6025 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5563 5185 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5708 2161 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6839 3211 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5669 3789 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4673 5224 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4827 2734 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4029 2748 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4711 2892 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4067 4351 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6674 3698 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6625 6486 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5179 6544 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6038 3858 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7075 1659 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7261 2478 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6865 2005 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6553 2039 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7075 1693 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6861 2086 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6871 2095 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7046 6294 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7435 6451 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6146 1953 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3702 2367 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5984 2698 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6826 2954 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5356 5058 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5247 5991 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6447 4305 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6036 4811 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4340 3505 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4652 3278 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4792 3195 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6594 6045 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6856 5772 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4324 2114 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3763 3483 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4158 2810 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4607 6225 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6114 2495 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3787 6413 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4948 6076 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4548 2109 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5510 5314 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4377 3746 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4269 3978 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6848 4577 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5741 5833 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4081 5899 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7716 5039 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7517 5151 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6560 3635 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3781 5947 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5984 4345 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7062 3279 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6290 5963 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6202 2246 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6777 5864 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3807 1450 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7366 5326 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6419 6466 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7270 3528 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7882 1773 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7631 4037 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8325 2369 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5312 2190 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4662 4106 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4285 1959 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4272 2087 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5813 2602 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6073 2789 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6186 1874 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5763 4726 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3758 3043 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7500 2619 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7226 3678 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7434 6128 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3684 5927 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6797 1583 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5234 4145 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7328 5577 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7769 3175 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5288 2249 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5299 2452 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4249 5529 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7089 1679 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7068 1676 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7218 2423 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6679 2732 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6678 3933 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7100 1651 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7075 1691 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7467 1928 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5718 4009 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7716 5358 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7497 4983 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6844 5048 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7637 2186 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7668 2811 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7486 5979 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6570 4020 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7183 4773 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5993 1801 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % here ends figure; % % here starts figure with depth 0 /Times-Roman-iso ff 233.33 scf sf 1899 6609 m gs 1 -1 sc (-3) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 1899 5777 m gs 1 -1 sc (-2) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 1899 4945 m gs 1 -1 sc (-1) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 1899 4112 m gs 1 -1 sc ( 0) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 1899 3280 m gs 1 -1 sc ( 1) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 1899 2448 m gs 1 -1 sc ( 2) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 1899 1616 m gs 1 -1 sc ( 3) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 2004 6902 m gs 1 -1 sc (-5) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 2836 6902 m gs 1 -1 sc (-4) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 3669 6902 m gs 1 -1 sc (-3) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 4501 6902 m gs 1 -1 sc (-2) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 5333 6902 m gs 1 -1 sc (-1) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 6165 6902 m gs 1 -1 sc ( 0) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 6998 6902 m gs 1 -1 sc ( 1) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 7830 6902 m gs 1 -1 sc ( 2) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 8662 6902 m gs 1 -1 sc ( 3) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 9495 6902 m gs 1 -1 sc ( 4) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 10327 6902 m gs 1 -1 sc ( 5) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 6165 7164 m gs 1 -1 sc (y) dup sw pop 2 div neg 0 rm col-1 sh gr /Symbol ff 233.33 scf sf 1539 4026 m gs 1 -1 sc 90.0 rot (f) dup sw pop 2 div neg 0 rm col-1 sh gr % here ends figure; pagefooter showpage %%Trailer %EOF fastjet-3.0.6+dfsg.orig/doc/figs/timings_best_3_0_1.pdf0000644000175000017500000003666511766120132021011 0ustar sunsun%PDF-1.4 %Çì¢ 5 0 obj <> stream xœ}ËŽ%9’Ý>¾"–=‹ºã$_h! $a´ ¾µÓh1¨©i´”ÑÂt ÿÕ—ˆfç#=ëf"Chtå5Ñø63’ÿö~<Òûaÿã¿¿|¼ýýûûŸþöößßë{:ÞÿÇLü—·ôÈõýÿ¼yÎ÷?þç·Z®÷RóûÇ[9Ëù¨N|y{N–{eªýˆ<ÀÐG ,¤ÿõOoÿö–ð›ÿüòñþ~žz÷”Þþ×7¨šÞsä³¥÷rÑ ÀÆö³m^Ëãøá6o·6oçjûjáí‚tËÝK›,å1#ž£FÞQN-™@‘÷í>ÇéÙ½@D?ˆGÉâþ¾/”½Rv{dÉølŸôúhãGû¤Þúdô½½@-õúÖ^âêj; T Ät”x†JÇ16ÉÀÛÁývÿ¤£{'~Õ ‘Ý9ïHvÄ&ç³=qGþáž8o=‘ŽëÞ:×W­sÝZ‡\G¦qC‚\H±ב¹œ;äBŠ ¤¸ßé‘\Û­G@¿ìee(ç©Yr>Û#)1êõH¹÷HÉ·Ö¹T­#®#Ï´áŒX(°€ˆ©ëBLbC8‹ç|§ÎQ¶ö7êeë#Û¹vŒÚ]øO·úYµü`«ç{«×ºµ„K5°Ðà8¢ˆ… p€}CLbC8‹ç|§µûqm­mÔËÖF6¶6ríµ¶ðŸníÖéG[;Ý[»÷­%ŒØTë«%ÀqÄhˆ… pq¥²F,X@€ó־ʾ¶õ²µ‘­\;F­-ü¶v©£™:ÐÎ֞ɷæÌDZªêD”M–W• ®²-2$7ÙÄ‘ëÈT® r!ÅRÜo7oN-í‹7éWMYÑÈ‘óŽdCor~¸©óã˜[Ü„¦G‰Åû«¦ÎùV}K±Q}qYÒ r!ÅR\ [½!ÜdIîwš¼Œ~krÐ/›\YÙäÊyGªÉ—œnòé ö–'´<®Ü/×Âý­ Ò \úÇW´_cÞQa'è/ýhuÎþèã<ç,_.â>Y[³’P27è*JÙÍWy㿈°ß‘„ç¾RŽ2ø›PÙó7GËU7Y5{¬ü>£õ[R>Ù°ÝŽZo »OÍtÌÅã'«ìDNÊ+œò™…ðŸB± €(¹ á?…0b!@}§QSi-‹Ä7šõUV5ì¹IúdÓ¦<‡m0ׇ5ÖL畤ŸÿT£±t…flµ®:‘ 䉲Ÿ‡pþS(#Ô÷: %gßlü¯²EÃo˜ðÙFoÖÚŸkôå&¤ëXA-j K?ÑÞ ùhZùð“('C ˆTך%B( 'ú;ŸÓµË»6_wÀ«¬ê„;r“ôÉŽÈé˜Köç:byÐs›ÖÒŒŸj#–n ÐœçX+¥¡@.œh kÓ‡ŸB±0 ¾×í9þS-jÄÕàÿ:ñ­nùž€¥¨ÏvÇÜÒ'çÅ -å^Òj\j&K?ÑhÜq­…V„ R4×ЈŸB±0 ¾Ó-åÈ’ƒŸlU'Ô-N|£[¾+`j >Û-6¹>Ù-+ [Ò¹V|l&’K?ÑÞT¥$-Áø)” Šˆk‹÷“Ôu7ZE¯[îçß³—_eNø½Lú“Q&l|r¹ºAjŽ`o䣨?ýõ°Â2-fÉG;-y<Úô7Lƒßþüñëû?ýáoÿôwVTìq³u[¿ÞO ݧæ9ÿëWªþ”¦в¹ÏõqBß?þ»¹$¯½Î–À¹›@; ‚™®~³&T¯£-?0åçøòûãv®ä!vtÑ•MDÍ᜘u¾ƒüÔ´i磷÷qšçŽÎúç¿üöçŸþ×W­Ûc\çõþSyo‚ßV—ùÌžKéèîÇÏùû¨NðÔçD4Cv„“‰vØQ‹ímíD`Ùœ„VKåýD»¤#Û8è×)‹yd‹¢¤”æÏŠÀmJõxã"Ñ­)¯ä4ó•/'ry¿ \P·ž¯3“觯²šÉ[†õåA¯Tj· |† é]} \»•’’Õ¤–»ST7;6³ ~Xýgá.q¶ÆüÝÀiÕ]vœç+‡èÒ˜í•JrŒÕ?ÆãÓ8x=‘¯y„§Ô"{+OjÈúš…¦Sš\cú‚g­´±r¶ØfX\Zd€`š!–)ÁÍ6Úä4oßœ†ý–”œ­C¦IdöÁ9­^îÂå°ÀÙ•ü÷i™fy—ë>¼§óYl’z@s¶•ϤãhnRÌ‚çêàœZ-½á7v¾Ò[>½rqÊv¸T±×f ÀŒÆ×#y&p?õ3–œ+v^[òHûN‹z_'vhïñld®ŸlŸëúÊm²ØÈ\4DÎ^šUœÉÓ´gçÍuÝg~þ2§Ññ(ÇâåâÿIÒåÎÌ$ç†vvJ§\üœYU&yÔHÈ]ß_Þþõm.•.yØÙnÃE´Ù;®Ì\%'ˆ“Ä/omŠr‘äZbÊ<,+‰9—Lí@Î…*‡\3³J%—: »ô5õû\R2V RsúÜÓMP›×uŒJâ—·>§²)!n>¼Â’œr-«uŽ}SAÈzyqKbff©âB§À.}Mýq´N䂼\D¿ L«ÍEÙ¢ŠŸ³˜~±-Áë+¤ÈãÌ §íiŠ6û`p¹ø9³ªL$H#"oúzN$TÛ&DÌÏDŒBQÍG¢ï£t$ª@^‚‚B’œR-+ër:"¥[²KÅÏ™U%’G}„\ºšê×,:k;ú²Þ‚×TÅ[²º(n]•]S”·$¹³Ü¾aIºä™™dÉŽ löyCÉ™³*Ê%—Z »ël•HÇé&£í¢A¹][;¤cny’—Éâ†Kê—™{ö±¸øwaA›dËKjToKb{w}´•ƒ²Ü^np©c`—ΨÜ*>@º×Ô\± Ç„MƒàÌвÇo+g¶GY¼†Ú’ô”ëyAÍýZ›t4¹ømyQ¦xÔ(K_×ZNW==ëÊ”²K뾞Á¼é\ìÒ,Ê´$í’=7è9Ím8Íú»äh–*u ä®3jÑ|ÄÁØúXô5¨ËÌ:]õi1¸¦Ó.ão+köhY¼âµYHÒ.Ùr‹>¨‹£§u MÍâëEµðRƒ'…ÜuF-.ß)ÍFüXTæ˜6ã ›Íi0'³æCjfwŽ—¾cI§yAÓÀZ•sH&e¹½ÜàR«À.½9aUÉ—»¤ öõd±#³o}}–|žªÃ›#¸i`Vô”ìZ‘:¤‡c“k#É ~yS¹âJGb7Q‡2Pr¥SDz*æcbZ[6š*f˜›ï5EIç£,ÞÉ$í’-7isg ‰£zÑ%'õ0K:r×µ¨ZgÖ‚tMÔe®øV ô«ûU}n‡KeñrÃ>"$i—l¹I—"]45ÉømyQªxÔ)»Î¨Åu l.¶“t×eº&æ±gá0õè÷9ÇÆâV´Q`I»l×ý<¨ Ðg‚® Êr£dq©W`w½½&ÓQré'¤æjࣻ$o—á©ðôðÛJº¼=ÉË­-¤è)×µ5íRŒm`aiA®Ì0•)5rÓú£¦—_»êâ~eaø¡¨ÀôOEü‚Ú–›Ð8&=ºÔò ¥È¬BÇ”rÏ·kº¡ØàQ©@.•Q…ÎÍö@ˆôvHv lUH샺+é^qOî¯ÄŠ<22'TPméàk°¥k×oËëÅ:-䦲ס4L†¯°A^Ýô¨¶ÉÚÞŠ5”ñ’³°sÚ±ñ;æ!ÑA_cy¦“äÁV¡Œ¦ÙW[öŠˆ_+7` ENÙ–Ydña(l9 (e—CaÙâK3¢7½½"íD…-²ò±‘—«ÒŠmŸ¾#™ ŒÂœ…µd›ïâ'ü+´ÈÑ9Åî_Þ…MŠ*ÂÓU–|iFô¦7*2¸*gn‘P¼gÍíØj\œ‡ŠöŒ6[µlÜ ƒJX‘™›F$$UB(²í*Y\éEìMo¯Jϙۚ¯VAVŸâ=U¹¥èWÓrÕæt‹ß®ƒ»•£ƒ<;2±#[«[° HvÑŠ¥²Å—f@ïz£"•ûKÃÑ©H3*-„å£$¨€À+*{?7Ü$Ù˜™äÜ\`Ï jºd–™åŠ+­ˆÝtF%úàÖ…;R+Á vi-¹¸‹â<æxEaõ|”{bþ +Òe»n=lñè†u²›Vu•,®ô"ö¦·WÅ\Lì¤v_q#}€öË;·$ H…KS‹â|p¿Üî2!óTÞ…Íó†²IZv”-¾4#z×AìÈã·éžW¦¡íꘈôÍn¡ÅíedêȬ’1‰…7Hɇf‡ÊWZ»ëŒJÐC,¼¾%\ÖæNûîÜ(n^˜K .]faƒDÀh%äd!tÂV ÙI­JWz{ÓUA,Õcæ;éCcÔâ«6ŠC|½¶­¸±ñ@ t>°‚,ÄfÊÎX*[|iFô¦7*Òeåp²GBó ;š7oiWˆ«AzqÞDÁ§;(´ÈÊé §OY¡ &´¤Mx•.¾t#ú¦»Wç’Á·C”pùæzÁ<l¦~¶AŠsó;¸CV°Az ‘Ð}c'ºt¬§87é²Xrp¥°w½Qîg§ö÷HÀ}a;¹ƒã`&ö÷ ;Tp¹ +Rû{$`š;8dÇþ®’Å•^ÄÞôFU.¸Á8)úØ,ò>!æ2ƒJàT)¼†«WWF\D&+²ÒK„³¹:D”ÙEnºJWz{ÓÛª’Å3®)ÁI¶G.nÙû‘XÕ›fcuMîÑhœ+’ƒ`%ø úÄâq›˜J®ô"ö¦7ªBK£òJïJ°A3!°<êY¡¬ŸçUUõ\ŠÌ« ‡«Ct*PÖe§¢ª°dqCQ`oz{U¦mIç;Ë–` Hžæ¿•Š ‡‘òêòqy‹?½ú1Ž^äÁÊ(¡%Wˆhœx…ôÊÝ%J_º}×Õ‘)ë±ÅEf¬vé†-¢‡>4[XzðCY oº£:ƒÚŸ…ÕQ‚NHGuêuy_/U§¢:âWV‡h‘gau”`w{Þ;Ô¥ôÜU–.¾t#ú¦»W§àÑï|ì¤YSÙcf¹úf…ÛC[Ù$ØÛàfÄÇ…]drÍD³¥„í½Š{ ]}Îrƒ+­ˆÝtF%šì9®„já\,ºkT‡8^|Ð1áL8`P‘_`{ -’Çy+ÁŽûÞ£À®£Â(]|éFôMw¯ÎÉkøia×á«P¹Ü¬»pÒ§[—Ž §wífaðû)‹ÊÑ$‡Ÿê-rø:DìÀ‰`ÜÑ¡Ê?z×9iäø¹ôâvƒÙ >¸pÒ4¸Ì*Ó?°Aúà òô"lÁðä¢Á¥rÅ•VÄn:£cÈÞÀµ[’æîÌì#ù.—a8è¦L–aq¶â»œøðZ-òhž™>ÍuuW¥Á&D|²EZö{TüAs•èMo¯Hå®fWw>vÒ[´b;P}^ò9Õû”¸'·1b‰ÞéÝX.àË»ÊWZ»éŒJ RàwŽ>v•hÅ…uVÂo'õ¨ÄÙ\qËEÛ Ø ½AV(B,-6H{NåŠ+­ˆÝtöJ4Ü•ð«R;銘M`Û4—U^«J±ìZTvlüAé@/Õ‰¥“؃ «®lÅÂ˲ÅÍ€ÞõFEê #¯ˆH?¿ËvŸ(Ã02t#¬ðrI63klüœÃêê™ 2“ôsÃÀâT1dZÒU¶øÒŒèMoTäBcÚµD¿¶áM›Ø¸ÌÖU£{ã z`EVd‰ñ$,$Ù *W\iE즳W¢³!q·îcKðx™_jï°ÑLœßÃ#1 ëhšà²å„é²-»_¸âùB;Öã…¾?]HûÓ…±ž.\ëáBÛž-ð Ÿ-´x¶p)på=®\uº ':Ú¾òöxßq‰#ÖJ¹8«ìÇö|aÜ/´õx!Ãç Ô%ž/ðíFœQ¤õ|ájëñB)ëéB»=]¸®õpᄾ+V¨'¡n+|pÀ¨(ðÃçÛhW<\‰%ÊÇn,GŽêyÅÓ}JnÓ¸ô"2ÙüÌÕߟ||{8]riV¸}vø€€‰sø “…pt>»à6›ð`Âw«ÙÛ#†T™“+'žª`ñ±£~¼ÍóQ<;ß¿îvXÙÙ[cNþÃv ÿÎIò'Æ™¯Ø2.RþL¿}çóî¯Ч ¸†ÇöŸ¿þj¯ ø e,7f\³?_1y…=÷L]/¯˜º~³œ¯˜q¯¹½RwÝ./¯Û¸¯Ž[®Ø~ÇÅæhOâ^qy33½j§uãñ¥Vq“ðxÉÕý¼úª¾qóí%6.•½ÄÆ}­ã7îAáýÆ×ìývÑ ôº³Ó^¡ãÌ1^¢ãvÉKÅ×­—ý¸îB¼ìŒuÃàe›­“û—e¯óð—­¶N™ËKvœÛ¾Eëhô¥jëtñÕ´ÙNì®eoÇb¯Fáv²ôªK¶Ã›ôнD^µÚvîðªÕ¶Hþ«I½EÆ_j~‹6ÿž½‚¶/+qÏòR¸â‰£¾TMq:3Í^±yü:^ÍE–Ò…;%¿có„îª/5gĶà—lú@ÇË5)¼öãå~ðÑ^ äð-—“(|¶¹j¾dÓJçKáò0hŒþŽ­Ã¬ëU£^VÍ9¿Z¦!ÄÓ£—ƒ©ø!#\Ä—l¼q›{ë«þž–•\¥W“¥Þó«ÙÏÿ?¾8;Kmç»Ùô²¾ÿáïÿ}˜ØÈ%»á›n0±›Ô &¶i²½~ÔÝÈõ•™¿ýF˜obafëi°Úi{%¼Úå†6Á0µ÷Â0Ùù>øŸØ¹`øê…ðãnh·7ÂãöFøÚÌìv3²õbFvÞŒlËafÍÌ.›‘=v»7[¯€ib?¶Â2Îif_adÛ݇í}°×$Œl:2²Û2±ñ~6 lÂqxx{,S˜&vï_™Ø‡Ìj7²aÔÊĦ{\yØ2êe`WÔÞÑsNÓ†}èm°›ØüÄgÙ*…F6z—Fvj»‘íƒ6Ll½žv#{¶ínbg~éFvåG5afë+ 0´?,+C›/«Küî>ψO4÷Çèú^XêÏAî\1ŠÑœ~fi·,ÚrpBZ ²¯ ÚŽ3dØ ¼ñ*c&mùÆÓ$~rÛ½ Èà´.KFŸµ1¦úÌ1§ñ4õŸ˜üö–Œš6xÞ"†?ýaé\ƒÅâ‰åb:`²Ïkßv,>^V‰å¸¹ÀD ’ÞÚp.΋—¡Óè4^6Ô²ÔÔzZ™V ÌÅ"=f­°vùÛÌk2c-{r5›ÊJ†‘ö%š0÷”9Ó±àÙk¶Ã¾Z à“K …¾ Áɹ}·pA‚ŸiÍ x~V«f«¶'})/tšƒ×Ðx%1—+G‹\¼qWà±ò–¶I˜5þ¤LÆHù]Ÿ¾ÔêÌîŠ/g\ì±(Å$äáru yP‚¿îŠt²m-˜ì¢ìàªïßU3åbxrÈ)40r._Q¾ÅÚM v«Ž?ÅÅÖ1«,<FÙ$ÔÃkм½^ßmžÜoΡ8yµUƒÜQ>¿Ní7HÛÚ¢žÜ¤Z´!^ ù„‰\Âxst9~°ýM_åû6—Mò‹ n}–cø нð¹vÃæÃå#¦7Zœö>r`Ë´—*É‹àú\{è´² C }ÕÄ>m`2l£µ—î»ÏµóÚöz(⃚yŽÔ­&ÈШ棉, N¢ÍÀŸ:X{Ø–n|ûÚLÖÿ\{|öê~¬„¾Ú´ì:À°<öAʼ,ƒ§lƒsPW =lu=ðÎný¸]|ÜѯҢù5ë:ôr¯ç¾fr¸„q…º¯>‘YRVŸô†ºÿÃôgQX.OÚ.ÓðC¦ f!ËpánÞ¢ií<ßÖ•pâl«|û"ãɯ°žËFÊ›Jèklÿl6 )¿6>P‡Ê± Õ§J«OÍEqü |²uØ¥´èSÞ=Δ‚kÎùX20×i´YLö°âž²ãRÈp²-2g‘ŒŽ‘í÷”õwj–€¼Ö±ðËh—_@®Kh˜#ºâzA¹/.ÔF¥å8QY™Ïø û•äšëÙ¾à2Nðí³"Y–ésÙ¦­S &XÄ IÆð˜¬ß?õ-8,Úg|ñ†ódùnù®‡™½Ægk ~ÆWrºðFöã\øF<Î5íµãöà°±,}¬,LÈc6ÂýFÊËâ~†Ím÷ )GèéKÎ)9ºaxINô lõ|R ¯Ïå%cø°¡9o9Šœ°ïŸËÂÇÆ÷±°÷!O®Ð¥óïNØ„t]úràØ "Ê¡«°ö§lŸõïTsÊg¼±?Ñ£8¸–’¬±–æóÀšnN‡ñ+Ötø Ïå…5%Œ5ÖÎûÛàWÀòya‡ñ0z/Mz༠mz\˜wæà¿`ÞÁßyÒã±@ ž0¬¶¨sæâÛ„\;f¼¤çò“r“”u2r°DÑ™²[+X¤Â»z.ÿªr‡Y'±Çä–0Þà„Yž†ñ&¯ì ¿l®@YRÜM+Ç’©E×Íîk`r…/÷”7—4Úx~²ÆZÃöC‡Ïr` ð¹|Àèc%l}lÀrý'á9>—ï([(Nl–-”mÏs9n e»¯éRh Áã´ŒPNyÖšd€ÕÇœRã»ï#õ¹¼ÔtIZ[2ÐÇîÊÚ ?z˜žísù¶§Æ‰®5NìyŒËÐýþ˽¨å?åw­ó8‡Êk¿°>ºÛlÇóXéE?—}p„DB1Rì Çô€³myª/zá}?å—CRœìcÉà8ƒ‹nìgòÙŸòÚ+WXåˆõµØÅ9—Á'šÅÜ—1JÈîùÉp׿´%£BÂ3Ç’.CñçŠ$i¢„¶t±3¢1F°<}£¸ÂsEàf~D ?y`ßyøß¼„F#x y‘Lheù‘ÖP&ƒ‘„Voüû§üñµiEžçúÛLÏ|þÃÿþ˯+B95Ðÿ§Ä%ƒA…1wv ‡[);Â$Ø$± Hœ]§ Æv¶” a8¹æ ŠÆ™í„âq[Ê óÅOî9-«ÕΣkÇ%»ž<4πܞrAŽOèi@\Rñ/Õù<>‰”â2° Øßš€Œ‹2üÓ-.㤌•²A ù9@CsÉ¿‡Ësß'ö” \r.µ ÃsÉÞ¡¢ÛRî /¸àKˆ…U(§30cF$¿ÇÊØÌJ¹ Ç—¹¹ ²N0Óü3T÷¡“ØR6døâxfÊ`¸ÎO"²ÛS6dpI;;êÃ]2C…ÚÃuÙSn —ƒÅ¸«uºókÀ0x·§lȰEÜÞ0Aƒwþ "NFzVÊŒê1ÕF!<;ƒ$‚1¼-eƒ¸ mYRÀ+—0Šá­”;Èåp»©‡f‚xö"ý¡8Þ–r¹mSM-£@ž=ó@éŠåm)7äØg§”Âp^íaDoKÙ .Cã©¶Q@Ï®©£ˆÞ–rAŽo©s¡eÒkþKÇ0ª·¥lÈhÑÊ`XÏNë‰`\oKÙ Áí;IaPÏ.Σ¸ÞJ¹ƒ¾à» Jah¯›ë)Œîm)2ÜXèZYÞ³w†hGEø¶” òE×b<Ü •E>{ ÉrãÛRn /úœDEä€rä³;?D1Ê·¥Ü@.FM‹:q]°;ð¨â|[Ê 3†®4(Ca>»ú@#S[Ê 7¢æÎK óY, á(˜‘¾H¹A¾øÅœákSC}—fKÄú¶” §­Þª õÍ|Šöí)ÄeÐÔ›[&4Q°oú=œqŠöí)7丑8?Ha¸Ï}gb:=Ò•²A ÃZÍA…ürÒŒSÔoKÙ!.C&©f‚~~i“RõÛSn È);ˆ‚~9ö Eýö”ÈåÀ>›¤ ì—í#2À0î·§lÈ ñ<×wÔ‰A¿¹ýuÖ€Q¿=åúâ÷\àc2nåPÚ=a€r*÷”èË~#æ;à.ËèÏÐsãð‡/ñ—7ÿñ/¿ýú·Õ'XÙç*\òDØuõÿûÕ]öi¢Uûš"¸ï6[ßÿ¼ÂO˜Sð'»tåÌÿôÏûí¿üúÛ{yÌi¾]ÉùÓüïÿèAäendstream endobj 6 0 obj 8898 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 12 0 obj <> endobj 13 0 obj <> endobj 10 0 obj <> endobj 16 0 obj <> endobj 8 0 obj <> endobj 11 0 obj <> endobj 14 0 obj <>stream xœcd`ab`ddd®ÌMÊÏ1µ~H3þaú!ÃÜ]ÿ³â§5«,ƒÃ Þnæn–É߯ }—ü.Ãÿ]R€™‘QÏÄÁ9¿ ²(3=£D!4(\!8?­¤<±(UG!nhii®T ’‡ØS”šžY\’ZTœ˜WÌÀÀÀøˆ±“‰‘‘e󾟫ê7~_½é»Ò–ïl÷nýn¸ï{äÞïÚ[™¿÷þX,úGjßw›Gì÷ºçVO°ëè­ØÈ±—­uzçôÎM÷ëEÎÝ1oÑêîíÝ«VgÏ-›Y0!©›ã7c’è[¶s«Kb¢2Kœå ØÞ,ú;â·ÞoÝß¡¿ƒ¾ëÿÖÿ„úßAtào½ï†¿ýä»RE¿›—ù­ðÛæ·ío™ßr¿­[ý–ý.÷Ýö»Ãwéï2ßäù~šÎgëæêæf` ˜o endstream endobj 9 0 obj <> endobj 15 0 obj <>stream xœUU TWž1d2¥ˆ5Ù)>“>x)òðA´E^1¢àŠ!@4 Þ ®ˆ¶… ÚÚªÔjA¬Eé´ VUa}Ôj)­µD^šˆŠ…-vÿÉÞpvo°=»{ΜLîÌüwþïû¿ïš²›DÑ4m®Òä©rÔ)ɶ•'?“ægMâg Jq†e¿¥P8›R{89ƒ]í,û9b˜ N‚—(MT ÎÌ*Ô«Ó3rä®±1Ý<<<ÿ{ÅÛßß_¾¥ðÏ;òÕªluºN>ŸüÉSi2³´*]Î y0yZ£Q§ÈÓ5…YÙòäÔTUª­,.Y£Ú&UkÔYY™yr×`7¹ÏâÅÞ ÉÏ’µjí–Ülùúd]¶\)Q¥çj’õÿw‘¢¨9¯ê2ƒC³s"ÉkU1êõÛ4Z¯ÅÞ>¾~K–Ê—ºº-\DQÎTMÍ¥P¨XÊò ^£¼¨PÊ—RP~”’ФÖR/QS)1%¡þBqÔË”ESÓ()õeO9RS(gB$ÅPÔê"=^K_ ùIŽ“ÖLúE ä Ú1ví®Úõ — £…§„×w¦Žé-Õ‰êEwEÿb½Ù v{ꑣŠÕ@‚_\Mó:ÈäîàLáƒß·h…ØÁUãZá¯Ld á=‡‹p€{BGþRMŸv[ÜÝ4ûœ$æn¾†“ôXk¡IôÏÎîû·šR”Rüï^.2*:çK%æ@¯M|5‰HuNïÙC7á’Qó ^àãŒWãÕ&gpƒCÏ`DøaYE÷¨3¿Œ§¬ ôZÓÿÝ`–9ZÒrúùá~ºÕ,°¸óˆÓŸ—û!7 ‰ŠNwAØa‡Æ¹ß¯î\÷cÖc¡häÉ ˆe=˜Òøu‘N©D,žç,( Ê"˜sµ£0óŒìýQÍáXÖ‘BÏ·ýPÜ/2/â‹$<¬{ŒöãQ(æåýÖâq­™qäß~Ž©Å{Œ^Á;rå¿…]Á“ÉþŽJwÿ¦TxI+3\)®ÍCªé [_Û¬ª:‘'ÝutßÑ7Y_æžÜµf#¦ Þ5$5»|,[ñQ؇º¨qzks}×w º •RG¨Ï¹Í»w‰?€½8p?  ùK`îr¹a=$BëömÝ¡/ÌTïHClHjË=Y‹ç¶7¬‚© ¹{ÄRþüÄ@»Cnó‹{ÄMF¨"-}ÅÚÆí){ ½‰XÝΣ§dp]dkÇÜJenj†4;«D[¶‘d~{ö´±wš2ãe¹"”‘WQŠí‹ ßÚ¶k­^³ …±’Ï[Q¿ßºT{ùªTòUÜ»§²/Ï<†ª*?9ÈâùÆ¡ÌÒúò˜F½egÂL…ªþRGc݃*™éÈñuU,ÑÉs¸?›x©I`™A€ùZÍŒu*oÎךxÃO¶š„Ϙ ]Bxøõˆ¿äµVÍ}2mþìâPï¾Ö¢sêû+.º‘qÎ_ˆíð*¼êáX]ÀÔÈ–19¡›ÒÃQÚ|2ó|þ™½gÊ/²•]ÜÁá«7Û#lI*+/“Môúá@¿ØlëƒW†$Ï`-|ÇÁ^FÂ4¦xËÊhó{IUÚé ¬e2Nî=U6\ Ÿ³’gý_~öõÀ |]¤øM}¼Ü@®è":SZ›ÿq^ÕV”Ä.IJu%bѧÖäCn>}kPîD)Ë­5ŒEk·Ìy!þ'65ˆ[Mfxj 3;Izx3„+·@ðú¹úãi>-ëŸèeñºPòà—즴˜(5/E“«ËOÜPìGMYŸþõ‹Š¯ˆ’+«’N§´‡ ¦ƒÑÕ- mçêo¢hhý-×Oðš¶i’ß“Ûê:güt³í)°7ã<+¤Dƒ¨†Ï¯†ÈjúÊ€æQ-×ÀL_/„àFáo Þ OˆU#„rë±^Hð=oçI –km¨~úŸ|ʲN’ቈê³ET¿èçŽë]ß|¡ —âñ?—×R#lK~¶èQìE·ä¼è©¦3ùdb%Ã!(qûf%û“Í?–øj ÉËpÉx‰°ƒK‰-‰- ºy‡Pg‰ç"P”.-!12Ça'—öb x‚{? ±bæþ²é[iZ{t]8bí·xàœ˜¸ÐmѦ§q-ËȦÈOӎ𕜵Òd‰_'Ò`:¿ÏÚÁ*mÞCF¾©‡æý‡ü~#g}yÿʧƯG.Oûõò×· ÿW³;’Ï&ŸÝx<y£ðm©QzÕ`ÖÄìo}÷ô‘ÚÚæ §.!¶÷ZÌÊõ[_W¦Ë¼6b×eo„—âÅÓyÍ„/ P{Šzļl(tˆÄ=lw˜i¬·'-õÙç屩õ·}2’b1‡ÒŽmkëÎ&I6ÿ‘f e´/=-“ŒÞ:õYû3Àñ•Ûx&vYˆ=Þ–š˜Šæ'Ÿ¨>wþdb -‰«â µ©;eÙ%š·"ËY¾p»Ë+ 罄†^âp ‚žÝuæßPˆðkŒp‘.Þå°ž=Ü>oØh/#ͯ ´d‘YX'1qÖ—…}ÌßÚ>?FÞôøšÂy^t¤GЦs½y¤ï#ëeÖlÿ2öGM/éÛed ÜA¾è žŸ²K»EV Bhýƒ‹ë†šûúüh&»¿ItµØ•ßc ¢U²2)4ßaá¯lRžùFCBf€ ¦y›±$dCÖF•¬^í|2оAÍ©„±x*^ÂÝ»íé¥xÅ?²ë¡éÚu£ŒÈm‚þ©‘¾Àëü1/ap ÞŠ]ãp1ûˆ9ù`#øšPÖ‚îtÓí|€¯‡ß9kA_À̳{~v$éN|»O»‰ˆ`'%V ì°Ï ¬!Jí`|Á%ø!ðmƒ@8³”ApŸÀŒ3¸pº Þ|” XNìÆ„]ÚHfÏ0öMÀ¾x¢ öþH_€=h„›Þ {ÛWhŒ6Ž `ýçâ2Æ8æÔò56ë+kƒý½ ï88Ü{ßa2Eýcàç endstream endobj 17 0 obj <>stream Thu -No-v T17: 1:0:24::1 Thu -No-v T17: 1:0:24::1 gnuplot 4.4 patchlevel 0 timings_best.epsgreggnuplot plot endstream endobj 2 0 obj <>endobj xref 0 18 0000000000 65535 f 0000009213 00000 n 0000015062 00000 n 0000009154 00000 n 0000009003 00000 n 0000000015 00000 n 0000008983 00000 n 0000009278 00000 n 0000009633 00000 n 0000010660 00000 n 0000009390 00000 n 0000010022 00000 n 0000009319 00000 n 0000009349 00000 n 0000010243 00000 n 0000011019 00000 n 0000009538 00000 n 0000013506 00000 n trailer << /Size 18 /Root 1 0 R /Info 2 0 R /ID [<25140987C074CA631DCE26DAC36D3303><25140987C074CA631DCE26DAC36D3303>] >> startxref 15283 %%EOF fastjet-3.0.6+dfsg.orig/doc/figs/timings_best_3_0_1.eps0000644000175000017500000007212711766120132021020 0ustar sunsun%!PS-Adobe-2.0 EPSF-2.0 %%Title: timings_best.eps %%Creator: gnuplot 4.4 patchlevel 0 %%CreationDate: Thu Nov 17 10:24:11 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 50 410 302 %%EndComments %%BeginProlog /gnudict 256 dict def gnudict begin % % The following true/false flags may be edited by hand if desired. % The unit line width and grayscale image gamma correction may also be changed. % /Color true def /Blacktext false def /Solid false def /Dashlength 1 def /Landscape false def /Level1 false def /Rounded false def /ClipToBoundingBox false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /Gamma 1.0 def % /vshift -73 def /dl1 { 10.0 Dashlength mul mul Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if } def /dl2 { 10.0 Dashlength mul mul Rounded { currentlinewidth 0.75 mul add } if } def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def Level1 {} { /SDict 10 dict def systemdict /pdfmark known not { userdict /pdfmark systemdict /cleartomark get put } if SDict begin [ /Title (timings_best.eps) /Subject (gnuplot plot) /Creator (gnuplot 4.4 patchlevel 0) /Author (greg) % /Producer (gnuplot) % /Keywords () /CreationDate (Thu Nov 17 10:24:11 2011) /DOCINFO pdfmark end } ifelse /doclip { ClipToBoundingBox { newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath clip } if } def % % Gnuplot Prolog Version 4.4 (January 2010) % %/SuppressPDFMark true def % /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /N {newpath moveto} bind def /Z {closepath} bind def /C {setrgbcolor} bind def /f {rlineto fill} bind def /Gshow {show} def % May be redefined later in the file to support UTF-8 /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow {currentpoint stroke M 0 vshift R Blacktext {gsave 0 setgray show grestore} {show} ifelse} def /Rshow {currentpoint stroke M dup stringwidth pop neg vshift R Blacktext {gsave 0 setgray show grestore} {show} ifelse} def /Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R Blacktext {gsave 0 setgray show grestore} {show} ifelse} def /UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def /DL {Color {setrgbcolor Solid {pop []} if 0 setdash} {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def /BL {stroke userlinewidth 2 mul setlinewidth Rounded {1 setlinejoin 1 setlinecap} if} def /AL {stroke userlinewidth 2 div setlinewidth Rounded {1 setlinejoin 1 setlinecap} if} def /UL {dup gnulinewidth mul /userlinewidth exch def dup 1 lt {pop 1} if 10 mul /udl exch def} def /PL {stroke userlinewidth setlinewidth Rounded {1 setlinejoin 1 setlinecap} if} def % Default Line colors /LCw {1 1 1} def /LCb {0 0 0} def /LCa {0 0 0} def /LC0 {1 0 0} def /LC1 {0 1 0} def /LC2 {0 0 1} def /LC3 {1 0 1} def /LC4 {0 1 1} def /LC5 {1 1 0} def /LC6 {0 0 0} def /LC7 {1 0.3 0} def /LC8 {0.5 0.5 0.5} def % Default Line Types /LTw {PL [] 1 setgray} def /LTb {BL [] LCb DL} def /LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def /LT0 {PL [] LC0 DL} def /LT1 {PL [4 dl1 2 dl2] LC1 DL} def /LT2 {PL [2 dl1 3 dl2] LC2 DL} def /LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def /LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def /LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def /LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def /LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def /LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def /Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def /Dia {stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke Pnt} def /Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke Pnt} def /Crs {stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke} def /TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke Pnt} def /Star {2 copy Pls Crs} def /BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath fill} def /TriUF {stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath fill} def /TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke Pnt} def /TriDF {stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath fill} def /DiaF {stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath fill} def /Pent {stroke [] 0 setdash 2 copy gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore Pnt} def /PentF {stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath fill grestore} def /Circle {stroke [] 0 setdash 2 copy hpt 0 360 arc stroke Pnt} def /CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def /C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def /C1 {BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill vpt 0 360 arc closepath} bind def /C2 {BL [] 0 setdash 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath} bind def /C3 {BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill vpt 0 360 arc closepath} bind def /C4 {BL [] 0 setdash 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc closepath} bind def /C5 {BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc 2 copy moveto 2 copy vpt 180 270 arc closepath fill vpt 0 360 arc} bind def /C6 {BL [] 0 setdash 2 copy moveto 2 copy vpt 90 270 arc closepath fill vpt 0 360 arc closepath} bind def /C7 {BL [] 0 setdash 2 copy moveto 2 copy vpt 0 270 arc closepath fill vpt 0 360 arc closepath} bind def /C8 {BL [] 0 setdash 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath} bind def /C9 {BL [] 0 setdash 2 copy moveto 2 copy vpt 270 450 arc closepath fill vpt 0 360 arc closepath} bind def /C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill 2 copy moveto 2 copy vpt 90 180 arc closepath fill vpt 0 360 arc closepath} bind def /C11 {BL [] 0 setdash 2 copy moveto 2 copy vpt 0 180 arc closepath fill 2 copy moveto 2 copy vpt 270 360 arc closepath fill vpt 0 360 arc closepath} bind def /C12 {BL [] 0 setdash 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath} bind def /C13 {BL [] 0 setdash 2 copy moveto 2 copy vpt 0 90 arc closepath fill 2 copy moveto 2 copy vpt 180 360 arc closepath fill vpt 0 360 arc closepath} bind def /C14 {BL [] 0 setdash 2 copy moveto 2 copy vpt 90 360 arc closepath fill vpt 0 360 arc} bind def /C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill vpt 0 360 arc closepath} bind def /Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath} bind def /Square {dup Rec} bind def /Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def /S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def /S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def /S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def /S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def /S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def /S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def /S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def /S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill 2 copy vpt Square fill Bsquare} bind def /S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def /S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def /S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def /S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def /S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def /S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy vpt Square fill Bsquare} bind def /S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def /S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def /D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def /D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def /D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def /D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def /D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def /D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def /D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def /D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def /D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def /D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def /D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def /D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def /D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def /D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def /D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def /D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def /DiaE {stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke} def /BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke} def /TriUE {stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke} def /TriDE {stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V closepath stroke} def /PentE {stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat closepath stroke grestore} def /CircE {stroke [] 0 setdash hpt 0 360 arc stroke} def /Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def /DiaW {stroke [] 0 setdash vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V Opaque stroke} def /BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V Opaque stroke} def /TriUW {stroke [] 0 setdash vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V Opaque stroke} def /TriDW {stroke [] 0 setdash vpt 1.12 mul sub M hpt neg vpt 1.62 mul V hpt 2 mul 0 V hpt neg vpt -1.62 mul V Opaque stroke} def /PentW {stroke [] 0 setdash gsave translate 0 hpt M 4 {72 rotate 0 hpt L} repeat Opaque stroke grestore} def /CircW {stroke [] 0 setdash hpt 0 360 arc Opaque stroke} def /BoxFill {gsave Rec 1 setgray fill grestore} def /Density { /Fillden exch def currentrgbcolor /ColB exch def /ColG exch def /ColR exch def /ColR ColR Fillden mul Fillden sub 1 add def /ColG ColG Fillden mul Fillden sub 1 add def /ColB ColB Fillden mul Fillden sub 1 add def ColR ColG ColB setrgbcolor} def /BoxColFill {gsave Rec PolyFill} def /PolyFill {gsave Density fill grestore grestore} def /h {rlineto rlineto rlineto gsave closepath fill grestore} bind def % % PostScript Level 1 Pattern Fill routine for rectangles % Usage: x y w h s a XX PatternFill % x,y = lower left corner of box to be filled % w,h = width and height of box % a = angle in degrees between lines and x-axis % XX = 0/1 for no/yes cross-hatch % /PatternFill {gsave /PFa [ 9 2 roll ] def PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec gsave 1 setgray fill grestore clip currentlinewidth 0.5 mul setlinewidth /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 0 0 M PFa 5 get rotate PFs -2 div dup translate 0 1 PFs PFa 4 get div 1 add floor cvi {PFa 4 get mul 0 M 0 PFs V} for 0 PFa 6 get ne { 0 1 PFs PFa 4 get div 1 add floor cvi {PFa 4 get mul 0 2 1 roll M PFs 0 V} for } if stroke grestore} def % /languagelevel where {pop languagelevel} {1} ifelse 2 lt {/InterpretLevel1 true def} {/InterpretLevel1 Level1 def} ifelse % % PostScript level 2 pattern fill definitions % /Level2PatternFill { /Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} bind def /KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def << Tile8x8 /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} >> matrix makepattern /Pat1 exch def << Tile8x8 /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} >> matrix makepattern /Pat2 exch def << Tile8x8 /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L 8 8 L 8 0 L 0 0 L fill} >> matrix makepattern /Pat3 exch def << Tile8x8 /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L 0 12 M 12 0 L stroke} >> matrix makepattern /Pat4 exch def << Tile8x8 /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L 0 -4 M 12 8 L stroke} >> matrix makepattern /Pat5 exch def << Tile8x8 /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L 0 12 M 8 -4 L 4 12 M 10 0 L stroke} >> matrix makepattern /Pat6 exch def << Tile8x8 /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} >> matrix makepattern /Pat7 exch def << Tile8x8 /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L 12 0 M -4 8 L 12 4 M 0 10 L stroke} >> matrix makepattern /Pat8 exch def << Tile8x8 /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L -4 0 M 12 8 L -4 4 M 8 10 L stroke} >> matrix makepattern /Pat9 exch def /Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def /Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def /Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def /Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def /Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def /Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def /Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def } def % % %End of PostScript Level 2 code % /PatternBgnd { TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse } def % % Substitute for Level 2 pattern fill codes with % grayscale if Level 2 support is not selected. % /Level1PatternFill { /Pattern1 {0.250 Density} bind def /Pattern2 {0.500 Density} bind def /Pattern3 {0.750 Density} bind def /Pattern4 {0.125 Density} bind def /Pattern5 {0.375 Density} bind def /Pattern6 {0.625 Density} bind def /Pattern7 {0.875 Density} bind def } def % % Now test for support of Level 2 code % Level1 {Level1PatternFill} {Level2PatternFill} ifelse % /Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall currentdict end definefont pop /MFshow { { dup 5 get 3 ge { 5 get 3 eq {gsave} {grestore} ifelse } {dup dup 0 get findfont exch 1 get scalefont setfont [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop pop aload pop M} ifelse }ifelse }ifelse } ifelse } forall} def /Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def /MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def /MLshow { currentpoint stroke M 0 exch R Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def /MRshow { currentpoint stroke M exch dup MFwidth neg 3 -1 roll R Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def /MCshow { currentpoint stroke M exch dup MFwidth -2 div 3 -1 roll R Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def /XYsave { [( ) 1 2 true false 3 ()] } bind def /XYrestore { [( ) 1 2 true false 4 ()] } bind def end %%EndProlog gnudict begin gsave doclip 50 50 translate 0.050 0.050 scale 0 setgray newpath (Helvetica) findfont 220 scalefont setfont 1.000 UL LTb 1.000 UL LTa 1078 704 M 5791 0 V stroke LTb 1078 704 M 63 0 V 5728 0 R -63 0 V stroke 946 704 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (-7)] ] -95.3 MRshow 1.000 UL LTb 1078 840 M 31 0 V 5760 0 R -31 0 V 1078 1020 M 31 0 V 5760 0 R -31 0 V -5760 92 R 31 0 V 5760 0 R -31 0 V stroke LTa 1078 1156 M 3814 0 V 1845 0 R 132 0 V stroke LTb 1078 1156 M 63 0 V 5728 0 R -63 0 V stroke 946 1156 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (-6)] ] -95.3 MRshow 1.000 UL LTb 1078 1292 M 31 0 V 5760 0 R -31 0 V 1078 1473 M 31 0 V 5760 0 R -31 0 V -5760 92 R 31 0 V 5760 0 R -31 0 V stroke LTa 1078 1609 M 3814 0 V 1845 0 R 132 0 V stroke LTb 1078 1609 M 63 0 V 5728 0 R -63 0 V stroke 946 1609 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (-5)] ] -95.3 MRshow 1.000 UL LTb 1078 1745 M 31 0 V 5760 0 R -31 0 V 1078 1925 M 31 0 V 5760 0 R -31 0 V -5760 92 R 31 0 V 5760 0 R -31 0 V stroke LTa 1078 2061 M 5791 0 V stroke LTb 1078 2061 M 63 0 V 5728 0 R -63 0 V stroke 946 2061 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (-4)] ] -95.3 MRshow 1.000 UL LTb 1078 2197 M 31 0 V 5760 0 R -31 0 V 1078 2377 M 31 0 V 5760 0 R -31 0 V -5760 92 R 31 0 V 5760 0 R -31 0 V stroke LTa 1078 2513 M 5791 0 V stroke LTb 1078 2513 M 63 0 V 5728 0 R -63 0 V stroke 946 2513 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (-3)] ] -95.3 MRshow 1.000 UL LTb 1078 2649 M 31 0 V 5760 0 R -31 0 V 1078 2830 M 31 0 V 5760 0 R -31 0 V -5760 92 R 31 0 V 5760 0 R -31 0 V stroke LTa 1078 2966 M 5791 0 V stroke LTb 1078 2966 M 63 0 V 5728 0 R -63 0 V stroke 946 2966 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (-2)] ] -95.3 MRshow 1.000 UL LTb 1078 3102 M 31 0 V 5760 0 R -31 0 V 1078 3282 M 31 0 V 5760 0 R -31 0 V -5760 92 R 31 0 V 5760 0 R -31 0 V stroke LTa 1078 3418 M 5791 0 V stroke LTb 1078 3418 M 63 0 V 5728 0 R -63 0 V stroke 946 3418 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (-1)] ] -95.3 MRshow 1.000 UL LTb 1078 3554 M 31 0 V 5760 0 R -31 0 V 1078 3734 M 31 0 V 5760 0 R -31 0 V -5760 92 R 31 0 V 5760 0 R -31 0 V stroke LTa 1078 3870 M 5791 0 V stroke LTb 1078 3870 M 63 0 V 5728 0 R -63 0 V stroke 946 3870 M [ [(Helvetica) 220.0 0.0 true true 0 ( 1 )] [(Helvetica) 176.0 110.0 true true 0 ()] ] -95.3 MRshow 1.000 UL LTb 1078 4006 M 31 0 V 5760 0 R -31 0 V 1078 4187 M 31 0 V 5760 0 R -31 0 V -5760 92 R 31 0 V 5760 0 R -31 0 V stroke LTa 1078 4323 M 5791 0 V stroke LTb 1078 4323 M 63 0 V 5728 0 R -63 0 V stroke 946 4323 M [ [(Helvetica) 220.0 0.0 true true 0 (10 )] [(Helvetica) 176.0 110.0 true true 0 ()] ] -95.3 MRshow 1.000 UL LTb 1078 4459 M 31 0 V 5760 0 R -31 0 V 1078 4639 M 31 0 V 5760 0 R -31 0 V -5760 92 R 31 0 V 5760 0 R -31 0 V stroke LTa 1078 4775 M 5791 0 V stroke LTb 1078 4775 M 63 0 V 5728 0 R -63 0 V stroke 946 4775 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (2)] ] -95.3 MRshow 1.000 UL LTb 1.000 UL LTa 1078 704 M 0 4071 V stroke LTb 1078 704 M 0 63 V 0 4008 R 0 -63 V stroke 1078 484 M [ [(Helvetica) 220.0 0.0 true true 0 ( 1 )] [(Helvetica) 176.0 110.0 true true 0 ()] ] -95.3 MCshow 1.000 UL LTb 1327 704 M 0 31 V 0 4040 R 0 -31 V 1656 704 M 0 31 V 0 4040 R 0 -31 V 1825 704 M 0 31 V 0 4040 R 0 -31 V stroke LTa 1905 704 M 0 4071 V stroke LTb 1905 704 M 0 63 V 0 4008 R 0 -63 V stroke 1905 484 M [ [(Helvetica) 220.0 0.0 true true 0 (10 )] [(Helvetica) 176.0 110.0 true true 0 ()] ] -95.3 MCshow 1.000 UL LTb 2154 704 M 0 31 V 0 4040 R 0 -31 V 2484 704 M 0 31 V 0 4040 R 0 -31 V 2652 704 M 0 31 V 0 4040 R 0 -31 V stroke LTa 2733 704 M 0 4071 V stroke LTb 2733 704 M 0 63 V 0 4008 R 0 -63 V stroke 2733 484 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (2)] ] -95.3 MCshow 1.000 UL LTb 2982 704 M 0 31 V 0 4040 R 0 -31 V 3311 704 M 0 31 V 0 4040 R 0 -31 V 3480 704 M 0 31 V 0 4040 R 0 -31 V stroke LTa 3560 704 M 0 4071 V stroke LTb 3560 704 M 0 63 V 0 4008 R 0 -63 V stroke 3560 484 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (3)] ] -95.3 MCshow 1.000 UL LTb 3809 704 M 0 31 V 0 4040 R 0 -31 V 4138 704 M 0 31 V 0 4040 R 0 -31 V 4307 704 M 0 31 V 0 4040 R 0 -31 V stroke LTa 4387 704 M 0 4071 V stroke LTb 4387 704 M 0 63 V 0 4008 R 0 -63 V stroke 4387 484 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (4)] ] -95.3 MCshow 1.000 UL LTb 4636 704 M 0 31 V 0 4040 R 0 -31 V 4965 704 M 0 31 V 0 4040 R 0 -31 V 5134 704 M 0 31 V 0 4040 R 0 -31 V stroke LTa 5214 704 M 0 63 V 0 1166 R 0 2842 V stroke LTb 5214 704 M 0 63 V 0 4008 R 0 -63 V stroke 5214 484 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (5)] ] -95.3 MCshow 1.000 UL LTb 5463 704 M 0 31 V 0 4040 R 0 -31 V 5793 704 M 0 31 V 0 4040 R 0 -31 V 5962 704 M 0 31 V 0 4040 R 0 -31 V stroke LTa 6042 704 M 0 63 V 0 1166 R 0 2842 V stroke LTb 6042 704 M 0 63 V 0 4008 R 0 -63 V stroke 6042 484 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (6)] ] -95.3 MCshow 1.000 UL LTb 6291 704 M 0 31 V 0 4040 R 0 -31 V 6620 704 M 0 31 V 0 4040 R 0 -31 V 6789 704 M 0 31 V 0 4040 R 0 -31 V stroke LTa 6869 704 M 0 4071 V stroke LTb 6869 704 M 0 63 V 0 4008 R 0 -63 V stroke 6869 484 M [ [(Helvetica) 220.0 0.0 true true 0 (10)] [(Helvetica) 176.0 110.0 true true 0 (7)] ] -95.3 MCshow 1.000 UL LTb 1.000 UL LTb 1078 4775 N 0 -4071 V 5791 0 V 0 4071 V -5791 0 V Z stroke LCb setrgbcolor 308 2739 M currentpoint gsave translate -270 rotate 0 0 moveto [ [(Helvetica) 220.0 0.0 true true 0 (time \(s\))] ] -73.3 MCshow grestore LTb LCb setrgbcolor 3973 154 M [ [(Helvetica) 220.0 0.0 true true 0 (N)] ] -73.3 MCshow LTb 1.000 UP 1281 4063 M [ [(Helvetica) 176.0 0.0 true true 0 (R=0.7)] ] -73.3 MLshow 5.000 UL LT0 1.00 1.00 1.00 C 1905 3950 M 0 755 V stroke LT0 1.00 1.00 1.00 C 1172 4323 M 1231 0 V stroke 1.000 UL LTb 1.500 UL LTb 4892 767 N 0 1166 V 1845 0 V 0 -1166 V -1845 0 V Z stroke 4892 1933 M 1845 0 V % Begin plot #1 1.000 UP stroke 2.000 UL LT0 LC6 setrgbcolor LCb setrgbcolor 5882 1746 M [ [(Helvetica) 220.0 0.0 true true 0 (anti-k)] [(Helvetica) 176.0 -66.0 true true 0 (t)] ] -51.3 MRshow LT0 LC6 setrgbcolor 6014 1746 M 591 0 V 1078 1089 M 249 71 V 146 56 V 103 65 V 80 25 V 249 177 V 146 105 V 103 66 V 80 63 V 66 62 V 55 49 V 48 30 V 43 13 V 38 14 V 65 30 V 55 29 V 48 30 V 62 30 V 271 174 V 158 114 V 112 80 V 87 73 V 71 49 V 59 36 V 54 37 V 47 35 V 43 32 V 38 27 V 35 21 V 32 25 V 83 68 V 90 70 V 74 66 V 76 64 V 86 84 V 81 82 V 83 87 V 80 83 V 83 88 V 80 88 V 81 95 V 81 101 V 82 105 V 81 114 V 83 110 V 83 50 V 82 60 V 83 60 V 84 64 V 85 64 V 84 63 V 85 64 V 86 67 V 87 58 V 89 66 V 90 64 V 91 69 V 19 14 V 1078 1089 CircleF 1327 1160 CircleF 1473 1216 CircleF 1576 1281 CircleF 1656 1306 CircleF 1905 1483 CircleF 2051 1588 CircleF 2154 1654 CircleF 2234 1717 CircleF 2300 1779 CircleF 2355 1828 CircleF 2403 1858 CircleF 2446 1871 CircleF 2484 1885 CircleF 2549 1915 CircleF 2604 1944 CircleF 2652 1974 CircleF 2714 2004 CircleF 2985 2178 CircleF 3143 2292 CircleF 3255 2372 CircleF 3342 2445 CircleF 3413 2494 CircleF 3472 2530 CircleF 3526 2567 CircleF 3573 2602 CircleF 3616 2634 CircleF 3654 2661 CircleF 3689 2682 CircleF 3721 2707 CircleF 3804 2775 CircleF 3894 2845 CircleF 3968 2911 CircleF 4044 2975 CircleF 4130 3059 CircleF 4211 3141 CircleF 4294 3228 CircleF 4374 3311 CircleF 4457 3399 CircleF 4537 3487 CircleF 4618 3582 CircleF 4699 3683 CircleF 4781 3788 CircleF 4862 3902 CircleF 4945 4012 CircleF 5028 4062 CircleF 5110 4122 CircleF 5193 4182 CircleF 5277 4246 CircleF 5362 4310 CircleF 5446 4373 CircleF 5531 4437 CircleF 5617 4504 CircleF 5704 4562 CircleF 5793 4628 CircleF 5883 4692 CircleF 5974 4761 CircleF 6309 1746 CircleF % End plot #1 % Begin plot #2 1.000 UP 2.000 UL LT0 LC0 setrgbcolor LCb setrgbcolor 5882 1482 M [ [(Helvetica) 220.0 0.0 true true 0 (k)] [(Helvetica) 176.0 -66.0 true true 0 (t)] ] -51.3 MRshow LT0 LC0 setrgbcolor 6014 1482 M 591 0 V 1078 1085 M 249 71 V 146 64 V 103 66 V 80 20 V 249 161 V 146 98 V 103 93 V 80 62 V 66 54 V 55 48 V 48 34 V 43 22 V 38 14 V 65 31 V 55 29 V 48 31 V 62 30 V 271 177 V 158 117 V 112 77 V 87 65 V 71 54 V 59 37 V 54 36 V 47 36 V 43 31 V 38 30 V 35 26 V 32 23 V 83 70 V 90 74 V 74 65 V 76 67 V 86 91 V 81 86 V 83 88 V 80 90 V 83 92 V 80 93 V 81 93 V 81 98 V 82 -31 V 81 47 V 83 50 V 83 52 V 82 50 V 83 52 V 84 52 V 85 55 V 84 50 V 85 53 V 86 53 V 87 52 V 89 55 V 90 53 V 91 55 V 93 53 V 95 58 V 98 56 V 100 61 V 103 64 V 95 56 V 1078 1085 BoxF 1327 1156 BoxF 1473 1220 BoxF 1576 1286 BoxF 1656 1306 BoxF 1905 1467 BoxF 2051 1565 BoxF 2154 1658 BoxF 2234 1720 BoxF 2300 1774 BoxF 2355 1822 BoxF 2403 1856 BoxF 2446 1878 BoxF 2484 1892 BoxF 2549 1923 BoxF 2604 1952 BoxF 2652 1983 BoxF 2714 2013 BoxF 2985 2190 BoxF 3143 2307 BoxF 3255 2384 BoxF 3342 2449 BoxF 3413 2503 BoxF 3472 2540 BoxF 3526 2576 BoxF 3573 2612 BoxF 3616 2643 BoxF 3654 2673 BoxF 3689 2699 BoxF 3721 2722 BoxF 3804 2792 BoxF 3894 2866 BoxF 3968 2931 BoxF 4044 2998 BoxF 4130 3089 BoxF 4211 3175 BoxF 4294 3263 BoxF 4374 3353 BoxF 4457 3445 BoxF 4537 3538 BoxF 4618 3631 BoxF 4699 3729 BoxF 4781 3698 BoxF 4862 3745 BoxF 4945 3795 BoxF 5028 3847 BoxF 5110 3897 BoxF 5193 3949 BoxF 5277 4001 BoxF 5362 4056 BoxF 5446 4106 BoxF 5531 4159 BoxF 5617 4212 BoxF 5704 4264 BoxF 5793 4319 BoxF 5883 4372 BoxF 5974 4427 BoxF 6067 4480 BoxF 6162 4538 BoxF 6260 4594 BoxF 6360 4655 BoxF 6463 4719 BoxF 6309 1482 BoxF % End plot #2 % Begin plot #3 1.500 UP 2.000 UL LT0 LC2 setrgbcolor LCb setrgbcolor 5882 1218 M [ [(Helvetica) 220.0 0.0 true true 0 (C/A)] ] -73.3 MRshow LT0 LC2 setrgbcolor 6014 1218 M 591 0 V 1078 1083 M 249 78 V 146 60 V 103 65 V 80 18 V 249 179 V 146 98 V 103 76 V 80 65 V 66 56 V 55 48 V 48 30 V 43 21 V 38 13 V 65 30 V 55 25 V 48 31 V 62 29 V 271 175 V 158 116 V 112 82 V 87 74 V 71 53 V 59 39 V 54 35 V 47 37 V 43 30 V 38 30 V 35 24 V 32 25 V 83 68 V 90 80 V 74 65 V 76 69 V 86 89 V 81 87 V 83 89 V 80 90 V 83 93 V 80 -8 V 81 50 V 81 52 V 82 56 V 81 59 V 83 59 V 83 61 V 82 61 V 83 56 V 84 58 V 85 54 V 84 56 V 85 54 V 86 57 V 87 52 V 89 54 V 90 55 V 91 55 V 93 57 V 95 56 V 98 58 V 100 58 V 103 62 V 110 67 V 1078 1083 Pls 1327 1161 Pls 1473 1221 Pls 1576 1286 Pls 1656 1304 Pls 1905 1483 Pls 2051 1581 Pls 2154 1657 Pls 2234 1722 Pls 2300 1778 Pls 2355 1826 Pls 2403 1856 Pls 2446 1877 Pls 2484 1890 Pls 2549 1920 Pls 2604 1945 Pls 2652 1976 Pls 2714 2005 Pls 2985 2180 Pls 3143 2296 Pls 3255 2378 Pls 3342 2452 Pls 3413 2505 Pls 3472 2544 Pls 3526 2579 Pls 3573 2616 Pls 3616 2646 Pls 3654 2676 Pls 3689 2700 Pls 3721 2725 Pls 3804 2793 Pls 3894 2873 Pls 3968 2938 Pls 4044 3007 Pls 4130 3096 Pls 4211 3183 Pls 4294 3272 Pls 4374 3362 Pls 4457 3455 Pls 4537 3447 Pls 4618 3497 Pls 4699 3549 Pls 4781 3605 Pls 4862 3664 Pls 4945 3723 Pls 5028 3784 Pls 5110 3845 Pls 5193 3901 Pls 5277 3959 Pls 5362 4013 Pls 5446 4069 Pls 5531 4123 Pls 5617 4180 Pls 5704 4232 Pls 5793 4286 Pls 5883 4341 Pls 5974 4396 Pls 6067 4453 Pls 6162 4509 Pls 6260 4567 Pls 6360 4625 Pls 6463 4687 Pls 6573 4754 Pls 6309 1218 Pls % End plot #3 % Begin plot #4 1.500 UP 2.000 UL LT0 0.50 0.50 0.50 C LCb setrgbcolor 5882 954 M [ [(Helvetica) 220.0 0.0 true true 0 (SISCone)] ] -73.3 MRshow LT0 0.50 0.50 0.50 C 6014 954 M 591 0 V 1078 1445 M 249 105 V 146 84 V 103 66 V 80 52 V 249 172 V 146 130 V 103 93 V 80 68 V 66 46 V 55 73 V 48 38 V 43 37 V 38 24 V 65 33 V 55 28 V 48 54 V 62 38 V 271 220 V 158 161 V 112 101 V 87 100 V 71 78 V 59 51 V 54 58 V 47 50 V 43 46 V 38 41 V 35 37 V 32 36 V 83 107 V 90 112 V 74 92 V 76 92 V 86 103 V 81 95 V 83 96 V 80 93 V 83 96 V 80 97 V 81 92 V 81 99 V 1078 1445 TriUF 1327 1550 TriUF 1473 1634 TriUF 1576 1700 TriUF 1656 1752 TriUF 1905 1924 TriUF 2051 2054 TriUF 2154 2147 TriUF 2234 2215 TriUF 2300 2261 TriUF 2355 2334 TriUF 2403 2372 TriUF 2446 2409 TriUF 2484 2433 TriUF 2549 2466 TriUF 2604 2494 TriUF 2652 2548 TriUF 2714 2586 TriUF 2985 2806 TriUF 3143 2967 TriUF 3255 3068 TriUF 3342 3168 TriUF 3413 3246 TriUF 3472 3297 TriUF 3526 3355 TriUF 3573 3405 TriUF 3616 3451 TriUF 3654 3492 TriUF 3689 3529 TriUF 3721 3565 TriUF 3804 3672 TriUF 3894 3784 TriUF 3968 3876 TriUF 4044 3968 TriUF 4130 4071 TriUF 4211 4166 TriUF 4294 4262 TriUF 4374 4355 TriUF 4457 4451 TriUF 4537 4548 TriUF 4618 4640 TriUF 4699 4739 TriUF 6309 954 TriUF % End plot #4 1.000 UL LTb 1078 4775 N 0 -4071 V 5791 0 V 0 4071 V -5791 0 V Z stroke 1.000 UP 1281 4551 M [ [(Helvetica) 176.0 0.0 true true 0 (Intel)] [(Symbol) 176.0 0.0 true true 0 (\342)] [(Helvetica) 176.0 0.0 true true 0 ( i5 760)] ] -73.3 MLshow 1281 4307 M [ [(Helvetica) 176.0 0.0 true true 0 (FastJet 3.0.1)] ] -73.3 MLshow 1.000 UL LTb stroke grestore end showpage fastjet-3.0.6+dfsg.orig/doc/figs/ghost-extent-y4.pdf0000644000175000017500000011233311766120132020407 0ustar sunsun%PDF-1.4 %Çì¢ 5 0 obj <> stream xœÜ½»²åº²%æï¯([F‰xàtD›-SÑVµtÛÐ2Ômôï‹9 Ϋs÷¶9ãÄ>Å1“H,¾€D>þß_Çïòëˆÿéß??ýïÿeþú·ÿù×ñ{2Îúëÿð?þí¯µÎßåº~µ¾~¯£üj×uüj¥÷_ÿãÿúëÿþßnö¨W½fÊ1úüU‚V{_¿êšýwýõ#t–ë÷1~ÕÚËïrÿÛK½¥åZ§ÿüUf‹ÞS8jO"Û¼Ï ÔJ½~·[$Zkít›:þó—;ÔPÆÄ§žb<ׯÿõÿNãÄpþËzé`þû_ÿÇ_%ÆÿîkÒg[ÑÞÙûïuĸ­ë÷9~õÑ º/«Þò^'z'úóW?jâü¡­ÒdC¶ýç/ãu]¿¯»m‘k9ÎݶÐݶº¶XŠ™ü¡÷Þu«÷°q+ßWè[†×ìÿüu?mç¯ÿÿ÷ßþê÷µû_÷uüÏ÷]ùŸþ •Ú½xþmµ»ÿðÿ ÿzÿUþ›nåÿü/H}Ô_‚õïÃßò¿VÍ=\õØ*ø;ux²UñÙrª°[úûîK¿Ÿ­º5þ;%’b=œÏVR›VÿA¡«\uý­2<=UñùOþVc·ö÷JÜ/Œõü«ÿ"I±*Îg+©ÎG«ÿ ÐUæïþPˆøo2%ÚœÏV¶BÏVÿ^¡ÖËùûÜ ÿBI±BÎg+©ÐG«ÿ Ðˆ»÷µþéïóIè¥áì×À³ÅÚÿáo³Öú}U-'úUù׫òïx¶øªÜ/âuŸÂ† þcEþÕéVã“ýhퟕX7åt«£Ä¿8=•ø`?ZûG%j[ña«ÿ±ÿêt+ñÉ~´öÏJ¬åñðoøw§fç^¶ò·¶FÇàožqz>ìGkÿ¬ÄŠ™™·8ü»‡óóÔýXn^¶ò÷¶bÚÁö þãÎÿÕéVà“ýhퟕXËOÿFwjvþàe+ÿرߩã1Áø›ÎÿÕéVà“ýh-•x¾Uûuµ¸3J‹³ï5Ï?Š_ÿöWëýŠ÷J­/râú»Ü‹¨ÞÛï~´–]c./tÏ0{]¿¯²Åµ=¨ÑÎ tÓÏX¢™Ö+Þ'j(Îu§K%“Ÿc’Í¿þû‡“ê6gWÌYÝ÷ý¼{™Gñ˜+.æyàݽ÷G"ôµxÅj.ɆWå¹B÷1neQï¥qü¬–‰þü•KœJ’üÐäýƒÀšt–²Ÿ·ŸïùÚÝK™ÑL\Eü\NN® ×Éçu@_ WÇk[TC´g ßK°[ÁMnñ½UË8޵º»¥ÐJ‰ú¡3.Æ7 ƒ—cĬ^­a¶š¸ž¿[Œ£Ïßë |Üœ÷iB0q´8-Å5Þƒ›,ˆ¶ãlốê˜Ücî‘mw.w×K1“Ÿzë’|ÇPâ²ÜïËŠ§lN’ŒO<‹µŒoÀø9Ì =Ö¤Bî³{ÁûÓâûsº©h7ÎZx„7-fç»U 8×J,•L~jŒ òþAðRq1ïo|Á„j‹§°WçÛï~xïkx`V!t÷v¬ƒïN‰aœÛdÁ»å8×hÅ#¼©=~Ζ;Í{»cŠSI’:ëR¼}xY­«…é³bÙ„ãŠÖPÇÝÐ}!ã[óŠW&Ñýü­Y²Åg,Å7Y°á地Mí–;µÜùõÛKLEµ¶|=½Vy<GoG]W…Ý'ñýqºâ.høðÔ»‹ÔÅ£¸ÄŸ+ J|Ê6IðÒŸøŠG4©×O#[åqœ«-´z¢>µåðêðS=ùU¹¿í¸‰Œï‰îŸ¨Óãó5ôùâ·mà1”ˆ[ÒÑ*¾UÄ÷?'Q?‹jwø«éN%–J&?5ÖGúíƒøï4ŸàEÖþEó ñyÅóvÃÂÊŸôÚøR$º/}»ŸR,o$>˃ 09qºï¶û1Ý´ëØmÞÇqž;„HʘöÔ•Ï‹ÕÇŸ]øx:`@º?OxP/~ËÇ=ÛųŠç‹èîkMN!,ž˜]$Yðn絪wƒ¨Ø¶É–âlw,±Ô2yëÌ‹ðúA`e]+&¯í¨´ßÏ>üµpæ{3iÀ³Dt/ï· æÍ— ¦É‚lû>;ñ…YƒÉ­Œøè©m¢h[][lEE~êÍõõ— å¿ÃÆW+^qçOxàâß BÌ‚o÷F–ªÑŸûìsh‹ïf6•àäWLhâžÙ´wI¶:9õÞJ,•L~jL Ôë—Õ}y~õ³`¿ãGpôß±]ãÂÞ/¹Þ÷µîqØ©c¿ÿÀ .O(WLð’/¨Öcy£î©b Âôûm»¸n_0Ú—y”5û¡9ßYß2̧®†¯·é„Æ…å~,ûcf|¿øbFpaê-tO®ûµój‹>–& ¢å8[x6,÷“ŒÙx¶ g»k‰¡–©[cΦ^>^†ÑbaÐŽFt+¦°«sRz̽n.Ö/D0^¨aqÅâ'É‚§fy‰'ŒaIž1‹É¶§ <ÙµÄTRÔ­±.û‡À)í7B¿òáÖK'æañtéém þ!3ïv¿¯ò8áœv€+mB=š"ŽCÏ-[6üó—»Þ'HUó?4× ÷kFà o0Î…M÷âEˆ•$'ƒa7ºû›÷¶IŠçºð‰Ù°`®hT9ÝKjådP-WÏݱÄRKä‡Îšð¾}˜ðö#6£V]r”Êâ•Öõãfááp_ϸÕ|«¼ÅxG&ÛpénñoT³»îÜfSŸýC>µå<÷Ý#àóÎy¿Ê²sQ¯¼•VÃ;.ZÀâèŒ/Q\ð{©/W‹OxW%YpáÀ`âÝ7©ñJ0 µ-ç«sýbÝÄèM‹Ç7ŒƒÛE±¡úkô•úÙ?Ôß%æcÂYç¼_R3æl†±=rÂKhŸ0b°ù‚—çëú!œlWlR’>ïi\LRÔ¾!6*¡À>ú%ÿCí }Ù˜p¡îί:à¯ðc$g†~¯dB¯A_‡~bs‹èî­ßS‚xñZ< -Å" ¢eœ-LKf’éûà¶âlw-1•ukÌëòò!pgû¤Å·/šrØcÖàUk“µNëq£™ñÆÜß²¸a÷+Ɇ4a&™$ŸûËjû,Ú~v×K1“ŸzkŸû;†‚§cÐîÕF;l|`š×/ZàÛáWWå‹Ð¾hø§hbO i†Z‚ß+ª˜â™Úï%UÏv‰âlu*±UùCc>¯/ÅŒè¬txÎW<¬ã>Ä1[¿–6Ëüü&·‘Xãži¿ggÂû£s\œÁå <ó WnÏû‡Ri|&{•å¦ã0øØ/ÒQ”Où9~ÿ( ÓŽ_µ,‡óÉ´TîÒz›–‚]¢ðå:¸Kcñm˜$ .ôË5Éô>uÛ—CzܵÄPËÔ­±aÞ=} Ÿªü¢wÑ[0ø¢-ã{ÆðA aµÜTÁ‘ß4aÕD>‡Û=õMS—X=ÓÚú“üâ൦ùûVJ㆙ñý‚脇‘ çƒO¨Öq>˜Üß5=²bûWí ÆùR O€²f?4·cÔwŒ…ûÜxµ£jÏ%1·M"¥HX¡Ž‚M•ŽW«PlWUÜ')® “ µçbܸm’äŽM·Ýµç’]K,ÅL~ê­ýîï MáË'ÍÆB±Í7<¸3«°¥C"™Þ±;)1ó¬%Yð¤ÁØÑÍ› 7ºlYNu»c‰­¤È[g™¿ß>|Ô&Xazâ¯ÂØlœÂOôcögxÄú¿‰<)–’Oèöã|ý°ðК~•Ž'ZíF–T*°OÂâêÏïü·‰&‘ŽéÀÙ™˜rc%¾èœKœÈŠÉGã(û•3 *f'I2T4£±³e˜ªühõt,£;”Pê˜úÔVÖ7€®ž˜lDbxK 1#FëÇ‘ÐGYæªQx@NĬ§x>©S­â</&ô1©gî¶j¯JuÙ•öMê‘üÐVΞïUŸAÇ+¶½ë,Œ¸J|4FêN8—ÔóB7u¨NÑ´'\SR<.E,œ_n<l+ò¬1ësÛDq¶º¶ØŠŠüÔ[AÇß1†Í°–”‰x+žºÆÉÚ©ŒÉœPDDq²—bL7Y°LžKt¯Jã‘MjCÖW· „(.u,1”2ÕÚ*bì­ÊÓur-ڹ˒¸5™ã·ü*le02Æq˜^èZ'¼î6M°s?dcš ’::íölwÈ3?;•Ø*ŠüÔXV©·‚+óÈÞ.ºÚá˜Yöàlu¤GÏ ƒ›?uЄ™bØ77Y‰ô6Âd.©9øÜrWоìØb*(ªµÕZü­ÊÓkãB´^LªàÇ•˜Á ¼„…¶ùnˆH@"¸'0PÐb¸Wo²¡"IŒ ÃAL¡"j›(ÎV×K1“ŸzËã;†‚ËÒáþê7>ׯsÈoîâ×t¢«<ŽpÞ9o€¨]ÀbКÐÅÍÅ$]ØNt‹À»;‰¥ŒÉO]y)^¬¾ò Åpý­$ƒŽ¶Là‡+î€êÙcêÔË>š3™g’+6¾”$@ä†ÏšÛn ÛÙ]KL%EÝ;ÏÁ«‡€ï„ya Ÿæ÷gÒ9½(!Ï„ïºP5Óµ=ÅMU(D6Ô~¢p¤mˆGÕä‹é‚ÔöålBîÚb*–ä§ÞüJ|ÉPäWÿÚÑè‰ Ð¼Ýèð ×x†ê¸Ûâã´f¨èœ|ÂÑ~Éoû· •žØ¤ž RÛgF ¹óóÆØÎÇ„¤ž4ä4ÄvJTQ *i‚2ì'fF€Me1·«t»S‰¥’ÉOe‘zû ”AF½m|ÈzÉ<«÷]] Y ï™"“»BÔâ‹e’€ÞD}p6nÒ(øpªÅ¡w@v'±”1ù©«ó!¼V}&½È8…L?<î4Àß+Cµ®Ž ZÅN¡Päpkøh¥{…›,8htÒzŸÔöz·|*>1;–x<©#[E–»·*ÏåÞ×X;ìñK\/:ï® ™\nŒYöÁ#¸À!yŒH·ºI„ípæháBÇ]S#EuW«<ŽsÕ¡„VOÔmµØ{óx .XlW—{‘q£§ÐµhÄ]˜DÌÉ£XPž´Sp6Z?EÔžIâA¡¤.ˆÐê{Qv(¡Ô1õ©­.Á›ÀOñDB=_ûÙ¸T~Ž"ö%®é1c#¤ó{$'ïÆá»$Ázèf<õ•ñlµ5}ÁÜ¡„VOÔ§¶ú ¿yš˜bâË0°Ÿ&Æ¥;¾Av’º.âå™Zå'Iâ:T€S^'DŒ-Û´ùhs²Ew‘”1í©«§¤¯UŸË5øF‚Åð‡Žà¥X¶Ð»°»ß ÷BÃHÀCÇÆ‰ëÁ˜“áИmWzï®%–b&?õVÔÄw …¹¢°œ+óP±`á±4¿úÁõÝ ¬-Xß ¡X0-ÇcŹɄl;ÎfPM’gYÙò,TàŒÇñ(2©'EçbÅ7Ñ §vWŒ·H’Š©lwi%;•X*‰ü¡±Ê²½}Œ2Åo¥t*ÝØÉFxe‹éDПP¸±Q‹”MrB~&1¹T¦aÛDáG¯®-–b"è­ˆÓ ¸¿˜z*^áuô{BHžÄÄUŸHk•dCî©'®]ÙÄDn1›Ï¶÷ëw×K1“ŸzË¿ü;†‚}e’)Ö¹*÷ENf“ìˆßèu°°¢9úÝ÷~%V­Q“)’¸un©˜ÜÝr?p¦»… ™´uåGþµÊ3Gsƒ‡à5X9vcXzëªt/Œ oX/™ù ³r,o£d“Ä»¸ȆÚ0>a&Þä ×·=µ ]K,ÅL~ê­LÍß1n¯–ÅßäpjÜé3zF³ÜÕ=I‡m×ůjlyAüpCŠEN¨ÂZO¶i2 GeÛª+µ»–ØŠÒáôCoí®~ÇPô¡GBŠ6YË#ñÉÝÂØeSW;±Ð'¹j¤/\ØØ,nëA˜Z/-n2&ma[Ñ­.†zîN%–J&?5ö—ýåƒP5mj-&:‘ÓP{ºT¤ÉA N5Bº1T®Nqi*ÎkÚ°ŠX“¬$Û\t*Ý]J,…LÞÚ:eÚkÕ—Ù›LeLÛ„95€àÚ5Cö೤hœÆ ŠûxP ”ü•H¥ÿ’Æbnu*õkv*±T2ù©± &/³8Ÿ'_ktÈNÌÌ…7<˜É¨‡OÂh|2uqJ„¢~·‘NLŽK­³Ý]ç‘Ev;Kúè™vËóJØè8bªàåRAÄ‘Ð~/"#=ŒZæ1öm•ç¥J%õ©³6“Þ? %â‚ǃ¶ÄˆªcÿUñª G[#‹•jeAtª€Ÿh‚Í)„»R˜J'G·Ûµ)–J …Lݺ: ×K•ç7aáMeë3аíy1aÑ qyÂ+/½ÆYÇìA<ÓöL6yʸ̶gÚžÕµÄPËÔ­±¾ï'©ë£V×ì.и&'hëÀ3¡ó‰§ŠHQáß`ñ@†Î$²eœMN¼×¯$Ÿ,@®¶O×'w×CIS·Æš¢¾{L¿r¢^wøiþ<3CÎÁÞçDÞÈ9ªUé#%l()žTCž+t1/¤©‘˶ª]£63;µP*™ºõUú•7€{Û-Bb\„xGeÔ63¶3V(#ž wË7ÄÔ$[pñ\€X)"€@Ô{ x´,g«ãS¯d§Îr/xù¸º„LN+ŸÌ 2Wa>–‰Cæ„O9Qìž“Ù\$>±L²à”ñbZ‘$/$qÛ‹‹ÝµÄRÌä§ÞÚFýŽ¡èù@–©³3Ídâ¶^09Ïmðt8áæ#„[¦r‚-q*@g$•РDÒ|Üê`¬ÓîTb©dòSc? /“¥õ×\ Ó b0c‡÷þèÌÎú˜ýÔU™R^«=× ÈQ,ì?Wd©Q7l÷Â/vï`†o•»ˆ‹§P´$ñ‰zWÍ‘`XÏmÂÏî†2ÅQ‘?tÕZá½êsóóŠkº( ìé÷7¾^˜qÍ{y‡Š K±ÆVßÄŒmŸp"%qò Õ:¶/Ý\¨ª`úbD¡Û_9Lò„ëɾžmc/ôKÆÂïj ·ˆñ‚Ëq9éûÃâÃ7Þ†q¯?Ö;–Iâ7I°*§Žq+t2µ…½E­¶éW°:”Pê˜úÔV߆7€%s‹õ 2Ä‘^VvæÝYX”† Da6¹[FÞ‰+rS$™mÇÙÆK IŽš1g¶MD“>$¶¢"?õ–eé;†ÂB07Eî_äá*MÉt¦ÒÃJÒ`Š|9½*-1Åm>¨•Øy¼˜HÇ$W’c›2>î.%¶z"om•Dè½ê3³xø¢Ÿ‡ õ@á ¶öÅtÌ7†%~!3PÉ0ÿsŠ‘èn“ Ù2Î&.´¶›|"-ºÛ&гյÅPÒÔ­±r‹¿{Lňçèì]Ÿ;ÿÐ&>X7DìQ¬-ã{VžJÃpK,{Ú'”ú`è;aÀHº÷‘‰÷}_2·,g«ë<š%ÿCs%aüšÑðépª©ÎFb¬”"o·Ê„#Üp#ПÇâoŸ$ :IâKwŠÈM™Âضó‘d×[Q‘ŸzëYùŽ¡È_“HôÈjKÆ ï?EŸ¢†Æn¯_~È,^ƒC’òUøVÎüÒ–Ýrçš»íåWª$Ú‡Æv]~ù ü; ûgy‡ÄÙtj¸¸G0÷8áUY †±®P$Ũ³É‚Ë1·ÆÄÙäH¯î–YÌ4»…È*ŠöÔXAÀo0QR§Jµº±ªZ±OlH˜Wy ÏBz3PÅî“DÀt¨Bãt<º\+XcK-*ÑêîNb)còSW9^¾W}¾”b÷èXª„,ÄRÆ‘$ °Áôtþ'Â3ÇÜ+JÁdCEÉ –26¹` µ TÅ][ µLÝë•ôî!p>U‘Á# ˆpë|ÎÊ¥œ+ë7g¿O#ähÊØq”.î›lعŠÙxñA5y𬶇_ÙîZb+*òSoM¦¾c(ª®Î‘æ—öÍüÁ…©á×ßkŸ^áÕЫÊR#˜€xS%EÈù»ýCX„£0€™ƒ3I7;<ÕÌ>}‚42ÿSc—×~û(˜;³ÂD‰‡fmúê˜W´u,Úm”²èž9³ôÅó‚É •?Ú˜ó‡Mîe·ÜYŠÔÝB…LÚº*[æ[•g®‚JÀUiM3žLY‹]Ã_ …{pAù‡]Ç'.µIK»1BÌ™¤ ¡´nñÒ~Lv'±•ù©«2¼W}Ýù ß–³øö!]7ÐdÐ2ß9‰p5†üQ%ùú&žÅ7ð¥Hä9vËsðR·YEÑžû xù 8]]‘ž±ÉITi‰\‹)pVa©&Ö¢'йÙÉ:³°}’›Ì˜‰i‰Lr‡Òmw™1³k‰×“ºíbÊúî!Ð8Þ믨í¢Ê?€÷Ò•{J;ðžÆÄ•&âÂ(3ŸP>zæ6o*ú‡ÞX»ÇôÎzÜn¿»˜„3fHwéš“%Ef5$ʃhÔ  (o'QeâÍ$U¤åt‹UY;³;‰¥ŒÉO]5‰}¯ú,tR}ª¨.Ñɺ¸íÀ—þƨ™[/ø¦Åóva¦bT×I²áTY]ãÅ ¹I^s·¼ .» 顫ʼUy¼€²>Ü«¿ú'>þrC<2÷JQCr !8ðàYµ¸²â³É†…/Ýg"ßkËl¹Â,»¥È*’ö¡1_A¯„ÜÎÂÛ¹j]JpB9¡âbÖªº4‚ÉYœÅ“i«LTºÕ/ŽÀä1vËH‹º»…ˆê‰´uµŸÙK•g]º:"Îñä듨#:»…y–sÙ h~ÏYx2om‹J"‹³â¥*$„ƒ¡‰Ouo*JÈd»'·ˆw§C!S·®ªJ÷Våñ§b ÷÷ ËóĸÑ}䆌‚op.iWÁ ªÉ÷¤Eá$1øhj€.ÿ!ºŽ$­Ã­Ä­vyd§KE“Ÿó¼~\ša†…šÁ0Â3“ |pœ‰ë ÷¡?±bb‰Ãÿ§n²á©b&ÆLC¸ÉH<˜mOm g×K1“ŸzköC¡+~‹öc›Ôîìü¡ña- KŽÕZ”ël8ÛoÁ2…?ȼeQw¥ÿQpHSiÂØhfËþRLm’ý¡­Üñ_=n…ìRDF`Ä>h>Œâ.HxÁº8:cº/§»k,öb1¼v6Y°(Ýq¥íÑäVwËqgª[Ф’iOµ úöA(Q;²Ì9™åœˆi°‘Vœ%‹`%_ⳉëœyq,^H™c²áœ<—ˆ9´7Y³³å‹‘T»cŠ­–Ȭý僠Ÿj•ªü¶‰™¢öžcLas(Èé¢F½…câU¶8®R”VˆÉi7 ©k³Ue¶ÝJ,•L~j,O·‚àH³Y Ot0ƾU¹ªÁc¼6Ë …³s‘£›ÄýL´oºqe”}’+½¯Õvµs¶»–j™º5–ø»‡Àï–‡ÈsF?c¹¦-DÆ×kɱmù8^„áø)<#VS U^)Ôà(Br„ˆ`psùØ>‹×r ›Ô§ÎúR¼Ü‘c ªÞ”YÍXŤb&ÔÎZSÿa[ŠÏ±Åx’›s‚«U’Y{ÊmwåWË®%–b&?õÖ†Üw …ž®ë£“s¡{ÖË‚/]‰Ï.d+­FóKÉLkUÚ4‰k{PD«8/ŽKa±‘âá®Ù&Iµ@“X꙼µ•ë{Õ犇H5¡{þ¡²D^ä¹/Ýyq Œ :g˜Aw¸.ì?¶ù‚7~ˆ¥fؤG6 T`û†q>Ø'P¿äè¯5Æ—‰IGáoS–BÔŒ'£ÌÚ1OæYY Ô;óø«€#o‹„ƒyäM*Ç®RU‰Y0ÏäU”/àò1Ÿ٭…VRÔ§ÎJ8úþa°8ÚDP~›òØ2>UyøDƒQj8j€ê(ìgjH€MñMœòÙJ¬rŦ.(F«ª»;”Ðê¹°òC[•G{óh©-'í%º•ŒOÞÎMÃî–q4v– ™§ ;w@2Ùpº|›1ïˆ$/Ü/n{évÊ®%¶¢$è-»íw E‰ææ¯ûJ(9Cˆ}¬pÎáæÓŠ].8ë`ÿɉڰãµOÀ~ØæªuœØl²ï.Ý4¶Á²_B!º:ÇÜ[µg}F$õƒ{ðÆ[SµÏ‹a«œßO•ÿ0‘<"e%„½eS {&©æÎV’;v³ØrÏõêÖB)iêSgåÏÿ0”’z°¸£r9£ÔäR¶;U>/ˆ„‰œËË™œU7]⦢ë˹œÑ2³9·ª|Î.ºŽÁ¹m ¥áC×C-S·ÆNHýê!(ßYìˆWc0bÀqTnì×^’â!]Øäֺīp¡upGÆpjOF¸un¬˜ÜáYä¶»¶³kü µH}jìŒg¯};`¸XoIˆíãÃ~à3S`–e`qµß"”-fÚƒ$ ^Ìp(ܤœÉ-RË8Ž3Ù­D00˜´u•oÇ[•gº$EÆòœÙÚ„+S›†/ 2ùÒጜÍE¯=dB` [÷ÊTAÙ˜YQ“Ü»ÛíÌ7â.!°z"=µUº”7@á…¶yV£Lî6DTH¤‡®ºoUžË;ØÊ{Õ ¨ * ¢wG½¸bôG½¤½ÊåYÌbzIìUÚ ƒÚ›<-¶ën!‚B&m]µ¼{«ò¼ë™’¼!ìõçó™œün!žšÆ#èa‘‡€)Ñ“dh+³pe ¤¤"êU­6ۘݡ„RÇÔ§¶ºóß<Þý•5·‡¢ÇeÇjåTzM¼ÉڑLjÒ(JÌ a½xˆj8;ž˜&°$‡Ù‹ížøÛd—X=‘žÚê xó¸—ME¦bBàðaª¬Î¢ZθÔå\ ²A­UMðRLŸpcá¤6dv»Dq¶:µž¦n]µiýVå¶ÅóäÂøžõÁ+ÙðàÍǺxý!¬KUH5œªËm|«‡ˆ“ß¾hyùÕìn%”R¢~èì®×CŸâ›ÄãžÇôîSVd¡ôXv»WâÆ4 & ºPºñ%uL¾ô9ÔÁcq×K1“ŸzûÃüCa”u<<Î,Ѻø+H5ªjžŒ,^F<ÖÃ*1`“,x)ÞC8¶¢ðÞ¨.e|dËqgvA¾m&m]aýVåµ\‹h**–èdxëýåçDë¬éÂǘ2hzQãÔÍ4Á9<½PÌ2ƒ[“ºúêv—"c³S‰¡©[W/Ð^ª<ãJQô£žª1œ˜e‚oHƒy÷ï ,º§²ð÷Æ$)†Mw“•ác” ÞdζUcxw-±ù©·¢K¿c(tOæë¬ÜÏÏF÷z/¼¤Fçû¸XÁ/ÆCOT•«{‹9K² žÒ&\¬Lí—š-ÅÙêØb+)òÖYÎÉo„.ö+Ö¤&ñ¹è'­ÍŽuÂmp/„ºq«ÄâØFI*€ÓI­ªt‚¢!Íc¶êd’Ù©ÄRÉä§Æ¾/ëõ"»Yk0-ýlL—Îz05Zk0TÕ™Ó„þÜg3±š~(W„”‰*0dšÌ÷h?³UùìN%¶Š"?5VÕÞ·‚Á]4–Î5Qâ†åÍ Yš¢4ØáaVŒc¤,:M"<¨&t¾…5›t²N®Z<]F×ÝI,eL~ꪰ®÷ª¯'á¤NÅ7ñÝ0óŸrQ¥Ëq5ãâr†?Ü÷ ;¢&lÅ·‘ðÒ$r1š£ew+¡•õ©³Ÿ…׃—ƒ^Tkª’’ñÉŠGQa¯W)Zy ½”µ¢u&I`úvZº#Lb%·¨8õÝ~HeHþÔU—á½ê«8b´×¢#\â¹T›AÛHxi [¨zú:ãÅ-î&O²àº‘„¯ªMB‘™ÙÅm_4½ï®%–b&?õv1ñ¯ C/ì–_‹Õb„¦J¾,úk^'ÃõVõqÄòMzzZx‘0©‚‹õbŒTôÅÔ‹%aÐîåz1îTB+(êÖWŽo}\G8¿Vx**ïÆuâÃÿ‹HËÝs‹°úÜ4AeRKÜT§ÍÔÎ*nj·»È›;• ™ºu•wë[•gLÐW”,ÆZäCåOØñ"Ü¥©Þð©_ëA´eÀXËû¤réÏVmÈ%”:¦>µU4ЛÀKPé€Üè™»1Ýk*ŸdÎolÏ E‡œ¡%>ä)-²¡ü;}s“<à›ë¶‡ü³k‰¥˜ÉO½u1¾c(ªY ãÉX7–qVþDƒ£ôçäÁ9A‚ÉêVYû“pɶl|¼;L½à…ÂV/Y–³C ­Ž¨Úºlé‹ðX¬ã¤­,ñhÏH¿û*"=æqæñŽôK!6Æ7UPk›ç3Òïvû}ºå)[tv+¡•œH¿ly,¾zz"¶åáøÐ ÅœïQ%þ…—Û°±Ñ„/Ds=HÏœ‹Ée™÷“¤(nÔ³E"ÜNìNb)cò‡®~^«>·~®!B Øš—¶—ÎÕaÒmuá©ì®´}Ø8cx¢h^’]iÛøjÚ™kS·}]Þ‰W×C-S·ÆÚz÷0Y½Tgá7nc|¦j了c,¯àÅ…àt°X81ÃÑâÅU¥É .f\ñ™ÚddÛ Ø]K,ÅL~êÍ©ë— …Ƀ0¥ºQyê&¦³íy^zÛÁ÷<«#?ÎèzORØ90ÕP~ºÆWWú’O”¢dË<ŽsÕ­…RÊÔ§ÎJôþa°>#ªs•¡LΉ™Ž¹,–ëB™´ˆ‹G¹.¡È3Å*a)nçƒ  |ËD'S1'íDšf·z*‹svj1UJòScUf|û øÂjyY„ÆE3þÅlDºt÷S7Ÿ·È&‘—™Ž6™Ð7ÉÆ´Ç›|²«Ú&úóWvm1•uk¬Õ»‡@ë댠ÈqáV2brÇcŠDîǨl·ŒÂÔ8†"()îȘ—dÃK†Iá“™!“!fÍ> [÷¬ú×BÒf}:#[H¤t>ŠÛ7Œó©À>¡?ÙýÙ6ÞJ_2Ɠ²L†b  S1ü™»ÌÍŒ#êª"6Gc‚Úî0æßýA<•p21K%yb6â¶§Nf×[Q‘Ÿz+ªô;†B“`y”[øy`‰—ÜËeB† QÜW“;…'ç¦ vn$pißäïlµ<øBßÝJ(¥L}ê¬DZï/G¬;Åæׯþa^XÞÝ!ÇGl¹Ä˯‡óBO]$Ù'ôx}n>áòÜ?\ˆ°1{‡›ŽCŒýR@•LùÐXWãõ£àÅ€»Nk¨Áù³1 töƒ<ÌfzCV„$ŠÎè:”âò¤–lgòÁk¢uÔót«Dq®:µØ*ŠüÔX×âíƒ`ýFôêùˆ(œQ´0Á×àrºÑVßà~/†–‡g›MX=gÈ8§Hz㔃­7ÏH²óKY³?tWAÇ/«|ÁdÓJÅ>¾QI¦E¡0DÎp6paGDèî/Fáô.1¶W6Y°B·D°él*f‰Ù²Ò/íŽ%¶’"oUåëíƒàzk˜2Û¥¥¬qåzôB€k™õÔZ5 ûDX "<6Å£ÙdÃKËYá~rAkrTüÙm*;·»Æ©ÉŸzkUþC‘“Z8•·jベš+×ÎBK}6g±!ÿ`ԔŪ’lè-6a¦žÚd$¦Ê¶»·ØÜµÄRÌä§ÞvRøŠ¡Ðƒ  e¬HB³*D„{¸ãD‰=º ÁahªäÉÉEv•M6\tá3šš¡‹z!„Ý-_râËŽ%¶’Sa-©³ü¨Þ>¾¸®Øþj÷ëŽÓÆü¡bÚ‡ÞãéŠÙô¡uÍ™Î^¨´O@óͼ4Éós2îYìÕ²éÕ©5ÛÅ™@ª\bÚ`]µ:\öÄJlE~jìx—‚Î< ÿ×b$¢b¢Žud´YDfÂÁZ(üUÎSQr+œÖdÁE¿#î*'•!TnùRØìXb+)òÖYî‡Ù²¾–»c‰¥–É[gZo_?Ì’&j¬]3K÷ù•Þ;/&—?U™ïD)8Ã{6p.¦§Ïæx°²làRÑ=/ÕäSËWís×>Aš™ÿ©9§Kß3^œÆÈû ¨ÚíúÕZÔ Æ6ð¼#i-Ê?´Ùµu?#imˆÔNå“Õ×ͼç(ÎŽFâlõ—b©gö‡¶º ¯râõÛ,JÄ'\™M¯ñÝΤȵ·|ŒÔz‡’PXðNMª¡#«„×T">‘¯æv/˜ ²K¤ŽIOmGðÅ`B»Ü:µ²tbâ‚*ˆ¾vA=°3Rx9ÚÜ´%@ éM¬Ì‡µ1ên*2©ÕƼU»C ­ž¨Om•ÆîÍà†k[Q+×;•@¹OÉšTÕû”(YU÷>%+ZYÌúÑIÜ{•ÂÞ­$¹y·m·½[É®-¦’¢nµÝúî!ðeT15žxŽqL[Ö}W\L]7Ä.QD­ö~D]Vè*_Øà¼scU;„ŠèÏ}nA*â—Æ\N$‘ï`Ö3‚‡Û ˜&aDA£2‹Q\l%Y°˜)’lÈí®ÄNr›ÜxªmçEÌ®%†Z¦nõ¼{ÌfPóCÓÏÆgclxÜÖ+b¿"Pÿ88…Á¸´áG’áT|z⥀rQV¢Vs²;”Ðê‰úÔVy Þ<^‚(7ˆ|©ðae.FÜ_Pa÷ëâ·ƒü!šˆßOš`ñŒ—R zUy70C¢2de§§Šþ<4Öexû ˜L¢à«R'‰'ãÂÆwãaãä3ŠJy÷›$žÌçi²áâ4 ñÅ ò$_–/fbp·I%Ñ>4V2‰·B)}‘Gašç3Dÿ†…YQÁ_z])i*rªJ˜I85Ç#bdÿ¦ÍG›“-ºCˆ¤ŒiO]Ê÷µê3‡lEøäDÒÕʪ^ØÉ‹¢’¨Ÿˆr±Ö Sg—H·ãBd+jÕ!ÙpNÜBŒ'ØTDdËœ»c‰ë“Z³Ud}«òÚä Dz˜l)¾Y?TE(‡/ÔÍ‹tò`>æ‘;JðqÛâ×f¶ŒoÖ]ʦw…/£õžÑÍî<ÅÔ-Ùº{×ó{ÆÃêØ-ì¹gx%êx ÔЦ!6T¨¥â& úƒ¢Ñ*ACñ;(É‚çs Þ¦¢6P¶¬ÒA»c‰Û“Ú²UÔÆ~«ò F=ŠH&ÿ“àkm„Ó²’Å ¿¿¸”ZÃ|e%Œ}¬´›OXt.ÁbIUQc&ÀO¶mç³ó}‚5?õVTðŒƒ¥Ê±o]JQ©uãƒUÓOndß7ÄD-ý‰à|©R€MõM,Ú#O<å±EjT,éj•Çq®:´Ðê‰úÔVÕÉß<%W¹ïŽê}[Aî»Ö^–“Qðr"èÞÁàÍé,pBCà}ò ½·ê÷^“Þ¹5ëö»÷nS÷§üÇÑçÖçLwòûÌ5ö 7ó঻ºˆJÓ ~B¤/FŸ»ýåðôT O ~ÉÿП×çÛÆÄçúZ;ªn:âz Þ7§ /ÜUŒc%‚ ]")îty4™mÿùkã‹÷È­Œß+Û&гյÅVTä§Þz~¾c(ÊF BWëØø`DòA÷Cä¨aoë»^GÈ™R¶xÁ­Qä ›DøRz‘YcÀm»â@vÍR1’?õvNÚ¯ŠÒ¬Àþuý È/­ö‡²*aRM„܃ۇRS›JPdê$ªÎI924}íV«Âý³S‰¥’È;ÍÊËA³IcÝãƒÆëâÞc¤ésØZØš¼!](,ùYS\êƒZªÛÅ™ØÞç–¥iWÙmÆqœ§)’r¦=u•Áä½ê3ÈŽm×5õ1Ì|ÌúA·¸kq_±ÇJ¡t©ó/í‚ÇÙ §£ÑøC9ŽÎ¤“¤—£Ä“‹ÆuŒ ’Á-< ¡Ø¦~(®p—o “¬L E”=–·‰YÛã[&ùzPõ,Ž#sÈ8¹OÑPòQÑ 1W¸³0DR^ nwè­‘J,•L~j¬ô*o„vËan]^aÆ®]±»‹yAÅF vSŒbw¥ÑmqcFI“»<ÃŒ¼’<-¶ën!’J¦=5öŽùËÁu:Œñõ:è°j¼”¼¾Ñ>_×ÂT,zÂqÝpS€¢Êªì¦ ²Uœ+¬œ÷¢^Ìr¯v‰b±«N-¶Š$h¬ÕúÛ§b±"kG ðDÌâ]§Š¹väø®sMGØÊÀZ8UËQTÁÅ!æðÞT• D»Jÿ½;¥Ð*‰úЗOÄ«€§!ò[”Àäƒhqþ%ùâ³u¯ãq;cíbÆþãYб‰²É‚—¦ÂõàLÂäzì–ã8ÎT·…BIÚºò)x­ò4¡/¶ŠŠº?w_¿!ö¬n˶ÏSHvâR¶Yl7Yppá™øDåöM>¯ÝòÉ\¼î"©dÚSc™Ðß>eô¨<ù'™–^…•tvca¥­‘j9¥˜Ék“lÈ4B,м©(ƒœ-/:kìŽ)¦R¢¦¶NàñRåù:‘0¯™_R?Œ“ù!ÃøŽYÕ¡$!;‘‚x8'§t>¡×;€ÚƹØãä)^¤¸W£pÅÎ! 2¦|èªwЋõÏ@0D GQšH«ƒ &L$&·F؃‰KEs±Äã‚1ÙdC”¸Nt!­Î¦¢u¶¬rÔ»c‰¥–É[ç öêAðR”¹ûå./xÀݽDo,";–x%\GVB¨vrÙ¯¡åÜ|Ãi#±~ˆô# Ô½×7‡Ú7Ä` À>!´3û©¹®È—Œ…‘ìNU;”3÷v,ÜÃhU± Y.$ŠE“—ÅëHªb°ˆ¸Å¸i¬FêVw:ũɟ+ãíƒPJ‰‚¿CVäÄ´"Wæ¶«ÇÅ|,H}'„, “çI<ƃJ@+¯PéšGnsg¶JçªS‹¥’ÉOTâåƒà§ÎÕE)’„˜å(ž8à¶xm.£0 ¬ÅZf/XØMN(¿0ãÊlGInm·Üà–݆ˆ ‰ôÐUßí·*RDALžgÙø¤ÇUÄL1±,²FýŠè~êÆAó–ÅXn²à¤ŸÖÆt×Jò‚ƒ–Û^Ì´°»–ØŠŠüÔ›¯¥/ ×Hv4"Ç>{ùCŇ«ÅJ¾_Œac.µØ¦2„Ë ’{îF{°.OQ¡n2$F®‘£dË‚q¶ºÎ¨Yò?4×ÂâkFCs8ÅÞŸfêþA™èÃb]L/ñŽ´HWn«·H°ÐÊã„…*ó 3“=¸ßÌ|ŠE/GinÇñ’`×Q­¤}ª-£øw …FÀ~O·Î¡d‡„c* šÓ´–,øÅáýd®Ê ø^%…HíáTüÅ©#ZÇÌû!FP©šŒóÕgžú$û¡«,€¯ÕžÆðŠ0›CVd ReCŒ²9¢J¹ã8,½÷kñ9!ª±M¾i†ÕéÂŒ'ÍÀ¦6n©¨ÝÖlCV§S=Q·®2‚¿UyNd±7qEq7¦ùÔ]¶xnk\ ±¸aiÃЉ[!`—$)Dj§ò‡ÅTfž\U¹ÙÓË®ì3OŠæh¬™ìëGÁïƒFÁ‹žÀ‰×¥dç²'®È*Üij\ÌeÞd…„¨ÑBišàEo]ãv°€©±q²Û%BFuvj1UJòSc¥yû ˜ŠY˜K?r˜µk0“2—¶b2\V>ŽÌ ÌBV­J*a´‹s‰ B@’Ú‘øíò8ÎU§JAS·¾JÃòæÐ¥†v£«lb–t½d`DÝCÖ{«F²Åa³L*jÁ –sMÚ‰b¯nõT-ØìTb©dòSc9Ö¼}œ´ža‘b?«ßüØœ,ã2R(¦aŸ*‹‘r“Y¿/Kð%•úܲë÷eÇSAQ­­¦©oU^Åk"sæ;L| ia?’p#’!„®óIÜŸÔžíâL¤ CÚÂM«k·Yyž;„HʘöÔÕUk_«¾ÊÕ"´ÌÚ)Иpe7D>B¢è©6eõ¤•Ù6Y°Zá&ULnk·Ü”vXÝB…LÚººLíK•çûŸ_„«¼8…ÊÜq˜ó§Å;,¾4<Žœ>Cò#•TÁ:x.Q«ŒÂ4µ¡ðÛmªÊ”J(•LÝúêÝÿæ`BZRs]…1 sé6fõº¾Q«jO*x¿æ³.Ò¦(pŸHaIc ‡[müÛìN%–J&?5æ„ôõƒ ­µU|aà4þóÀrH¯'ktÊå¼ l€(Œˆ¥²Â§Ä¦`I6¼¶936ì /ò” :Û&úóWvm1KòSoÙZ¿c(\²EQª5šÖ:@›Mö¦ÇNT˜›x—&.‹Âüµi†C1±Æ§ö¨L=¹+¥vO•çÍN)¦B¢>tÕRí­Ê3V¨ƒ]O:ý$ØÛ¸aãÃ4pÕFƒ&D"»ø KÌ|GI<2#<±9²ÉóÚ-ODUe·I%Óž+JèíƒàjyM8La©Éc:‘/&Éi÷ŠkÉÉ2M)¶Sì¤øä¦ŸÉ†:—hÐ=©'\ÐÝò©T­Ù±ÄPÊTk«•ò[•—·vÂ{\1º87&/:Ércä6:è"$O’˜)K<®cS ºÓk æ¨CÙA„¦Òä‰v2F­žÊU•JlE~jüLñâAp?ùÄŒ¬5¬pŒ*Í{ËeF«, ¨BØ>å"ÅbÔ@ÝdÁ†)³Q/ ­0µ£ò³[îÚ5ÉŽ%–Z&oµ­üöA0xýÄÚûì0Ã5ÚRÂc§"´ ––ƒQ`2ÕØRØÂŒ»©‚f£A[JR x<ŽsÝ©„RÉÔ­¯BÖß<z$Õ#?³¸§pEIûisùr<^¬¨)G~>‡˜:“lØ”îθwz­™<ŽÝò8ðru·I%Ñ>4–#ÒÛÁ ¾‘µ<ü/PKh ^¾×ãäw¥= ²-£˜\…ß9‰êךlx2(>ñDÌü&‡ßÚn{r¯ewM1Õõ¡±ê÷¾{´¬â¬{1W«QãÛ±’vãÃKíÓ(Œ*Ô7ÅÌ& vš/…FQgQ±)’-+‘×îXb©eòÖY–Õ·BùôãuµVºOé‡9娌wÝšpS.8@Bz¼ù3\p’@´Ò}J?\r€2ó’w½ÒyÊý¥˜Ú$ûC['Õó”%ž³áî¡{aØW'ì/¬ì©4EáÍ–$‚ ®t9´~ÊÌ©Ðz´ØŽ ­gwK“Ÿº:?ÀkÕç6ç‰8DZ ÿÆpÖïðˆLÛ#öSáét¡ÄùÑéAÇöir UßܸÀÁßÌ‚Ê0nUû´¬×c±ô1ù©®ö:_=F2 $¸aüÞ@6V>YÚ® ©™NT¾ŠÉ ã¥eó6™°(vψe„M-¨Öã–‰rŒøe‰© ¨ÖV‘ oUž³",ø¢t R®è‡ƒÉÐzd¾Œ”+s¥õ{é— ¾ýÁð[ áf§:ó•©Ð’^éÍ֫ݤ³óS·dè®)ÒG~ñ ÌÓ¡|ùƒñz$y¿Ûœƒî–ýh#ü°äÙbD=n¶ ÃíüÃd0^Ò#õØúr _vžbê–ìÝíšñ=ãQ5f[Ç¥\ Æ‹þ´‘  ¦_Ç\|úp„§”3> XÓ3I‚Wñ-Ìd¦–Þqh•Lj?f‡Z=QŸÚ:„úÅ 'Z­4a ôÑÖÁ¯EY‘6‘™C†FN:,^ç¦Tš/qÜ £èM¢±ÍmÚ—]Rl…D~h+ ì{ÕWL(ªC†“”Â)…¹ý¤D>rf"ð1‚)‘r%…ŒSMª¡*…«C*EnÜdDËÍ•îVB)eêSgG…¾~\ÖÍpj>°4ÅqÌñ´*O[{9YYþÒ´ ž—¸³,½É„Ñ.2¡=ª¢¶‚‡S-ÅÙêØb(hªµÕŠî­Ê+™vÄË¥ÝÆkjS—ÉÅËBÒñ>†BÈ„ÀÔä¤óO²á¥]xázTùò*¯y¤­SËqŒ­]å4‡ˆ*%í©±“9¼|¼Á½÷¢c:èËeèÃÍ£Àç†ðz"о*²Í¦ÎR›,ˆ€»DõPV Rk¥;[&гձÅRËä­³.ÅÛÁK‰{ÕqâÅj|\ýÙ¸­¥š»~w£è›")Æ–É&²mèF\]éD.UuÕ6Qœ­®-–¢&?õÖùŽ¡Ð€®ûþùÙ¸N…ëRg,ã þ qéªMñ!Z‘Ñdœ-Ü -Ê&#> Ûî\ï®%–b&?õ–3Áw …eO8D®j|ú¹!=Ö"µF{1Í)5J“”²ÅÞI<9ò¡ä&ÏÎí¶=©ÝîZb+*òSoUüŽ¡ÈN‹oL«Í†Nâ2h³TÝûC( ' ˜ü¨QÄj$I¬MÆNávÈÜ)*Ëk¸]WßÈN%–J&?5¶µöåƒÀ2‘ºuŠ&?õ¶ýüýãxÖäZh÷k—³Zýde©û±YxŠèÏ.ie1ß¡IɆ¸UŒ”d3©LÀé–Ÿ3;–x=©+[EaÍ·*ÏЭ…K{,¦ùÚ¸Ê šµdl¯c¢QÄ$¬’`ñYT.u….ÆÐ˜VŽ–m×g‡IÓžº*\ë½êó…„„½(ŸÍúzÆ 哹ªïWØýêOda†k–óI2”Cœq,gjƒ«[mEOº;”Pê˜úÔV¯¡7@›CLÜÔ/î¬)ÇïýàájÌ^„FØ3é¼$n׃JÀïއR›ÄdÍnótj`w)±2yk뭡תÏÝmdFŽb6Þ ÖEû¹ S‘(–۽ȳlˆ[x\í"ƒÄƒ/¸r?˜?DUìèŠ%V¹á‹öã|)'P¿äè¯î/ŸTûêñù–'8§1/$œëgQ–æøâ$üôϱE›'œíÁ ¶qî WÍœÌÁ[+]rDePS>tÕƒòbý•bwŒߕ¸²Âöq`‚U "³KTÎéFÈ9‹¹]ŠÂ÷DN(çì¹±’ä>vËp¡ÞÝÞp«ÈªÞ;ÅîËsù5b}(PlÐ+4%òf!¡×ÉÌÉWõ¿a¨Õ&{ù|ª6ŸÔ &4I=Ë"ªmÁ8_ç RÔüÔ›¶òoCZèàñe¸­ŒÏKáàªÝ|²Ð åºBh$gWÕ…YpªÄ´ñê 79j¸¹å ÑèÙ-DRÉ´§Æ iyû ¸•t ;¸ÿ"¼h„G¦ñ0UMØè#ùi»‹ß³Š­É†g{Ó‚oò:`³WÛDØ÷d×§¢$è­­¤ïJ1§x?üß×ÉtD*žv1¥ÑâzbÌøÅ´ñX¼›D¨6±UL\Š'ô>‚ëZÕ±2ÿÃgIB©gêSÛ]ÀàµÐ&k|µââÐ>(Á‰D€÷¥Ž]ʘ'Ç!ö$‘@‚pÛ¡ËïMýÁàQÇVÌH"Å2hÖðÏ_îsŸ@’ÿ¡±÷Wß> \ŒŽ¿u•Åg;qá‹‚ïlð½ ¿t¢»ÇÎÃ)¦“{’ ™‚;q ™¹¾=Ùv“{Fv-±3ù©7¯È— …3+ZÔ©cFeÞŸü“©c³yÏ*s(¤ÛµH<+qCÜM’ 51*sS³™-+¤sw,1”2ÕÚj:õVå¡ Ø÷¹@ÒÈÇñÊÆ3ÒõÀ±k‘È Êû„:ìj;νáb:óŽÑhÆIì‘(“”]œýbýéÈ€ciþg<9…+ª8&&x…ʼnb £Úƒ¬Lh²áÒüÏøâDÎäû‹—-Ç1B±Ø-ERI´åøöAðëP”4DNDƃ~@in /¡†DB÷Sט_!ÅH¾dCe–J<é”dÞ˶U—owM±ùCo}¾c(L«uÀ„>°iÔ/Õ¡:h{ÏJäý½ø=»d è‹V{‹WÝT€Ë´Ž‹ò‹4 3³ÍQ<ÅW—[=‘Ú*¡Ö{ÕgB¡Þ~µrÒÔo›}™ ʈä8õ®ù`ޜʺ/ÔIš¡42f¥MEmlwiÍ”J …Lݺ*¡Ð[•ç’±‘iŽúÌ5XCöÆG¬=^}¥³t-Er5‰ èI'ªJ1eR=y°Åªç<»“Xʈü¡«îü÷ªÏ??ã,hHÿÙøt 8/h‡/£vGoŠõ°a Iœ ÀO¼(nòbh8Z^ ëßÝJ(¥L}ê¬Ëðþa°X8Ò^ײh H<™Øôž½Ñí:ï‘PíäñnÃåzz{xÓ •<)ñÅ|¨IÕgLí*ÉÑî”b«$ò‡Æ*þöA(YýÒûÁ< D­*ÏBclyÅ«¢H‘ò,\e‹G{P”Õ“Ç33,\<©ÍÌêé.%¶z"om&âµêcÑV`«E^ ¸Ÿô ïe6÷ÂR™vb(p?<Ñ© ÅåI-Ù.ÎììÞį̀ wC·ºø„îN%¶Š"?5æÊíõƒà¥8ǯÖkÅ«U¨ Jãž=°èu?0òˆ(úê,—mqCÍ$ ÖjÍ„â±ÉÜÄwÛÞãÏ®%¦’¢nu!Þ=„göš˜n=S¿Äl¬¬ŸOê™íâL <¦›†ÉC¶ª©ÄîTb«(òSc}²ß>:çÃã°xîülLÇž:ûÅèÁ{[¸À8ßó69.ï¦ :m  M…P¶{*•}v*±Uù©±œóß>\Šk21Ëɨ¨Äûãõ:¹÷z Ô–½N&y ¨¹wm-¦‘7É‚§Œ'¶Ö7y"·žÛž HÈ®%–b&?õæù’¡ð ™ð<]=2`õÇ:Oúf ©“¹‡ÓˆÜ? ×Ñ }<Ø.ñH8é#jÞjÙè‚c©{„€Ê˜ò¡«ŽëÏú*(å‹´µÈgh<£Ü"ËB>»ØAjê …èÅÍs‰×…­u“ UÄ6ñEß«$_k·ÌºyÙ-DRI´Ucåíƒ`~Ì&O)å\H¬ÂuÑã¹1Ãp•Ï•—F_i‰õ 8ù0ÐPêaÓ˜›Þ­žN=ìN%–J&?5V~Ì·‚¡\®¯uR–ŒªlîŠòL‚¢ðB»”µè•KDUìETÛþÚ˜ ‘ëÁ3¶-ô篖õè%¶¢"?õV`×w …—¥#ˆæðsn¬Gµ¶ÁÔ³|ï安Ý"$ùn%D}¯MôSn¬Ç5É(â‰vUàÓ]²ü'Õ1é©­.Æ›ÀyÔX±EˉŽ ¶Ü€¤(>ßþŽþ‰bjШ§ÅðSØdÁÊI‡PC¶—Mm˜Í»å¦É~v,1”2ÕÚjæôVåiö¨x~ÖT¦1W-7lt9‘ ObǺþ¸è<J]lšàT˜¦1;›ŠåM¶{)L3;•X*™üÔX†·Bq#D°Xz@ð‡j¼Ú"ðžQþ=¡< "¡Bž€ ’ͼ¶~8gúA{¶lz¢â¹û…€*™ò¡±ý8Þ> ¾’ä38«o'îp© GÁ6y‰+ÃãvUúÅA4çƒ0X#ÛílÒÙ|U£8×ÝQœÊMÕ—{誗Ò{ÕgL)’˜F¢:Æàø‡ÈMc"S Â·0B‡;\™ #Š’)T÷ 0ùn>¡ÚÇùüa!†&鑽â¨Ù¾ â?©@ž …ÍÿÐ_¡¦_6&fÏ„³² þþl<ëyÒÓY5ÛGèGmaúI§˜å.DN˜Õ…™}5ɳï–'3äºÛùq­âb9ЧÆJ™ùöA0ݳEcHtìš=aEÁ®ß‹!#ãsVIx0¡•© ™TˆS¼MÅ´NívÆ©ïN%”J¦n}•dèÍàk føC°cÜr'0¾þ­¢vÇüL(ž¿Æ¬‘×óAèš¶ !RÓFçÆ [š´g§[E‘Ÿë=õöAhÇ"fÑUæL¢B{乘o%Š­všä—Q˜ä'“¼X Óâ& V'Šn´G&Y5OÔvËD1êZâ«<¨[cïW¼zÜÏ‹%`l÷a"T¸u«a/±µxa‹6¨¸À¡ˆkÓ¤^Þs'n§á‹Úá9áv»öf²S‰¡©[Wíà½UyFœFbÓXÿÃ9¨VåžôÚ¡ûì1‡gîYéï#aØTTÁ÷ˆDôqHjÇb‰ív¹Gd§ZAQ·¾Š6}óx÷÷H´¢"&8v’†‡èƬQRãYŠ ]ñ¦Õv6YP%L„\…ÄTÕ(QËYÂÄKÜ˃jmu÷¿Uy¾ÿOîb÷“O¯q£Ol©b ¼5nãž<Ž\׿9D]ë¢ víÒ¦­cQ<}ÜîÐ.}v*±T2ù©±¾o·ƒNÚ!úyàÂòI—ñ µzéF1aîôV·Þ&.M¯…çÉéµÉ«î–V;Ù-DRÉ´§ÆÚzû ¸\c°Õ°ÌQ=±ï¡a$×^Þ­=,Hô‹¿ÜËf7'ß;†aXׯ¤Þ ¤ÄPۂѶ:Ϩ[òSo­Ø¾`ÌËÑ'¬ t¿³F ¼¶âÞEŠBe,> j’+Ó_]Ìäbj,evËQ…»c‰­ä•ÕQN·Œäo„ì¯HƒY+ —ÄÇÔÊ‘Ï1–ƒG0X"ŽC$šØ$Á"ŒkårÆT.–تWRÙ¡„RÇÔ§¶6½¾x²ºÊ<ÈÝ”¶D†…-Õ«¥=ÿ¬mn¯KÕn-f-Ü$²e/¹ b\™É§‹jûòlÒ]KL%E}hlË뫇 êˆ‡tþ#Af/B»ûß~„²"[©!vw1‡Û' ƒêæ :;‘(Ì^dúªÊÓÃö ±Ã ö ¡]²š{«ú;Æ‚ÏwC&ÁzM¦L|"7N¸ÔØsŠyE½aÇ–ÑýmŠýR¶¸a“dÁÉÔŽ‰’ëlòŠû.Û^4‚î®%–b&?õæüK†ÂÔÕ+Ü<Ú:TrÉ?̆¢I7,,­3q1‘s¹&ü)šOVõñ gy°¨mœp¢`R¯Æ©ŒZŒ³Õuž UÍÿÐ\9¬¿f4z™ÉËWæLãN›drÀmøHU–~&Â-÷]‰Û“Ú²]>û,[¼ðfí„Ç­žv¤p§[E‘Ÿû-öòAÐ1³Z’Ûo¦ä®'Sr·!Ë2b‡cÚPàÍ{ȲLq*Úýó—P/ôP4­ÏÝfÇ^gv‘”1í©«ü2ß«¾Ê•ÓœrRÿăI³³(é0<ÚŽ!ÓŒÞb{‹I‡)F›,x²¿Ä“·“<çnyNœén!’J¦=5vÉò—‚‰RÖÁú2Ì6BÄÚôñeaÍ“F”ó<]æ«IÌ^I6¤±&q?eyTšØö`\ÈîZb¨eêÖXéRÞ=¥R Š›)1Ò†0QÃ.ÑXgì²é\´‰LoOê™íâL„c"{HÒNŃ åHvH‘‚?L{êêÔA¯U_qÙ¸´c¼‰ŒO .àUnû† p5î2ŠN“øà?& N®®6V›&/v©¶WA»k‰­¨~}êíØì¯ äLFÅïDÊÛ›Ú˜æY-7ódÇK-“·Î*óöAè;Ük2ǧ·¨îwsØ-ì`…¡×Çñ"<™ýÎBlœoªàd~O£©ÔR¢.›¥}Œ¬:•Ð ŠºõõWâÅà%8Â/­¶ƒ9oëÅ´µëêÜZHj»ÖôñÝך7½$œ ;b¦²eœ-ÌŒ·&·{:Èvã(ÎS—¤zJ“ûÔV—àÍà^¿Pggм™¾.Ò2#q& ½žìFÚ°BÂO‰‡Šê‰l¸´½%<†Â7EF™Œlûäªfw-±3ù©·vô¾c(üN,Vß‹ôüxÉ —ÅbL}ã|×U£x2±vŠÏö TfµªÒa¢!=[m¼aw§K%“Ÿë;ñöA¨HX¥®Ø]‚ÍÆ?”V—Š”Ú9`’©c†ÍË0œ‹õø„3ÞŽ›O¨öq>~ˆ-~Ì!EW6i·Ÿé¦S<ú%ÿCWù®11Þ ò‰~6ØEA äoa …BK`4f‘ø@–—$ ž¨Ða4±³©Èfœ-+ÙñîXb©eòÖYño¿*ód8]+€ZW°þ!ã‹Þ›‹Çx©šlªR±OæÙu!4ÖíÅÙêÔb«(òSc—›}ù Tn“ LÛ¥QBÙO#®l ¦F­ÌÆÓ•7"FÏ$Íðò(ˆq–TƘ¹ÝQ= u*±T2ù©±Kn¾|ré‡èu89qzá=’¥ÁÓ‘É‘°î‚{‘C$ÅXÀl2!ÛŽ³…‹²‰|••-Çqœ©n)’Ц=5¶KÿËAÿ&æìŒO sñ¦Ó9hK WÃXA^05…ÑdÑiñj›* '"¢9¸º4maðnuÙÈRl•DþÐXþMoljù5±á¨Ãˆ‚HF~¦ †´(J¸†ûÈA?SýR£¾á™ü„XÚÄ–!¢ÃE ï‰ëʶ£muž'„fÉ–Æò­y±þZQßZ¢q\Ý}<@¥²¶Ú¨($F„…%žÚ­Â“­¨âæ„όĒrp¯9Œ×T ºé"Ê4Ã¥®•Æ—:X™z¡g•ǽԵ2'•Y.‰üᱚœ¾}üU45ºSP?1#óh7‰‹"^æKe/>uÀ¸eêÅ'sQú­È† ì ½É#ò$4rÇ™š–&º”´§ÇúU¼}üU°§ölý'[I סt¬ƒû+•ºwìÎM„¯þRÇ1šë“Zs\œ ™†ÂD,Ó¢/Ã(Îõ¤2Ë%“ŸëWñöE(ܱ¢ê"gcÕ+W6Ѿ1â؆­EQôî– I"›&è2gcÕ*'••Ì×…Î9)ÍvIäîxù"˜Ë„§³H8Pq­>è'Ëcë@©}TÜãÍýþöÄ„'jü·Ýo7›ðpŸèüàby¬éËÄ?FŒ.gkò4ËY³?|WZÓZî ½ ‚5þ—tþ 0.’l!Vq0A.òz„±µ&å.|²£“o8A§B…Í™XWÛ q|Ãßßì@ž ÿÌÿôŸ7”¯¶&|Q«õ¸EIhLˆŠa«NßÍb¯äâã4%JÓ};%ƒwPÒJh̸Q-,©½qS†ãv å¤2Ã!S·¯üF^ë<%ÄŒ;RmÿüUñÍ P¶x`eµ11¥‡ø,ÂÂH[¹O¯²(«åÆ”³¹°¢É‚Ê>Ùx²-ŸÈi+»*«%§¶™NŠº=v®ø«—ðq¨L4ݘ¥ùy•+§/€èº½¯0èºi’¡²×kú“Úë¾`÷ª ¶'”Qî˜úôöóîðÊèb•βÔqÆx²iL§–Ñýk£n0BðBøªlÓÌx~’ —;ΫiŒÉè¶›c_’öË©e¶£$øíËÒ—X ¿–ÖèûÄJ„Æ¥KìÐJ:/±W¢ß`/M+é¼È¸*²!ӌ֡?TQ‘”#;)'–Yn™¼}ÖòöEð"±Ô¨ —l?à‹ $ˆïñ΃ï=Ø ãGY o±O@ûæ úÅÅ ¾Ø$}ò½ÇãO¿¥yýKþ‡ÿºn}±51Í“šU÷ŒÂ úà~C  *mð¦_GÇJ)ŒUíÓÜ¡yŸlBçóƒÈ§‹@éSíU0úÌî+ž<Íô-Ù¾+Ùó ­‡oã O}u¨ºÊød¡ÔZÌ­x¡Œf<ŽWÏ1ùpÓÀÍ-i‚CõU‰Y$•ÔÉ<2;U_•“ÊlE~z¬·ò·/‚- E+k¬—A™’zª…L<­ÕÐmF¡GRXÔ#s¿ÎM%¨¼Œ µJ©ÓÚÜc¶‰=!LrÆ´§¯hy¯û,»¬UÅ?"cœÛ\ÊF“Ñɼaµ ʆi01Ø4AÅ’3Ô¼©D縊SïIe–K&?=V‘ØÛÁ}ç´sXNø”ŒÛº¸‘v0z¿XOuXnžÜH“µÿ›,8œùh,)7“'…Þ4ö´œ§–ÙŽŠüô[»_c)¬dÅÏ¥¶KáÏÄŒdÆD¤KÜWF& GœøÂ‹,MÊ…IK¨¨ðý\‰¿S£uà‘ãE ¨&µ™.™üá±*Yß¾îvàbÞ¯–|Éž$nˆ_WäŽÆƒFëÑ0 ~Úû„Öl€Ë»€¡+¶BðDÄ(bŒK…FŒ³5už@Ï’ÿá¹ö9¾Ìj¤=ˆ´‡yVŠö ¨EÏ îã   [H¢}ÜC¦ùh*ÀÉ,d3˜–$\—sÌ¡H\N)³Ýy{kÕÁ׺¯ &ÔHê ¼±Jt*"òõ@‹äªÃÃ{5Ø °Í›œP)~Ƨë{DFâ]Ží¿œZf9fòÓoo7}‰¥àñvxÑ¡NÄ0s×¢0Señ:v¡®suµSQe;š1%U‘ä0Þ¦"­q¡Þ“Ò˜’ú𗸯^彘bÅÈ3>™·r->1÷)’x˜ŽcdDò9›¦q>HCâ~D“‰.IBž_ލ4À=ÌrÆä§¯÷z¯ûLrã«àQQ:mTXÿ\ôfx$ô–A‘¥¢|ߢ—R›yª¨|J@é4«Ÿ“ÔQí1»J§sJ™åÉÛ[¥·½×}n0±³~¿Ó`s`\«~ê‰,¬a±íûšy³ÇVã®é_ûLºù€16ΨëvD qcåÊÄØ†H¦Áäû:šüô[»L_`Úçˆ?†¥xâŸü`tµ?æcñRHñÆq¯Y;‚ÙøX'4.µ7zì-Ž·¯÷†‰RµûqêÄ‹jâS ²2ænÌþY ±°¢ªÚû®…|»4Å'9‘÷^Ou×2y²Ÿ–ÆžËwOM-³3ùé7ï_d) žË÷÷?Fjt÷›†Ç´ãx._7Žñ ãÁì¾/Ý+û„¾l(xÇa$Â7Ôø:?qïÒ¨†ÝÅ´ûxµù鱞U_½¾Góë•Ò‘äzBFozx [”ÂK¥ŸaÀªÌÄÛdAªýI²'©ôñÈÖûɉe–[&oŸõýöEð.0ã^t,†·þäsñª8))ã“äÂ=ùT‘\NK£õÃgÉR¼Œµ6T»T;ÿÙx²¹îj,•âñˆVµÿV×€UXhks)*€Ëª‰.öåMÊsTUç¤2Ë%“Ÿ+ÞúöEð½;¨÷Ó™‚–Æ]µ‚Ôœ¿16Y°—qu¾ˆRê^&lLmš rØŸ*14u°¨Pã*?~O*³\2ùé±Þ¨ß¾é… 5ÌD~Šy Ì,î~ !äÂVA6³A€É Q/|ŒÐˆ oAPûÞÇ€¦m«q°«nózP ©†qSeÓ°‹’£žØ“Òl—Dþð˜_Èë¡¢1¨µÕ³³âŠè8Y–&ù¶PódA”QqEÍ8YX›TÁ³ã\¡QTF'ꀈ"ÇÔ‘Û“Ê(—LÝþºdìÅ `l ’©sœÚÿòеoÜá•WTUý«zP°uŸ=×Í'ÕS½ÅžW=Ò¼0Ð%S> ÔjÑ™ù§ú`0„œÌÁ3™êùÒLo’ýá-ï^¿Õ\(œ“˜1™v¹\ñšv©–CáÔ…ÀqšŠ@D%PÐEˆ™MC¼&GU8gO*³\2ùé±¾‡·/‚õ±ò=R8Uj¨Êb© úÙÇ» vzt~h #Hp J¶O8ʃ ¦˜`TpB~ZÄûm éGY5 œ:O gÉÿð\%_f5|žZñ‰>Ô6ºKŽ 0”ŸÐ *ßï·¼ø¼L…òÈÅwM™Ï o¢&'TyñA™õ$Ÿa÷اÊ{rj™ëÞQ¸¾ú­bÕ¯±ÖTàÌÈ/Wá­>¸o[(-ä3†r:ȆQE@Ç÷ "bæžYM­"Œų¦%éiü‘Y|v O Éÿð_…_lM5b–n«Ö.ÖbûïV Û££ø:Øqœ†Žê³$ ÖT"nô1µK èòñïo{B厩Oo%hôæ°aIS÷uÀ1le;»l01oPÕ^¿ñhL¥?HSá!¶¯IÒÂS¾G\z Èéd¶s"?}U«’÷ºÏð “;¯Êä‰%}?•í¹¨Œ?‘í)10%šÚÌ,Ô$ V‰Ž%¦n¾ÉWhåkä8Ž35-MvQ´§Ç ¾}ñUõ‚¦z´”‰××Ä•±Çí®®øoØ|üû>wÌó’‘’*XÙÜqcÕ&ùvôþ˜#ó8ÎÕ´6ÚIQŸ>ãËø Ë`Õ*2×ïÛPA‘§Ð}ÆD™ ^ë{¡~wŸ¬ö³¼w¼ÐÇÏÔæQT€{Tœ‡ã ×’Ô;C³ë},§”Ù½U™ê{ÝWù"Z‘ø°~Šxtî³_Ì„ŽB„؆_,*;]5™‚ms<”'`º2Šhr{Þ´…ž¥uu%%yR™í¢ÈO]öòE0+„o)‘ÑÃãª*ƒSÚyHìšñ¾Ãc$>©îш-ÞM5TÖ—ñ`êV’'Òº8òTÎWN+£œ2õé³òBÞ¿ %éàæÎ\·?3£ýžw{¦¼aòöH¬‹vßø™ÊÜçƒ à¤:¡‹ÝšM»Î=æuòßFÂdçD{úêôœ×ºÏì…H~ûɆ¾@ƒ-Ø£‰%{­#¸5 V!écªS;ÍÈúÙdÁÉN‰WQ%‚Èë12µrZ˜àIÛW%…¼Õy&ùÑEÀýmˆÔ fõEÛ׬h3môâÇôSfuu0Yp׋ ³AM’Ù¾Æc»»MN-3u{¬ÿw/Áq6ÂjE½mC6k(¡d=V!ZLùb›´MN¨?;cjî%¹AeÏc!fÍ©e¶c"ø­ù×X /Lg„!/ÆÏŒØ—i°–¬hc¢D+!äe±ÛœÍÈÛÚdCI$ Ÿ…MLf;Mgkj›Ã­¤nuyz÷TyFž3]Š*AXUvÄ­&a‹Ç¨ d=M 55I3\Š s+%©'6O<.öî9©ÍpÈÔí«‹ _ê<ƒ…»Ýƒ¯ž‰O¼?öqiûû@d¬éãˆòNíºËÈ+aRGSLØï›(J¿*32~ÕñNnUIxµOÀ+~ò 3W,$¼';®Îúb–—æÅe›.‰òé±n¯_Ó &Ô 9øŸD¹!Û,u¨FêŸOî—ŸìîDÓÙ$€å†§@Œºl“ƒ=¢s‡s:™åŒÉO_•Oð^÷¥ ˆT´uLJéuÞ‡zgÛê¸M…þÝaq<æÀÙ\è2Yð@úœÑÉ›XRn[y(}.'–Yn™¼}¶$àËÁÛõ5¿_Ë?gAþ{ôß?¡È•Âæê¹Â[ø%MÈßîBÈùÁôOϨGìZ"ï„cã{õTÁ¥)|2çá®nÕo^k(69în‰°áÚkÈÚÁâ×…3¡( `ZšQŸ¶É†¸ËuìÖn*träƒzÏ{b™å–ÉÛgUO¼}¼0ÍÈCŒ4Zü¦&D´¡“V8—’nË(~w'»`Ù| GV’ Þ_PàÞä ÊzûšÞ™ÑÔ2Ã-S·Çº,½{ ún Š­ ŸŒ;F"-´)|Ü1‡B.17òe>™Êh²àPÈÅx2þ˜äùyr\O “\2í鱿ˆ—/‚û˜¿–ÊôêĪX åÔë’«¢qèaaöÆrf›*“,XÕ~ÔXåNIf“Çn—BýžZf9fòÓoíA|¥0uÿD¯˜ûYŒÑãªÔõcªI ÓÚùÊH„üô®æ6JŠŸ?Ûƒ,Øœù.ܾ.2«z<¶‹~rj™å˜ÉO¿•Àÿ5–¢ÖT1ZS6£Ó£ó(¥íðôÌ^$BðL•Ò2£µÉ&*—Ѹ31É’=ö¡\ÆœZf¸eêöØÍ©^½Å ‰/ÞàRغÁ@Ñ#".¸Å1B7pA&vØMšà*ÝO…nDEŽiŽ{u‡n4©ÌtOÔí«cO/u^ ¡ÕIýÀ]/ñš¬å/껾ð=Ö‹mÙ—¾æºÔµ]æ¥ï$^ê Ie^Ç]ŽxRšé¨_ó+x§ó¼ v sé²±êSmÃX›|ßg|ü›ÝøØªÆÎNg¦ û_`U '™õÉÙÅË9­ŒrÊԧϺ¼Ÿ#/ßÕ„›œqÃÅAW›?›.Òè>‹¢^¾«©íâÐ]Ím!l¥¶‹Í÷4·]¤ÑmE}úüúF¾wÜ—€y¯S»+ÆCáy ”ß8"÷'Ç1ï<…¦óI:sDèãÍq’Äî‹ñ*Þ<Ót2Ë“Ÿ¾jCâ½î3e€©ËLˆ3BZB¼×Cj-niì@é—Âk¤ÌxŽØdCfm%îÈiØdîözìƒYV{j™á–©Ûc¥ ¼{ O锪VíC2E?j´,–"H-RQéL|Mš¡”³ãú¦B.Ç•BÜžTf¹dòÓãÑ”÷.‚$¤rÔ.èÄ”t¾!Û»tì¦#×Çøõ±1 M³=Hn5MD!çM‚ÈsŽ( è=ÌrÆä§¯º ½×}©žQ聆%œqHé`Û©àÎ~ãF1ùƒÇñT¶ð8!ÞC’&ÈQq.qmª–!µW6.»¤È£×SO*³]ùÃc«Ÿ½|L¦A;á^šº!W64žs¨„íŽ'»Eñ˨*! ù*@ÓoTˆ­Œ“Eªµ«rN*³]ùé±RiÞ¾ÞJæ}þITè7“óú„ŽPÌEá¼4CUo“ õ{5fNÃ&#‰!ÇV*èžšfº%êÃcÝÞ½ÝâfŽvjEWW| Õjãå/äozW.ÈŒ{¼!®x¶Ø'ŒxòØ|Âc÷Èågg¾é±¡RjŽ/çË<þ%ÿÃß0¾Öš(´…=¾û +2ª‡tª°åIaèTåqD¸Ó˜FlCnª`cÔÀˆ/=IŶ¤ÆíºXç¤2ÚAQ·¿Úzów­%ä º;‰tœ(|=®(1Ãq¼@®‹Y¼0±@É4C×Å&fü1©,}õ¸®ŒÍI—"›eS¾*îúVç%«5¨îqP‘*Ð1ÔF¯0F(Y¨…^õ-U£æÉ¨æ‘¹O² “ÂX¤É3ʱ%m´§–ùzR¯Ç¸Õzõâkøïo÷ÿéÿ~ÿùþÏ¿¾ýÓßBŸñçuÝ—Ê_ÿVyÆ÷ûíqÇy_Î~®¸Žýúóí/?ú_ý×·ò™Š×õý×ÞŸµðYÏBÖ`” –¸N†å{ùÿg¯ÿà³0êwÌ~_ÄÏz?Úü…É:ÂòïùqþõG;Ë}±¸þòãÀñøYz8¼?o>áàÈ“ÿ9g¸ô£….uáÊ´f¼ÏùÞÇýqÎñøüüëüú×oñ<Êúþº€r÷ÂÛú[üö¿nüËþˆâû]²@'u­Ÿ÷ ÿ¼Æ¿üúöo÷ÿ 9Œ¶¬endstream endobj 6 0 obj 32854 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 12 0 obj <> endobj 13 0 obj <> endobj 10 0 obj <> endobj 16 0 obj <> endobj 8 0 obj <> endobj 17 0 obj <> endobj 11 0 obj <> endobj 14 0 obj <>stream xœcd`ab`ddd®ÌMÊÏ1µH3þaú!ÃÜý»èGÝO'VY‡&¼Ý<ÌÝ<,“¿¯ú..ø]„ÿ» 3#£ž‰¹s~AeQfzF‰BhP¸Bp~ZIybQªŽBÜÐÒÒ\!©$±¨ #“1±“‰‘‘eâ¾sÍÿùc>ã²7ßÙ¶|g{Ãü}u‹èwþ9¿³tWìþ.kþî·ðŽÛìÝzæõ.Š™'Ñ[ÜSÔÌaÄþ›§Öà7[÷o¹îßòU¿ 6r¨±wÇuåwæïjè\ÓÝ×µc{Òw Ñüiå³ke喝Þ}«û;ë¶‹—ú8¶´ˆ^*ܦÓý[¸û7W’»S;ßOÓùlÝ\ÝÜ 0lrò endstream endobj 9 0 obj <> endobj 15 0 obj <>stream xœePkL›eþ¾–¶Xp+t“ö3Þ˜ŒYP‚È0»1 21ѦŒÒõJ¯P¾2)·Â;(+ÂXËeÌ ¦° Y×edsà¦s„‰ C#Ìe õï‹/?lMŒ?üsrÎyÎyžs’ˆà$I ‹Ô:Æœ"7è”úpŒ¶“è)Jä¬G£¹¼D"¿Ÿ „\ ŒøëD,Ü Û‡õ[.IVyOçŒÕ&µªÂB'½-?¼#9yçÔÌÌLº´ú_„ÎeÌj•ž~>”Ø­Á¨cô–,:'4­ÕªÐ*mµ±ÂL+Ëʘ²ðZ±RËhè<µVm4ltRÎ:M&KM …ôµ®Ôj¦ÿ9œ.0dÒù´œQYµJÓÿ‚ "«e©i/¿’N§Ä»ÄV"–ˆ#ž DÄ“Iœ!¢B^Dñ3)#›81œýœÎ-ÎrÇ 7Ö¯ Û~P±ogùc½®šæÖFwƒôE| à‰ÆSÍ= [ ú}Þ©6ʇK‚‘æ¾:[Úë}ºKzU€Ö’ïÐ9+­UNÐ\muU^‡Ç(‹Ýn>:fúlîêMøì )Ü…vöŒuw ·‹CúΑØrxö¬s¡wãUQP:Ê+ 1Xp$Àäy<4¡˜6Ï‚i0Õ7þéìç `4•2ø4Ž—¸+E+Ìà ftzºâOX+»& º~ê? Õk\x9$€÷ÊxNÁÉŽn§­ßÛçéÔÀ‡¬FºY"Gë-5.Öåt+[)žõ v¯éW)ô‹ Lµˆ†¾#áÃ5.2ÀDQmG¹¼Öõ>ãz>Ü s<º¸î‹{m院ÃÖ#åšÕ8rš.ý:>6¨•yFö{»2Ò¤8òŽ¡maVç8zx+.,3 ñqó0þ$ú µ »¾´^”ƒ<*C¾ÿM£Ý;\.Ñõ;¼a?Y§­bÊzoiyd2( NŽÌ‚90]ÔÚ«N*>¢âV烧'nlûñÀÍ—JJ¢3²•Ö·|Í “ßΨ¯Š|«2™¤:Ýc¦Âßùá wP¶?÷iaè9T¨àã¹ÍBÞø ÎÄý¾³þàã½wD¸à:/üÚY&áÆ=.܇~Áwø½ÀÓÖî½ð ÁåemuM¶K “¸®µ´‚q“ÇÝ9v©¡vRåׂ$*¹àl»Ã;¨“h†,]6@éÇLLÐüýÊ™ékÒ+°ª®”\S\–á¨*¶Ç ÛÐx—D£Ð(º»y|Ÿ ÆîGÅ~Xä矋Z}ì\§P¸Ú/Œ&ˆ¿…•Ún endstream endobj 18 0 obj <>stream 2011-11-22T19:35:19-05:00 2011-11-22T19:35:19-05:00 fig2dev Version 3.2 Patchlevel 5a ghost-extent-y4.fig endstream endobj 2 0 obj <>endobj xref 0 19 0000000000 65535 f 0000033170 00000 n 0000037378 00000 n 0000033111 00000 n 0000032960 00000 n 0000000015 00000 n 0000032939 00000 n 0000033235 00000 n 0000033581 00000 n 0000034600 00000 n 0000033347 00000 n 0000034012 00000 n 0000033276 00000 n 0000033306 00000 n 0000034225 00000 n 0000034856 00000 n 0000033495 00000 n 0000033925 00000 n 0000035956 00000 n trailer << /Size 19 /Root 1 0 R /Info 2 0 R /ID [] >> startxref 37573 %%EOF fastjet-3.0.6+dfsg.orig/doc/figs/Makefile.am0000644000175000017500000000021311772066653016774 0ustar sunsunEXTRA_DIST = ghost-extent-y3.pdf ghost-extent-y3.eps ghost-extent-y4.eps ghost-extent-y4.pdf timings_best_3_0_1.eps timings_best_3_0_1.pdf fastjet-3.0.6+dfsg.orig/doc/figs/ghost-extent-y3.pdf0000644000175000017500000011236711766120132020415 0ustar sunsun%PDF-1.4 %Çì¢ 5 0 obj <> stream xœÜ½»²åº²%æï¯([F‰xàt„Ì–©h«Zºmhê6ú÷Åçís÷¶9ãÄ>Å1“H,¾€D>þ¿_Çïòëˆÿéß??ýïÿyþú·ÿñ×ñ{2Îúë=øïÿöWikþ®¿Z_¿×Q~Õë¿×¯Vzÿõßÿï¿þŸÿí¯»¹ßÿÝg÷¶êïëúUû´ûߟû—~þ>ƯZŽñ»®_½ëw)¯ß×ë<~5ñŸ¿úQúï–?´uÌ_å:êïÓ༛¼ÎûTÂv•ßµÿ¯”Õ~_=6¾n· }ÿr«vüž%pè5ÇïrÝàºõÓï±]¿þgüyêÑJÅ_í?ÿ§¯âÿynÔ«^3®ù­~¿ûŠëX{_¿êšý¾ô?Bg¹0ÊÚËïrÿÛK½¥åZ§ÿüUf‹›'…ãVÚD¶yŸèþ³^¿Û-­µvºMÿùËê(câSO\1ÞâãÄPî«õÎü·ûÊü_¿®_íüõ_âÿþë_ý~¾þçý¬ý÷ÿÓ}SÜ$ÜYžÊŸ¿F»/xÍþ_4ð_î?ÆåM|ÿWRõã—`ý»†¢åûðß·ü¯UsW=¶JþNžlU|öƒœ*ì–þ¾ûÒïëT·Â§DR¬ÇƒóÙJjóÑê?(t•ë¡N ¿U†§§*>ÿÉßjìÖþ^‰ûæ[Ï¿Šðß)’«òà|¶’ê|´ú ]eþî…ˆÿV!SR¡Íùle+ôlõïj½œ¿Ï­ðß)”+ôà|¶’ }´ú ¸ûw_ëŸþ>Ÿ„^Îþw <[¬ýþ6k­ßçý‰aˉþcUþ5Áªü»ž-þ£*÷Ldݧ°aƒÿX‘uºÕød?Zûg%ÖM9ݪÀß(ñ/NO%>ØÖþQ‰ÚÖùÛWÛà?Vâ_n%>ÙÖþY‰µ<0þÿîÔìüÁËVþ±ãÖÖÈáüͳñ/NÏ'ãƒýhퟕXñ•×ã‡÷p~žºËÍËVþ±ã{ús¶gðwþ¯N·ŸìGkÿ¬ÄZ~²xø7 ü»S³ó/[ùÇŽýN Æßtþ¯N·ŸìGk©Äó­Ú¯«aÝÓâì{åóâã׿ýÕz¿â½RëÅ‹œ¸Æá†íw¿GZˉ®1/º§þ½®ßWÙâÚT‚hgºéçõkÓzÅûD­ŹîTb©dòScL©ù×ÿPbRÝæ½4»Ï<®˜³$ºïû{‘tà â1W\Ìó^àu£»·saY—â+ƒ$^•ç Ýsĸ•EÅ 1[&úóWv,q*IòCg\÷".E™¥ìçígã{¾v÷Rf4W?—““«Â5×yaY›Â[ýµ©†h9În%Üäß[µŒãX÷¹[ ­”¨:ãb|Ã0x9F¼ÁêÕf«‰ëù»Å8úü½®ÀÇ͹áqŸ&„år‹ÓR\ã=¸É‚h;ξY¡ŽÉ=æÙ6Pœí®%–b&?õÖ%ùŽ¡Äe¹ß—OÙœ$Ÿ21oÀø9,L=Ö¤Bî³{ÁûÓâûsº©h7ÎZx„7-fç»U 8×J,•L~jŒ òþAðRq1ïo|Á„j‹§°WçÛï~xïkx`V!t÷v¬ƒïN‰aèÙdÁ»å8×hÅ#¼©=~Ζ;ME»cŠSI’:ëR¼}xY­«…­bÙ„ãŠÖPÇÝÐ}!ã[óŠW&Ñýü­Y²Åg,Å7Y°á地MíñyË–;¿~»c‰© ¨Ö–¯§×*§àèñí¨ëª4©ß§+O½»¸A]<ŠK\ñ¹’ Ä§l“/=ñ‰¯xD“z…q[­ò8ÎU‡Z=QŸÚò xõø©žüª´‰$¾'ºW|¢NlID«øVßÿt|œDü,ªÝ᯦;•X*™üÔXé·â¿Ñ|‚Yñ=ÿÙø¼ây»aáåŒOzm|)Ý—¾ÝO)–7ŸåA˜œ8ÝwÛý˜nÚuì6ïã8ÏB$eL{êÊgáÅêãÏ¿.|¼G0 ÝŸ'<¨¿åãžíâYÅóEt÷µ&§OÌ.’,x·Œs‰ZÕ»AÔø@í–âlw,±Ô2yëÌ‹ðúA`e]+&¯í¨´ßÏ>üµpæ{3iÀ³Dt/ï· æÍ— ¦É‚lû>;ñ…YƒÉ­Œøè©m¢h[][lEE~êÍõõ— å¿ÁÆW+^qçOxàâß BÌ‚o÷F–ª¶“1‡¶ønfS N~Å„&î™M›q—d«“SïÝ©ÄRÉä§Æ´@½~xYÝ—çW? ö;~Gÿ¾5.ìý’ë}q_랇Z0öŽÌàò„ØÃ?7_P­ÇòF?ÜSÅ„é÷Ûnj_0Ú—y”5û¡9ßYß2̧®†¯·é„Æ…å~,ûcf|¿øbFpaê-tO®ûµój‹>–& ¢å8[x6,÷“ŒÙx¶ g»k‰¡–©[cΦ^>^†ÑbaÐŽFt+¦°«sRz̽nîE'$Íòî¶ †Å‹Ÿ$ žšå%ž0†%yÆ,&Ûž2ðd×SIQ·Æº ï§´WÜýʇ[?,=ž˜‡ÅÓ¥§·-ø‡Ì|¼Ûý¼Êã„s>Ø®|´ õhŠ8=·lÙðÏ_îzŸ UÍÿÐ\3ܯ '¼eÀDX8W:4Ý‹!V’œ †AÞèîoÞSØ&)žëÂ'Jd¹¢Qåt/©•“Aµ\=WtÇK-‘:kÂûöA`ÂÛØŒZuÉQ*ˆWbX×#˜A„‡Ã}=üáVó­òã™lÃ¥»Å?4¾QÍîn¸s›M}vôuDøÔ–óÜw€ÏÃ}‰ïWÚ²sQ¯¼•VÃ;.ZÀâèŒ/Q\ð{©/W‹OxW%YpµåexõøJªÇ-€ÑO¢#^z­ZQ®{~x˜–Q<›Í6Ç·çÜä„Ü]L|õxcšÜŽûÙ]n[(ivb¨%êCc½“Þ=\†Qc×¼ØÔ„ÚBû£ðev4x,Œf¢»Ÿqp>-q¿0Û6Ù-‡VÂ÷$1ÚLò¸vËãB»î"(dÒÖ•àµÊÃÜqa9|2îeæ ÓËuÁxrÞïÆø‚Ü8Œ+†wGׂñeŸ0Ã6³ù„ƒˆwcܦÆ+õº²mÁ8_ëë&þCoZ<¾aÜ.Š Õ_ó ¯ÔÏþ¡þ.ñ0Î:ç½Ä/ˆª8cÎfÛ#'¼„ö #¦›/xy¾®ÂÉvÅ&%éóžÆÅ$Eíb£ ì¨_ò?ô×Ò— ê^àüªþ ?Frfè÷J&ôôuè'6·ˆîÞú=%ˆ¯Å£ÐR,² ZÆÙ´d&™¾n(Îv×SIQ·Æ¼./w¶OZ|û¢)'q=f îPµ60Yë´7šoÌý-‹v¿’lHfâ1`‘IòY°¿¬¶Ï¢ígw-±3ù©·ö¹¿c(x:í^ý`´ÃƦyý¢¾]ÊsUN@°틆Š&ö’f¨%¨ñ½¢Š)ž©ý^Rõl—(ÎV§[%‘?4æóñúAðRÜÏÓ}Ñ" Ïy⊇uœ'®âyœhp`Bt÷7NKqÇ¢'ɆŸtãŠ67¹U>âl(Îv×K1“Ÿzë‚|ÇP0éõ´ûœº…ù÷u.ììÞs¶øù:áHÓŠûå{ÂGh\RNm…1=1Þ¬nÕή٩ÄRÉä§Æœü¾~˜\´yØæ©΋VË^xß—qB¸Ž†îóyíp‡m> Ûóõ-—¦ÏBæÚ7Œó©À>A ›ÿ¡?'Äß6&^(Û\aJÑ ôC•R Ž¡×=£Î0àF§'¼R÷ 0äo¾à•ƒâ×)¥H/ÇÊ©y¡8›Ý§˜Ê%ùCy]¥o^kkž¿"Â÷G‡÷‹¨¡××ÛÖMFÜö=›¸g…û„7Ìæ£ɠ.ÂLm“‹0µ-ç«óÙÓíÆíÍúcB|ºÒXimD»Y¬iヴhV;;&æDá1ß:¾…WÒ’lÈs…dtK*ÍlnyÚsßK,µLÞ:s*üúAÈë–N ØzùI¼îwè€û*="ÓI'Ój÷UúSX|žêùØã1ºâIZ켸MîÂd‡Y9ÑžºÚïöµêóI¸âS_g-ô˜4.˜>”ø²Es÷''ÜFã8.ôÄ)ëA¨¾!ˆÐÎ&µŽ‰£Zl¢î$¶r"?uÕ3ð^õ鞀 4ÌÐ߸ÁÒ_"ˆ£Ó8;ðˆ%<èŒ}Õ Eõxì†M4`ßߤt¶8¸9°»“XʘüÔU® ïU☀­_K›å?þa^“Û1_‹ù—öËxv&¼?:ÇÅ\ž°0Á3Ÿpåö¼(•Æg²WYn:ÃýB EùÔ˜Ÿã÷‚¡0íøUËr8ÜIKå.M¡·i)Ø¥! _®ƒ»4؆I²àr@°|Q“LïS·}9¤Ç]K µLÝ+æÝCйð©Ê/q÷A€±ƒ/Úò1¾g ´VËMùMöWMäs¸ÝSß4u Õó7í¡­?É/^Kaš¿_`¥4n˜ßÏ·³ðž+ a::và‰âélxK¦ø¾Â› PhEº¿GÜ€­ÎÝæ}ç¹Cˆ¤ŒiO]ù>z±ú …Ak«ýâ ”qeÚNžq¯Dˆ’¥åEb„К* OF¢?ºM;Ûnó>ŽÝ!DRÆ´§® ‚y¯úüóÃ0{OS™_Ëx]'£qG @£Á#̾ÝP85[›$È6q.q)œš‰Ê¼>l•Çø‹°C ­ž¨Úê¼y4‡ÃÙ³¥É†,|œ4·&“Ç#1G…ÂÎ[.L(.pN²`QÀq=h6¹žÜMcÛU®IÙµÄRÌä§Þ2‡ÇPä uý÷ËL;Ä€÷›®Ð¥=ÍpôyÚGð0  rá|ð Õ:Îç“û»¦GXVlÿª}Á8_ ä PÖì‡ævŒúޱpŸï¯vTí¹$æ¶I¤ +ÔQ°©ÒñjŠíªŠû$ŵa¡b²¡ö\Œ·M’ܱ©â¶»ö\²k‰¥˜ÉO½µßýC¡)¼3`ù¤ÙXh ¶ù†w&Ã`¶tèB$Ó;v'%fžµ$ ž4!ºySáF—-Ë©nw,±•yë,ó÷ÛúÀ+LO|àõC»â‘-ã€óBÂ≾qÌþ ïX¿à7‘'0ÅRò Ý~œ¯ZÓ¯ÒñD«}ÃȸIö RXüOýùÿ¶1Ñ$Ò18;Sn¬Äs‰Y1"ÉhÅb¿rBAÅì$I†Šf4v¶ S•­žŽet‡JSŸÚÊòæÐÕ“H¬oI!fÄhýBà8ú(Ë\5 ȉ˜õÏ'uªUœ‡ãÅ„>&õÌÝVàU©.»Ò¾I=’ÚÊÙó½ê3èxŶw…W‰ÆHÝ ç’z^è¦NÕ‰"šö„kJŠÇE£³È‚…óË'ƒmEž5f}n›(ÎV×[Q‘Ÿz+èø;†Â²Ö’2o…ããÂS×8Y»1#•1™Šˆ(NöRŒ©à& –És‰îUi<²ImÈúê–Å¥Ž%†R¦Z[EŒ½UyÚ£N®E;wY·&süà–_…­ FÆ8Ó ]ë$‚×ݦ vî‡lLsARG§Ýžíyæg§[E‘ŸË*õöApe~F®ï‹®v8f–=8[éÑsÃà¦ÃO4a¦öÍMD"½0™KjG>·Ü•¢/;¶˜ Šjmµ«òôÚ@•‚“*øq%f0H/a!‚m¾"î ´îÕ›l¨HãÂp“GE¨ˆÚ&гյÅRÌä§ÞràøŽ¡à²4¤C¸¿úϵñò›»øõŸè*#\§wÎ j׃°´&tqs1I¶ÝâÅðîNb)còSW^Š«¯<H1\+IÀ £-“øáŠ;à†zö˜:µÄ²„&ÅLæ™dÁÊ@ /% ¹á³æ¶Ãvv×SIQ·ÆÎsðê!à»0á_^˜Bççùý™tN/JÈ3á».AÍtmO1ß7ÙPû‰Â‘¶!U“/¦ RÛ—³ ¹k‹©X’Ÿzó+ñ%C‘_9ükG£'6@ðv£Ã3\ãª?ànkˆÓR˜¡N  pò Gû%¿íÜ*Tzb“z*HmŸ-äÎó¥î5?õ¶SùûÇÁ©l‹TñUÂûún!ƒ0¾ÿð ³åJÓµÄ}BäHzð Õzœ¯.Ø[LïU±ílßšÈ1“'´'»=ÛÆŒöKÆ‚ sÂ~[Ø•ŠÑ«Í³+ÃËö’vrw’(²JW¥–‘†åM,ŒÙxaµ)r=îåÏé¶…âlvb+*òSo^—/ ¿+C©ª^ÆÂuèeÌ­õU.¾Œ™  \zkSÞâØ°O*€â|8ùK¢p³UÅäîN%¶Š"?5Öå탠]ŠëûªT‰™ ÕŽøÌc;’zÒÓÛ)QE©¤ ʰŸ˜6•ÅLÜ®Ò ìN%–J&?5–EêíƒPNô¶ñ!ë%ó¬ÞwIxt-d5¼gŠLî Q‹/–Iz õÁÙ¸I£àé‡ÞÙÄRÆä§®Î‡ðZõ™ôn ã2ýð¸Ó¯ aÔº:&h;…B‘íᣕbìn²à@t¢ÑIë}ROØëÝò©øÄìXâñ¤ŽlYîÞª<—{^cí°Ç/q½è¼».dr¹1fÙà‡ä1 Ýê&¶Ã™£… wMÕ]­ò8ÎU‡Z=Q?´ÕbïÍà%¸`±]]îEÆžB×¢wa1'bAyÒjLÁÙhýIP{&‰}„’:¸ B«CîEÙ¡„RÇÔ§¶ºo?Å õX|ígãRù9ŠØ—¸¦ÇŒÎ#쑜¼ ‡ïë¡o˜ñÔgHTnijÕÖôs‡Z=QŸÚê3üæhbЉ/ÃÀ~6f˜—îø]ØI꺈—gj•Ÿ$‰ë|PNy1¶lÓæ£ÍÉÝ!DRÆ´§®ž’¾V}.×àK vsÀ:‚—bÙBïÂîR|'Ü #ó„Àì‡Åñ„4‡‰7¢æ)ˆ|rH;R>uÕíÅú3Zb²ö\6>NF LUl:p• -·D0T±Ibš“,Xøt&®cL†Cc¶]éA¼»–XŠ™üÔ[Qß1æŠÂr®ÌmAš%â±4¿úÁõÝ ¬-Xß E g.+SŒç&²m|&fPM’gYÙò,TàŒÇñ(2©'EçbÅ7Ñ §vWŒ·H’Š©lwi%;•X*‰ü¡±Ê²½}Œ2Åo¥t*ÝØÉFxe‹éDПP¸±Q‹”MrB~&1¹T¦aÛDáG¯®-–b"è­ˆÓ ¸¿˜z*^áuô{BHžÄÄUŸHk•dCî©'®]ÙÄDŽ"ô»íÆýúݵÄRÌä§Þò/ÿŽ¡àc_™dŠun„ÊÅ}‘“Ù$;â7z¬¬hŽ~wƽ_‰UkÔdAEŠ$n[*&÷c·Üœén!‚B&m]ù‘­òÌÑÜà!x VŽÝ–Þº*Ý #èÖKf>謋ÄÛ(Ù$ñ.6ŒO˜‰7yÂuÅmOmd×K1“Ÿz+Sów …Û«eñ79œwúŒ…QÇ,wuOÒaÛuñ«[^P?܆b‘ª°ÖÆ“mšŒÂQÙ¶êJí®%¶¢t8ýÐ[»«ß1}è‘¢MÖòH|r·0vÙÃÔÕN,ôÃI®é 66‹ÛzP¦ÖKD‹›ŒI[ØVt«‹¡ž»S‰¥’ÉOýeù ”GM›Z‹ Ç„Fä4Ôž.irƒSn •«S\ÚƒJ óš6¬"Ç$$+É6Jw—K!“·¶N™öZõe6Á&SÓ¶aN `¸vÍÐ=ø,)§1ˆ„â>T%%R鿤±ØŸ[JýšJ,•L~jlƒÉËÁ,ÎçÉײ3sá f2êá“0ߟL]܇ᇨÀɛÈIy’„ä†Ù¢2½ïî$¶r"?uUÂæ÷ªÏm¤†ãRAkãÅlw×yd‘ÝÎ’>:F¦Áò¼6:Ž˜*x¹Tq$t€ß‹ÈH£–yŒ}›Cåy)¤RI}ê¬Í¤÷C‰¸àñ -1¢êØU¼ªèÑÇÈb¥ZY*à'š`sÊá®”¦ÒÉÑívmŠe§C!S·®NÃõRåùMXxSÙú 4l{^LX4h\žðJ'ÂK¯±F–Ä1{Ï´=O™Mž2.³í™¶gu-1Ô2uk¬/»‡ÀIê:¨Õ5» 4®É ÚÄ:ðÆLè|â©"RGø7X<¡3É„lg‡ïõ+É' «íÓõÉݵÅPÒÔ­±¦¨ïÓ¯œ¨×~š?ÄÌs°€÷9‘7rŽêcÕEFúH JŠ'Õç ]Ì ijä²­j—ǨÍÌN-”J¦n}•~åÍàÞv‹˜!O•"£Síé€^•HÛþétÊM1l½›,¸XÇLèR3Sáuš-Ë)uw,q{R[¶Ší·*¯Z/çoƒÁÆ—?õý`±v°âUìyŒ)C©Ã(œÌGAjBx¢'â,aS1/P»' <»Sü*‘úÔ×E^^<ºpef‚ƒ‚ÏQµÍÌíŒÊÈÄ„gÃݲŠ15É\< VŠ õ^GÂ- ÄÙê8ÅÔ+Ù©³Ü ^>n .á“ÓŠÄ'3ƒÌU˜åDâ9áSN»„çd6‰O¬“,8åd¼˜V$É ‰DÜöâÄbw-±3ù©·¶Q¿c(z>eêìL3™¸-…LÎs<N¸ùá–©œ`K\çƒ ÐI%4è‘´Ÿ·:ë´;•X*™üÔØÈËÁd)Gý5WÃãô#¨ÌØá½?:3‚3s…ɰÍcaéBÁŒUMRˆÔ^œÊ"úQ3b^Ìcïf¯3ctÔ§O€>f?uU¦”×jÏõ²CÔ ûÏÆÙ@j”À Ûǽð‹Ý;˜á[å.ââ)­‰ÀF|¢ÞUsF$Ö³E›ð³»¡LqTFä]µVx¯úÜü¼âÚŸ.Ê{úý¯f\ó^Þ¡âBÄR¬„±Õ71cÛ'œHIœ|BµŽ­ÁK7ª*˜¾Qèö—CS<áz²¯gÛØ ý’±ðû€ZÃ-b¼à2d\Núþ°øð„·aÅëõŽ%@’øM¬Ê©cÜ †LmaoQ«mú¬%”:¦>µÕ·áÍ E‰ÅÜb½Gƒ qd€—•yw$¥¡ÀQ˜Mî–‘wGâŠÜI&dÛq¶ñRBg’£fÌ™mѤO'‰­¨ÈO½eYúŽ¡0…ÌM‘ûyx„JS2©´Ä°’4ØÃ„"_N¯JKLq›*@ev/&Ò1ɕ䨦Œ»K‰­žÈ[[%z¯úÌ,¾èç!C=PxC‡­}1óa‰_ÈL'A2Ìÿœb$ºÛdB¶Œ³‰ ­í&ŸH‹î¶‰âlum1”4uk¬ÜâïS1â9:{×çÎ?´‰Ö {kËøž•§Ò0Ü žö ¥>ØúNA0’îÄ}dâ}ßÄ—Ì- ÆÙê:O fÉÿÐ\I¿f4|F:œjª³‘+¥HÄÇÛ­2áHÄw#Üô籸ÀÛ'É‚ÎG’øÒ"rS¦0¶í|$ÙµÄVTä§ÞzV¾c(r`Æ×$=²Ú’ñAÃûÁOQÁ§¨„¡±Áë—2‹×àÇä„|U'¾•󆿴e·Ü¹æn{ù•*‰ö¡±]—_>ÿÎÂþYÞ!ñD6.îÌ=N¸AUÖ‚!B¬+I1ªÁl²àrÌ­1q69Ò«»e3Ín!²Š¢=5VðÛA'L”Ô©‡R­n¬ªV¬ÇS#ÛæUÃ³Þ E±û$0ªÐ8.× ÖØR‹J´º»“XʘüÔUŽ—ïUŸ/¥Ø=:–*! ±”q¤‰(l0=ÿ‰ðÌ17¤ÅŠR0ÙPEQ2ˆ¥ŒM.XBíÀEq×C-S·Æz%½{œOUdðˆ; c"Ü:Ÿ³r)çÊúÍÅïÓ9š‡2¶@¥‹û&v®b6^|PM|'«íáW¶»–ØŠŠüÔ[“©ïŠªk‡3B¤ù¥}3pajøõ÷ŧWx5ôª²Ô& ÞTIrþnÿá( `æàLÒÍO5³OŸ ÌÿÔØåµß> æÎ¬0‘pâa„™C[…¾:æm‹v¥,ºgÎ,ýCñ¼àdrBå6æüa“{Ù-w–"u·A!“¶®Ê–ùV噫 Ò#pUZÓŒ'AÖbÁð—BáGPþaWÆðá‰KmÁÒnŒ3G&éB(­[¼´“ÝIlåD~êªLïU_w~÷å,¾}ˆG× 4´‡ÌÀ7DA"Ü@!GI¾¾É†gñ $|éyŽÝò¼Ô-DVQ´§Æ~^>NWW¤gl2dUZ"×b œUXª‰µè‰bnv2ŽÅ,lŸdÁ&3fbZ"“Üa§tÛ]fÌìZâõ¤®G»˜²¾{4Ž÷ú+j»¨òà½ôFåžÒN|q§¯†1q%„‰¸0ÊÌ'”žù„Í›Šþ¡7Öî1½³·Ûï.Ï ä ¡]²šË:þ%cQ1Zgš¥}À¸r²|)þþ‚aä†ü'³ÛV§ÌåïEsEÌì¶Â3í$#ãŽZî(’’Ýv9]¯í©±KÒ¾|xFÂ(‚#EbOÖqq6|vfϾðQlæ.Î¥-ž˜i'Yp(¡1£/7ù¼vË'“­º[ìøH%Ñ>4æÃñúA(í"#Ž +hHf„GH†Io«½ù S†IXQÑ-©‚… ¡Š ĆTŸ*ªKt².n;ð¥¿1jæÖ ¾éDñ¼]˜)¤Õu’l8UV×x±Bn’×Ü-/dƒËnCD…Dzèª2oU/ †¬÷êï€þ‰„¿Ü̽’ÄcÔœBÚƒ Ë?Dˆ®#Iëp+q«]^'Ù©ÅRÑä§Æ¼¯—f˜a¡f0Œ0ÆÌ$$ç@¢ÁzÂ}AèO¬˜˜Eâðÿ©›lxª˜‰1Ón2fÛSÛÂÙµÄRÌä§ÞZ }ÇPèŠß¢ýØ&µ;;h|XKÃ’cµå:Âö[°LáÏ2o™@Ô]iÄ?DÒÅTš06šYIJ¿S›dh+wüW€[¡»‘˜q…𣏠^°.ŽÎ˜îËéX ¯M,Jwg\i{4¹ÕÝrÇ™ê–"©dÚScm‚¾}JÔŽlsNf9'bl¤gÉ"XÉ×…øl"ä:g^‹Ræ˜l8'Ï%bíMEÖìlùb$Õî˜b«%òCg'kù è§šF¥*¿mb¦¨½çX'SØ rºh Qoá˜x•-ŽëŸTåŸbrÚMCêÚlU™mw§K%“ŸËSã탠8Òl茱oU®jð¯ ÁòBáì\äè&ñA?“í›n\eŸäJïkµ]íœí®%†Z¦nåþî!ð;å!òœÑÏÄX®i ‘ñõZrl[>ŽáD8~ ψÕßTC•W F 58Š!"Ü\>¶Ïâµ…\Ã&õ©³¾ïwäX‚ª7eV3V1©˜ µ³ÖTÁ?BØ–âslqÁ#ždÁæœ ÂªD•dÖžrÛ]ùÕ²k‰¥˜ÉO½µ!÷C¡§kçúèÀä\èžõ²àKWâ³ ÙJk£ÑüR2ÓZ•6MâÚÔÑ*΋ãRXìE¤x¸k¶IGR-Ð$–z&omåãú^õ¹¢ÀÄ!RM¨Àž¨,‘¹pîKw^œ#ƒÎ™0fЮ ûÄm¾àcÆbéƒ6é‘ÍؾaœOö Ô/ùúkñecbÒQøÛ”¥5ãÉ(³vÌ“yVõÎ<þÃ*àÈÛ"á`yS‡Ê±«TUbÌ3yå ¸|Œðgvk¡•õ©³޾,Ž6”ߦ<¶ŒOU>Ñ`”Ž : ûÙ€`S|“§|¶«\±©‹ŠÑª*Âî%´z.¬üÐVåÑÞ<ZjËI{‰n%ã“÷C„sÓ°ƒ»e†eCæ)ÃÄL6œ.ßfÌ;"É ÷‹Û^º²k‰­(ÉzËnûCQ¢¹ùkžJÎb+œs¸ù´b— Î:Ø2D¢6ìxí°¶ù„jçã6›ì»K7m°ì‚PÈ„‡®Î1÷Ví™CŸIýà¼qãÖTíóbØ*çÇ÷Såã?L$HY aoÙTžIê…¹³•äŽÝ,¶Ü3E½ºµPJšúÔYùóß? ¥¤,î¨\Î(5¹”íN•Ï "a"çò2B&gÕM—¸©èúr.g@´ÌlÎÀ­*Ÿ³‹®cpnHiøÐµÄPËÔ­±R¿zÊw;â•ÅŒp•äûµ×…¤xDH6¹µ.ñ*\hÜ‘1œÚ“n+&wx¹í®íãì?H-RŸ;ãÙ«‡@ߨ.Ö[bûø°øÌ˜ƒeX\í·Âe‹™ö É‚3 7)gr …Ô2ŽãLv+ &m]åÛñVå™.I‘±À Rªš'#‹—õ°JÌØ$ ^Š÷Ž­(¼7ªKÙrÇ™ÝEC„o›I[WEX¿Uy-×⚊Š%:Þzù9Ñ:kº0Ä1¦ šžAÔ8u3MpO/³ÌàÖ¤.„¾ºÝ¥ÈØìTb(dêÖÕ ´—*ϸRý¨§j 'f™àÒÃàDÞý{‹î©,ü½±IŠaÓÝdAeøße‚7E„³mÕÞ]KlEE~ê­èÒï Ý“ù:+÷Ãó³Ñ½Þ /©Ñ¹Ä>.Vpã‹ñÐUFåêÞbNÆ’,ˆ§t£ +Scû¥fËDq¶:¶ØJмu–sòÛ¡KýŠ5i€I|.úIk³cðCÜ !‚nÜ*±8¶Q’ àt’D«* hHó˜­:™dv*±T2ù©±/ÅËÁz½ÈnÖLK?Ó¥³LÖ Uõ@æ4¡?÷ÙL¬¦Ê!e¢ Y€…&ó=šÇÏlUA>»S‰­¢ÈOUµ÷íƒ`p¥sM”¸aysC–¦( vx˜ã)‹NE†ªI/d¡EÍ&¬“«O—ÑuwK“Ÿº*¬ë½êëI8©SñMD|7Ìü§\”DérÜDÍǸ…¸œá÷}‚ÅŽ¨ [ñm$¼t#‰Ü;o¤æãhÙÝJh%E}êìgáõÃàå Õšª¤d|²âQTäëUŠVC/em†hI˜¾€–î“XÉÁ-*N}w‡R’?uÕex¯ú*$Žíµè—x.UàfÐ6ÞDZƒÁªž¾Îxq‹;‚É“,¸†n$á«j“PdfvqÛMï»k‰¥˜ÉO½]Lü+†ÂPÇ »å×bµ¡©’/‹þš×Ép½U}±|“žžžp$Lªàb½#}1õbI´{¹^Œ;•Ð ŠºõU ã›@×ίÕÞ€ŠÊ»qxãðÿÄ"Çr÷Å"¬>7MP™Ô7Õi3µ³Š›Úí.òæN%†B¦n]åÝúVå4ä%Ë€±ùÇPùßvüÁ£wiª7|ªÄ×zm0Öò>©\ú³UÛ²C ¥Ž©Om ôæðT: 7zænL÷Ú£Ê'™óÛÛ³BÑß!gh‰yJ‹l(?FãNßÜ$øæºí!?ÆìZb)fòSo]ŒïŠj–Âx2Vãeœ•?‘ÆàÆ(ý9y„@0dN`²ºUÖþ$\²-_ïS/x¡°ÕK–åìB«#ꇶ.[úâ<ë8i+K<Ú3ÒハHyœy¼#ýRˆñMÔÚfãùŒô»‡Ý~ŸnyÊÝJh%ç#Ò/[Þ‹¯†ž¤mgyøŸ>tC1ç{T‰¿AáåÄ6ll4áËÑ\Ã3çbrYæý$)Šõl‘·»“Xʘü¡«Ÿ‡×ªÏ­ŸkFˆö…æ¥í%†su˜t[]x*»+mß6Î$ž(š—dAWÚ6¾š¶ÅDæÚÔm_—wâÕµÄPËÔ­±6€Þ=LV/„ÕYøÛŸ©¹®áË+xq!8,NÌp4¤xqUirB…‹W|¦6AÙ¶Bv×K1“Ÿzsêú%Caò L©îGTžº‰él{ž—ÞvpÅ=ÏêãÈ3ºÞ“vÎL5”Ÿ®ñÕ•>‡ä¥(Ù2ã\uk¡”2õ©³Ò½¬Ïˆê\e(“sb¦c.‹åºP&-ââQ®K(òL±JXŠÛù (ß2ÑÉTÌI;‘¦Ù­žÊâœZL•’üÔX•ß>¾°Z^Ö¡qÑŒ1‘.ÝýÔÍç-rãƒIä%F¦£M&ôM²1íñ&Ÿ,ª¶‰þü•][L%EÝëEõî!Ðú:#(r\¸•Œ˜Üñ˜‡b ‘û1*Û-£05Ž¡JŠ;2æ%Ùð’aRødfÈ$O SÛSÕ²k‰ç“:íÂûî!ði¿(°–©Âó5š¾N¸ÒWgn‡Žê¼m(nLt`² D'¢Ñ+©¬í–]":;–ØJмuÖóðöAÐò û¯C1~ò‡9™ì üb2<ÖF¼ ÃÎ8ðªÜ'ôóÁî€]ÑÍ‹‚Vj”î*cʇ®2¼¾X¦zP™ùÅp‹l“úêÏAódõqd284_ °ÁÞžÔ„ ¶7¾NδEžGU»“wIÔ1é©­’<¼y|Ý—5Jw±(7àD²f<_x±EúL\Ñ(•³êt+»OˆYóƒèÖ=«þµ´YŸÎÈ)âö ã|*°OèOv¶·Ò—Œ…ñ¤°lÁ“¡˜Âƒ…ÀÂT æ.s3㈺ªˆÍј ¶;ŒùwO%œLÌR`Iž˜¸í©„“ÙµÄVTä§ÞŠ*ýŽ¡Ð$Xå~ØFâ%÷r™áAB7ÁÕäÏ-R¥]Zíh¹ tODøAܪË-d§S%‘?5–Aðíƒà×#¼¨ l&?‰*_¼Ç¥ôB˜!tÔÂË”¸%np­JrB%„¾çrü’‰\KË–ã¯tÕà†(2é¡«¾oU^_Ø\š«8v_?ÜQQ¬]\Ìy²¸l½nˆ·-vºö µ>ØVÙo怋±÷&ÆÒ?>qjYïYv'HUó?4÷wã[Fär*A»ðlÍWžq0=ùÒ­«”íTl__Llnñ¬ÍdÃÅÈV¡û¹? ¤ÂЖ-_,„¾;¦Øj‰üÐYéäÞ>ºì3 ø˜zÑ&æ‹¶Ž£ëà•Ç›q9¦ŒÂEvQj7Òxñ}™däeUËJÚº»¥ÐJ‰ú¡³œ÷ß? &ÑBÞ@x‚Â÷ݸÁ/½Ì ãø¹ßTGž(&¤Oáɹ©‚Û‰\Ú7yÄ;[-¾Ðw·J)SŸ:+‘Öû‡ÁËëÎ_±¹Áõ«˜V wwÈñ[.ñòëá¼ÐF—ÉEö =^Ÿ›O¸<÷"lÌÇá¦ã£F¿P%S>4ÖÕxý(x1à®ÓjpþlÌý ³™Þ!‰¢3º¥¸<©%ÛÅ™|E0Ášhõ<Ý*Qœ«N-¶Š"?5Öµxû X¿½z>â g-Lð5¸œn´Õ7¸ß‹aÀŸå!FÄÙfVÏòÎ)’Þ8å`ëÍ3’ì<ÅRÖìÝUÐñ‹ÆÃ*_0Ù´R±oT`’iQ( ‘3œ \غû ‡Q8½KŒí•M¬Ð-l:›ŠYb¶¬ôK»c‰­¤È[gUùzû ¸Ç¦Ìvi)k\¹½àZf=µV Ã>¨M1Âh6ÙðÒrV¸Ÿ\КvÛ£ÊÎí®ñC*Fò§ÞZ•ÇP䤀Nå­Úø`¦æÊð¥³ÐR_ ÍYlÈ?5eñ€ª$z‹M˜©§6‰©²íî-6w-±3ù©·¾b(ô ‚ÇBë€’Ь áî8Qb.@Bpš*yrrу]e“ ]øŒ¦fè¢^awË—œø²c‰­äTXKê,?ª·‚/®+¶¿Úýºã´1¨˜ö¡÷xºb6}h]s&„³êíÁ|ó/MòüÜŒ{{µlz5ÌÚ/«dʇÆzg½~*!BçÏ“V‰¤cFIøT—È:”qmô¤°Ñ#ÕTAe3ÜaR›<‘—-OåÑÍn%´’¢>uvÕ×ãiÁ*ƒá=‰;3¶Â”޹ƒŒ4DóÅ´ð˜l8”vÌød›IF¸I¶}jâ“]SlÅDþÐûÃŽõö¡(Vgwáá¦ê%Agem¤‚<£K,®OjÍvq&*—˜6X×D­—=q§[E‘Ÿ;^ã僠3ÏBÀÿµ‰(¤˜¨cm‘™p° •óT”Å §5YpÑoƈ»ÊIe•[¾”6;–ØJмu–;ÏÛ!/’¸˜¥U–¬N\P䪆sEE5«Gp¾@™, ²I‚UîKÆ •±6µ¡/[mr^Ê%”:¦>µµÉ‹ §!ÂBb?³ÎXT.,?ÙâêÇ“‹cÝ,\Ùàçõ ´í?v#&Û$”"Ë»½ÇÜÄRÆä§®~^«¾< Zp_ºåÕKâPÑ7&MËÇÐëp©8JžTÁ†ìF³‰¤ÌØîPöìTB©dêÖ×~…/¬·u±DLaö4:'xCÆž5,Ô{•ÃÑÁ¼ƒ½žK…E)†Ef“Ëà¹DA†›ŠÏa¶¬¯åîXb©eòÖ™ÖÛ׳¤‰k×ÌÒ}þA¥÷΋ÉåOUæ;Q Îðž œ‹ééó„9l€,Û¸TtÏÄK5ùÔò•EûܵOfæjÎéÒ÷Œ†ç„1ò~ªv»~`5‡5¨± <ïãHZ‹òmvmÇÏHZ›"µ‡SùÃdõu3ï9г£Q8[ý¥Xê™ý¡­.È«G ‚x}Å6‹ñ WfÓk|÷…3)rí-#µÞ¡ä¼S“jèÈ*á5•ˆOä«¹Ý æ‚ì©cÒS[ç|ñ˜Ðn ·N­,˜¸  b‡¯]PìŒE޶7m PCz“+óamŒú‡›ŠLcjµ1oÕîPB«'êS[¥±{ó¸áÚVÔÊõN%PîS²&Uõ>%JVÕ½OÉŠV³~t’÷^¥°w+InÞ­DÛmïV²k‹©¤¨[cm·¾{|UL'žcÓ–ußGS× ±ËAOÜÑ9Šï!TÙo_#Â6¦¯lY¥~vÇC)S­­^DoUžúøB`ãúUtcÒ…¼¨(µs?ˆ0E/'KŠY ãá& 6™WŒ;mÂIî|¼ÕvŸúÛ¸k‰¡–©[c]€wžæÈç_ÏÁʉ;<Úël§2‚Æþ^õ¢½L;‰QšA)F*çMôN¢ñ gøM>-Ÿl×ÝB$•L{j,ó·Q«½Q—‡ú„†Ê68ïÜXÕa‡"úsŸ[Š8Å¥q×… OšäO—]y®Ýòä™îv²h⃴ue´êk•gÓðL†x-Fi"Ûi\±…Î"&|9y4TáK1êEn2áåPæÄˆµUƒ7€— Ê "_ªF |X™‹÷EØýºøÄ­Á ˆ&â÷“&X<ã¥T¤^UÞ Ì¨ YÙ©Ä©¢ÿuÞ>&“(øª”ÅÉEâɸp†ñÝøDØ8ùŒ¢RÞÅý&‰'óyšl¸8 H|1¨<Éף務Ü-DRI´•LâíƒPJ_äQX§æyÆ Ñ¿aaVTDð׃^WDJšŠœªG fRNÍñˆÙ¿ióÑæd‹î")cÚSW§ò}­úÌ![>9‘tµ²ªvò¢¨$êg b \¬5èÔÙ%Òí¸ÙЇZõFH6œ·„ã 6ÙòÅçîXâú¤ÖlYcߪ¼69ñ,&[ŠoÖUÊá uó"<˜y$ÀŽ|ܶxÄõل-ã›õCW„²é]áËh½gt³;O1uKö‡îÞõüžñ°:v {î^‰:è5´iˆ j©¸ ˆþ h´JÐP|àJ²àyà\#¨·©¨ ”-«tÐîXâö¤¶lµ±ßªµUuò7@ÉUzßVû®µ—åd¼œº7D0xs: œÐxŸ|Cï­ú‡Æ½×¤wnͺýî½ÛT Oí’ýÐÜyV¾c,¬l·âvAÂÁ#f#DUÛ#¶´/n–7d 0ŒøØ‹ü}Zl¾`‘ÿhâKÝÀ¾ïG–ØEëBþrï)¦ž¢n¥UÔîõ£à‹JS鯒?‰ùBDe+äñÂûò~&\sh,ˆIŒbI›,¨=ÂÄ|—n2^žÙvgáŸÝµÄRÌä§Þze}ÇPa‡4.÷ÛN)‹ ó_Ë–û}‡XK&üŠ ²ŠOŠkyPª 1çpÒ2»Õ¦„ÅÙ©ÄVQ䧯а{û T˜yD&Áö›¡ÿ×óQ(6E,÷oˆ|"C%JPúI‰QYw“ ÙòŸ¿Ó äF·Môç¯ìÚb(iêÖØ¥™_==h{ŽÆ[‰H /=J“õ¡//Tm29¡ÂrŒ,õ›Ü±ì¶»Âr²k‰¥˜ÉO½åMöCáúu#K×"VÈ+Q–‘DÐX§"¦B(›¬`™bhl² –±FZ‹šªuªZÎe¬;–ØJмuÖ:üíƒ`ƒIwŸ¡ZàÆ™c¿n)!O:÷tÜ$‹g!mÓ‡¾Æ',$uâ]ív§^åÙ©ÄRÉä§ÆJ[ðöAÈãuD„°bÊ…Þ&?@…Óµ6ñ}‚#(=},nŒ'6ÙP¥¤ƒÂ“ ëq¶-[òîZb¨eêÖØ.¯¯‚}X·újÉá*bZ:ÌZL·3Z¼ä­ѰWÙâ1TzjñXÎVI¢#–Û´ŸVv)±2ykëÕÞkÕ§w+(q‚öóÀEHp€ ©±cXðÉ'B½Vœ–âó‡$ºb«pgÒ„$óþqÛƒ »k‰¥˜ÉO½ååñCÁe™W¼ÞN9ÿä,€Ã…Ïý)ÿñpä¹õ9Óüþs}BÄÍ<ø„é®î¢Òô‚Ÿé‹Ñçn9<=Ȩ_ò?ôçõù¶1ñùA…¾ÖŽª›Ž¸^ƒ÷Íiç wãX‰àd—HŠ;]M&dÛþÚøâ}#r+ã÷ʶ‰âlum±ù©·žŸïвчÐÕ:6>‘|Ðý9jØÛú®×Q#r¦”-^pkyCç&¾”^DdÖpÛ®8]ó‡TŒäO½“ö+†¢4+°EAÿƇòËA«ý¡¬J˜T!wÅàvÁ¡Ô”Ǧ™:‰ªsRŽ M_»ÕªpÿìTb©$ò‡ÆN³òòAÐlÒX÷ø Ã…ñº¸÷iºÃ¶¶&/dH Ë@A~Ö—ú –êvq&¶÷¹eiÚUv›qç©CФœiO]e0y¯ú rcÛuM} ó‡³~Ð-îZÜWìDZD(]êüK»àqgvÂéh4þPŽ£3é$éå(ñä¢q#¨dp OB(¶©Š+Üå[Ã$+heåmbÖvóà–IE¾T=‹ãÈ2NîÓ@4”|T4CgÌî, ‘ÔׂÛzkd§K%“Ÿ+½ÊÛ¡ÝrX€[—W˜q£kWìîb^P±Q‚Ý£Ø]i´F[ܘQÒdÁ.Ï0ãA'¯$G˃íº[ˆ¤’iO½cþòApc|½:¬/%¯o´Ï×µ0‹žpA7Ü ¨²*»i‚lç +罨³Ü«]¢XìªS‹­"ÉkµþöAà©X¬ÈÚ‘<³xשb®9¾ë\ÓÇv£2°NÕrUp1DGˆ9¼7UåÑ®ÒïN)´J¢>ôåñêàiˆ€ü¥0ù Zœ?DI¾ølÝëÅxÜÎX»…±Àx–bl¢l²à¥é‡p=8“0¹»å8Ž3Õ-E¡P’¶®| ^«Q¹}“Ïk·|2¯»…H*™öÔX&ô·B=*OþÉc¦¥Wa%ÝXXik¤ZN)fòÚ$2M†‹"o*Ê gˋλcŠ©”¨©­x¼Ty¾€Nd# Çkæ—Ôãd~È0¾cVu(IÈÀN¤ ÎÉ)OèõÁ ¶q.ö8ù@Š)îÕ(\±³G¨Œ)ºêôbý3 ‘‚ÃQT&Òê ¨ ‰É­‘ö`"ÄRÑ\,ñ¸`L6Ù%®]H«³©(@-«õîXb©eòÖyƒ½z¼eFî~¹Ë pw/QŋȎ%^ ב•ª\öë„ph97ßpÚH¬"ýµ@ïõÀÍ¡ö 1(°OíÌ~j®+ò%cadÆ»SÕåÆÌ½ ÷0ZUlB– ‚…"dÑäeñ:’j ,"n1n«‘ºÕ¤NñCªDò§Æ Çxû ”R¢`çï91­È•¹íêq1 Rß !ËÂÁäyñ ÐÊ+Tºæ¤…ÛÜ™­ŹêÔb©dòSc'•xù øé†suQŠ$!f9Š'ø€-$^›Ë( (k±–™Ä v“Ê/̸2ÛQ’[Û-7x…e·!¢B"=tÕwû­Êã…QP'“gãY6>éq1SL, ‡¬Q`¿"ºŸºqмe1V…›,8é§µ1ݵ’¼à å¶3-ì®%¶¢"?õækéK†Âu’È1‚Ï^þPñáj±’ïcؘK-¶© ár‚äžû„Ñl€ËG@Th€› ‰‘kä(Ù²`œ­®ój–ü͵°øšÑÐŽDF±÷§™ºP&úp…XÓ ÆD¼#-Ò•Ûê-,´ò8a!†Ê|ÃÌdÏî73ŸbÑËQšÇq¼$Ø5ET+iŸjË(þC¡°ßÓ­s(Ù!ᘊ‚æ4m„% ¾Eqx?™«r‚¾WI!R{8?DqêˆÖ1ó~ˆTªfã|õ™'„>É~è* àkµ§1¼"Ìæ¨TÙ£lލ‡Rî8KïýE|Nˆjl“ošauº0ãI3°©[*j·5ÛÕ©ÄTOÔ­«ŒàoUžYìM\QÜi>õC—-žÛWC,nXÚã0tâVØ%I ‘ZÄ©üa1U§™'WUnöô²+ṳ̂¢ùk&ûúQ0Åû Qð¢'pâu)Ù¹ì‰+² wšs™7Y!!j´Pš&xÑ[׸,`jlœìv‰QZL•’üÔXiÞß>¦bAæÒ†&DíLÅÀ¤Ì¥­˜ —U†#3sA§U«’Jíâ\¢‚¤v$~c»<ŽsÕ©…RÐÔ­¯Ò°¼yt©¡ð誛˜%]/Q÷õÞªÑÁŃlqØ,“J Z°Dƒå\“v¢Ø«[=U 6;•X*™üÔXŽ5o'­gX¤XÁÇ*Á7?6'˸ $‚ŠiXç§Êb¤ƒÜdAÖïKÄ|Ie>·ìú}Ù±ÄTPTk«iê[•WñZ„Èœ…ùHZ؆dÀÆH„d¡†ëÅÃ3ßQ’O‡ÌOlŽlò¼vËQUÙ-DRÉ´§ÆŠzû ¸Z^SXjò˜Nä‹IrÚ½"ÇZr²L@SŠíÅ;)>¹ég²¡Î%ô@Oê t·|*Ukv,1”2ÕÚj¥üVåå­ðWŒ.ÄÉ‹NF²Ü¹NºÉ“$fÊëØT‚îôÚ@ƒ9’6æns 1ev‘”íCW;h¼V}E–¢mù­Ì@gW²Ze¬r®DÙC1¯Óy´%V–m“í”øR¦y‘ר-Ó9(»…ˆê‰´uuéK•ÇÒ¬ôxe•¾b‘h¢âã e’ˆåG/0† ÝëRÏÌub˜Ä7YfÉDÊEn*Ì…Ù²Œ‡»c‰¥–É[g.Ñ^?:½}ÉDˆ® ó⊯/¸‰DÆæe[¨‹kE‹'V’I6”'‰ð`¼Q’¢‘ÜöP°Rv-1Ô2õ¡±\ˆß=„Gòl=ô?{eçOh9Y”ë@hçOHñ˜*ÀPv¡©4y¢Œ‡Q«§rUe§[E‘Ÿ?S@¼xÜO>1#k +£ŠGóžÆr™Ñ*Ëc ª¶O¹H±5P7Y°aÊlÔ C+Lí¨üì–»vM²c‰¥–É[gm+¿} ^?±ö>;Ì0F¶”ðة킥å`˜Ì0GG%¶¶0ãnª`‡ÆhЖ’ÔÁÞ#ã\w*¡T2uë«õ7€IEõÈÏß,î)\QRç~Ú\¾+j Á‘ß…Ï!fÎ$6¥»3î^k&c·<¼\Ý-DRI´åˆôöA°‚od-ÿ ÔÒ#ˆ—ïõ8ùC@i‚lË(&WáwNâ…úµ&ž ŠO<3¿Éá·¶ÛžÜkÙ]SLµD}h¬ú½ï-«8ë^LãÕjÔøv¬¤ÝøðRû4 £ õM1³É‚æK¡QTçYTlŠdËJäµ;–Xj™¼u–eõíƒP>ýx]­•îSúaN9*ã]·&Ü” ïGþ œ$­tŸÒ— Ì¼ä…F¯tžr)¦6ÉþÐÖIõß<e €çl¸{(À^Øö•ĉûÁ «{*MQx³%‰ ƒë]­Ÿ2s*´-¶#CëÙÅRÆä§®ÎðZõ¹Íy¢Îq,è¿1œõ;<"ÓöˆýTx:](q~tºAAб}šCÕ77.pð7³ 2Œ[Â>-ëõX,}L~ª«½ÎW€‘  n¿7͆•€O–¶kÇBj¦•ï„b²ÀÂx)FÙ¼M&,ŠÝ3baS ªõ¸e"…#~Yb*(ªµU$Ã[•ç¬ ¾(¨”+úá`2´™/#åÊÁ\iý^ú%ˆoG0üÃD¸Ù„Å©ÎüCe*´¤WúA³õj7éì<ÅÔ-ÙºkŠôEã‘F<(ót(_þÀ`¼IÞï6ç »e?ÚH,y¶Q›-èp;ÿ0Œ—ôÅH=¶¾È—§˜º%ûCw»f|ÏxAÙÖq)ˆñ¢?m$(ˆé×1Ÿ>á)åŒÖôL’àUüD 3™‡©å€wZå1âÙ¡…VOÔ§¶¡~ñh…EÁ‰V+M˜B}´uðë_QV¤Mdæ‚¡‘“‹×¹©•æK·Â(z“hls›¶Åe—[!‘ÚÊû^õŠêá$¥pJaÅD.d?)‘œ™|Œ`J¤\I!ãT“jè€JáêJ‘7Ñrs@¥»•PJ™úÔÙQ¡¯—u3œš,Mqó_¯—~mÆGF|ˆŽK‹KúrÞËøX-Âѳ\ÿzRDŸ¤ jú¸v-ƒEe‚Z·ÛäÛ’J …LݺjÁ÷Våe4›ðu žQRõš(E|ÃÂRÆ…ù9¢¸mOãód)cŸ‹û0ÚÆ¹÷²?J›1ȲͶ ã|v¾O ¢ÉO½m?ÿ8ž5¹VÚýÚå¬Ö@?YYjÅ~lž"ú³KZYÌwh’OÙÈŒg¡GœÉð±Ë¶§bd³k‰¥˜ÉO½?*s½}(,¯¹”Gó'™b³¯ã™Ÿ“©€w~ÎðZxäçŒb’O²!n#%ÙL*pºeççÌŽ%^OêÊVQXó­Ê3tkáÒ‹i¾6®rƒf­ƒÛë˜(„@1I'«$X|Ö•€K]¡‹14¦•£e›ÁõÙ!ERÆ´§® ×z¯ú|!!a/Êg³¾žñÁByãd®êûv?…:ÂY˜á‚†å|’ åg\ ä™ÚàªÅV[Ñ“î%”:¦>µÕkèÍÐæ7õ‹;+BÊñ{?x¸3‡¡öL:o ‰Ûõ ð;…ã¡ÔÀ&1Y³Û<Ø]J,…LÞÚzkèµêsw™‘£˜wƒõCÑ~î‚ÇT$Šåv/ò,bÇWû„È ñà ®ÜæQD;º¢G‰Unø¢}Á8_ ä Ô/ùúk‡ûËÆÄçÕ¾z|¾åIÁΩDÌ çúY”¥9¾8 ÿ0íslÑæ g{°¨mœ{ÃU3'sðÖÊF—QÙ#TÆ”]õ ¼X¥Ø0ã7ÆD%®¬°}˜`•‚Èì•sºrÎbn—â…ð=‘Ê9{cn¬$¹Ý2\¨w·7Ü*²ª÷‡ÆN±ûòAÀ\~X`_# ôŠM‰¼YHèu2sòÕcýojµÉÄ^>ŸªÍ'„u‚‰MRÏÆ²ˆj[0ÎWçy‚5?õ¦­üÆÁ:¸E|n+ãóR8¸j7Ÿ,ôBg¹®$ DÄ™ÄUu¡Eœ*1m¼:ÂMŽnnùB4zv ‘T2í©±BZÞ>n%ˆÁî¿/á‘i¡Î;€ÚŽso¸˜Îß¼…c4‡q{¤Ê$åCWg¿Xz²àXšÿONኪމ ^aqA¢Xèö Ä+šl¸4ÿ3¾8‘3ùþâeËqŒP,vK‘TíCcy¾}ü:% ‘‘ñ PgšƒÃK¨!ÑÐýÔ5æWH1’/$ÙP™¥Oú%…÷²mÕåÛ]SlÅDþÐ[_‡ï Ój0¡ìDõKu¨ÚÞã³y/~Ï.Yú¢ÕÞâU7`À2­ã¢|À" ÀlsOñÕ¥ÄVO䇶J¨õ^õ™P¨·_­œ4õÁf_fcƒ2"9N½°k>˜7§²î E5A’f(ŒYigSQ['Û]Z3e§C!S·®J(ôVåyç£dldš£þƳE Ö½ñk†W_é,]K‚\M"(zÒ‰ªRL™TOÞl±ê9Ïî$–2"èª;ÿ½êóÏÏ8 Ò6>(ÎÀ Úá˨ÝÇÑ›b=,dHR'ð/Š›¼Ž–Ãúw·J)SŸ:ë2¼,Ž´×µ,ÚO&6½got»ŽÅ{$T;yü‡Äp¹žÞÞ4C%OJ|1jRõS»Jr´;¥Ø*‰ü¡±Š…¿}JA¿ô~0ÏQ«Ê³Ð[^1Ū(R$¤< WÙâÑTeõäñÌ O@cj3³zºK‰­žÈ[[§‰x­úX´Øj‘Wn@Æ'ýÃ{™ÍÁ½°T¦ ÜOt*CqyRK¶‹3;»·;3ªÂÝЭ.>¡»S‰­¢ÈO¹r{ý x)Îñ«õZñj*ˆÒ¸g,zÝF ¤<"о:Ëe[ÜPó#É‚µZ3a„xl27ñݶ÷ø³k‰©¤¨[c]ˆwᙽ&¦[ÏÔ/1+Ô/³ðÁc‚–©B ™¿ÅbfwI²¡287&aNrg4ŽÚV-ïݵÄRÌä§Þ9lÞ>~²¹VGée|í„Ô{ÁÇ-bf"?×ÄÓHߥ“«Åç“zf»8é¦aò­j*±;•Ø*ŠüÔXŸì·‚Îùð8,ž;?Ó±§Î~1z°ÅÞ.0ŽÃ÷¼ FB„Ë»i‚ƒŽ@ÃhSá”ížJeŸJlE~j,çü·—âšLÌr2**ñÀþx½Nî½µe¯“I^†j®Á][‹iäM²à©€㉭õMžÈ­ç¶§²k‰¥˜ÉO½yA¾d(|B&¼OWÌXý±Î“þ„ƒYBêd®Áá4"÷‡ÂutB6€K<Núˆš·Z6ºàXê! 2¦|誇ãÅú³¾ Jù"m-òOÄ(·HÀ²Ï.vÚ…:ÃBázqó\âuakÝdC±M|Ñ÷*É×Ú-³n^v ‘TíCcÕXyû ˜³ÉSJ9+‡p]ôxnÌ0\åsåÄ¥ÑWZâc=¨N> 4”zØ4æ¦w«§S»S‰¥’ÉO•óíƒ`(—kÀk”%ã‡*›»¢<“… (¼PÄ.e-zåQ{‘ÕöŸ¿6æ‚Gäz0ÂŒm ýù«e=z‰­¨ÈO½ØõCáeé¢9üœëQ­m0õ,ä{E¹kb·ÉG¾[ QßkSý”ëqM2Šx¢]øt—,ÿIuLzj«‹ñæp5VlÑrâã‚„-7 )ŠÏÇ·¿£¢˜4êi1ü6Y°rÒ!ÔíeSfón¹i²ŸK ¥Lµ¶š9½Uyš=*žŸ5¤iÌUË ]@N¤BÀ“DZ®?.:@„R›&8¦iÌÅΦby“í^ ÓÌN%–J&?5–áãíƒGÜ,–ü¡Ú¯¶¼§ƒC”O(ˆH¨'`ƒdó¯íΙ~Áž-›ž¨xî~! J¦|hl?Ž·‚¯¤ù ÎÁêÛ‰;œEjÀÂQ°M^âÊãð¸]•~qÍù  ÖÈ6B;›t6ßEÕ(Îuw§rSõåºê¥ô^õSŠ$¦‘¨Ž18þ!rSÀ˜È¨ð-ŒÐáWfÈ¢d Õ}L¾›O¨öq>Xˆ¡Izd¯8j¶/ˆøO*'Haó?ôW¨é—‰Ù3ᬬ‚¿?ÆzžôtVÍßvÁúQ[˜~Ò)f¹ ‘fuacf_Mòì»åÉ ¹îvF~\«¸Xô©±Rf¾}L7ÄlQGÅ»fOXQ0…ë÷bÈÇȸÜULhejBæâoS1­S»qê»S ¥’©[_%zóøÚ‚¾EÅìÁ7„Üã Œ¯«(„Ý1?Šç¯1k¤Åõ|Pº¦íBˆÔߴѹñÂV‡&íÙ©ÄVQä§ÆzO½}Ú±ˆYt•9“¨Ðy.æ[‰b«&ùe&ùÉ$/ô¸É‚Õ‰b„í‘IV͵Ý2QŒº–ø*êÖØû¯÷ób Û}˜†nÝjEØKìA-^Ø¢ *.p(âÚ4i†—÷܉۩Dø¢vxN¸Ý®½™ìTb(dêÖU;xoUž§‘Ø4ÖÿpŽ0ªU9…'½vè>{ÌÃÇá™{VúûH6•U°Á="}’Ú±Xb»]îÙ©„VPÔ­¯¢Mß<Þý=­¨ˆ Ž]…¤á!º1k”Ôx–„âBW<‚)FµMT !W!1U5JÔr–0qÇ÷ò Z[ÝýoUžïÿ“»ØýäÓkÜèÀ[ªØoÛ¸'ã×µyQׯºh‚]»ôÆ£iëXÔO·;´KŸJ,•L~j¬/ÀÛÁí “ö_ˆ~¸p†|ÒeüBG-‚^ºQL˜;½Õ-Æ£·É†KÓkáyrzmòª»å…ÕNv ‘T2í©±¶ƒÞ>.×X#l5,sTOl ä»G(dɵ—wããck $ýâ/÷r…ÙÍÉ7ÄŽ¡AÖõ+©÷)1Ô¶`´­Îóê–üÔ[+¶/ór´Æ +ÝoŬQ¯­¸„7DgD‘¢P‹¨šdÁÊôF3¹˜K™ÝrcTáîXb+yeu”Ó-#9ÇÛ!û+Ò FÆJÃ%ñ1µ2A`EäsŒ¥Æà –ˆã‰&6I°H'ãZ¹œ1•‹%¶ê•Tv(¡Ô1õ©­M¯/€¬®2r7å€-‘aaKõjiOÇ?k›ÛëRµ[‹Y 7É„l™ÆK.ˆWfòÅé¢Ú¾<›t×SIQÛòúê!h§:â!ÿHÙ‹ðîþ7‚a„¬ÈVjˆÝ]Ìáö È ºù‚ÎNä ³™¾ªòô°}CìðB}Bh—ì‡æÞªþޱàóÝI°^“i#ŸÈÓ#.5öœb^Qoر%Et›b?¤”-nXÄ$Yp2µcâ…ä:›¼â¾Ë¶ »k‰¥˜ÉO½ùÿ’¡0uõ 7¶•\ò³¡hÒ KëL\Lä\® ÿDŠæ“U}|ÂYìjçœ(˜”Ä«q*£–ãlu'HUó?4Wë¯^fòò•9Ó¸Ó&Y‡p>R•¥Ÿ‰ðDË}Wâö¤¶l—Ï>Ë/¼D;aÁq«§)Ü©ÄVQä§Æ~‹½|tÌì…–äö›)¹…ëÉ”ÜmȲŒØá˜6T#xó²,S\ƃ €vÿü%Ô =Mës·Ù±×™B$eL{ê*¿Ì÷ª¯rå4§œÔ?ñ`Òìã,J: ¶cÈ4#‡·ØÞbÒaŠÑÁ& žì/ñdÆí$Ϲ[žgº[ˆ¤’iO]²üåƒ`¢”u°¾ ³±6}|YXsç¤QåøÉ‚“««Õ¦É‹]ªíÅUÐîZb+ª_Ÿz;6û+†Â9S…Qñ;‘ò6O>˜ÖùdüÅÁËZûPéb‰‡ ‹lxñ\¢ª¤Ï¦6¦yVËMÁ<Ù±ÄRËä­³Jã¼}úN ÷ÁšÌñ)Ä-ªû]Çv ;Xaèõq¼Of¿³ç›*8™ßÓh*µ”¨Ëfiã«N%´‚¢n}ý•xñx ŽðK«í`Î[ãz1míº:÷Ÿ’Ú®5}|÷µæÅM/ gÃŽ˜©„lg 3ã­Éíž²Ý8ŠóÔ%©žÒä>µÕ%xó¸—Ç/ÔÙ™"oc¦¯‹´ÌHœ C/‚'»‘6¬ðSâ¡¢z".mo ¡ðM‘Q&#Û>¹ªÙ]K,ÅL~ê­½ï ¿‹Õ÷"=?^²Âe±€dß8ßuÕ(^…L¬â³=¨U™D­ªt˜hBÏVoØÝ©ÄRÉä§ÆúN¼}*V©+v—`³ñå„Õ¥âã¥v˜dê˜aó2ŒD#çÅb=>ጷãæª}œb‹sHÑ•MÚígºéT O ~ÉÿÐßÕA¾kLŒ·À‚¼F⃟vQÅù[˜B¡ÐR@„Ù_$>å%É‚'*tMlÁl*²gËJv¼;–Xj™¼uV¼ÅÛÁ¯Ê<N×  Ö¬Èø¢÷æâ1^ªƒ&›ªTOš`×Û!1CÈ“Š ¸ÙîÐ";•x>©óÑ.¾#oUž_ˆ¾?ÿ²¤wšÃ¿ÍyZâýv.£x=ÖÅô0WÔ*I²à5Íø¤a,ÉçÜ-Ÿ°§e·I%ÓžëËñöAÐ&»ÂÕg1±žÑÁt “îV÷¿t+V# œŽZÑ–4C•5¾)ˆ»h=Û%гթÅPÈÔ­«,²oUž톕M;i¾I<kX5®LYuÀuD(¾>…+M‹á‰²É‚§–´Æ³±š•ÉóÚ-O¼#²[ˆ¤’iOõ•~û ø-hˆAš‹Þ]ÃA«†+IçÍ„¹qE|ÓÌ$.…áOóA% ·‹Ð­¤­ÈÑ 6§"î")cÚSW} Þ«¾þütyh“ÚU.OVè¼1¾à'jt A'Ú#->žÔC­â¼8î\y& AgÙ¦ƒÛ²K‰¥É[[ÿù_«¾’nÅB{Œε*ŽÊ`JÁŠ€#¡?Hއ÷¡ÅÚdÁ¢o^bNÔL>9tµ}ú/ã®-¦’¢nlëÕCP.$ò=F|‡bc‰+Ìd¯‹xí¼?_(Z…)ôÇ–Ôƒ ¨Æqz±EÅVÉ.Ῠ¶uŒRWU±WJOSŸj»Z×7ŒDEg¹]{1’61#^[TBEùŒ¿ðKï<ޤ.ƒù³)êÈ­4Á‹OìÆ“yvD]u»Dq¶:µØ*ŠüÔØåf_>•ÛdÓviÆE£PöÓˆ+[ƒ©Q+³ñtåM…ˆÑ3I3¼< bEœ%•1fnwTBJ,•L~jì’›/„\úázNŽDÞphdiðtdr$¬;„àß^äI10›Lȶãlá¢,G"_eeËqgª[Ф¢iOíÒÿòAп‰9;ãSÃ\<Æ…étÚÃÕ0VLDa4Y´DZ¼Ú¦ ȉˆh®.M[¼[]v#r§[%‘?4–ÓÛA›Z~Ml8ê°0¢ ’…ŸéÁ‚!-Š®„á>rÐÏT¿Ô¨ox&?!–6±eˆèpQÃ{⺲mÁh[ç ¡Y²¥±|k^¬¿VÔ÷D ÖÆ…hDwßP©¬­6* ‰aa‰§6Å’,XY$Z¨!4|Sò´ºå¦ØªìXb(eªµõJú¥Ês WGlQLmkqpf>jçj–_"®lè}Eñ¸`¤29¡¦ëƳ‡$á+Û–¿×îZb¨eêÖX˸wA,,œÓ¥ÊKÌ|wõ‚ÛGmüÀ®ê´ŠlÎùŽ.Íîj÷' 4 ËžL›…•è÷·œÔfº”ä§Çú"Þ¾v9­(+ ‘öižlE7'Üxf$–”ƒ{}Ìa¼¦RXÐMiT¦.u­4¾ÔÁÊÔ =«<•9©ÌrIäÕäôí‹à¯¢©Ñ‚ú‰™G»I\ñ2_*{ñ©Æý+S/>™‹ÒoE6T`_xÆèM‘'¡‘ã8ÎÔ´4Ñ¥¤==Ö¯âí‹à¯‚=µgë?ÙJZ¸¥cÜ_©Ô½cwn"|õ—:ŽÑ\ŸÔšãâLÈ4&b™}ö¨@q®'•Y.™üôX¿Š·/BáˆU9«^¹²‰ö'À6l-Š w·LHÙ4A—9«V9©¬dö¸.tÎIi¶K"xìpÇËÁ\&NŠšì~YÍÇPQÔ´2Ê)SŸ>K´ñýË`)ýIýŠCRÞÆ,E¾¡ä.úíèyà™n¡ z´ìÇÀäÑœ!)ocV0o*j–sÜ!)ïœTf¹dòÓcUп} %Vväë”ñºŸÅðu×®œ\l¤÷2|ŒøØb6/![¸6Õ°Wž+´¨¬g*ö’5^N*£$õᯈo^€²Å+«Eˆ‰)=ÄgFÚÊ}~•EY-7¦´˜Í…}MTöÉÆ“mùD®H[ñØUY-9µÍtRÔí±sÅ_½„{De¢éÆ,ÍÏ«\9}D×í}m„A×M“ •½nÜXÓŸÔ^÷»W]°=¡ŒrÇÔ§·Ÿw‡W.@#¨t–¥Ž3Æ“Mc:µŒî_uƒ‚ÂotPe›fÆó“l¸ÜqÆXMcLF·Ýû’´_N-³%ùÃo_–¾ÄRøµ´Fß'V"4.]b‡VÒy‰½¸ý{iZIçEvÀU‘ ™†d´ý¡ŠŠô Ù‰H9±ÌrËäí³¾·/‚)ˆ¥F¹d{ü_l A|w|ïÄÞH?Êy‹}’Ø7_Ð/.þ`ðÅ&é“ï=úÅ(Èè_ò?ü×uë‹­‰ižÔ¬ºÿ`fÐ÷#Qiƒ7ýÂ8Â8V‚Ha<¨jŸæÍûdjô8ŸD>] LŸj¯‚Ñgv_ñäi¦oÉþð]Éž_h=|_xê«CÕUÆ' ¥Öb¶hÅ e4Ëàq¼zŽÉ‡˜nnIª¯JÌ"©¤Næ‘iÜ©úªœTf»(òÓc½•¿}hil(ZYc•¸ Ê”ÔS-dâi­††h3 =’¢™ûun*Aåe\¨UJ•˜Öæ³MŒè a’3¦=}•@Ë{ÝgqØe­*þ3àÜæRÞ0šŒNæ «éTÞ0Lƒ‰Á¦ *–œ˜¡æME :ÇUœzO*³\2ù鱊ÄÞ¾î{@8§Ã p§dÜÖÅ´ƒÑûÅzªÃ póäFšÌ¨ýßdÁáÌGcI¹™<)ô¦±§uà<µÌvTä§ßÚýøKa%+~.µ] &f$3 "]â¾22ùhð8âÄ^diêP.LZB@…ïçJü}˜­—(J@5©ÍtÉäUÉúöEp·ó~µäsH~Ðð$qCüº"w44Z‡ˆ†a8ØðÓÞ'´ö`\ÞE ]±‚'"Fc\*4²`œ­©óz–üϵÏñeV#íA¤=̳R´è`@-znpOiÜBíã2ÍG{PNf!ó˜Á´$ẜcEârJ™ížÈÛ[«¾Ö}m0¡FêPåU¢S‘¯Z$·PFØ«ÁV€Í¨hÞä„Jñ3>]ß#2ïrl§øåÔ2Ë1“Ÿ~{»éK,·«À‹†u"†™ë¼…™*‹×±û¨u««Š*ÛÑŒ)©‚ˆ$o„ñ6Ah«õž”ÆtÔ‡¿|À}õ(ïÅ4ˆ+F®˜ñɼ•kñ‰¹ŸH‘ÄÃt##’ÏÙ4óA÷#šLtIòürD¥îéd–3&?}•¸×{Ýg’_ŠÒi£Âúç¢7ã ¡· Š,åû½”ÚÌSEåSJ§yÜXýœ¤ŽÚhÙU:SÊ,‡LÞÞ*½í½îsƒéŒõû›3ãºXõSOda ‹mß×Ì›=¶wíHÿÚ'`ÒÍŒ±q.@=X·#jˆ+W&Æ6D2 &ß'ÐÑä§ßÚeúëÐ>Gü1,Åÿ䣫ý1‹—BŠ7Ž{ÍÚÌÆÇê<¡á©;ù‚;‚éØŽÔìuäЋ½<4/ òq©½ùÓcoq¼}¸7L”ªÝS'^TŸjµ1wcöÏZˆ…UÕÞw-äÛ¥y,>ɉ,8¸÷’xª»–É“ý´4ö\¾{jj™å˜ÉO¿yŸø"KaPð\¾¿ÿ1êèP£h¼ß4<¦Çã!âè¨u“©£$i‚~ˆ0>Ñn`SQžãž|’Û“Ê ‡Lݾ*$øVç™Æ±ÿÉc„ßëX—Ô]PB8 •‰"Ïw”“‘y â9ɆGV'=±ÌpÊT{«è·:ÏÕ‰†çuá1O€¶õº‰÷iòqùºqŒgf÷}éþ[Ù'ôõ`@Á;#¾¡Æ‡¤Ðù‰{—F5„ì.¦Ý'À«ÍOõ¬úêð=š_¯”~Œ$×2 |ÓÃÝ¢^*ý„ÞPe† Þ& RíÇH’=I¥ G¶ÞON,³Ü2yû¬7è·/‚w÷¢c1¼õ'?˜‹WÅHá1{\Ç.lúu^ðž¤á›ÇËá3Âû9âXx‡'çbLË^qåly}Iþ‡¯º¼Øüjø‚î~å.öÆ2}6ÎÒø†q>Ø'à Àì‡çüI|•µðNá žô„¹ 5Z“#°uEÄÊ(.‡e©æÒøð%²¡ÄÁ'Ã^IÆM.Ç^Ï©e†[¦nu«x÷(FQ ¿}ÿذŠÄZK–âýË`¬µ¡Úµ ÚùÏÆ“ÍuWc©lGܰªý·º¬ÂB[›KyP\VMt±/oÒPº¨:'•Y.™üôXñÖ·/‚ïÕØA½ŸÎ´4æü±É‚½Œ«óE”R÷2acjÓ•ÞøT‰¡©ƒE…Wùñ{R™å’ÉOõFýöEH/­a&òSŒ ÈƒìP`fñp÷[!¶ ²™ LNèŒzáëd„FäQjŽ<Êñ´0Ñ!‘¾Z!ä¥ÎSoâë~©ä ?hƒJY«á8¾¹8”ºg¯2ÔøH ‘F„v >ˆ6fñ¬`æÁÆŒöpçÆœ3O GÉÿðXr ¯_…*¼ã>‚hS¡f?X¼!î,¼Ârtà ãU¾á¦¶Oˆ\žŸPããüø v4 H_ ,ÕãÆùt`Ÿÿ6ÿÃ|­5Q²á!¡»¢ÄXe!x/\¬Šºòæš’¨D¾ŠÌОÜdA×”$faˆÉE#»»¦ÄSÛlGE~ú-)ȯ±|-“ÒÜí ¸@bîôYx ‚zØ÷>.È4m[õˆƒ]u›×ƒJpH5”ˆ›*›†]”õ¤¸Àž”f»$ò‡ÇüB^¿A­­žWDÇɲ4É·…š' ¢|ŒŠ+jÆÙÈÂÚ¤ žç ¢2:QD9î ŽÜžTF¹dêö×%c/^cSLãÔþ—?€®}‹à¯¼Ê ª¨ê¤XÕƒ‚­ûè¹n>áÈè¨>˜êµ(ö¼rèÉ æ….™òá±"T¯_Å#‰¹Î6wöo•K%âÞñLæé í à4fœ˜,ØØŽW¨3b™ÔñL|(Ü™Ë,·LÞ>?“˜_¼Ö(Aªð¾(ÞñŒÏKUêUÙ*„>¨¦H„ ጚ!ïg*ÀÐE“hv–™›†ðBŽ:uÍÈIe–K&?=VQÒÛ_Å…ÞêótøÙ‹Å Sóèq\qâ­'R¯øñ¥VˆÎÌ?Õƒ!ädF˜9èÈ TÏ—fz“ìoù“x÷ ø%¨æBáœÄŒÉ´Ëåˆ×´Kµ ç .ŽÓ¼P"*‚.BŒÈlâ59ªÂ9{R™å’ÉOõ=¼}¬¯ˆï‘©RC}PKÑÏ>ÞU¨°Ó£óCKA‚Q²}ÂQì5Å|£‚òÓ"ÞoKH?ÒÈ‚¨aàÔy=Kþ‡ç*±ø2«áóÔ‚ˆOô¡þ³Ñý[Šøpl€¡lü„å1cWO õê2ŸëAJ„ˆã ãAB$èÂæ˜SQ¹œRf9dòöVRïuŸ«5ãöx/JL‰õQù¶x¿•àŧàe’(”G.¾kÊ|^x59¡Ê{Œʬ'ù„»Ç>UÞ“SË\÷ŽÂõýÓo«~¥°¦gF~¹ oõÁ}ÛBél!÷ˆ˜1”ÓA6Œ*:¾Oh3ŸðÌjj}aä(ž5}(IOãÌâ³yýKþ‡ÿ*´øbk¢¨³t[µp±Û·ÝÅÐÁŽã4tTŸ%I°¦q“ ©]j@—ÛÊ(wL}z+A£7/€ Kšº7¨Žñ`+›ØÙeƒ‰yƒªöÈøG ܘ`*ýA˜ ÿ±}M’žò=âÒK@N'³ùé«Z•¼×}†™ÜyUö O,éû©lÏEeü‰lO¡ˆ)ÑÔff¡&Y°Jt,1uóM¾B+_#Çqœ©ii²‹¢==Vxð틈¯â¨4Õ£¥L¼¾&.¨Œ=nÿ˜puÅ·xÃæãß÷¹ó`ž—Œì ”TÁÊæŽ£¨6É·£÷Ç™Çq®¦µÑNŠúô_ÆWX«V‘¹~߆ Š<…î3&ÊlðZß õ»ûdµŸå½ã…>~¦6ú Ü£â<O¸–¤ÞBà˜]ïc9¥ÌvOäí­ÊTßë¾Ê¿ÑŠÄÿƒõSÄ£sŸýb&t"Ä6übQÙéÚ¨Él›ã¡<©Ó•QD“Ûó¦-ô,õ¨«+)É“ÊlE~zì"°—/‚Y!|K‰Œ–(WUœÒÎCb׌÷#ñ¡HuFlñnª¡²¾ŒS·’<‘ÖÅ‘§r¾rZ唩OŸ•òþe(I7wæºýÙ˜í÷ð¼Û3å “·Gb]´ûÆÏTæ>T'Õ ]ìÖlÚuî1¯“ÿ6š&;'ÚÓW§ç¼Ö}f‡,DòÛO6ôlÁM,ÙkÁ­± ¡HSÚiFÖÏ& NvêH¼Š*D^‘©õÓ‡LÚ¾*)ä­Î3Éÿˆ.îoC¤5«/’ؾfE›i£ß?¦Ÿ2««ƒÉ‚»^\˜ j’Ìö5ÛÝmrj™é¤¨Ûc¥ø¿{ ޳V+êm“²yx\C %»˜è±šÑbÊÛ¼ mlrBýÙSs/É *{›1kN-³ùÃo…È¿ÆRxa:# y1~fľLƒµdõ@%Z !/‹ÝælFÞÖ&J"Iø,lêd2;Øyl¢8[SÛn%u{¬ËÓ»— "È3òœ)èjTT ª²#n5[Ô;³ØVÇm*ôï#ˆã1ÎæÊ@—É‚ÒçŒNÞÄ’:pÛòÈCés9±ÌrËäí³%_¾Þ®¯ùýZþ9 òÇØ£ ÿþ E®6WÏÞÆ-iBþvŸBξ zþ@58b×y'ÇØ«§ .Má“9wu«~óXCÁ°ÉÑpwK„ ×¾XCÖ¿.”˜ Ei+ÐÒŒú´M6Ä]Ψc·vS¡ #Ô{ÞË,·LÞ>«zâí‹à…iFb¤Ñâ7 4!¢ ´‚Ĺ”t[Fñ»;ÙËæ=²’,¸Xð–ø‚÷&_PÖóØ×ôÎŒ¦–n™º=ÖeéÝKÐ×€pchPPlUødÜ1i¡Mqàã>ˆ9r‰¹‘¯(óÉTF“‡B.Æ“ñÇ$ÏÇÈ“ãzZ˜ä’iOýE¼|ÜwÀüµT¦W'VÅR(§\ç\C£³7–3ÛÜPéœdÁªö£Æ*wJ2 œ¬è±å2æÔ2Ã-S·ÇnNõê%(…H|qð—¦РŠÞqÁÝ(Žº 2±ÃnÒWqèFx*t#*rLsÜ«;t£Ie¦{¢n_{z©ój­Nêîz‰×d-Qßõ…ï±^l˾ô5×¥®í2/õx'ÙðRáY»Ç‰<ËÊ‘ã8^Q5-LrÉ´Ýúå‹ðWy!Ž)]'†*P¦ÀFÞ\âþ𥆦…÷EÓ §¢ÆÊòI*óz<îrœÀ“ÒL‡D}øš_Á;ç}`°K˜K—U|œjÆÚäû>ããßìÆÇV}4vv:3UðxÜÿ«9ɬOæÈ.^Îie”S¦>}Ö½àýËøìyù®&ÜäŒ.ºÚ|üûÙt‘F÷YÕðò]Mm‡îjn»a+µ]l¾§¹í"n»(êÓçÿÓ7ò½Ëà¾ôÈ{Ú]1 ÏS üƹ‡<9Žxç)4OÒ™#2@¿hŽ“$v_ôˆWñ晦“YΘüôUïuŸ)L]fBœÒÚà½RkqKc7"H¿^#eÆsÄ&2k+qGNÃ&s·×c̲ÚSË ·LÝ+eàÝKxJ§Tµjßâ)úQ£e±Aj‘zˆJ—`âûhÒ Õ Ô˜×7p9®âö¤2Ë%“Ÿˆ¦¼w¼ !•£vé@'¦¤ó ÙÞ¥c7¹&8ƯahšíAp«i" 9oDžsDi@ïéd–3&?}Õé½îKõŒz7…-áŒCJÛNwö7ŠÉ<ާ²…Ç ™ð’4AŽŠs‰kSµ ©½²qÙ%E½žzR™í¢È[ýìå‹`2 Ú ÷ÒÔ Ù¸²¡ñœC%hw<Ùõ˜(Š_FU ÍçxPš~£Bleœ4(Rå¨]}sR™í¢ÈO•JóöEðþP2ïóO¢B7¸™Ô˜·Ð'tì„b. 祪z›l¨ß«1s6I 9¶RA÷Ô4Ó-Qëîðî%èÞ7s´S+ººâƒh¨V/!Ó»rAfÜã qíijÅ>aÄ“Çæ»G.?8;+ðM •Rs|Á8_ä ô/ùþû†ñµÖD¡-ìñÝÏXX‘Q=¤S…-?H C§*#ÀÆ4brS£F|éI*¶%5n×Å:'•ÑŠºý•ÐÖ›À¸k-!oàÐ%ÐØ1H¤ãDáëqE‰Žãr]Ìâ…‰J¦º.61ãIeé«ÇuelNºÙ,›úðUq×·:/Y­AuƒŠTŽ¡6z…1BÉB-ôªo©5OF5Ìí|’%˜”xÆ"M†˜QŽ-i£=µÌדz=Æ¥¨Ö«—_û¿˜øOÿ÷ûÏ÷þõíŸþúŒ?¯ë¾Tþúû·Ê3¾ßoó8ÎûrösÅuìןoùÑÿú뿾•ïÈT¼®ï¿þóþ¬ýƒÏj|²£\°Äu2,ßËÿ?û{ýŸýƒQ¿cöû"~ÖûÑæG(LÖ–ÿËó¯?ÚYî‹Åõ—ŽÇÏÒÃáýyóñDžüÏ9Ã¥-t©ËW~ 5ã}Î÷ö8îsŽÇçç_ÿã׿~‹äQÖ÷Д»ÿÞþÓßâ·°ÿuã_öGüßï’:©ký¼¯`øçý{0þå×·»ÿû_´`·ìendstream endobj 6 0 obj 32882 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 12 0 obj <> endobj 13 0 obj <> endobj 10 0 obj <> endobj 16 0 obj <> endobj 8 0 obj <> endobj 17 0 obj <> endobj 11 0 obj <> endobj 14 0 obj <>stream xœcd`ab`ddd®ÌMÊÏ1µH3þaú!ÃÜý»èGÝO'VY‡&¼Ý<ÌÝ<,“¿¯ú..ø]„ÿ» 3#£ž‰¹s~AeQfzF‰BhP¸Bp~ZIybQªŽBÜÐÒÒ\!©$±¨ #“1±“‰‘‘eâ¾sÍÿùc>ã²7ßÙ¶|g{Ãü}u‹èwþ9¿³tWìþ.kþî·ðŽÛìÝzæõ.Š™'Ñ[ÜSÔÌaÄþ›§Öà7[÷o¹îßòU¿ 6r¨±wÇuåwæïjè\ÓÝ×µc{Òw Ñüiå³ke喝Þ}«û;ë¶‹—ú8¶´ˆ^*ܦÓý[¸û7W’»S;ßOÓùlÝ\ÝÜ 0lrò endstream endobj 9 0 obj <> endobj 15 0 obj <>stream xœePkL›eþ¾–¶Xp+t“ö3Þ˜ŒYP‚È0»1 21ѦŒÒõJ¯P¾2)·Â;(+ÂXËeÌ ¦° Y×edsà¦s„‰ C#Ìe õï‹/?lMŒ?üsrÎyÎyžs’ˆà$I ‹Ô:Æœ"7è”úpŒ¶“è)Jä¬G£¹¼D"¿Ÿ „\ ŒøëD,Ü Û‡õ[.IVyOçŒÕ&µªÂB'½-?¼#9yçÔÌÌLº´ú_„ÎeÌj•ž~>”Ø­Á¨cô–,:'4­ÕªÐ*mµ±ÂL+Ëʘ²ðZ±RËhè<µVm4ltRÎ:M&KM …ôµ®Ôj¦ÿ9œ.0dÒù´œQYµJÓÿ‚ "«e©i/¿’N§Ä»ÄV"–ˆ#ž DÄ“Iœ!¢B^Dñ3)#›81œýœÎ-ÎrÇ 7Ö¯ Û~P±ogùc½®šæÖFwƒôE| à‰ÆSÍ= [ ú}Þ©6ʇK‚‘æ¾:[Úë}ºKzU€Ö’ïÐ9+­UNÐ\muU^‡Ç(‹Ýn>:fúlîêMøì )Ü…vöŒuw ·‹CúΑØrxö¬s¡wãUQP:Ê+ 1Xp$Àäy<4¡˜6Ï‚i0Õ7þéìç `4•2ø4Ž—¸+E+Ìà ftzºâOX+»& º~ê? Õk\x9$€÷ÊxNÁÉŽn§­ßÛçéÔÀ‡¬FºY"Gë-5.Öåt+[)žõ v¯éW)ô‹ Lµˆ†¾#áÃ5.2ÀDQmG¹¼Öõ>ãz>Ü s<º¸î‹{m院ÃÖ#åšÕ8rš.ý:>6¨•yFö{»2Ò¤8òŽ¡maVç8zx+.,3 ñqó0þ$ú µ »¾´^”ƒ<*C¾ÿM£Ý;\.Ñõ;¼a?Y§­bÊzoiyd2( NŽÌ‚90]ÔÚ«N*>¢âV烧'nlûñÀÍ—JJ¢3²•Ö·|Í “ßΨ¯Š|«2™¤:Ýc¦Âßùá wP¶?÷iaè9T¨àã¹ÍBÞø ÎÄý¾³þàã½wD¸à:/üÚY&áÆ=.܇~Áwø½ÀÓÖî½ð ÁåemuM¶K “¸®µ´‚q“ÇÝ9v©¡vRåׂ$*¹àl»Ã;¨“h†,]6@éÇLLÐüýÊ™ékÒ+°ª®”\S\–á¨*¶Ç ÛÐx—D£Ð(º»y|Ÿ ÆîGÅ~Xä矋Z}ì\§P¸Ú/Œ&ˆ¿…•Ún endstream endobj 18 0 obj <>stream 2011-11-22T19:35:16-05:00 2011-11-22T19:35:16-05:00 fig2dev Version 3.2 Patchlevel 5a ghost-extent-y3.fig endstream endobj 2 0 obj <>endobj xref 0 19 0000000000 65535 f 0000033198 00000 n 0000037406 00000 n 0000033139 00000 n 0000032988 00000 n 0000000015 00000 n 0000032967 00000 n 0000033263 00000 n 0000033609 00000 n 0000034628 00000 n 0000033375 00000 n 0000034040 00000 n 0000033304 00000 n 0000033334 00000 n 0000034253 00000 n 0000034884 00000 n 0000033523 00000 n 0000033953 00000 n 0000035984 00000 n trailer << /Size 19 /Root 1 0 R /Info 2 0 R /ID [] >> startxref 37601 %%EOF fastjet-3.0.6+dfsg.orig/doc/figs/ghost-extent-y4.eps0000644000175000017500000014703711766120132020436 0ustar sunsun%!PS-Adobe-2.0 EPSF-2.0 %%Title: ghost-extent-y4.fig %%Creator: fig2dev Version 3.2 Patchlevel 5a %%CreationDate: Tue Nov 22 19:05:51 2011 %%BoundingBox: 0 0 545 351 %Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def /col32 {0.851 0.851 0.851 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /reencdict 12 dict def /ReEncode { reencdict begin /newcodesandnames exch def /newfontname exch def /basefontname exch def /basefontdict basefontname findfont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall newfont /FontName newfontname put newcodesandnames aload pop 128 1 255 { newfont /Encoding get exch /.notdef put } for newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat newfontname newfont definefont pop end } def /isovec [ 8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde 8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis 8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron 8#220 /dotlessi 8#230 /oe 8#231 /OE 8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling 8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis 8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot 8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus 8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph 8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine 8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf 8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute 8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring 8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute 8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute 8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve 8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply 8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex 8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave 8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring 8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute 8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute 8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve 8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide 8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex 8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def /Times-Roman /Times-Roman-iso isovec ReEncode /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { save newpath 0 351 moveto 0 0 lineto 545 0 lineto 545 351 lineto closepath clip newpath -81.3 433.4 translate 1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 50 % Polyline 0 slj 0 slc 0.000 slw n 2832 1402 m 9482 1402 l 9482 6642 l 2832 6642 l cp gs col32 1.00 shd ef gr % here ends figure; % % here starts figure with depth 40 % Ellipse 15.000 slw n 4665 2433 770 770 0 360 DrawEllipse gs col11 1.00 shd ef gr gs col8 s gr % Ellipse n 8482 4482 770 770 0 360 DrawEllipse gs col27 1.00 shd ef gr gs col20 s gr % here ends figure; % % here starts figure with depth 10 % Polyline 0 slj 1 slc 7.500 slw [15 60] 60 sd n 2004 6522 m 10327 6522 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 6522 m 2109 6522 l gs col-1 s gr % Polyline n 10327 6522 m 10222 6522 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 5690 m 10327 5690 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 5690 m 2109 5690 l gs col-1 s gr % Polyline n 10327 5690 m 10222 5690 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 4858 m 10327 4858 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 4858 m 2109 4858 l gs col-1 s gr % Polyline n 10327 4858 m 10222 4858 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 4025 m 10327 4025 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 4025 m 2109 4025 l gs col-1 s gr % Polyline n 10327 4025 m 10222 4025 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 3193 m 10327 3193 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 3193 m 2109 3193 l gs col-1 s gr % Polyline n 10327 3193 m 10222 3193 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 2361 m 10327 2361 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 2361 m 2109 2361 l gs col-1 s gr % Polyline n 10327 2361 m 10222 2361 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 1529 m 10327 1529 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 1529 m 2109 1529 l gs col-1 s gr % Polyline n 10327 1529 m 10222 1529 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2004 6640 m 2004 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2004 6640 m 2004 6535 l gs col-1 s gr % Polyline n 2004 1411 m 2004 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 2836 6640 m 2836 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 2836 6640 m 2836 6535 l gs col-1 s gr % Polyline n 2836 1411 m 2836 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 3669 6640 m 3669 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 3669 6640 m 3669 6535 l gs col-1 s gr % Polyline n 3669 1411 m 3669 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 4501 6640 m 4501 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 4501 6640 m 4501 6535 l gs col-1 s gr % Polyline n 4501 1411 m 4501 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 5333 6640 m 5333 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 5333 6640 m 5333 6535 l gs col-1 s gr % Polyline n 5333 1411 m 5333 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 6165 6640 m 6165 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 6165 6640 m 6165 6535 l gs col-1 s gr % Polyline n 6165 1411 m 6165 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 6998 6640 m 6998 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 6998 6640 m 6998 6535 l gs col-1 s gr % Polyline n 6998 1411 m 6998 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 7830 6640 m 7830 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 7830 6640 m 7830 6535 l gs col-1 s gr % Polyline n 7830 1411 m 7830 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 8662 6640 m 8662 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 8662 6640 m 8662 6535 l gs col-1 s gr % Polyline n 8662 1411 m 8662 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 9495 6640 m 9495 1516 l 9495 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 9495 6640 m 9495 6535 l gs col-1 s gr % Polyline n 9495 1411 m 9495 1516 l gs col-1 s gr % Polyline 1 slc 7.500 slw [15 60] 60 sd n 10327 6640 m 10327 1411 l gs col-1 s gr [] 0 sd % Polyline 0 slc 15.000 slw n 10327 6640 m 10327 6535 l gs col-1 s gr % Polyline n 10327 1411 m 10327 1516 l gs col-1 s gr % Polyline n 2004 1411 m 2004 6640 l 10327 6640 l 10327 1411 l 2004 1411 l cp gs col-1 s gr % End plot #1 % Polyline n 2004 1411 m 2004 6640 l 10327 6640 l 10327 1411 l 2004 1411 l cp gs col-1 s gr % Ellipse % Begin plot #1 7.500 slw n 7082 1841 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7514 2070 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4185 1516 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4256 2334 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4937 1931 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4834 2005 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4488 1670 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4735 2403 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4284 2328 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5312 1762 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6164 3015 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6706 3386 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8537 2281 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5038 6454 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4553 1779 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4588 1956 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5322 6404 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6026 2365 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7010 5842 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6149 4140 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6285 4598 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7033 2244 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7203 2147 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8006 6130 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4804 6041 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5463 2989 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4434 3309 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5509 1543 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5621 4524 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7957 1614 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8221 6054 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8311 5574 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7793 6350 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4091 2460 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4487 2387 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4157 2688 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4577 2148 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6521 5882 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4883 3581 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4485 2137 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6427 5367 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4207 1807 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4180 2383 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5566 5534 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6298 6306 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5416 2174 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8244 1620 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3856 5721 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6580 2808 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7167 1505 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6809 2706 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5298 4195 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6436 2488 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5608 1570 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7826 3044 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6942 1418 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4558 1519 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5934 4059 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5631 6635 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6393 6536 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7416 3871 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5927 4169 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6754 5098 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7042 2493 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5093 3965 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4505 5048 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4650 2483 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6795 5023 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5922 2452 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7362 6387 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4964 2201 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8076 4382 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7526 1768 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4026 5374 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5616 5769 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5484 2694 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8448 1512 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6059 2291 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6364 2306 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5607 4929 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8232 5110 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4952 1961 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4777 2288 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4610 3734 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4153 1833 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4973 1951 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5633 4549 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4275 4410 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5893 2915 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8010 2135 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7430 6610 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7646 2101 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7422 4481 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6503 5918 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5517 3328 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8493 5929 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7380 2183 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4919 2721 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5272 5355 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4378 2884 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3897 6149 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4409 3519 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4019 3677 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5119 4587 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6077 3808 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4048 5409 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3876 3821 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5501 6493 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7703 2177 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6707 3753 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7706 5287 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6143 4171 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4903 6496 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4576 3997 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5676 2797 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6760 5200 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8248 2066 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7797 4198 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6853 4767 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8529 1872 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8498 4487 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7208 3963 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7882 4884 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5704 2281 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6560 5813 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3931 1702 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4516 2595 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4087 5201 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5218 4699 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3985 2226 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4894 4829 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5082 5050 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6606 6041 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6470 4221 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7120 1603 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7194 2271 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4978 5767 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5475 3216 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5608 1514 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8013 4844 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6963 2232 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7435 3672 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4902 2623 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5702 5726 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5972 4976 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4326 4011 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6021 6560 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7084 1681 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7013 2342 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6948 2152 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7110 1693 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6870 2137 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6648 1728 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6860 2096 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6936 1746 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6748 1562 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7098 2098 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8644 2806 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3914 2040 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3902 2431 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4707 1639 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4562 1978 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4710 2004 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4687 2428 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4614 2414 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5325 2255 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5598 3178 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6430 2598 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6381 2994 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6500 2918 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6470 2956 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6507 2893 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6828 3079 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6209 2694 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4125 2911 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4437 4566 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6218 2889 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4793 4791 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6266 2355 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5287 6582 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5375 2742 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6243 5884 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5956 1621 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6357 1894 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5358 3557 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6247 5921 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7181 2080 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7020 2094 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8150 1651 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8119 6412 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8067 1569 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7770 6521 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7959 2020 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6336 4324 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6214 4511 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6529 4590 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6496 6607 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6600 2954 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7181 1964 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6417 2821 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4811 3920 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5295 5013 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4802 5163 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4785 3495 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8481 3365 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7502 5591 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7615 6623 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6735 3257 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8590 1853 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8063 5069 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6708 5145 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6813 1499 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5904 2802 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3733 4282 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3923 2389 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3828 3026 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4035 1938 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4009 4038 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4361 5252 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4712 2452 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4543 1595 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4805 6334 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4893 1790 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5414 5705 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5750 5373 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5373 5841 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6978 5536 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5749 3831 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7912 5356 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7108 2884 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7914 2635 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7541 2676 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4939 4790 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7791 5128 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7608 4474 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6972 3645 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3886 3159 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4319 6101 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3946 1719 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6354 2911 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6527 2864 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7897 4052 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8035 5561 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7294 1658 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5761 1652 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6861 2388 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6000 3080 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7458 1902 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7814 1797 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7503 1775 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7447 6617 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4036 2415 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4028 6544 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4677 3474 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6802 3711 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7348 3357 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5544 2104 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7632 6324 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7186 5557 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6078 6448 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6868 5523 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6761 5638 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5264 1728 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4380 4885 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7947 2144 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7268 4520 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8117 4532 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8073 2682 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7880 4015 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5062 2359 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5554 4391 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5188 2468 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3916 3447 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4478 1810 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4027 4817 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4328 2937 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8244 4750 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7673 3061 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6972 1806 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6104 5000 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6440 2815 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7524 2162 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8353 3114 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5131 4650 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4890 5748 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7297 3408 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8111 5543 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7423 2055 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8450 5701 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8080 5944 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7445 3738 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7687 1850 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6815 4361 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4958 5050 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4041 5232 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4076 3535 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4104 2046 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8224 3999 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5444 4621 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7291 5018 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5859 1477 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6728 2028 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7429 5715 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7791 4116 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7143 1775 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5647 5407 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7770 3193 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7442 5475 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8481 6176 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7482 6432 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4679 5337 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4596 5640 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6089 4762 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4016 2571 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4035 3883 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4114 6208 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3819 2526 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4603 5500 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6922 5897 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4861 2912 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3684 2946 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3847 4715 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4238 1943 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3857 3368 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3895 1764 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5681 3583 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5132 3490 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6567 3436 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6608 1519 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5131 4341 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5817 2786 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5926 5303 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6289 5449 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5952 6607 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7866 3082 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7557 5311 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6771 3886 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6735 2082 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6263 1680 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6549 2428 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6921 6457 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6172 4473 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7111 6121 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8016 2122 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8210 5510 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7087 1654 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5818 2349 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5163 1508 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4805 1840 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5068 4150 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5781 4313 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7949 3942 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8039 6585 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7389 1520 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6930 2698 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6173 2384 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6768 5876 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8599 2266 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7312 6589 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6767 2804 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5902 1667 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6446 4117 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4633 4491 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3817 2897 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3889 4606 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5461 5525 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4635 2440 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4500 3387 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5804 4476 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5482 2181 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5649 5684 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6556 3615 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5793 2653 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5414 1967 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5968 4243 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5561 4947 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5722 4242 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5717 2495 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5123 4539 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7480 5549 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7784 2573 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7781 3658 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7936 2382 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6682 1776 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6368 6025 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5563 5185 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5708 2161 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6839 3211 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5669 3789 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4673 5224 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4827 2734 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4029 2748 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4711 2892 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4067 4351 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6674 3698 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6625 6486 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5179 6544 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6038 3858 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7075 1659 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7261 2478 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6865 2005 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6553 2039 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7075 1693 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6861 2086 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6871 2095 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7046 6294 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7435 6451 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6146 1953 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3702 2367 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5984 2698 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6826 2954 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5356 5058 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5247 5991 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6447 4305 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6036 4811 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4340 3505 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4652 3278 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4792 3195 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6594 6045 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6856 5772 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4324 2114 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3763 3483 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4158 2810 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4607 6225 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6114 2495 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3787 6413 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4948 6076 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4548 2109 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5510 5314 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4377 3746 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4269 3978 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6848 4577 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5741 5833 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4081 5899 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7716 5039 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7517 5151 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6560 3635 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3781 5947 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5984 4345 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7062 3279 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6290 5963 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6202 2246 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6777 5864 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3807 1450 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7366 5326 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6419 6466 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7270 3528 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7882 1773 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7631 4037 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 8325 2369 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5312 2190 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4662 4106 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4285 1959 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4272 2087 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5813 2602 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6073 2789 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6186 1874 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5763 4726 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3758 3043 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7500 2619 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7226 3678 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7434 6128 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 3684 5927 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6797 1583 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5234 4145 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7328 5577 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7769 3175 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5288 2249 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5299 2452 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 4249 5529 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7089 1679 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7068 1676 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7218 2423 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6679 2732 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6678 3933 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7100 1651 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7075 1691 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7467 1928 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5718 4009 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7716 5358 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7497 4983 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6844 5048 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7637 2186 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7668 2811 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7486 5979 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 6570 4020 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 7183 4773 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5993 1801 22 22 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr % here ends figure; % % here starts figure with depth 0 /Times-Roman-iso ff 233.33 scf sf 1899 6609 m gs 1 -1 sc (-3) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 1899 5777 m gs 1 -1 sc (-2) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 1899 4945 m gs 1 -1 sc (-1) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 1899 4112 m gs 1 -1 sc ( 0) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 1899 3280 m gs 1 -1 sc ( 1) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 1899 2448 m gs 1 -1 sc ( 2) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 1899 1616 m gs 1 -1 sc ( 3) dup sw pop neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 2004 6902 m gs 1 -1 sc (-5) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 2836 6902 m gs 1 -1 sc (-4) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 3669 6902 m gs 1 -1 sc (-3) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 4501 6902 m gs 1 -1 sc (-2) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 5333 6902 m gs 1 -1 sc (-1) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 6165 6902 m gs 1 -1 sc ( 0) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 6998 6902 m gs 1 -1 sc ( 1) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 7830 6902 m gs 1 -1 sc ( 2) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 8662 6902 m gs 1 -1 sc ( 3) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 9495 6902 m gs 1 -1 sc ( 4) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 10327 6902 m gs 1 -1 sc ( 5) dup sw pop 2 div neg 0 rm col-1 sh gr /Times-Roman-iso ff 233.33 scf sf 6165 7164 m gs 1 -1 sc (y) dup sw pop 2 div neg 0 rm col-1 sh gr /Symbol ff 233.33 scf sf 1539 4026 m gs 1 -1 sc 90.0 rot (f) dup sw pop 2 div neg 0 rm col-1 sh gr % here ends figure; pagefooter showpage %%Trailer %EOF fastjet-3.0.6+dfsg.orig/doc/fastjet-doc.tex0000644000175000017500000066240012233505737016743 0ustar sunsun\documentclass[12pt,a4]{article} \usepackage{a4wide} \usepackage{xspace} \usepackage{amsmath} \usepackage{amssymb} \usepackage{booktabs} \usepackage{graphicx} \usepackage{url} \usepackage[breaklinks=true]{hyperref} %\usepackage[colorlinks=true]{hyperref} \addtolength{\textwidth}{2cm} \addtolength{\oddsidemargin}{-1cm} \addtolength{\textheight}{2cm} \addtolength{\topmargin}{-2cm} \usepackage{color} \definecolor{comment}{rgb}{0,0.3,0} \definecolor{identifier}{rgb}{0.0,0,0.3} \usepackage{listings} \lstset{language=C++} \lstset{ columns=flexible, basicstyle=\tt\small, keywordstyle=, identifierstyle=\color{black}, commentstyle=\tt\color{comment}, mathescape=true, escapebegin=\color{comment}, showstringspaces=false, keepspaces=true } %% \lstset{% general command to set parameter(s) %% columns=fullflexible %% basicstyle=\tt, % print whole listing small %% keywordstyle=\color{black}, %% % underlined bold black keywords %% identifierstyle=, % nothing happens %% commentstyle=\color{comment}, % white comments %% stringstyle=\ttfamily, % typewriter type for strings %% showstringspaces=false} % no special string spaces \parskip 3pt % make tex more amenable to \global\emergencystretch = .9\hsize \newcommand{\fastjet}{\texttt{FastJet}\xspace} \newcommand{\ktjet}{\texttt{KtJet}\xspace} \newcommand{\clhep}{\texttt{CLHEP}\xspace} % ttt includes some resizing of text so that things look nicer inline \newcommand{\ttt}[1]{{\small\texttt{#1}}} %\newcommand{\ttt}[1]{\scalebox{0.9}{\texttt{#1}}} %\newcommand{\ttt}[1]{\texttt{#1}} \newcommand{\comment}[1]{\textbf{[#1]}} \newcommand{\order}[1]{{\cal O}\left(#1\right)} \newcommand{\ie}{{\it i.e.}\ } \newcommand{\eg}{{\it e.g.}\ } \newcommand{\ee}{e^+e^-} %\newcommand{\Dzero}{D0\!\!\!/\xspace} \newcommand{\Dzero}{D\O\xspace} \newcommand{\GeV}{\,\text{GeV}} % some things that crop up often \newcommand{\PseudoJet}{\ttt{PseudoJet}\xspace} \newcommand{\PJ}{\ttt{PseudoJet}\xspace} \newcommand{\ClusterSequence}{\ttt{ClusterSequence}\xspace} \newcommand{\CS}{\ttt{ClusterSequence}\xspace} \newcommand{\throws}{{\it throws}} \title{\sf FastJet user manual% \\ \large (for version 3.0.6% %%%-VERSION-NUMBER (do not remove this comment; used % for automatic version-number changes; version number must % stay one a single line) ) } \author{Matteo Cacciari,$^{1,2}$ Gavin P. Salam$^{3,4,1}$ and Gregory Soyez$^{5}$\\[10pt] \normalsize $^1$LPTHE, UPMC Univ.~Paris 6 and CNRS UMR 7589, Paris, France\\ \normalsize $^2$Universit\'e Paris Diderot, Paris, France\\ \normalsize $^3$CERN, Physics Department, Theory Unit, Geneva, Switzerland\\ \normalsize $^4$Department of Physics, Princeton University, Princeton, NJ 08544,USA\\ \normalsize $^5$Institut de Physique Th\'eorique, CEA Saclay, France } \date{} \begin{document} \maketitle \vspace{-10cm} \begin{flushright} CERN-PH-TH/2011-297 \end{flushright} \vspace{9cm} \begin{abstract} \fastjet is a \ttt{C++} package that provides a broad range of jet finding and analysis tools. % It includes efficient native implementations of all widely used $2\to 1$ sequential recombination jet algorithms for $pp$ and $e^+e^-$ collisions, as well as access to 3rd party jet algorithms through a plugin mechanism, including all currently used cone algorithms. % \fastjet also provides means to facilitate the manipulation of jet substructure, including some common boosted heavy-object taggers, as well as tools for estimation of pileup and underlying-event noise levels, determination of jet areas and subtraction or suppression of noise in jets. \end{abstract} %---------------------------------------------------------------------- \newpage \tableofcontents \newpage %---------------------------------------------------------------------- \section{Introduction} Jets are the collimated sprays of hadrons that result from the fragmentation of a high-energy quark or gluon. % They tend to be visually obvious structures when one looks at an experimental event display, and by measuring their energy and direction one can approach the idea of the original ``parton'' that produced them. % Consequently jets are both an intuitive and quantitatively essential part of collider experiments, used in a vast array of analyses, from new physics searches to studies of Quantum Chromodynamics (QCD). % For any tool to be so widely used, its behaviour must be well defined and reproducible: it is not sufficient that one be able to visually identify jets, but rather one should have rules that project a set of particles onto a set of jets. % Such a set of rules is referred to as a jet algorithm. % Usually a jet algorithm involves one or more parameters that govern its detailed behaviour. % The combination of a jet algorithm and its parameters is known as a jet definition. % Suitable jet definitions can be applied to particles, calorimeter towers, or even to the partonic events of perturbative QCD calculations, with the feature that the jets resulting from these different kinds of input are not just physically close to the concept of partons, but can be meaningfully be compared to each other. Jet finding dates back to seminal work by Sterman and Weinberg~\cite{StermanWeinberg} and several reviews have been written describing the various kinds of jet finders, their different uses and properties, and even the history of the field, for example~\cite{Moretti:1998qx,RunII-jet-physics,Ellis:2007ib,Salam:2009jx,Ali:2010tw}. It is possible to classify most jet algorithms into one of two broad classes: sequential recombination algorithms and cone algorithms. Sequential recombination algorithms usually identify the pair of particles that are closest in some distance measure, recombine them, and then repeat the procedure over and again, until some stopping criterion is reached. % The distance measure is usually related to the structure of divergences in perturbative QCD. % The various sequential recombination algorithms differ mainly in their particular choices of distance measure and stopping criterion. Cone algorithms put together particles within specific conical angular regions, notably such that the momentum sum of the particles contained in a given cone coincides with the cone axis (a ``stable cone''). % Because QCD radiation and hadronisation leaves the direction of a parton's energy flow essentially unchanged, the stable cones are physically close in direction and energy to the original partons. % Differences between various cone algorithms are essentially to do with the strategy taken to search for the stable cones (e.g.\ whether iterative or exhaustive) and the procedure used to deal with cases where the same particle is found in multiple stable cones (e.g.\ split--merge procedures). One of the aims of the \fastjet C++ library is to provide straightforward, efficient implementations for the majority of widely used sequential-recombination algorithms, both for hadron-hadron and $e^+e^-$ colliders, and easy access also to cone-type jet algorithms. % It is distributed under the terms of version~2 of the GNU General Public License (GPL)~\cite{GPLv2}. To help introduce the terminology used throughout \fastjet and this manual, let us consider the longitudinally-invariant $k_t$ algorithm for hadron colliders~\cite{ktexcl,ktincl}. % This was the first jet algorithm to be implemented in \fastjet~\cite{fastjet} and its structure, together with that of other sequential recombination algorithms, has played a key role in the design of \fastjet's interface. % The $k_t$ algorithm involves a (symmetric) distance measure, $d_{ij}$, between all pairs of particles $i$ and $j$, \begin{equation} \label{eq:dij-illustr} d_{ij} = d_{ji} = \min(p_{ti}^2, p_{tj}^2) \frac{\Delta R_{ij}^2}{R^2}\,, \end{equation} where $p_{ti}$ is the transverse momentum of particle $i$ with respect to the beam ($z$) direction and $\Delta R_{ij}^2 = (y_i - y_j)^2 + (\phi_i - \phi_j)^2$, with $y_i = \frac12 \ln \frac{E_i + p_{zi}}{E_i - p_{zi}}$ and $\phi_i$ respectively $i$'s rapidity and azimuth. % The $k_t$ algorithm also involves a distance measure between every particle $i$ and the beam \begin{equation} \label{eq:diB-illustr} d_{iB} = p_{ti}^2\,. \end{equation} % $R$ in eq.~(\ref{eq:dij-illustr}), usually called the jet radius, is a parameter of the algorithm that determines its angular reach. % In the original, so-called ``exclusive'' formulation of the $k_t$ algorithm~\cite{ktexcl} (generally used with $R=1$), one identifies the smallest of the $d_{ij}$ and $d_{iB}$. % If it is a $d_{ij}$, one replaces $i$ and $j$ with a single new object whose momentum is $p_i + p_j$ --- often this object is called a ``pseudojet'', since it is neither a particle, nor yet a full jet.\footnote{In \fastjet we actually will use \texttt{PseudoJet} to denote any generic object with 4-momentum.} % If instead the smallest distance is a $d_{iB}$, then one removes $i$ from the list of particles/pseudojets and declares it to be part of the ``beam'' jet. % One repeats this procedure until the smallest $d_{ij}$ or $d_{iB}$ is above some threshold $d_{\text{cut}}$; all particles/pseudojets that are left are then that event's (non-beam) jets.% % \footnote{One can also choose to have the exclusive algorithm stop when it reaches a configuration with a predetermined number of remaining particles/pseudojets, which then become the event's (non-beam) jets.} In the ``inclusive'' formulation of the $k_t$ algorithm~\cite{ktincl}, the $d_{ij}$ and $d_{iB}$ distances are the same as above. % The only difference is that when a $d_{iB}$ is smallest, then $i$ is removed from the list of particles/pseudojets and added to the list of final ``inclusive'' jets (this is instead of being incorporated into a beam jet). % There is no $d_{\text{cut}}$ threshold and the clustering continues until no particles/pseudojets remain. % Of the final jets, generally only those above some transverse momentum are actually used.\footnote{This transverse momentum cut has some similarity to $d_{\text{cut}}$ in the exclusive case, since in the exclusive case pseudojets with $p_t < \sqrt{d_{\text{cut}}}$ become part of the beam jets, i.e.\ are discarded.} % Because the distance measures are the same in the inclusive and exclusive algorithms, the clustering sequence is common to both formulations (at least up to $d_{\text{cut}}$), a property that will be reflected in \fastjet's common interface to both formulations. Having seen these descriptions, the reader may wonder why a special library is needed for sequential-recombination jet finding. % Indeed, the $k_t$ algorithm can be easily implemented in just a few dozen lines of code. % The difficulty that arises, however, is that at hadron colliders, clustering is often performed with several hundreds or even thousands of particles. % Given $N$ particles, there are $N(N-1)/2$ $d_{ij}$ distances to calculate, and since one must identify the smallest of these $\order{N^2}$ distances at each of $\order{N}$ iterations of the algorithm, original implementations of the $k_t$ algorithm~\cite{KtClus,KtJet} involved $\order{N^3}$ operations to perform the clustering. % In practice this translates to about 1\,s for $N=1000$. Given that events with pileup can have multiplicities significantly in excess of 1000 and that it can be necessary to cluster hundreds of millions of events, $N^3$ timing quickly becomes prohibitive, all the more so in time-critical contexts such as online triggers. % To alleviate this problem, \fastjet makes use of the observation~\cite{fastjet} that the smallest pairwise distance remains the same if one uses the following alternative (non-symmetric) $d_{ij}$ distance measure: \begin{equation} \label{eq:dij-illustr-asym} d_{ij} = p_{ti}^2 \frac{\Delta R_{ij}^2}{R^2}\,,\qquad d_{ji} = p_{tj}^2 \frac{\Delta R_{ij}^2}{R^2} \end{equation} For a given $i$, the smallest of the $d_{ij}$ is simply found by choosing the $j$ that minimises the $\Delta R_{ij}$, i.e.\ by identifying $i$'s geometrical nearest neighbour on the $y-\phi$ cylinder. % Geometry adds many constraints to closest pair and nearest neighbour type problems, e.g.\ if $i$ is geometrically close to $k$ and $j$ is geometrically close to $k$, then $i$ and $j$ are also geometrically close; such a property is not true for the $d_{ij}$. The factorisation of the problem into momentum and geometrical parts makes it possible to calculate and search for minima among a much smaller set of distances. % This is sufficiently powerful that with the help of the external Computational Geometry Algorithms Library (CGAL)~\cite{CGAL} (specifically, its Delaunay triangulation modules), \fastjet achieves expected $N\ln N$ timing for many sequential recombination algorithms. % This $N\ln N$ strategy is supplemented in \fastjet with several other implementations, also partially based on geometry, which help optimise clustering speed up to moderately large multiplicities, $N \lesssim 30000$. % The timing for $N=1000$ is thus reduced to a few milliseconds. % The same techniques apply to a range of sequential recombination algorithms, described in section~\ref{sec:native-algs}. At the time of writing, sequential recombination jet algorithms are the main kind of algorithm in use at CERN's Large Hadron Collider (LHC), notably the anti-$k_t$ algorithm~\cite{antikt}, which simply replaces $p_{t}^2$ with $p_{t}^{-2}$ in eqs.~(\ref{eq:dij-illustr},\ref{eq:diB-illustr}). Sequential recombination algorithms were also widely used at HERA and LEP. % However at Fermilab's Tevatron, and in much preparatory LHC work, cone algorithms were used for nearly all studies. % For theoretical and phenomenological comparisons with these results, it is therefore useful to have straightforward access also to cone algorithm codes. % The main challenge that would be faced by someone wishing to write their own implementation of a given cone algorithm comes from the large number of details that enter into a full specification of such algorithms, e.g.\ the precise manner in which stable cones are found, or in which the split--merge step is carried out. % The complexity is such that in many cases the written descriptions that exist of specific cone algorithms are simply insufficient to allow a user to correctly implement them. % Fortunately, in most cases, the authors of cone algorithms have provided public implementations and these serve as a reference for the algorithm. % While each tends to involve a different interface, a different 4-momentum type, etc., % \fastjet has a ``plugin'' mechanism, which makes it possible to provide a uniform interface to these different third party jet algorithms. % Many plugins (and the corresponding third party code) are distributed with \fastjet. % Together with the natively-implemented sequential-recombination algorithms, they ensure easy access to all jet algorithms used at colliders in the past decade (section~\ref{sec:plugins}). % Our distribution of this codebase is complemented with some limited curatorial activity, e.g.\ solving bugs that become apparent when updating compiler versions, providing a common build infrastructure, etc. % In the past few years, research into jets has evolved significantly beyond the question of just ``finding'' jets. % This has been spurred by two characteristics of CERN's LHC experimental programme. % The first is that the LHC starts to probe momentum scales that are far above the the electroweak scale, $M_{EW}$, e.g.\ in the search for new particles or the study of high-energy $WW$ scattering. % However, even in events with transverse momenta $\gg M_{EW}$, there can simultaneously be hadronic physics occurring on the electroweak scale (e.g.\ hadronic $W$ decays). % Jet finding then becomes a multi-scale problem, one manifestation of which is that hadronic decays of W's, Z's and top quarks may be so collimated that they are entirely contained within a single jet. % The study of this kind of problem has led to the development of a wide array of jet substructure tools for identifying ``boosted'' object decays, as reviewed in~\cite{Abdesselam:2010pt}. % As was the situation with cone algorithms a few years ago, there is considerable fragmentation among these different tools, with some public code available from a range of different sources, but interfaces that differ from one tool to the next. % Furthermore, the facilities provided with version 2 of \fastjet did not always easily accommodate tools to manipulate and transform jets. % Version 3 of \fastjet aims to improve this situation, providing implementations of the most common jet substructure tools\footnote{To some extent there is overlap here with SpartyJet~\cite{SpartyJet}, however we believe there are benefits to being able to easily carry jet structure manipulations natively within the framework of \fastjet.} and a framework to help guide third party authors who wish to write further such tools using a standard interface (section~\ref{sec:transformers}). % In the near future we also envisage the creation of a \fastjet ``contrib'' space, to provide a common location for access to these new tools as they are developed. The second characteristic of the LHC that motivates facilities beyond simple jet finding in \fastjet is the need to use jets in high-noise environments. % This is the case for proton-proton ($pp$) collisions, where in addition to the $pp$ collision of interest there are many additional soft ``pileup'' $pp$ collisions, which contaminate jets with a high density of low-momentum particles. % A similar problem of ``background contamination'' arises also for heavy-ion collisions (also at RHIC) where the underlying event in the nuclear collision can generate over a TeV of transverse momentum per unit rapidity, part of which contaminates any hard jets that are present. % One way of correcting for this involves the use of jet ``areas'', which provide a measure of a given jet's susceptibility to soft contamination. % Jet areas can be determined for example by examining the clustering of a large number of additional, infinitesimally soft ``ghost'' particles~\cite{CSSAreas}. % Together with a determination of the level of pileup or underlying-event noise in a specific event, one can then perform event-by-event and jet-by-jet subtraction of the contamination~\cite{cs,Cacciari:2010te}. % \fastjet allows jet clustering to be performed in such a way that the jet areas are determined at the same time as the jets are identified, simply by providing an ``area definition'' in addition to the jet definition (section~\ref{sec:areas}). % Furthermore it provides the tools needed to estimate the density of noise contamination in an event and to subtract the appropriate amount of noise from each jet (section~\ref{sec:BackgroundEstimator}). % The interface here shares a number of characteristics with the substructure tools, some of which also serve to remove noise contamination. Both the substructure and pileup removal make use also of a ``selectors'' framework for specifying and combining simple cuts (section~\ref{sect:selectors}). While \fastjet provides a broad range of facilities, usage for basic jet finding is straightforward. % To illustrate this, a quick-start guide is provided in section~\ref{sec:quick-start}, while the core classes (\ttt{PseudoJet}, \ttt{JetDefinition} and \ttt{ClusterSequence}) are described in section~\ref{sec:core-classes}. % For more advanced usage, one of the design considerations in \fastjet has been to favour user extensibility, for example through plugins, selectors, tools, etc. This is one of the topics covered in the appendices. % Further information is also available from the extensive ``doxygen'' documentation, available online at \url{http://fastjet.fr}. %====================================================================== \section{Quick-start guide} \label{sec:quick-start} For the impatient, the \fastjet package can be set up and run as follows. \begin{itemize} \item Download the code and the unpack it \begin{verbatim} curl -O http://fastjet.fr/repo/fastjet-X.Y.Z.tar.gz tar zxvf fastjet-X.Y.Z.tar.gz cd fastjet-X.Y.Z/ \end{verbatim} replacing \ttt{X.Y.Z} with the appropriate version number. On some systems you may need to replace ``\texttt{curl -O}'' with ``\texttt{wget}''. \item Compile and install (choose your own preferred prefix), and when you're done go back to the original directory \begin{verbatim} ./configure --prefix=`pwd`/../fastjet-install make make check make install cd .. \end{verbatim} If you copy and paste the above lines from one very widespread PDF viewer, you should note that the first line contains \emph{back-quotes} not forward quotes but that your PDF viewer may nevertheless paste forward quotes, causing problems down the line (the issue arises again below). \item Now paste the following piece of code into a file called \tt{short-example.cc} \begin{lstlisting} #include "fastjet/ClusterSequence.hh" #include using namespace fastjet; using namespace std; int main () { vector particles; // an event with three particles: px py pz E particles.push_back( PseudoJet( 99.0, 0.1, 0, 100.0) ); particles.push_back( PseudoJet( 4.0, -0.1, 0, 5.0) ); particles.push_back( PseudoJet( -99.0, 0, 0, 99.0) ); // choose a jet definition double R = 0.7; JetDefinition jet_def(antikt_algorithm, R); // run the clustering, extract the jets ClusterSequence cs(particles, jet_def); vector jets = sorted_by_pt(cs.inclusive_jets()); // print out some info cout << "Clustered with " << jet_def.description() << endl; // print the jets cout << " pt y phi" << endl; for (unsigned i = 0; i < jets.size(); i++) { cout << "jet " << i << ": "<< jets[i].perp() << " " << jets[i].rap() << " " << jets[i].phi() << endl; vector constituents = jets[i].constituents(); for (unsigned j = 0; j < constituents.size(); j++) { cout << " constituent " << j << "'s pt: "<< constituents[j].perp() << endl; } } } \end{lstlisting} % force \rm, because of a some problem from lstlisting \item \rm Then compile and run it with \begin{verbatim} g++ short-example.cc -o short-example \ `fastjet-install/bin/fastjet-config --cxxflags --libs --plugins` ./short-example \end{verbatim} (watch out, once again, for the back-quotes if you cut and paste from the PDF). \end{itemize} \noindent The output will consist of a banner, followed by the lines \begin{verbatim} Clustering with Longitudinally invariant anti-kt algorithm with R = 0.7 and E scheme recombination pt y phi jet 0: 103 0 0 constituent 0's pt: 99.0001 constituent 1's pt: 4.00125 jet 1: 99 0 3.14159 constituent 0's pt: 99 \end{verbatim} More evolved example programs, illustrating many of the capabilities of \fastjet, are available in the \ttt{example/} subdirectory of the \fastjet distribution. %---------------------------------------------------------------------- \section{Core classes} \label{sec:core-classes} All classes are contained in the \ttt{fastjet} namespace. For brevity this namespace will usually not be explicitly written below, with the possible exception of the first appearance of a \fastjet class, and code excerpts will assume that a ``\ttt{using namespace fastjet;}'' statement is present in the user code. For basic usage, the user is exposed to three main classes: \begin{lstlisting} class fastjet::PseudoJet; class fastjet::JetDefinition; class fastjet::ClusterSequence; \end{lstlisting} \ttt{PseudoJet} provides a jet object with a four-momentum and some internal indices to situate it in the context of a jet-clustering sequence. % The class \ttt{JetDefinition} contains a specification of how jet clustering is to be performed. % \ttt{ClusterSequence} is the class that carries out jet-clustering and provides access to the final jets. %...................................................................... \subsection{\tt fastjet::PseudoJet} \label{sec:PseudoJet} All jets, as well as input particles to the clustering (optionally) are \ttt{PseudoJet} objects. They can be created using one of the following constructors \begin{lstlisting} PseudoJet (double px, double py, double pz, double E); template PseudoJet (const T & some_lorentz_vector); \end{lstlisting} where the second form allows the initialisation to be obtained from any class \ttt{T} that allows subscripting to return the components of the momentum (running from $0\ldots3$ in the order $p_x,p_y,p_z,E$). %% The default constructor for a \PJ sets the momentum components to zero. The \ttt{PseudoJet} class includes the following member functions for accessing the components { \begin{lstlisting} double E() const ; // returns the energy component double e() const ; // returns the energy component double px() const ; // returns the x momentum component double py() const ; // returns the y momentum component double pz() const ; // returns the z momentum component double phi() const ; // returns the azimuthal angle in range $0\ldots2\pi$ double phi_std() const ; // returns the azimuthal angle in range $-\pi\ldots\pi$ double rap() const ; // returns the rapidity double rapidity() const ; // returns the rapidity double pseudorapidity() const ; // returns the pseudo-rapidity double eta() const ; // returns the pseudo-rapidity double pt2() const ; // returns the squared transverse momentum double pt() const ; // returns the transverse momentum double perp2() const ; // returns the squared transverse momentum double perp() const ; // returns the transverse momentum double m2() const ; // returns squared invariant mass double m() const ; // returns invariant mass ($-\sqrt{-m^2}$ if $m^2 < 0$) double mt2() const ; // returns the squared transverse mass = $k_t^2+m^2$ double mt() const ; // returns the transverse mass double mperp2() const ; // returns the squared transverse mass = $k_t^2+m^2$ double mperp() const ; // returns the transverse mass double operator[] (int i) const; // returns component i double operator() (int i) const; // returns component i /// return a valarray containing the four-momentum (components 0-2 /// are 3-momentum, component 3 is energy). valarray four_mom() const; \end{lstlisting}} % \noindent The reader may have observed that in some cases more than one name can be used to access the same quantity. This is intended to reflect the diversity of common usages within the community.\footnote{The \texttt{pt()}, \texttt{pt2()}, \texttt{mt()}, \texttt{mt2()} names are available only from version 3.0.1 onwards.} There are two ways of associating user information with a \ttt{PseudoJet}. % The simpler method is through an integer called the user index \begin{lstlisting} /// set the user_index, intended to allow the user to label the object (default is -1) void set_user_index(const int index); /// return the user_index int user_index() const ; \end{lstlisting} A more powerful method, new in \fastjet 3, involves passing a pointer to a derived class of \ttt{PseudoJet::UserInfoBase}. The two essential calls are \begin{lstlisting} /// set the pointer to user information (the PseudoJet will then own it) void set_user_info(UserInfoBase * user_info); /// retrieve a reference to a dynamic cast of type L of the user info template const L & user_info() const; \end{lstlisting} Further details are to be found in appendix~\ref{app:user-info} and in \ttt{example/09-user\_info.cc}. A \verb:PseudoJet: can be reset with \begin{lstlisting} /// Reset the 4-momentum according to the supplied components, put the user /// and history indices and user info back to their default values (-1, unset) inline void reset(double px, double py, double pz, double E); /// Reset just the 4-momentum according to the supplied components, /// all other information is left unchanged inline void reset_momentum(double px, double py, double pz, double E); \end{lstlisting} and similarly taking as argument a templated \verb:some_lorentz_vector: or a \verb:PseudoJet: (in the latter case, or when \verb:some_lorentz_vector: is of a type derived from \verb:PseudoJet:, \ttt{reset} also copies the user and internal indices and user-info). Additionally, the \ttt{+}, \ttt{-}, \ttt{*} and \ttt{/} operators are defined, with \ttt{+}, \ttt{-} acting on pairs of \ttt{PseudoJet}s and \ttt{*}, \ttt{/} acting on a \ttt{PseudoJet} and a \ttt{double} coefficient. % The analogous \ttt{+=}, etc., operators, are also defined.\footnote{ The \texttt{+}, \texttt{-} operators return a \texttt{PseudoJet} with default user information; the \texttt{*} and \texttt{/} operators return a \texttt{PseudoJet} with the same user information as the original \texttt{PseudoJet}; the \texttt{+=}, \texttt{-=}, etc., operators all preserve the user information of the \texttt{PseudoJet} on the left-hand side of the operator. } There are also equality testing operators: \ttt{(jet1 == jet2)} returns true if the two jets have identical 4-momenta, structural information and user information; % the \ttt{(jet == 0.0)} test returns true if all the components of the 4-momentum are zero. % The \ttt{!=} operator works analogously. Finally, we also provide routines for taking an unsorted vector of \ttt{PseudoJet}s and returning a sorted vector, \begin{lstlisting} /// return a vector of jets sorted into decreasing transverse momentum vector sorted_by_pt(const vector & jets); /// return a vector of jets sorted into increasing rapidity vector sorted_by_rapidity(const vector & jets); /// return a vector of jets sorted into decreasing energy vector sorted_by_E(const vector & jets); \end{lstlisting} These will typically be used on the jets returned by \ttt{ClusterSequence}. A number of further \PJ member functions provide access to information on a jet's structure. They are documented below in sections~\ref{sec:constituents} and \ref{sec:composite-jet}. %...................................................................... \subsection{\tt fastjet::JetDefinition} \label{sec:JetDefinition} The class \ttt{JetDefinition} contains a full specification of how to carry out the clustering. According to the Les Houches convention detailed in~\cite{Buttar:2008jx}, a `jet definition' should include the jet algorithm name, its parameters (often the radius $R$) and the recombination scheme. Its constructor is % \begin{lstlisting} JetDefinition(fastjet::JetAlgorithm jet_algorithm, double R, fastjet::RecombinationScheme recomb_scheme = E_scheme, fastjet::Strategy strategy = Best); \end{lstlisting} % The jet algorithm is one of the entries of the \ttt{JetAlgorithm} \ttt{enum}:\footnote{As of v2.3, the \ttt{JetAlgorithm} name replaces the old \ttt{JetFinder} one, in keeping with the Les Houches convention. Backward compatibility is assured at the user level by a typedef and a doubling of the methods' names. Backward compatibility (with versions $<$ 2.3) is however broken for user-written derived classes of \ttt{ClusterSequence}, as the protected variables \ttt{\_default\_jet\_finder} and \ttt{\_jet\_finder} have been replaced by \ttt{\_default\_jet\_algorithm} and \ttt{\_jet\_algorithm}.} \begin{lstlisting} enum JetAlgorithm {kt_algorithm, cambridge_algorithm, antikt_algorithm, genkt_algorithm, ee_kt_algorithm, ee_genkt_algorithm, ...}; \end{lstlisting} Each algorithm is described in detail in section~\ref{sec:native-algs}. % The $\ldots$ represent additional values that are present for internal or testing purposes. They include \ttt{plugin\_algorithm}, automatically set when plugins are used (section~\ref{sec:plugins}) and \ttt{undefined\_jet\_algorithm}, which is the value set in \ttt{JetDefinition}'s default constructor. %} The parameter \texttt{R} specifies the value of $R$ that appears in eq.~(\ref{eq:dij-illustr}) and in the various definitions of section~\ref{sec:native-algs}. % For one algorithm, \verb:ee_kt_algorithm:, there is no $R$ parameter, so the constructor is to be called without the \verb:R: argument. % \begin{lstlisting} % JetDefinition(JetAlgorithm jet_algorithm, % RecombinationScheme recomb_scheme = E_scheme, % Strategy strategy = Best); % \end{lstlisting} % For the generalised $k_t$ algorithm and its $e^+e^-$ version, one requires $R$ and (immediately after $R$) an extra parameter $p$. %, and the following constructor should then be used % % % \begin{lstlisting} % JetDefinition(JetAlgorithm jet_algorithm, % double R, % double p, % RecombinationScheme recomb_scheme = E_scheme, % Strategy strategy = Best); % \end{lstlisting} % Details are to be found in sections~\ref{sec:genkt}--\ref{sec:kt-ee-alg}. % If the user calls a constructor with the incorrect number of arguments for the requested jet algorithm, a \ttt{fastjet::Error()} exception will be thrown with an explanatory message. % The recombination scheme is set by an \ttt{enum} of type \ttt{RecombinationScheme}, and it is related to the choice of how to recombine the 4-momenta of \ttt{PseudoJet}s during the clustering procedure. The default in \fastjet is the $E$-scheme, where the four components of two 4-vectors are simply added. % This scheme is used when no explicit choice is made in the constructor. % Further recombination schemes are described below in section~\ref{sec:recomb_schemes}. The strategy selects the algorithmic strategy to use while clustering and is an \ttt{enum} of type \ttt{Strategy}. The default option of \ttt{Best} automatically determines and selects a strategy that should be close to optimal in speed for each event, based on its multiplicity. % A discussion of the main available strategies together with their performance is given in appendix~\ref{app:strategies}. A textual description of the jet definition can be obtained by a call to the member function \ttt{std::string description()}. %...................................................................... \subsection{\tt fastjet::ClusterSequence} \label{sec:ClusterSequence} To run the jet clustering, create a \ttt{ClusterSequence} object through the following constructor \begin{lstlisting} template ClusterSequence(const std::vector & input_particles, const JetDefinition & jet_def); \end{lstlisting} where \ttt{input\_particles} is the vector of initial particles of any type (\ttt{PseudoJet}, \ttt{HepLorentzVector}, etc.) that can be used to initialise a \ttt{PseudoJet} and \ttt{jet\_def} contains the full specification of the clustering (see Section \ref{sec:JetDefinition}). %...................................................................... \subsubsection{Accessing inclusive jets} Inclusive jets correspond to all objects that have undergone a ``beam'' clustering (i.e. $d_{iB}$ recombination) in the description following Eq.~(\ref{eq:diB-illustr}). % For nearly all hadron-collider algorithms, the ``inclusive'' jets above some given transverse momentum cut are the ones usually just referred to as the ``jets''. To access inclusive jets, the following member function should be used \begin{lstlisting} /// return a vector of all jets (in the sense of the inclusive /// algorithm) with pt >= ptmin. vector inclusive_jets (const double & ptmin = 0.0) const; \end{lstlisting} where \ttt{ptmin} may be omitted, then implicitly taking the value zero. % Note that the order in which the inclusive jets are provided depends on the jet algorithm. To obtain a specific ordering, such as decreasing $p_t$, the user should perform a sort themselves, e.g.\ with the \ttt{sorted\_by\_pt(...)} function, described in section~\ref{sec:PseudoJet}. With a zero transverse momentum cut, the number of jets found in the event is not an infrared safe quantity (adding a single soft particle can lead to one extra soft jet). % However it can still be useful to talk of all the objects returned by \ttt{inclusive\_jets()} as being ``jets'', e.g. in the context of the estimation underlying-event and pileup densities, cf.\ section~\ref{sec:BackgroundEstimator}. %...................................................................... \subsubsection{Accessing exclusive jets} There are two ways of accessing exclusive jets, one where one specifies $d_{cut}$, the other where one specifies that the clustering is taken to be stopped once it reaches the specified number of jets. \begin{lstlisting} /// return a vector of all jets (in the sense of the exclusive algorithm) that would /// be obtained when running the algorithm with the given dcut. vector exclusive_jets (const double & dcut) const; /// return a vector of all jets when the event is clustered (in the exclusive sense) /// to exactly njets. Throws an error if the event has fewer than njets particles. vector exclusive_jets (const int & njets) const; /// return a vector of all jets when the event is clustered (in the exclusive sense) /// to exactly njets. If the event has fewer than njets particles, it returns all /// available particles. vector exclusive_jets_up_to (const int & njets) const; \end{lstlisting} % The user may also wish just to obtain information about the number of jets in the exclusive algorithm: \begin{lstlisting} /// return the number of jets (in the sense of the exclusive algorithm) that would /// be obtained when running the algorithm with the given dcut. int n_exclusive_jets (const double & dcut) const; \end{lstlisting} Another common query is to establish the $d_{\min}$ value associated with merging from $n+1$ to $n$ jets. Two member functions are available for determining this: \begin{lstlisting} /// return the dmin corresponding to the recombination that went from n+1 to n jets /// (sometimes known as $d_{n,n+1}$). double exclusive_dmerge (const int & n) const; /// return the maximum of the dmin encountered during all recombinations up to the one /// that led to an n-jet final state; identical to exclusive_dmerge, except in cases /// where the dmin do not increase monotonically. double exclusive_dmerge_max (const int & n) const; \end{lstlisting} The first returns the $d_{\min}$ in going from $n+1$ to $n$ jets. % Occasionally however the $d_{\min}$ value does not increase monotonically during successive mergings and using a $d_{cut}$ smaller than the return value from \ttt{exclusive\_dmerge} does not guarantee an event with more than $n$ jets. % For this reason the second function \ttt{exclusive\_dmerge\_max} is provided --- using a $d_{cut}$ below its return value is guaranteed to provide a final state with more than $n$ jets, while using a larger value will return a final state with $n$ or fewer jets. For $\ee$ collisions, where it is usual to refer to $y_{ij} = d_{ij}/Q^2$ ($Q$ is the total (visible) energy) \fastjet provides the following methods: \begin{lstlisting} double exclusive_ymerge (int njets); double exclusive_ymerge_max (int njets); int n_exclusive_jets_ycut (double ycut); std::vector exclusive_jets_ycut (double ycut); \end{lstlisting} which are relevant for use with the $\ee$ $k_t$ algorithm and with the Jade plugin (section~\ref{sec:ee-jade}). %...................................................................... \subsubsection{Other functionality} \paragraph{Unclustered particles.} % Some jet algorithms (e.g.\ a number of the plugins in section~\ref{sec:plugins}) have the property that not all particles necessarily participate in the clustering. % In other cases, particles may take part in the clustering, but not end up in any final inclusive jet. % Two member functions are provided to obtain the list of these particles. % One is \begin{lstlisting} vector unclustered = clust_seq.unclustered_particles(); \end{lstlisting} which returns the list of particles that never took part in the clustering. % The other additionally returns objects that are the result of clustering but that never made it into a inclusive jet (i.e.\ into a ``beam'' recombination): \begin{lstlisting} vector childless = clust_seq.childless_pseudojets(); \end{lstlisting} A practical example where this is relevant is with plugins that perform pruning~\cite{Ellis:2009su}, since they include a condition for vetoing certain recombinations.% \footnote{To obtain the list of all initial particles that never end up in any inclusive jet, one should simply concatenate the vectors of constituents of all the childless \texttt{PseudoJet}s.} \paragraph{Copying and transforming a ClusterSequence.} % A standard copy constructor is available for {\CS}s. % Additionally it is possible to copy the clustering history of a \CS while modifying the momenta of the \ttt{PseudoJet}s at all (initial, intermediate, final) stages of the clustering, with the \CS member function \begin{lstlisting} void transfer_from_sequence(const ClusterSequence & original_cs, const FunctionOfPseudoJet * action_on_jets = 0); \end{lstlisting} \ttt{FunctionOfPseudoJet} is an abstract base class whose interface provides a \ttt{PseudoJet operator()(const PseudoJet \& jet)} function, i.e.\ a function of a \PJ that returns a \PJ (cf.\ appendix~\ref{app:function-of-pj}). % As the clustering history is copied to the target \CS, each \PJ in the target \CS is set to the result of \ttt{action\_on\_jet(original\_pseudojet)}. % One use case for this is if one wishes to obtain a Lorentz-boosted copy of a \CS, which can be achieved as follows \begin{lstlisting} #include "fastjet/tools/Boost.hh" // ... ClusterSequence original_cs(...); ClusterSequence boosted_cs; Boost boost(boost_4momentum); boosted_cs.transfer_from_sequence(cs, &boost); \end{lstlisting} %...................................................................... \subsection{Recombination schemes} \label{sec:recomb_schemes} % When merging particles (i.e. \ttt{PseudoJet}s) during the clustering procedure, one must specify how to combine the momenta. The simplest procedure ($E$-scheme) simply adds the four-vectors. % This has been advocated as a standard in~\cite{RunII-jet-physics}, was the main scheme in use during Run~II of the Tevatron, is currently used by the LHC experiments, and is the default option in \fastjet. % Other choices are listed in table~\ref{tab:RecombSchemes}, and are described below. \begin{table} \centering \begin{tabular}{|l|}\hline \ttt{E\_scheme} \\\hline \ttt{pt\_scheme} \\\hline \ttt{pt2\_scheme} \\\hline \ttt{Et\_scheme} \\\hline \ttt{Et2\_scheme} \\\hline \ttt{BIpt\_scheme} \\\hline \ttt{BIpt2\_scheme} \\\hline \end{tabular} \caption{Members of the \ttt{RecombinationScheme} enum; the last two refer to boost-invariant version of the $p_t$ and $p_t^2$ schemes (as defined in section~\ref{sec:recomb_schemes}).} \label{tab:RecombSchemes} \end{table} \paragraph{Other schemes for $\boldsymbol{pp}$ collisions.} Other schemes provided by earlier $k_t$-clustering implementations \cite{KtClus,KtJet} are the $p_t$, $p_t^2$, $E_t$ and $E_t^2$ schemes. They all incorporate a `preprocessing' stage to make the initial momenta massless (rescaling the energy to be equal to the 3-momentum for the $p_t$ and $p_t^2$ schemes, rescaling to the 3-momentum to be equal to the energy in the $E_t$ and $E_t^2$ schemes). Then for all schemes the recombination $p_r$ of $p_i$ and $p_j$ is a massless 4-vector satisfying \begin{subequations} \begin{align} p_{t,r} &= p_{t,i} + p_{t,j}\,,\\ \phi_r &= (w_i \phi_i + w_j \phi_j)/(w_i + w_j)\,,\\ y_r &= (w_i y_i + w_j y_j)/(w_i + w_j)\,, \end{align} \end{subequations} where $w_i$ is $p_{t,i}$ for the $p_t$ and $E_t$ schemes, and is $p_{t,i}^2$ for the $p_t^2$ and $E_t^2$ schemes. Note that for massive particles the schemes defined in the previous paragraph are not invariant under longitudinal boosts. % As a workaround for this issue, we propose boost-invariant $p_t$ and $p_t^2$ schemes, which are identical to the normal $p_t$ and $p_t^2$ schemes, except that they omit the preprocessing stage. They are available as \ttt{BIpt\_scheme} and \ttt{BIpt2\_scheme}. \paragraph{Other schemes for $\boldsymbol{e^+e^-}$ collisions.} On request, we may in the future provide dedicated schemes for $\ee$ collisions. \paragraph{User-defined schemes.} The user may define their own, custom recombination schemes, as described in Appendix~\ref{sec:recombiner}. %...................................................................... \subsection{Constituents and substructure of jets} \label{sec:constituents} For any \PseudoJet that results from a clustering, the user can obtain information about its constituents, internal substructure, etc., through member functions of the \PseudoJet class.\footnote{This is a new development in version 3 of \fastjet. In earlier versions, access to information about a jet's contents had to be made through its \CS. Those forms of access, though not documented here, will be retained throughout the 3.X series.} \paragraph{Jet constituents.} The constituents of a given \PseudoJet \verb|jet| can be obtained through \begin{lstlisting} vector constituents = jet.constituents(); \end{lstlisting} % Note that if the user wishes to identify these constituents with the original particles provided to \ttt{ClusterSequence}, she or he should have set a unique index for each of the original particles with the \ttt{PseudoJet::set\_user\_index} function. % Alternatively more detailed information can also be set through the \verb|user_info| facilities of \PseudoJet, as discussed in appendix~\ref{app:user-info}. \paragraph{Subjet properties.} To obtain the set of subjets at a specific $d_{\mathrm{cut}}$ scale inside a given jet, one may use the following \PseudoJet member function: \begin{lstlisting} /// Returns a vector of all subjets of the current jet (in the sense of the exclusive /// algorithm) that would be obtained when running the algorithm with the given dcut std::vector exclusive_subjets (const double & dcut) const; \end{lstlisting} If $m$ jets are found, this takes a time $\order{m \ln m}$ (owing to the internal use of a priority queue). Alternatively one may obtain the jet's constituents, cluster them separately and then carry out an \ttt{exclusive\_jets} analysis on the resulting \ttt{ClusterSequence}. The results should be identical. This second method is mandatory if one wishes to identify subjets with an algorithm that differs from the one used to find the original jets. % In analogy with the \ttt{exclusive\_jets(...)} functions of \CS, \PJ also has \ttt{exclusive\_subjets(int nsub)} and \ttt{exclusive\_subjets\_up\_to(int nsub)} functions. One can also make use of the following methods, which allow one to follow the merging sequence (and walk back through it): \begin{lstlisting} /// If the jet has parents in the clustering, returns true and sets parent1 and parent2 /// equal to them. If it has no parents returns false and sets parent1 and parent2 to 0 bool has_parents(PseudoJet & parent1, PseudoJet & parent2) const; /// If the jet has a child then returns true and sets the child jet otherwise returns /// false and sets the child to 0 bool has_child(PseudoJet & child) const; /// If this jet has a child (and so a partner), returns true and sets the partner, /// otherwise returns false and sets the partner to 0 bool has_partner(PseudoJet & partner) const; \end{lstlisting} \paragraph{Accessibility of structural information.} If any of the above functions are used with a \PseudoJet that is not associated with a \ClusterSequence, an error will be thrown. % Since the information about a jet's constituents is actually stored in the \CS and not in the jet itself, these methods will also throw an error if the \CS associated with the jet has gone out of scope, been deleted, or in any other way become invalid. % One can establish the status of a \PseudoJet's associated cluster sequence with the following enquiry functions: \begin{lstlisting} // returns true if this PseudoJet has an associated (and valid) ClusterSequence. bool has_valid_cluster_sequence() const; // returns a (const) pointer to the parent ClusterSequence (throws if inexistent // or no longer valid) const ClusterSequence* validated_cluster_sequence() const; \end{lstlisting} There are also \ttt{has\_associated\_cluster\_sequence()} and \ttt{associated\_cluster\_sequence()} member functions. The first returns true even when the cluster sequence is not valid, and the second returns a null pointer in that case. % Further information is to be found in appendix~\ref{app:structure_table}. There are contexts in which, within some function, one might create a \ClusterSequence, obtain a jet from it and then return that jet from the function. For the user to be able to access the information about the jet's internal structure, the \ClusterSequence must not have gone out of scope and/or been deleted. % To aid with potential memory management issues in this case, as long the \ClusterSequence was created via a \ttt{new} operation, then one can tell the \ClusterSequence that it should be automatically deleted after the last external object (jet, etc.) associated with it has disappeared. % The call to do this is \ttt{ClusterSequence::delete\_self\_when\_unused()}. There must be at least one external object already associated with the \ClusterSequence at the time of the call (e.g. a jet, subjet or jet constituent). % Note that \ClusterSequence tends to be a large object, so this should be used with care. %...................................................................... \subsection{Composite jets, general considerations on jet structure} \label{sec:composite-jet} There are a number of cases where it is useful to be able to take two separate jets and create a single object that is the sum of the two, not just from the point of view of its 4-momentum, but also as concerns its structure. % For example, in a search for a dijet resonance, some user code may identify two jets, \ttt{jet1} and \ttt{jet2}, that are thought to come from a resonance decay and then wish to return a single object that combines both \ttt{jet1} and \ttt{jet2}. % This can be accomplished with the function \ttt{join}: % \begin{lstlisting} PseudoJet resonance = join(jet1,jet2); \end{lstlisting} The 4-momenta are added,\footnote{This corresponds to $E$-scheme recombination. If the user wishes to have the jets joined with a different recombination scheme he/she can pass a \texttt{JetDefinition::Recombiner} (cf.\ section~\ref{sec:recombiner}) as the last argument to \texttt{join(...)}.} and in addition the \ttt{resonance} remembers that it came from \ttt{jet1} and \ttt{jet2}. So, for example, a call to \ttt{resonance.constituents()} will return the constituents of both \ttt{jet1} and \ttt{jet2}. % It is possible to \ttt{join} 1, 2, 3 or 4 jets or a \ttt{vector} of jets. % If the jets being joined had areas (section~\ref{sec:areas}) then the joined jet will also have an area. For a jet formed with \ttt{join}, one can find out which pieces it has been composed from with the function \begin{lstlisting} vector pieces = resonance.pieces(); \end{lstlisting} In the above example, this would simply return a vector of size 2 containing \ttt{jet1} and \ttt{jet2}. % The \ttt{pieces()} function also works for jets that come from a \CS, returning two pieces if the jet has parents, zero otherwise. %...................................................................... \paragraph{Enquiries as to available structural information.} Whether or not a given jet has constituents, recursive substructure or pieces depends on how it was formed. % Generally a user will know how a given jet was formed, and so know if it makes sense, say, to call \ttt{pieces()}. % However if a jet is returned from some third-party code, it may not always be clear what kinds of structural information it has. % Accordingly a number of enquiry functions are available: \begin{lstlisting} bool has_structure(); // true if the jet has some kind of structural info bool has_constituents(); // true if the jet has constituents bool has_exclusive_subjets(); // true if there is cluster-sequence style subjet info bool has_pieces(); // true if the jet can be broken up into pieces bool has_area(); // true if the jet has jet-area information string description(); // returns a textual description of the type // of structural info associated with the jet \end{lstlisting} Asking (say) for the \ttt{pieces()} of a jet for which \ttt{has\_pieces()} returns false will cause an error to be thrown. % The structural information available for different kinds of jets is summarised in appendix~\ref{app:structure_table}. %---------------------------------------------------------------------- \subsection{Version information} \label{sec:version-information} Information on the version of \fastjet that is being run can be obtained by making a call to \begin{lstlisting} std::string fastjet_version_string(); \end{lstlisting} (defined in \ttt{fastjet/JetDefinition.hh}). % In line with recommendations for other programs in high-energy physics, the user should include this information in publications and plots so as to facilitate reproducibility of the jet-finding.\footnote{We devote significant effort to ensuring that all versions of the \fastjet\ program give identical, correct clustering results, and that any other changes from one version to the next are clearly indicated. % However, as per the terms of the GNU General Public License (v2), under which \fastjet\ is released, we are not able to provide a warranty that \fastjet\ is free of bugs that might affect your use of the program. % Accordingly it is important for physics publications to include a mention of the \fastjet version number used, in order to help trace the impact of any bugs that might be discovered in the future. } % We recommend also that the main elements of the \ttt{jet\_def.description()} be provided, together with citations to the original article that defines the algorithm, as well as to this manual and, optionally, the original \fastjet paper~\cite{fastjet}. %====================================================================== \section{\fastjet native jet algorithms} \label{sec:native-algs} %...................................................................... \subsection[Longitudinally invariant $k_t$ jet algorithm]{Longitudinally invariant $\boldsymbol{k_t}$ jet algorithm} % The longitudinally invariant $k_t$ jet algorithm \cite{ktexcl,ktincl} comes in inclusive and exclusive variants. % The inclusive variant (corresponding to \cite{ktincl}, modulo small changes of notation) is formulated as follows: \begin{itemize} \item[1.] For each pair of particles $i$, $j$ work out the $k_t$ distance\footnote{In the soft, small angle limit for $i$, the $k_t$ distance is the (squared) transverse momentum of $i$ relative to $j$.} \begin{equation} \label{eq:dij} d_{ij} = \min(p_{ti}^2,{p_{tj}^2}) \, \Delta R_{ij}^2 / R^2 \end{equation} with $\Delta R_{ij}^2 = (y_i-y_j)^2 + (\phi_i-\phi_j)^2$, where $p_{ti}$, $y_i$ and $\phi_i$ are the transverse momentum (with respect to the beam direction), rapidity and azimuth of particle $i$. $R$ is a jet-radius parameter usually taken of order $1$. For each parton $i$ also work out the beam distance $d_{iB} = p_{ti}^2$. \item[2.] Find the minimum $d_{\min}$ of all the $d_{ij},d_{iB}$. If $d_{\min}$ is a $d_{ij}$ merge particles $i$ and $j$ into a single particle, summing their four-momenta (this is $E$-scheme recombination); if it is a $d_{iB}$ then declare particle $i$ to be a final jet and remove it from the list. \item[3.] Repeat from step 1 until no particles are left. \end{itemize} The exclusive variant of the longitudinally invariant $k_t$ jet algorithm \cite{ktexcl} is similar, except that (a) when a $d_{iB}$ is the smallest value, that particle is considered to become part of the beam jet (i.e.\ is discarded) and (b) clustering is stopped when all $d_{ij}$ and $d_{iB}$ are above some $d_{cut}$. In the exclusive mode $R$ is commonly set to $1$. The inclusive and exclusive variants are both obtained through \begin{lstlisting} JetDefinition jet_def(kt_algorithm, R); ClusterSequence cs(particles, jet_def); \end{lstlisting} The clustering sequence is identical in the inclusive and exclusive cases and the jets can then be obtained as follows: \begin{lstlisting} vector inclusive_kt_jets = cs.inclusive_jets(); vector exclusive_kt_jets = cs.exclusive_jets(dcut); \end{lstlisting} %...................................................................... \subsection{Cambridge/Aachen jet algorithm} Currently the $pp$ Cambridge/Aachen (C/A) jet algorithm~\cite{CamOrig,CamWobisch} is provided only in an inclusive version~\cite{CamWobisch}, whose formulation is identical to that of the $k_t$ jet algorithm, except as regards the distance measures, which are: \begin{subequations} \label{eq:dij_cam} \begin{align} d_{ij} &= \Delta R_{ij}^2 / R^2\,,\\ d_{iB} &= 1\,. \end{align} \end{subequations} To use this algorithm, define \begin{lstlisting} JetDefinition jet_def(cambridge_algorithm, R); \end{lstlisting} and then extract inclusive jets from the cluster sequence. Attempting to extract exclusive jets from the Cambridge/Aachen algorithm with a $d_{cut}$ parameter simply provides the set of jets obtained up to the point where all $d_{ij},d_{iB} > d_{cut}$. Having clustered with some given $R$, this can actually be an effective way of viewing the event at a smaller radius, $R_{eff} = \sqrt{d_{cut}} R$, thus allowing a single event to be viewed at a continuous range of $R_{eff}$ within a single clustering. We note that the true exclusive formulation of the Cambridge algorithm~\cite{CamOrig} (in $e^+e^-$) instead makes use an auxiliary ($k_t$) distance measure and `freezes' pseudojets whose recombination would involve too large a value of the auxiliary distance measure. Details are given in section~\ref{sec:ee-cam}. %...................................................................... \subsection[Anti-$k_t$ jet algorithm]{Anti-$\boldsymbol{k_t}$ jet algorithm} This algorithm, introduced and studied in~\cite{antikt}, is defined exactly like the standard $k_t$ algorithm, except for the distance measures which are now given by \begin{subequations} \label{eq:dij_antikt} \begin{eqnarray} &&d_{ij} = \min(1/p_{ti}^2,1/{p_{tj}^2}) \, \Delta R_{ij}^2 / R^2 \, , \\ &&d_{iB} = 1/p_{ti}^2 \, . \end{eqnarray} \end{subequations} While it is a sequential recombination algorithm like $k_t$ and Cambridge/Aachen, the anti-$k_t$ algorithm behaves in some sense like a `perfect' cone algorithm, in that its hard jets are exactly circular on the $y$-$\phi$ cylinder~\cite{antikt}. % To use this algorithm, define \begin{lstlisting} JetDefinition jet_def(antikt_algorithm, R); \end{lstlisting} and then extract inclusive jets from the cluster sequence. % We advise against the use of exclusive jets in the context of the anti-$k_t$ algorithm, because of the lack of physically meaningful hierarchy in the clustering sequence. %...................................................................... \subsection[Generalised-$k_t$ jet algorithm]{Generalised $\boldsymbol{k_t}$ jet algorithm} \label{sec:genkt} The ``generalised $k_t$'' algorithm again follows the same procedure, but depends on an additional continuous parameter $p$, and has the following distance measure: \begin{subequations} \label{eq:dij_genkt} \begin{eqnarray} &&d_{ij} = \min(p_{ti}^{2p},p_{tj}^{2p}) \, \Delta R_{ij}^2 / R^2 \, , \\ &&d_{iB} = p_{ti}^{2p} \, . \end{eqnarray} \end{subequations} For specific values of $p$, it reduces to one or other of the algorithms list above, $k_t$ ($p=1$), Cambridge/Aachen ($p=0$) and anti-$k_t$ ($p=-1$). % To use this algorithm, define \begin{lstlisting} JetDefinition jet_def(genkt_algorithm, R, p); \end{lstlisting} and then extract inclusive jets from the cluster sequence (or, for $p\ge 0$, also the exclusive jets). %...................................................................... \subsection[Generalised $k_t$ algorithm for $e^+e^-$ collisions] {Generalised $\boldsymbol{k_t}$ algorithm for $\boldsymbol{e^+e^-}$ collisions} \label{sec:ee-algs} \fastjet also provides native implementations of clustering algorithms in spherical coordinates (specifically for $e^+e^-$ collisions) along the lines of the original $k_t$ algorithms~\cite{eekt}, but extended following the generalised $pp$ algorithm of~\cite{antikt} and section \ref{sec:genkt}. We define the two following distances: \begin{subequations} \label{eq:dij_eegenkt} \begin{align} \label{eq:dij_eegenkt_ij} d_{ij} &= \min(E_i^{2p}, E_j^{2p}) \frac{(1- \cos \theta_{ij})}{(1-\cos R)}\,,\\ d_{iB} &= E_i^{2p}\,, \end{align} \end{subequations} for a general value of $p$ and $R$. At a given stage of the clustering sequence, if a $d_{ij}$ is smallest then $i$ and $j$ are recombined, while if a $d_{iB}$ is smallest then $i$ is called an ``inclusive jet''. For values of $R \le \pi$ in eq.~(\ref{eq:dij_eegenkt}), the generalised $e^+e^-$ $k_t$ algorithm behaves in analogy with the $pp$ algorithms: when an object is at an angle $\theta_{iX} > R$ from all other objects $X$ then it forms an inclusive jet. % With the choice $p=-1$ this provides a simple, infrared and collinear safe way of obtaining a cone-like algorithm for $e^+e^-$ collisions, since hard well-separated jets have a circular profile on the $3$D sphere, with opening half-angle $R$. % To use this form of the algorithm, define \begin{lstlisting} JetDefinition jet_def(ee_genkt_algorithm, R, p); \end{lstlisting} and then extract inclusive jets from the cluster sequence. For values of $R > \pi$, \fastjet replaces the factor $(1-\cos R)$ in the denominator of eq.~(\ref{eq:dij_eegenkt_ij}) with $(3+\cos R)$. With this choice (as long as $R < 3\pi$), the only time a $d_{iB}$ will be relevant is when there is just a single particle in the event. % The \ttt{inclusive\_jets(...)} will then always return a single jet consisting of all the particles in the event. % In such a context it is only the \ttt{exclusive\_jets(...)} call that provides non-trivial information. %...................................................................... \subsection[$k_t$ algorithm for $e^+e^-$ collisions] {$\boldsymbol{k_t}$ algorithm for $\boldsymbol{e^+e^-}$ collisions} \label{sec:kt-ee-alg} The $e^+e^-$ $k_t$ algorithm~\cite{eekt}, often referred to also as the Durham algorithm, has a single distance: \begin{align} \label{eq:dij_eekt} d_{ij} &= 2 \min(E_i^{2}, E_j^{2}) (1- \cos \theta_{ij})\,. \end{align} Note the difference in normalisation between the $d_{ij}$ in eqs.~(\ref{eq:dij_eegenkt}) and (\ref{eq:dij_eekt}), and the fact that in neither case have we normalised to the total energy $Q$ in the event, contrary to the convention adopted originally in~\cite{eekt} (where the distance measure was called $y_{ij}$). % To use the $e^+e^-$ $k_t$ algorithm, define \begin{lstlisting} JetDefinition jet_def(ee_kt_algorithm); \end{lstlisting} and then extract exclusive jets from the cluster sequence. % Note that the \ttt{ee\_genkt\_algorithm} with $ \pi < R < 3\pi$ and $p=1$ gives a clustering sequence that is identical to that of the \ttt{ee\_kt\_algorithm}. % The normalisation of the $d_{ij}$'s will however be different. %====================================================================== \section{Plugin jet algorithms} \label{sec:plugins} It can be useful to have a common interface for a range of jet algorithms beyond the native ($k_t$, anti-$k_t$ and Cambridge/Aachen) algorithms, notably for the many cone algorithms that are in existence. % It can also be useful to be able to use \fastjet features such as area-measurement tools for these other jet algorithms. % In order to facilitate this, the \fastjet package provides a \emph{plugin} facility, allowing almost any other jet algorithm\footnote{Except those for which one particle may be assigned to more than one jet, e.g.\ algorithms such as ARCLUS~\cite{Lonnblad:1992qd}, which performs $3\to2$ clustering.} to be used within the same framework. Generic plugin use is described in the next subsection. % The plugins distributed with \fastjet are described afterwards in sections~\ref{sec:siscone-plugin}--\ref{sec:other-ee-plugins}. % They are all accessible within the \ttt{fastjet} namespace and their code is to be found in \fastjet's \ttt{plugins/} directory. % New user-defined plugins can also be implemented, as described in section~\ref{sec:new-plugin}. % Some third-party plugins are linked to from the tools page at \url{http://fastjet.fr/}$\,$. Not all plugins are enabled by default in \fastjet. At configuration time \verb:./configure --help: will indicate which ones get enabled by default. To enable all plugins, run \verb|configure| with the argument \verb|--enable-allplugins|, while to enable all but PxCone (which requires a Fortran compiler, and can introduce link-time issues) use \verb|--enable-allcxxplugins|. %---------------------------------------------------------------------- \subsection{Generic plugin use} \label{sec:generic-plugin-use} Plugins are classes derived from the abstract base class \ttt{fastjet::JetDefinition::Plugin}. % A \ttt{JetDefinition} can be constructed by providing a pointer to a \ttt{JetDefinition::Plugin}; the resulting \ttt{JetDefinition} object can then be used identically to the normal \ttt{JetDefinition} objects used in the previous sections. % We illustrate this with an example based on the SISCone plugin: \begin{lstlisting} #include "fastjet/SISConePlugin.hh" // allocate a new plugin for SISCone (for other plugins, simply // replace the appropriate parameters and plugin name) double cone_radius = 0.7; double overlap_threshold = 0.75; JetDefinition::Plugin * plugin = new SISConePlugin(cone_radius, overlap_threshold); // create a jet definition based on the plugin JetDefinition jet_def(plugin); // run the jet algorithm and extract the jets ClusterSequence clust_seq(particles, jet_def); vector inclusive_jets = clust_seq.inclusive_jets(); // then analyse the jets as for native fastjet algorithms ... // only when you will no longer be using the jet definition, or // ClusterSequence objects that involve it, may you delete the plugin delete plugin; \end{lstlisting} % In cases such as this where the plugin has been created with a \ttt{new} statement and the user does not wish to manage the deletion of the corresponding memory when the \ttt{JetDefinition} (and any copies) using the plugin goes out of scope, then the user may wish to call the \ttt{JetDefinition}'s \ttt{delete\_plugin\_when\_unused()} function, which tells the \ttt{JetDefinition} to acquire ownership of the pointer to the plugin and delete it when it is no longer needed. %---------------------------------------------------------------------- \subsection{SISCone Plugin} \label{sec:siscone-plugin} SISCone~\cite{SISCone} is an implementation of a stable-cone jet algorithm with a split--merge step (SC-SM in the notation of~\cite{Salam:2009jx}). % As with most modern cone algorithms, it is divided into two parts: first it searches for stable cones; then, because a particle can appear in more than one stable cone, a `split--merge' procedure is applied, which ensures that no particle ends up in more than one jet. The stable cones are identified using an $\order{N^2 \ln N}$ seedless approach. This (and some care in the the `split--merge' procedure) ensures that the jets it produces are insensitive to additional soft particles and collinear splittings, i.e.\ the algorithm is infrared and collinear safe. The plugin library and include files are to be be found in the \verb:plugins/SISCone: directory, and the main header file is \verb:SISConePlugin.hh:. The \verb:SISConePlugin: class has a constructor with the following structure \begin{lstlisting} SISConePlugin (double cone_radius, double overlap_threshold, int n_pass_max = 0, double protojet_ptmin = 0.0, bool caching = false, SISConePlugin::SplitMergeScale split_merge_scale = SISConePlugin::SM_pttilde); \end{lstlisting} A cone centred at $y_c,\phi_c$ is stable if the sum of momenta of all particles $i$ satisfying $\Delta y_{ic}^2 + \Delta \phi_{ic}^2 < \verb:cone_radius:^2$ has rapidity $y_c,\phi_c$. % The \verb:overlap_threshold: is the fraction of overlapping momentum above which two protojets are merged in a Tevatron Run~II type \cite{RunII-jet-physics} split--merge procedure. The radius and overlap parameters are a common feature of most modern cone algorithms. Because some event particles are not to be found in any stable cone \cite{EHT}, SISCone can carry out multiple stable-cone search passes (as advocated in \cite{TeV4LHC}): in each pass one searches for stable cones using just the subset of particles not present in any stable cone in earlier passes. Up to \verb:n_pass_max: passes are carried out, and the algorithm automatically stops at the highest pass that gives no new stable cones. The default of $\verb:n_pass_max: = 0$ is equivalent to setting it to $\infty$. Concern had at some point been expressed that an excessive number of stable cones might complicate cone jets in events with high noise~\cite{RunII-jet-physics}, and in particular lead to large ``monster'' jets. % The \verb:protojet_ptmin: parameter allows one to use only protojets with $p_t \ge \verb:protojet_ptmin:$ in the split--merge phase (all others are thrown away), so as to limit this issue. % A large value of the split--merge overlap threshold, e.g.\ $0.75$, also helps to disfavour the production of these monster jets through repeated merge operations. In many cases SISCone's most time-consuming step is the search for stable cones. If one has multiple \verb:SISConePlugin:-based jet definitions, each with \verb:caching=true:, a check will be carried out whether the previously clustered event had the same set of particles and the same cone radius and number of passes. If it did, the stable cones are simply reused from the previous event, rather than being recalculated, and only the split--merge step is repeated, often leading to considerable speed gains. A final comment concerns the \verb:split_merge_scale: parameter. This controls both the scale used for ordering the protojets during the split--merge step during the split--merge step, and also the scale used to measure the degree of overlap between protojets. While various options have been implemented, \begin{lstlisting} enum SplitMergeScale {SM_pt, SM_Et, SM_mt, SM_pttilde}; \end{lstlisting} we recommend using only the last of them $\tilde p_t = \sum_{i \in \mathrm{jet}}|p_{t,i}|$, which is also the default scale. The other scales are included only for historical comparison purposes: $p_t$ (used in several other codes) is IR unsafe for events whose hadronic component conserves momentum, $E_t$ (advocated in \cite{RunII-jet-physics}) is not boost-invariant, and $m_t = \sqrt{m^2 + p_t^2}$ is IR unsafe for events whose hadronic component conserves momentum and stems from the decay of two identical particles. An example of the use of the SISCone plugin was given in section~\ref{sec:generic-plugin-use}. % As can be seen there, SISCone jets are to be obtained by requesting inclusive jets from the cluster sequence. % Note that it makes no sense to ask for exclusive jets from a SISCone based \verb:ClusterSequence:. % would be as follows: % \begin{lstlisting} % // define a SISCone plugin pointer % fastjet::SISConePlugin * plugin; % % // allocate a new plugin for SISCone % double cone_radius = 0.7; % double overlap_threshold = 0.5; % plugin = new fastjet::SISConePlugin (cone_radius, overlap_threshold); % % // create a jet-definition based on the plugin % fastjet::JetDefinition jet_def(plugin); % % // prepare the set of particles % vector particles; % read_input_particles(cin, particles); // or whatever you want here % % // run the jet algorithm and look at the jets % fastjet::ClusterSequence clust_seq(particles, jet_def); % vector inclusive_jets = clust_seq.inclusive_jets(); % // then analyse the jets as for native \fastjet jets % % // only when you will no longer be using the jet definition, or % // ClusterSequence objects that involve it, may you delete the % // plugin % delete plugin; % \end{lstlisting} Some cone algorithms provide information beyond that simply about the jets. % Such additional information, where available, can be accessed with the help of the \ttt{ClusterSequence::extras()} function. % In the case of SISCone, one can access that information as follows: \begin{lstlisting} const fastjet::SISConeExtras * extras = dynamic_cast(clust_seq.extras()); \end{lstlisting} To determine the pass at which a given jet was found, one then uses\footnote{ In versions of \fastjet prior to 3.0.1, a jet's user index indicated the pass at which it had been found. The value was however incorrectly set for single-particle jets. The current choice is to leave the user index unchanged from its default.} \begin{lstlisting} int pass = extras->pass(jet); \end{lstlisting} % One may also obtain a list of the positions of original stable cones as follows: \begin{lstlisting} const vector & stable_cones = extras->stable_cones(); \end{lstlisting} The stable cones are represented as \ttt{PseudoJet}s, for which only the rapidity and azimuth are meaningful. The \verb:user_index(): indicates the pass at which a given stable cone was found. SISCone uses $E$-scheme recombination internally and also for constructing the final jets from the list of constituents. % For the latter task, the user may instead instruct SISCone to use the jet-definition's own recombiner, with the command \begin{lstlisting} plugin->set_use_jet_def_recombiner(true); \end{lstlisting} For this to work, \ttt{plugin} must explicitly be of type \ttt{SISConePlugin *} rather than \ttt{JetDefinition::Plugin *}. Since SISCone is infrared safe, it may meaningfully be used also with the \verb:ClusterSequenceArea: class. Note however that in that case ones loses the cone-specific information from the jets, because of the way \fastjet filters out the information relating to ghosts in the clustering. If the user needs both areas and cone-specific information, she/he may use the \verb:ClusterSequenceActiveAreaExplicitGhosts: class (for usage information, see the corresponding \verb:.hh: file). A final remark concerns speed and memory requirements: as mentioned above, SISCone takes $\order{N^2 \ln N}$ time to find jets, and the memory use is $\order{N^2}$; taking $N=10^3$ as a reference point, it runs in a few tenths of a second, making it about 100 times slower than native \fastjet algorithms. % These are `expected' results, i.e.\ valid for a suitably random set of particles.\footnote{% In area determinations, the ghost particles are not entirely random, but distributed close to a grid pattern, all with similar transverse momenta. % Run times and memory usage are then, in practice, somewhat larger than for a normal QCD event with the same number of particles. % We therefore recommend running with not too small a \texttt{ghost\_area} (e.g.\ $\sim 0.05$) and using \texttt{grid\_scatter=1} (cf.\ section~\ref{sec:areas}), which helps to reduce the number of stable cones (and correspondingly, the time and memory usage of the subsequent split--merge step). % An alternative, which has been found to be acceptable in many situations, is to use a passive area, since this is relatively fast to calculate with SISCone. % } Note that the underlying implementation of SISCone is optimised for large $N$. % An alternative implementation that is faster for $N \lesssim 10$ was presented in~\cite{Weinzierl:2011jx}. %---------------------------------------------------------------------- \subsection{Other plugins for hadron colliders } \label{sec:other-pp-plugins} Most of the algorithms listed below are cone algorithms. % They are usually either infrared (IR) or collinear unsafe. % The details are indicated for each algorithm following the notation of Ref.~\cite{Salam:2009jx}: IR$_{n+1}$ means that the hard jets may be modified if, to an ensemble of $n$ hard particles in a common neighbourhood, one adds a single soft particle; Coll$_{n+1}$ means that for $n$ hard particles in a common neighbourhood, the collinear splitting of one of them may modify the hard jets. % The \fastjet authors (and numerous theory-experiment accords) advise against the use of IR and/or collinear unsafe jet algorithms. Interfaces to these algorithms have been provided mainly for legacy comparison purposes. Except where stated, the usual way to access jets from these plugins is through \ttt{ClusterSequence::inclusive\_jets()}. \subsubsection{CDF Midpoint} % This is one of the two cone algorithms used by CDF in Run~II of the Tevatron, based on \cite{RunII-jet-physics}. It is a midpoint-type iterative cone with a split--merge step. % \begin{lstlisting} #include "fastjet/CDFCones.hh" // ... CDFMidPointPlugin(double R, double overlap_threshold, double seed_threshold = 1.0, double cone_area_fraction = 1.0); \end{lstlisting} The overlap threshold ($f$) used by CDF is usually $0.5$, the seed threshold is $1$\,GeV. % With a cone area fraction $\alpha < 1$, the search for stable cones is performed with a radius that is $R \times \sqrt{\alpha}$, i.e.\ it becomes the searchcone algorithm of \cite{EHT}. % CDF has used both $\alpha = 0.25$ and $\alpha = 1.0$. % It is our understanding that the particular choice of $\alpha$ is not always clearly documented in the corresponding publications. Further control over the plugin can be obtained by consulting the header file. The original underlying code for this algorithm was provided on a webpage belonging to Joey Huston~\cite{CDFCones} (with minor modifications to ensure reasonable run times with optimising compilers for 32-bit Intel processors --- these modifications do not affect the final jets). This algorithm is IR$_{3+1}$ unsafe in the limit of zero seed threshold~\cite{SISCone} (with $\alpha \neq 1$ it becomes IR$_{2+1}$ unsafe~\cite{TeV4LHC}). % With a non-zero seed threshold (and no preclustering into calorimeter towers) it is collinear unsafe. % It is to be deprecated for new experimental or theoretical analyses. \subsubsection{CDF JetClu} JetClu is the other cone algorithm used by CDF during Run~II, as well as their main algorithm during Run~I~\cite{Abe:1991ui}. % It is an iterative cone with split-merge and optional ``ratcheting'' if \ttt{iratch == 1} (particles that appear in one iteration of a cone are retained in future iterations). % It can be obtained as follows: \begin{lstlisting} #include "fastjet/CDFCones.hh" // ... CDFJetCluPlugin (double cone_radius, double overlap_threshold, double seed_threshold = 1.0, int iratch = 1); \end{lstlisting} % The overlap threshold is usually set to 0.75 in CDF analyses. % Further control over the plugin can be obtained by consulting the header file. The original underlying code for this algorithm was provided on a webpage belonging to Joey Huston~\cite{CDFCones}. This algorithm is IR$_{2+1}$ unsafe (for zero seed threshold; some IR unsafety persists with non-zero seed threshold). It is to be deprecated for new experimental or theoretical analyses. % Note also that the underlying implementation groups particles together into calorimeter towers, with CDF-type geometry, before running the jet algorithm. %...................................................................... \subsubsection{\Dzero Run I cone} This is the main algorithm used by \Dzero in Run~I of the Tevatron~\cite{Abbott:1997fc}. It is an iterative cone algorithm with a split-merge step. It comes in two versions \begin{lstlisting} #include "fastjet/D0RunIpre96ConePlugin.hh" // ... D0RunIpre96ConePlugin (double R, double min_jet_Et, double split_ratio = 0.5); \end{lstlisting} and \begin{lstlisting} #include "fastjet/D0RunIConePlugin.hh" // ... D0RunIConePlugin (double R, double min_jet_Et, double split_ratio = 0.5); \end{lstlisting} corresponding to versions of the algorithm used respectively before and after 1996. % They differ only in the recombination scheme used to determine the jet momenta once each jet's constituents have been identified. % In the pre-1996 version, a hybrid between an $E$-like scheme and an $E_t$ scheme recombination is used, while in the post-1996 version it is just the $E_t$ scheme~\cite{Abbott:1997fc}. The algorithm places a cut on the minimum $E_t$ of the cones during iteration (related to \verb|min_jet_Et|). % The \verb|split_ratio| is the same as the overlap threshold in other split-merge based algorithms (\Dzero usually use 0.5). % It is the \fastjet authors' understanding that the value used for \verb|min_jet_Et| was 8\,GeV, corresponding to a cut of $4\GeV$ on cones. % The publication that describes this algorithm~\cite{Abbott:1997fc} mentions the use of a $1\GeV$ seed threshold applied to preclustered calorimeter towers in order to obtain the seeds for the stable cone finding. % Such a threshold and the pre-clustering appear not to be included in the code distributed with \fastjet. The underlying code for this algorithm was provided by Lars Sonnenschein. % Permission to redistribute this code with \fastjet has been granted by the \Dzero collaboration under the terms of the GPL license. Note: this algorithm is IR$_{2+1}$ unsafe. It is recommended that it be used only for the purpose of comparison with Run~I data from \Dzero. % It is to be deprecated for new experimental or theoretical analyse %...................................................................... \subsubsection{\Dzero Run II cone} % This is the main algorithm used by \Dzero in Run~II of the Tevatron. It is a midpoint type iterative cone with split-merge step. % The \Dzero collaboration usually refers to Ref.~\cite{RunII-jet-physics} when introducing the algorithm in its articles. % That generic Tevatron document does not reflect all details of the actual \Dzero algorithm, and for a complementary description % the reader is referred to Ref.~\cite{arXiv:1110.3771}. \begin{lstlisting} #include "fastjet/D0RunIIConePlugin.hh" // ... D0RunIIConePlugin (double R, double min_jet_Et, double split_ratio = 0.5); \end{lstlisting} The parameters have the same meaning as in the \Dzero Run~I cone. % There is a cut on the minimum $E_t$ of the cones during iteration, which by default is half of \verb|min_jet_Et|. % It is the \fastjet authors' understanding that two values have been used for \verb|min_jet_Et|, 8\,GeV (in earlier publications) and 6\,GeV (in more recent publications). As concerns seed thresholds and preclustering, \Dzero describes them as being applied to calorimeter towers in data and in Monte Carlo studies that include detector simulation~\cite{arXiv:1110.3771}. % However, for NLO calculations and Monte Carlo studies based on stable particles, no seed threshold is applied. % The code distributed with \fastjet does not allow for seed thresholds. The underlying code for this algorithm was provided by Lars Sonnenschein. % Permission to redistribute this code with \fastjet has been granted by the \Dzero collaboration under the terms of the GPL license. Note: this algorithm is IR$_{3+1}$ unsafe (IR$_{2+1}$ for jets with energy too close to \verb:min_jet_Et:). It is to be deprecated for new experimental or theoretical analyses. %...................................................................... \subsubsection{ATLAS iterative cone} % This iterative cone algorithm, with a split-merge step, was used by ATLAS during the preparation for the LHC. \begin{lstlisting} #include "fastjet/AtlasConePlugin.hh" // ... ATLASConePlugin (double R, double seedPt = 2.0, double f = 0.5); \end{lstlisting} $f$ is the overlap threshold The underlying code for this algorithm was extracted from an early version of SpartyJet \cite{SpartyJet} (which itself was distributed under the GPL license). % Since version 3.0 of \fastjet it is a slightly modified version that we distribute, where an internal \ttt{sort} function has been replaced with a \ttt{stable\_sort}, to ensure reproducibility of results across compilers and architectures (results are unchanged when the results of the sort are unambiguous). Note: this algorithm is IR$_{2+1}$ unsafe (in the limit of zero seed threshold). It is to be deprecated for new experimental or theoretical analyses. %...................................................................... \subsubsection{CMS iterative cone} % This iterative cone algorithm with progressive removal was used by CMS during the preparation for the LHC. \begin{lstlisting} #include "fastjet/CMSIterativeConePlugin.hh" // ... CMSIterativeConePlugin (double ConeRadius, double SeedThreshold=0.0); \end{lstlisting} The underlying code for this algorithm was extracted from the CMSSW web site, with certain small service routines having been rewritten by the \fastjet authors. % Permission to redistribute the resulting code with \fastjet has been granted by CMS under the terms of the GPL license. % The code was validated by clustering 1000 events with the original version of the CMS software and comparing the output to the clustering performed with the \fastjet plugin. % The jet contents were identical in all cases. However the jet momenta differed at a relative precision level of $10^{-7}$, related to the use of single-precision arithmetic at some internal stage of the CMS software (while the \fastjet version is in double precision). Note: this algorithm is Coll$_{3+1}$ unsafe~\cite{antikt}. It is to be deprecated for new experimental or theoretical analyses. \subsubsection{PxCone} The PxCone algorithm is an iterative cone with midpoints and a split-drop procedure: \begin{lstlisting} #include "fastjet/PxConePlugin.hh" // ... PxConePlugin (double cone_radius , double min_jet_energy = 5.0 , double overlap_threshold = 0.5, bool E_scheme_jets = false); \end{lstlisting} It includes a threshold on the minimum transverse energy for a cone (jet) to be included in the split-drop stage. % If \verb|E_scheme_jets| is true then the plugin applies an $E$-scheme recombination to provide the momenta of the final jets (by default an $E_t$ type recombination scheme is used). The base code for this plugin is written in Fortran and, on some systems, problems have been reported at the link stage due to mixing Fortran and C++. % The Fortran code has been modified by the \fastjet authors to provide the same jets regardless of the order of the input particles. % This involved a small modification of the midpoint procedure, which can have a minor effect on the final jets and should make the algorithm correspond to the description of \cite{Seymour:2006vv}. The underlying code for this algorithm was written by Luis del Pozo and Michael Seymour with input also from David Ward~\cite{PxCone} % and they have granted permission for their code to be distributed with \fastjet under the terms of the GPL license. % % This algorithm is IR$_{3+1}$ unsafe. It is to be deprecated for new experimental or theoretical analyses. \subsubsection{TrackJet} % This algorithm has been used at the Tevatron for identifying jets from charged-particle tracks in underlying-event studies~\cite{Affolder:2001xt}. % \begin{lstlisting} #include "fastjet/TrackJetPlugin.hh" // ... TrackJetPlugin (double radius, RecombinationScheme jet_recombination_scheme=pt_scheme, RecombinationScheme track_recombination_scheme=pt_scheme); \end{lstlisting} Two recombination schemes are involved: the first one indicates how momenta are recombined to provide the final jets (once particle-jet assignments are known), the second one indicates how momenta are combined in the procedure that constructs the jets. The underlying code for this algorithm was written by the \fastjet authors, based on code extracts from the (GPL) Rivet implementation, written by Andy Buckley with input from Manuel Bahr and Rick Field. % Since version 3.0 of \fastjet it is a slightly modified version that we distribute, where an internal \ttt{sort} function has been replaced with a \ttt{stable\_sort}, to ensure reproducibility of results across compilers and architectures (results are unchanged when the results of the sort are unambiguous, which is the usual case). Note: this algorithm is believed to be Coll$_{3+1}$ unsafe. It is to be deprecated for new experimental or theoretical analyses. \subsubsection{GridJet} % GridJet allows you to define a grid and then cluster particles such that all particles in a common grid cell combine to form a jet. % Its main interest is in providing fast clustering for high multiplicities (the clustering time scales linearly with the number of particles). % The jets that it forms are not always physically meaningful: for example, a genuine physical jet may lie at the corner of 4 grid cells and so be split up somewhat arbitrarily into 4 pieces. % It is therefore not intended to be used for standard jet finding. % However for some purposes (such as background estimation) this drawback is offset by the greater uniformity of the area of the jets. % Its interface is as follows \begin{lstlisting} #include "fastjet/GridJetPlugin.hh" // ... GridJetPlugin (double ymax, double requested_grid_spacing); \end{lstlisting} creating a grid that covers $|y|<$\ttt{ymax} with a grid spacing close to the \ttt{requested\_grid\_spacing}: the spacings chosen in $\phi$ and $y$ are those that are closest to the requested spacing while also giving an integer number of grid cells that fit exactly into the rapidity and $0<\phi <2\pi$ ranges. Note that for background estimation purposes the \ttt{GridMedianBackgroundEstimator} is much faster than using the \ttt{GridJetPlugin} with ghosts and a \ttt{JetMedianBackgroundEstimator}. The underlying code for this algorithm was written by the \fastjet authors. %---------------------------------------------------------------------- \subsection{Plugins for $e^+e^-$ collisions} \label{sec:other-ee-plugins} %...................................................................... \subsubsection{Cambridge algorithm} \label{sec:ee-cam} The original $\ee$ Cambridge~\cite{CamOrig} algorithm is provided as a plugin: \begin{lstlisting} #include "fastjet/EECambridgePlugin.hh" // ... EECambridgePlugin (double ycut); \end{lstlisting} This algorithms performs sequential recombination of the pair of particles that is closest in angle, except when $y_{ij} = \frac{2\min(E_i^2,E_j^2)}{Q^2}(1-\cos\theta) > y_{cut}$, in which case the less energetic of $i$ and $j$ is labelled a jet, and the other member of the pair remains free to cluster. To access the jets, the user should use the \verb|inclusive_jets()|, \ie as they would for the majority of the $pp$ algorithms. The underlying code for this algorithm was written by the \fastjet authors. %...................................................................... \subsubsection{Jade algorithm} \label{sec:ee-jade} The JADE algorithm~\cite{Bartel:1986ua,Bethke:1988zc}, a sequential recombination algorithm with distance measure $d_{ij} = 2E_i E_j (1-\cos\theta)$, is available through \begin{lstlisting} #include "fastjet/JadePlugin.hh" // ... JadePlugin (); \end{lstlisting} To access the jets at a given $y_{cut} = d_{cut}/Q^2$, the user should call \ttt{ClusterSequence::exclusive\_jets\_ycut(double ycut)}. Note: the JADE algorithm has been used with various recombination schemes. The current plugin will use whatever recombination scheme the user specifies with for the jet definition. The default $E$-scheme is what was used in the original JADE publication \cite{Bartel:1986ua}. % To modify the recombination scheme, the user may first construct the jet definition and then use either of \begin{lstlisting} void JetDefinition::set_recombination_scheme(RecombinationScheme recomb_scheme); void JetDefinition::set_recombiner(const Recombiner * recomb) \end{lstlisting} (cf.~sections~\ref{sec:recomb_schemes}, \ref{sec:recombiner}) to modify the recombination scheme. The underlying code for this algorithm was written by the \fastjet authors. %...................................................................... \subsubsection{Spherical SISCone algorithm} \label{sec:spherical-siscone} The spherical SISCone algorithm is an extension~\cite{SpheriSISCone} to spherical coordinates of the hadron-collider SISCone algorithm~\cite{SISCone}. \begin{lstlisting} #include "fastjet/SISConeSphericalPlugin.hh" // ... SISConeSphericalPlugin(double R, double overlap\_threshold double protojet_Emin = 0.0, bool caching = false, SISConeSphericalPlugin::SplitMergeScale split_merge_scale = SISConeSphericalPlugin::SM_Etilde, double split_merge_stopping_scale = 0.0); \end{lstlisting} The functionality follows directly that of \ttt{SISConePlugin}. Note that the underlying implementation of spherical SISCone is optimised for large $N$. % An alternative implementation that is faster for $N \lesssim 10$ was presented in~\cite{Weinzierl:2011jx}. That reference also contains a nice description of the algorithm. %====================================================================== \section{Selectors} \label{sect:selectors} Analyses often place constraints (cuts) on jets' transverse momenta, rapidity, maybe consider only some $N$ hardest jets, etc. % There are situations in which it is convenient to be able to define a basic set of jet cuts in one part of a program and then have it used elsewhere. % To allow for this, we provide a \ttt{fastjet::Selector} class, available through \begin{lstlisting} #include "fastjet/Selector.hh" \end{lstlisting} %---------------------------------------------------------------------- \subsection{Essential usage} As an example of how \ttt{Selector}s are used, suppose that we have a vector of jets, \ttt{jets}, and wish to select those that have rapidities $|y|<2.5$ and transverse momenta above $20\GeV$. We might write the following: \begin{lstlisting} Selector select_rapidity = SelectorAbsRapMax(2.5); Selector select_pt = SelectorPtMin(20.0); Selector select_both = select_pt && select_rapidity; vector selected_jets = select_both(jets); \end{lstlisting} Here, \ttt{Selector} is a class, while \ttt{SelectorAbsRapMax} and \ttt{SelectorPtMin} are functions that return an instance of the \ttt{Selector} class containing the internal information needed to carry out the selection. % \ttt{Selector::operator(const vector \& jets)} takes the jets given as input and returns a vector containing those that pass the selection cuts. The logical operations \ttt{\&\&}, \ttt{||} and \ttt{!} enable different selectors to be combined. % Nearly all selectors, like those above, apply jet by jet (the function \ttt{Selector::applies\_jet\_by\_jet()} returns \ttt{true}). % For these, one can query whether a single jet passes the selection with the help of the function \ttt{bool Selector::pass(const PseudoJet \&)}. There are also selectors that only make sense applied to an ensemble of jets. % This is the case specifically for \ttt{SelectorNHardest(unsigned int n)}, which, acting on an ensemble of jets, selects the $n$ jets with largest transverse momenta. If there are fewer than $n$ jets, then all jets pass. When a selector is applied to an ensemble of jets one can also use \begin{lstlisting} Selector::sift(vector & jets, vector & jets_that_pass, vector & jets_that_fail) \end{lstlisting} to obtain the vectors of \ttt{PseudoJet}s that pass or fail the selection. For selectors that apply jet-by-jet, the selectors on either side of the logical operators \ttt{\&\&} and \ttt{||} naturally commute. % For operators that act only on the ensemble of jets the behaviour needs specifying. % The design choice that we have made is that \begin{lstlisting} SelectorNHardest(2) && SelectorAbsRapMax(2.5) SelectorAbsRapMax(2.5) && SelectorNHardest(2) \end{lstlisting} give identical results: in logical combinations of selectors, each constituent selector is applied independently to the ensemble of jets, and then a decision whether a jet passes is determined from the corresponding logical combination of each of the selectors' results. Thus, here only jets that are among the 2 hardest of the whole ensemble and that have $|y|<2.5$ will be selected. % If one wishes to first apply a rapidity cut, and {\sl then} find the 2 hardest among those jets that pass the rapidity cut, then one should instead use the \ttt{*} operator: \begin{lstlisting} SelectorNHardest(2) * SelectorAbsRapMax(2.5) \end{lstlisting} In this combined selector, the right-hand selector is applied first, and then the left-hand selector is applied to the results of the right-hand selection. A complementary selector can also be defined using the negation operator. For instance \begin{lstlisting} Selector sel_allbut2hardest = !SelectorNHardest(2); \end{lstlisting} Note that, if directly applying (as opposed to first defining) a similar negated selector to a collection of jets, one should write \begin{lstlisting} vector allbut2hardest = (!SelectorNHardest(2))(jets); \end{lstlisting} with the brackets around the selector definition being now necessary due to \ttt{()} having higher precedence in C++ than Boolean operators. A user can obtain a string describing a given \ttt{Selector}'s action by calling its \ttt{description()} member function. % This behaves sensibly also for compound selectors. New selectors can be implemented as described in section~\ref{sec:new-selectors}. %...................................................................... \subsubsection{Other information about selectors} Selectors contain a certain amount of additional information that can provide useful hints to the functions using them. One such piece of information is a selector's rapidity extent, accessible through a \ttt{get\_rapidity\_extent(rapmin,rapmax)} call, which is useful in the context of background estimation (section~\ref{sec:BackgroundEstimator}). % If it is not sensible to talk about a rapidity extent for a given selector (e.g.\ for \ttt{SelectorPtMin}) the rapidity limits that are returned are the largest (negative and positive) numbers that can be represented as doubles. % The function \ttt{is\_geometric()} returns true if the selector places constraints only on rapidity and azimuth. Selectors may also have areas associated with them (in analogy with jet areas, section~\ref{sec:areas}). % The \ttt{has\_finite\_area()} member function returns true if a selector has a meaningful finite area. The \ttt{area()} function returns this area. % In some cases the area may be computed using ghosts (by default with ghosts of area $0.01$; the user can specify a different ghost area as an argument to the \ttt{area} function). %...................................................................... \subsection{Available selectors} \subsubsection{Absolute kinematical cuts} A number of selectors have been implemented following the naming convention \ttt{Selector}{\it\{Var\}\{LimitType\}}. % The {\it\{Var\}} indicates which variable is being cut on, and can be one of \begin{lstlisting} pt, Et, E, Mass, Rap, AbsRap, Eta, AbsEta \end{lstlisting} % The {\it\{LimitType\}} indicates whether one places a lower-limit on the variable, an upper limit or a range, corresponding to the choices \begin{lstlisting} Min, Max, Range \end{lstlisting} % A couple of examples are \begin{lstlisting} SelectorPtMin(25.0) // Selects $p_t>25$ (units are user's default for momenta) SelectorRapRange(1.9,4.9) // Selects $1.9 jets_near_jet1 = sel(jets); sel.set_reference(jet2); vector jets_near_jet2 = sel(jets); \end{lstlisting} If one uses a selector that takes a reference without the reference having been actually set, an exception will be thrown. % If one sets a reference for a compound selector, the reference is automatically set for all components that take a reference. % One can verify whether a given selector takes a reference by calling the member function \begin{lstlisting} bool Selector::takes_reference() const; \end{lstlisting} Attempting to set a reference for a Selector that returns \ttt{false} here will cause an exception to be thrown. % \subsubsection{Other selectors} The following selectors are also available: \begin{lstlisting} SelectorNHardest($n$) // selects the $n$ hardest jets SelectorIsPureGhost() // selects jets that are made exclusively of ghost particles SelectorIsZero() // selects jets with zero momentum SelectorIdentity() // selects everything. Included for completeness \end{lstlisting} %====================================================================== \section{Jet areas} \label{sec:areas} Jet areas provide a measure of the surface in the $y$-$\phi$ plane over which a jet extends, or, equivalently, a measure of a jet's susceptibility to soft contamination. Since a jet is made up of only a finite number of particles, one needs a specific definition in order to make its area an unambiguous concept. Three definitions of area have been proposed in~\cite{CSSAreas} and implemented in \fastjet: \begin{itemize} \item {\it Active} areas add a uniform background of extremely soft massless `ghost' particles to the event and allow them to participate in the clustering. The area of a given jet is proportional to the number of ghosts it contains. % Because the ghosts are extremely soft (and sensible jet algorithms are infrared safe), the presence of the ghosts does not affect the set of user particles that end up in a given jet. % Active areas give a measure of a jet's sensitivity to diffuse background noise. \item {\it Passive} areas are defined as follows: one adds a single randomly placed ghost at a time to the event. One examines which jet (if any) the ghost ends up in. One repeats the procedure many times and the passive area of a jet is then proportional to the probability of it containing the ghost. % Passive areas give a measure of a jet's sensitivity to point-like background noise. \item The {\it Voronoi} area of a jet is the sum of the Voronoi areas of its constituent particles. The Voronoi area of a particle is obtained by determining the Voronoi diagram for the event as a whole, and intersecting the Voronoi cell of the particle with a circle of radius $R$ centred on the particle. Note that for the $k_t$ algorithm (but not in general for other algorithms) the Voronoi area of a jet coincides with its passive area. \end{itemize} In the limit of very densely populated events, all area definitions lead to the same jet-area results~\cite{CSSAreas}.\footnote{This can be useful when one area is particularly expensive to calculate: for example active areas for SISCone tend to be memory and CPU intensive; however, for dense events, they can be adequately replaced with passive areas, which, for SISCone, are computationally more straightforward.} The area of a jet can be calculated either as a scalar, or as a 4-vector. Essentially the scalar case corresponds to counting the number of ghosts in the jet; the $4$-vector case corresponds to summing their 4-vectors, normalised such that for a narrow jet, the transverse component of the $4$-vector is equal to the scalar area. To access jet areas, the user is exposed to two main classes: \begin{lstlisting} class fastjet::AreaDefinition; class fastjet::ClusterSequenceArea; \end{lstlisting} with input particles, a jet definition and an area definition being supplied to a \ttt{ClusterSequenceArea} in order to obtain jets with area information. % Typical usage would be as follows: \begin{lstlisting} #include "fastjet/ClusterSequenceArea.hh" // ... double ghost_maxrap = 5.0; // e.g. if particles go up to y=5 AreaDefinition area_def(active_area, GhostedAreaSpec(ghost_maxrap)); ClusterSequenceArea clust_seq(input_particles, jet_def, area_def); vector jets = sorted_by_pt(clust_seq.inclusive_jets()); double area_hardest_jet = jets[0].area(); \end{lstlisting} Details are to be found below and an example program is given as \ttt{example/06-area.cc}. When jet areas are to be used to establish the level of a diffuse noise that might be present in the event (e.g.\ from underlying event particles or pileup), and maybe subtract it from jets, further classes such as \ttt{fastjet::JetMedianBackgroundEstimator} and \ttt{fastjet::Subtractor} are useful. This topic is discussed in Section \ref{sec:BackgroundEstimator} and an example program is given in \ttt{example/07-subtraction.cc}. %---------------------------------------------------------------------- \subsection{\tt AreaDefinition} Area definitions are contained in the \ttt{AreaDefinition} class. Its two main constructors are: \begin{lstlisting} AreaDefinition(fastjet::AreaType area_type, fastjet::GhostedAreaSpec ghost_spec); \end{lstlisting} for the various active and passive areas (which all involve ghosts) and \begin{lstlisting} AreaDefinition(fastjet::VoronoiAreaSpec voronoi_spec); \end{lstlisting} for the Voronoi area. A default constructor exists, and provides an active area with a \ttt{ghost\_spec} that is acceptable for a majority of area measurements with clustering algorithms and typical Tevatron and LHC rapidity coverage. Information about the current \ttt{AreaDefinition} can be retrieved with the help of \ttt{description()}, \ttt{area\_type()}, \ttt{ghost\_spec()} and \ttt{voronoi\_spec()} member functions. \subsubsection{Ghosted Areas (active and passive)} \label{sec:ghosted-areas} There are two variants each of the active and passive areas, as defined by the \ttt{AreaType} \ttt{enum}: \begin{lstlisting} enum AreaType{ [...], active_area, active_area_explicit_ghosts, one_ghost_passive_area, passive_area, [...]}; \end{lstlisting} The two active variants give identical results for the areas of hard jets. % The second one explicitly includes the ghosts when the user requests the constituents of a jet and also leads to the presence of ``pure ghost'' jets. % The first of the passive variants explicitly runs through the procedure mentioned above, \ie it clusters the events with one ghost at a time, and repeats this for very many ghosts. This can be quite slow, so we also provide the \ttt{passive\_area} option, which makes use of information specific to the jet algorithm in order to speed up the passive-area determination.\footnote{This ability is provided for $k_t$, Cambridge/Aachen, anti-$k_t$ and the SISCone plugin. In the case of $k_t$ it is actually a Voronoi area that is used, since this can be shown to be equivalent to the passive area~\cite{CSSAreas} (though some approximations are made for 4-vector areas). % For other algorithms it defaults back to the \texttt{one\_ghost\_passive\_area} approach.} In order to carry out a clustering with a ghosted area determination, the user should also create an object that specifies how to distribute the ghosts.\footnote{Or accept a default --- which uses the default values listed in the explicit constructor and $\texttt{ghost\_maxrap} = 6$} % This is done via the class \ttt{GhostedAreaSpec} whose constructor is \begin{lstlisting} GhostedAreaSpec(double ghost_maxrap, int repeat = 1, double ghost_area = 0.01, double grid_scatter = 1.0, double pt_scatter = 0.1, double mean_ghost_pt = 1e-100); \end{lstlisting} The ghosts are distributed on a uniform grid in $y$ and $\phi$, with small random fluctuations to avoid clustering degeneracies. The \ttt{ghost\_maxrap} variable defines the maximum rapidity up to which ghosts are generated. % If one places ghosts well beyond the particle acceptance (at least $R$ beyond it), then jet areas also stretch beyond the acceptance, giving a measure of the jet's full extent in rapidity and azimuth. % If ghosts are placed only up to the particle acceptance, then the jet areas are clipped at that acceptance and correspond more closely to a measure of the jet's susceptibility to contamination from accepted soft particles. % This is relevant in particular for jets within a distance $R$ of the particle acceptance boundary. % The two choices are illustrated in fig.~\ref{fig:ghost-placement}. % To define more complicated ghost acceptances it is possible to replace \ttt{ghost\_maxrap} with a \ttt{Selector}, which must be purely geometrical and have finite rapidity extent. \begin{figure} \centering \includegraphics[width=0.48\textwidth]{figs/ghost-extent-y4}\hfill \includegraphics[width=0.48\textwidth]{figs/ghost-extent-y3} \caption{Two choices for ghost placement. The grey area in each plot indicates the region containing ghosts, while the dots are particles, which here are accepted up to $|y|<3$. % The circular regions indicate the areas that will be found for two particular jets. % In the left-hand case, with ghosts that extend well beyond the acceptance for particles, jet areas are unaffected by the particle acceptance; % in the right-hand case, with ghosts placed only up to the acceptance limit, jet areas are clipped at the edge of the acceptance. } \label{fig:ghost-placement} \end{figure} The \ttt{ghost\_area} parameter in the \ttt{GhostedAreaSpec} constructor is the area associated with a single ghost. % The number of ghosts is inversely proportional to the ghost area, and so a smaller area leads to a longer CPU-time for clustering. However small ghost areas give more accurate results. % We have found the default ghost area given above to be adequate for most applications. % Smaller ghost areas are beneficial mainly for high-precision determinations of areas of jets with small $R$. By default, one set of ghosts is generated for each event that is clustered. % The small random fluctuations in ghost positions and $p_t$'s, introduced to break clustering degeneracies, mean that for repeated clustering of the same event a given hard jet's area will be different after each clustering. % This is especially true for sparse events, where a jet's particle content fails to accurately delineate the boundaries of the jet. % For the \texttt{active\_area} choice (and certain passive areas), specifying $\ttt{repeat} > 1$ causes \fastjet to directly cluster the same hard event with multiple ghost sets. % This results in a pseudo-Monte Carlo type evaluation of the jet areas. % A statistical uncertainty on the area is available for each jet, through the \ttt{jet.area\_error()} call. % It is calculated as the standard deviation of areas obtained for that jet, divided by $\sqrt{\ttt{repeat}-1}$. % While there are situations in which this facility is useful, for most applications of jet areas it is sufficient to use $\ttt{repeat}=1$.\footnote{% Several parameters are available to control the properties and randomness of the ghosts: each ghost's position differs from an exact grid vertex by a random amount distributed uniformly in the range $\pm \frac12 \texttt{grid\_scatter}$ times the grid spacing in both the rapidity and azimuth directions. % Each ghost's $p_t$ is distributed randomly in the range $(1 \pm \frac12 \texttt{pt\_scatter})$ times \texttt{mean\_ghost\_pt}. % For nearly all applications, it makes sense to use the default values. % Facilities are also available to set and retrieve the seeds for the random-number generator, notably through the \texttt{set\_random\_status(...)} and \texttt{get\_random\_status(...)} members of \texttt{GhostedAreaSpec}. } After initialisation, the parameters can be modified and retrieved respectively with calls such as \ttt{set\_ghost\_area(...)} and \ttt{ghost\_maxrap()} (similarly for the other parameters\footnote{In versions of \fastjet prior to 3.0.1, the names \texttt{mean\_ghost\_kt} and \texttt{kt\_scatter} should be used rather than \texttt{mean\_ghost\_pt} and \texttt{pt\_scatter}. The former names will be maintained for the foreseeable future.}). % A textual description of the \ttt{GhostedAreaSpec} can be obtained, as usual, with the \ttt{description()} member function. % Finally, an alternative constructor % \begin{lstlisting} % GhostedAreaSpec(const Selector & selector, % int repeat = 1, % double ghost_area = 0.01, % double grid_scatter = 1.0, % double pt_scatter = 0.1, % double mean_ghost_pt = 1e-100); % \end{lstlisting} % allows the user to have ghosts placed in the region specified by the % \ttt{selector}, which must be purely geometrical and have finite % rapidity extent. % % % This option is useful, for example, if one wishes to place ghosts in a % manner that reflects a detector's acceptance for particles. \subsubsection{Voronoi Areas} \label{sec:voronoi-areas} The Voronoi areas of jets are evaluated by summing the corresponding Voronoi areas of the jets' constituents. The latter are obtained by considering the intersection between the Voronoi cell of each particle and a circle of radius $R$ centred on the particle's position in the rapidity-azimuth plane. The jets' Voronoi areas can be obtained from \ttt{ClusterSequenceArea} by passing the proper \ttt{VoronoiAreaSpec} specification to \ttt{AreaDefinition}. Its constructors are \begin{lstlisting} /// default constructor (effective_Rfact = 1) VoronoiAreaSpec() ; /// constructor that allows you to set effective_Rfact VoronoiAreaSpec(double effective_Rfact) ; \end{lstlisting} The second constructor allows one to modify (by a multiplicative factor \ttt{effective\_Rfact}) the radius of the circle which is intersected with the Voronoi cells. With $\ttt{effective\_Rfact} = 1$, for the $k_t$ algorithm, the Voronoi area is equivalent to the passive area. % Information about the specification in use is returned by \ttt{effective\_Rfact()} and \ttt{description()} member functions. The Voronoi areas are calculated with the help of Fortune's ($N \ln N$) Voronoi diagram generator for planar static point sets~\cite{Fortune}. One use for the Voronoi area is in background determination with the $k_t$ algorithm (see below, section~\ref{sec:BackgroundEstimator}): with the choice $\ttt{effective\_Rfact}\simeq0.9$ it provides an acceptable approximation to the $k_t$ algorithm's active area and is often significantly faster to compute than the active area. % Note that it is not currently possible to clip Voronoi areas with a given particle acceptance. % As a result, given particles up to $|y| ClusterSequenceArea(const std::vector & input_particles, const JetDefinition & jet_def, const AreaDefinition & area_def); \end{lstlisting} and the class includes the methods \begin{lstlisting} /// Return a reference to the area definition virtual const AreaDefinition & area_def() const; /// Returns an estimate of the area contained within the selector that is free of jets. /// The selector needs to have a finite area and be applicable jet by jet. /// The function returns 0 if active_area_explicit_ghosts was used. virtual double empty_area(const Selector & selector) const; \end{lstlisting} As long as an instance of this class is in scope, a user can access information about the area of its jets using the following methods of \ttt{PseudoJet}: \begin{lstlisting} /// Returns the scalar area associated with the given jet double area = jet.area(); /// Returns the error (uncertainty) associated with the determination of the /// scalar area of the jet; gives zero when the repeat=1 and for passive/Voronoi areas double area_error = jet.area_error(); /// Returns a PseudoJet whose 4-vector is defined by the following integral /// /// $\int dy d\phi$ PseudoJet($y$,$\phi$,$p_t=1$) * $\Theta$("$y,\phi$ inside jet boundary") /// /// where PseudoJet($y$,$\phi$,$p_t=1$) is a 4-vector with the given rapidity ($y$), /// azimuth ($\phi$) and $p_t=1$, while $\Theta$("$y,\phi$ inside jet boundary") is 1 /// when $y,\phi$ define a direction inside the jet boundary and 0 otherwise. PseudoJet area_4vector = jet.area_4vector(); /// When using active_area_explicit_ghosts, returns true for jets made /// exclusively of ghosts and for ghost constituents. bool is_pure_ghost = jet.is_pure_ghost(); \end{lstlisting} %---------------------------------------------------------------------- \section{Background estimation and subtraction} \label{sec:BackgroundEstimator} Events with hard jets are often accompanied by a more diffuse ``background'' of relatively soft particles, for example from the underlying event (in $pp$ or PbPb collisions) or from pileup (in $pp$ collisions). % For many physical applications, it is useful to be able to estimate characteristics of the background on an event-by-event basis, for example the $p_t$ per unit area ($\rho$), or fluctuations from point to point ($\sigma$). % One use of this information is to correct the hard jets for the soft contamination, as discussed below in section~\ref{sec:subtractor}. One of the issues in characterising the background is that it is difficult to introduce a robust criterion to distinguish ``background'' jets from hard jets. % The main method that is available in \fastjet involves the determination of the distribution of $p_t/A$ for the jets in a given event (or region of the event) and then taking the median of the distribution as an estimate of $\rho$, as proposed in~\cite{cs} and studied in detail also in~\cite{Cacciari:2009dp,GridMedianLH}. % This is largely insensitive to the presence of a handful of hard jets, and avoids any need for introducing a $p_t$ scale to distinguish hard and background jets. The original form of this method used the $k_t$ or Cambridge/Aachen jet algorithms to find the jets. % These algorithms have the advantage that the resulting jets tend to have reasonably uniform areas\footnote{Whereas anti-$k_t$ and SISCone suffer from jets with near zero areas or, for SISCone, sometimes huge, ``monster'' jets, biasing the $\rho$ determination. They are therefore not recommended.} % In the meantime a variant of the approach that has emerged is to cluster the particles into rectangular grid cells in $y$ and $\phi$ and determine their median $p_t/A$. % This has the advantage of simplicity and much greater speed. % One may worry that a hard jet will sometimes lie at a corner of multiple grid cells, inducing larger biases in the median than with a normal jet finder jets, however we have found this not to be an issue in practice~\cite{GridMedianLH}. \subsection{General Usage}\label{sec:bkg_general_usage} \subsubsection{Background estimation}\label{sec:bkg_estim_usage} The simplest workflow for background estimation is first, outside the event loop, to create a background estimator. % For the jet-based method, one creates a \ttt{fastjet::JetMedianBackgroundEstimator}, \begin{lstlisting} #include "fastjet/tools/JetMedianBackgroundEstimator.hh" // ... JetMedianBackgroundEstimator bge(const Selector & selector, const JetDefinition & jet_def, const AreaDefinition & area_def); \end{lstlisting} where the selector is used to indicate which jets are used for background estimation (for simple use cases, one just specifies a rapidity range, e.g.\ \ttt{SelectorAbsRapMax(4.5)} to use all jets with $|y|<4.5$), together with a jet definition and an area definition. % We have found that the $k_t$ or Cambridge/Aachen jet algorithms with $R = 0.4 - 0.6$ generally provide adequate background estimates, with the lower range of $R$ values to be preferred if the events are likely to be busy~\cite{Cacciari:2009dp,GridMedianLH}. % An active area with explicit ghosts is generally recommended.\footnote{With the $k_t$ algorithm one may also use a Voronoi area (\texttt{effective\_Rfact = 0.9} is recommended), which has the advantage of being deterministic and faster than ghosted areas. In this case however one must use a selector that is geometrical and selects only jets well within the range of event particles. % E.g. if particles are present up to $|y| = y_{\max}$ one should only use jets with $|y| \lesssim y_{\max} - R$. % When using ghosts, the selector can instead go right up to the edge of the acceptance, if the ghosts also only go right up to the edge, as in the right-hand plot of fig.~\ref{fig:ghost-placement}.} % For the grid based method one creates a \ttt{fastjet::GridMedianBackgroundEstimator}, \begin{lstlisting} #include "fastjet/tools/GridMedianBackgroundEstimator.hh" // ... GridMedianBackgroundEstimator bge(double max_rapidity, double requested_grid_spacing); \end{lstlisting} We have found grid spacings in the range $0.5-0.7$ to be adequate~\cite{GridMedianLH}, with lower values preferred for events that are likely to have high multiplicities. Both of the above background estimators derive from a \ttt{fastjet::BackgroundEstimatorBase} class and the remaining functionality is common to both. % In particular, for each event, one tells the background estimator about the event particles, \begin{lstlisting} bge.set_particles(event_particles); \end{lstlisting} where \ttt{event\_particles} is a vector of \PJ, and then extracts the background density and a measure of its fluctuations with the two following calls % \begin{lstlisting} // the median of ($p_t$/area) for grid cells, or for jets that pass the selection cut, // making use also of information on empty area in the event (in the jets case) rho = bge.rho(); // an estimate of the fluctuations in the $p_t$ density per unit $\smash{\sqrt{A}}$, // which is obtained from the 1-sigma half-width of the distribution of pt/A. // To be precise it is defined such that a fraction (1-0.6827)/2 of the jets // (including empty jets) have $p_t/A < \rho - \sigma \sqrt{\langle A \rangle}$ sigma = bge.sigma(); \end{lstlisting} Note that $\rho$ and $\sigma$ determinations count empty area within the relevant region as consisting of jets of zero $p_t$. % Thus (roughly speaking), if more that half of the area covered by the jets selector or grid rapidity range is empty, the median estimate for $\rho$ will be zero, as expected and appropriate for quiet events. %---------------------------------------------------------------------- \subsubsection{Background subtraction}\label{sec:subtractor} A common use of an estimation of the background is to subtract its contamination from the transverse momentum of hard jets, in the form \begin{equation} p_{t,jet}^{sub} = p_{t,jet}^{raw} - \rho A_{jet} \end{equation} or its 4-vector version \begin{equation} p_{\mu,jet}^{sub} = p_{\mu,jet}^{raw} - \rho A_{\mu,jet} \, , \end{equation} as first proposed in~\cite{cs}. To this end, the \ttt{Subtractor} class is defined in \ttt{include/tools/Subtractor.hh}. Its constructor takes a pointer to a background estimator: \begin{lstlisting} JetMedianBackgroundEstimator bge(....); // or a grid-based estimator Subtractor subtractor(&bge); \end{lstlisting} (it is also possible to construct the Subtractor with a fixed value for $\rho$). % The subtractor can then be used as follows: \begin{lstlisting} PseudoJet jet; vector jets; // ... PseudoJet subtracted_jet = subtractor(jet); vector subtracted_jets = subtractor(jets); \end{lstlisting} The subtractor normally returns \ttt{jet - bge.rho(jet)*jet.area\_4vector()}. % If \ttt{jet.perp() < bge.rho(jet)*jet.area\_4vector().perp()}, then the subtractor instead returns a jet with zero 4-momentum (so that \ttt{(subtracted\_jet==0)} returns \ttt{true}). % In both cases, the returned jet retains the user and structural information of the original jet. An example program is given in \ttt{example/07-subtraction.cc}. Note that \ttt{Subtractor} derives from the \ttt{Transformer} class (see section~\ref{sec:transformers}) and hence from \ttt{FunctionOfPseudoJet} (cf.\ appendix~\ref{app:function-of-pj}). %...................................................................... \subsection{Positional dependence of background} \label{sec:BGE-positional} The background density in $pp$ and heavy-ion collisions usually has some non-negligible dependence on rapidity (and sometimes azimuth). % This dependence is not accounted for in the standard estimate of $\rho$ based on all jets or grid cells from (say) $|y|<4.5$. % Two techniques are described below to help alleviate this problem. % In each case the properties of the background are to be obtained through the methods (available for both \ttt{JetMedianBackgroundEstimator} and \ttt{GridMedianBackgroundEstimator}) \begin{lstlisting} double rho (const PseudoJet & jet); // $p_t$ density per unit area $A$ near jet double sigma(const PseudoJet & jet); // fluctuations in the $p_t$ density near jet \end{lstlisting} %...................................................................... \subsubsection{Local estimation} \label{sec:local-bkgd-estimation} The first technique, ``local estimation'', available for now only in the case of the jet-based estimator, involves the use of a more local range for the determination of $\rho$, with the help of a \ttt{Selector} that is able to take a reference jet, e.g. \ttt{SelectorStrip(}$\Delta y$\ttt{)}, a strip of half-width $\Delta y$ (which might be of order $1$) centred on whichever jet is set as its reference. % With this kind of selector, when the user calls either \ttt{rho(jet)} or \ttt{sigma(jet)} a \ttt{selector.set\_reference(jet)} call is made to centre the selector on the specified jet. Then only the jets in the event that pass the cut specified by this newly positioned \ttt{selector} are used to estimate $\rho$ or $\sigma$.\footnote{If the selector does not take a reference jet, then these calls give identical results to the plain \texttt{rho()} and \texttt{sigma()} calls (unless a manual rapidity rescaling is also in effect, cf.\ section~\ref{sec:rescaled-bkgd-estimation}).} % This method is adequate if the number of jets that pass the selector is much larger than the number of hard jets in the range (otherwise the median $p_t/A$ will be noticeably biased by the hard jets). % It therefore tends to be suitable for dijet events in $pp$ or PbPb collisions, but may fare less well in event samples such as hadronically decaying $t\bar t$ which may have many central hard jets. % One can attempt to remove some given number of hard jets before carrying out the median estimation, e.g.\ with a \ttt{selector} such as \begin{lstlisting} selector = SelectorStrip($\Delta y$) * (!SelectorNHardest(2)) \end{lstlisting} which removes the 2 hardest jets globally and then, of the remainder, takes the ones within the strip.\footnote{If you use non-geometric selectors such as this in determining $\rho$, the area must have explicit ghosts in order to simplify the determination of the empty area. If it does not, an error will be thrown.} % This is however not always very effective, because one may not know how many hard jets to remove. %...................................................................... \subsubsection{Rescaling method} \label{sec:rescaled-bkgd-estimation} A second technique to account for positional dependence of the background is ``rescaling''. % First one parametrises the average shape of the rapidity dependence from some number of pileup events. % Then for subsequent event-by-event background determinations, one carries out a global $\rho$ determination and then applies the previously determined average rescaling function to that global determination to obtain an estimate for $\rho$ in the neighbourhood of a specific jet. The rescaling approach approach is available for both grid and jet-based methods. % To encode the background shape, one defines an object such as \begin{lstlisting} // gives rescaling$(y) = 1.16 + 0\cdot y -0.023 \cdot y^2 + 0\cdot y^3 + 0.000041 \cdot y^4$ fastjet::BackgroundRescalingYPolynomial rescaling(1.16, 0, -0.023, 0, 0.000041); \end{lstlisting} (for other shapes, e.g. parametrisation of elliptic flow in heavy ion collisions, with both rapidity and azimuth dependence, derive a class from \ttt{FunctionOfPseudoJet} --- see appendix \ref{app:function-of-pj}). Then one tells the background estimator (whether jet or grid based) about the rescaling with the call \begin{lstlisting} // tell JetMedianBackgroundEstimator or GridMedianBackgroundEstimator about the rescaling bge.set_rescaling_class(&rescaling); \end{lstlisting} Subsequent calls to \ttt{rho()} will return the median of the distribution $p_t/A / \ttt{rescaling}(y)$ (rather than $p_t/A$). % Any calls to \ttt{rho(jet)} and \ttt{sigma(jet)} will include an additional factor of \ttt{rescaling}$(y_\ttt{jet})$. % Note that any overall factor in the rescaling function cancels out for \ttt{rho(jet)} and \ttt{sigma(jet)}, but not for calls to \ttt{rho()} and \ttt{sigma()} (which are in any case less meaningful when a rapidity dependence is being assumed for the background). In ongoing studies \cite{GridMedianLH}, we have found that despite its use of an average background shape, the rescaling method generally performs comparably to local estimation in terms of its residual $p_t$ dispersion after subtraction. % Additionally, it has the advantage of reduced sensitivity to biases in events with high multiplicities of hard jets. %...................................................................... \subsection{Other facilities} \label{sec:BGE-other-facilities} The \ttt{JetMedianBackgroundEstimator} has a number of enquiry functions to access information used internally within the median $\rho$ and $\sigma$ determination. \begin{lstlisting} // Returns the mean area of the jets used to actually compute the background properties, // including empty area and jets (available also in grid-based estimator) double mean_area() const; // Returns the number of jets used to actually compute the background properties // (including empty jets) unsigned int n_jets_used() const; // Returns the estimate of the area (within the range defined by the selector) that // is not occupied by jets. double empty_area() const; // Returns the number of empty jets used when computing the background properties. double n_empty_jets() const; \end{lstlisting} For area definitions with explicit ghosts the last two functions return $0$. % For active areas without explicit ghosts the results are calculated based on the observed number of internally recorded pure ghost jets (and unclustered ghosts) that pass the selector; for Voronoi and passive areas, they are calculated using the difference between the total range area and the area of the jets contained in the range, with the number of empty jets then being calculated based on the average jet area for ghost jets ($0.55\pi R^2$~\cite{CSSAreas}). % All four function above return a result corresponding to the last call to \ttt{rho} or \ttt{sigma} (as long as the particles, cluster sequence or selector have not changed in the meantime). %...................................................................... \subsection{Alternative workflows} % To allow flexibility in the user's workflow, alternative constructors to \ttt{JetMedianBackgroundEstimator} are provided. % These can come in useful if, for example, the user wishes to carry out multiple background estimations with the same particles but different selectors, or wishes to take care of the jet clustering themselves, e.g.\ because the results of that same jet clustering will be used in multiple contexts and it is more efficient to perform it just once. These constructors are: \begin{lstlisting} // create an estimator that uses the inclusive jets from the supplied cluster sequence JetMedianBackgroundEstimator(const Selector & rho_range, const ClusterSequenceAreaBase & csa); // a default constructor that requires all information to be set later JetMedianBackgroundEstimator(); \end{lstlisting} In the first case, the background estimator already has all the information it needs. Instead, if the default constructor has been used, one can then employ \begin{lstlisting} // (re)set the selector to be used for future calls to rho() etc. void set_selector(const Selector & rho_range_selector); // (re)set the cluster sequence to be used by future calls to rho() etc. // (as with the cluster-sequence based constructor, its inclusive jets are used) void set_cluster_sequence(const ClusterSequenceAreaBase & csa); \end{lstlisting} to set the rest of the necessary information. If a list of jets is already available, they can be submitted to the background estimator in place of a cluster sequence: \begin{lstlisting} // (re)set the jets to be used by future calls to rho() etc. void set_jets(const std::vector & jets); \end{lstlisting} Note that the jets passed via the \ttt{set\_jets()} call above must all originate from a common \ttt{ClusterSequenceAreaBase} type class. %====================================================================== \section{Jet transformers (substructure, taggers, etc...)} \label{sec:transformers} Performing post-clustering actions on jets has in recent years become quite widespread: for example, numerous techniques have been introduced to tag boosted hadronically decaying objects, and various methods also exist for suppressing the underlying event and pileup in jets, beyond the subtraction approach discussed in section~\ref{sec:BackgroundEstimator}. % \fastjet 3 provides a common interface for such tools, intended to help simplify their usage and to guide authors of new ones. % Below, we first discuss generic considerations about these tools, which we call \ttt{fastjet::Transformer}s. % We then describe some that have already been implemented. % New user-defined transformers can be implemented as described in section~\ref{sec:transformerdetails}. A transformer derived from \ttt{Transformer}, e.g. the class \ttt{MyTransformer}, will generally be used as follows: \begin{lstlisting} MyTransformer transformer; PseudoJet transformed_jet = transformer(jet); \end{lstlisting} Often, transformers provide new structural information that is to be associated with the returned result. % For a given transformer, say \ttt{MyTransformer}, the new information that is not already directly accessible from \ttt{PseudoJet} (like its \ttt{constituents}, \ttt{pieces} or \ttt{area} when they are relevant), can be accessed through \begin{lstlisting} transformed_jet.structure_of() \end{lstlisting} which returns a reference to an object of type \ttt{MyTransformer::StructureType}. % This is illustrated below on a case-by-case basis for each of the transformers that we discuss. % Using the Boolean function \ttt{transformed\_jet.has\_structure\_of()} it is possible to check if \ttt{transformed\_jet} is compatible with the structure provided by \ttt{MyTransformer}. A number of the transformers that we discuss below are ``taggers'' for boosted objects. % In some cases they will determine that a given jet does not satisfy the tagging conditions (e.g., for a top tagger, because it seems not to be a top jet). % We will adopt the convention that in such cases the result of the transformer is a jet whose 4-momentum is zero, i.e.\ one that satisfies \ttt{jet == 0}. % Such a jet may still have structural information however (e.g.\ to indicate why the jet was not tagged). \subsection{Noise-removal transformers} In section \ref{sec:subtractor} we already saw one transformer for noise removal, i.e.\ \ttt{Subtractor}. % Others have emerged in the context of jet substructure studies and are described here. % \subsubsection{Jet Filtering and Trimming using \texttt{Filter}} \label{sec:filtering} Filtering was first introduced in \cite{BDRS} to reduce the sensitivity of a boosted Higgs-candidate jet's mass to the underlying event. % Generally speaking, filtering clusters a jet's constituents with a smaller-than-original jet radius $R_{\rm filt}$. % It then keeps just the $n_{\rm filt}$ hardest of the resulting subjets, rejecting the others. % Trimming~\cite{trimming} is similar, but selects the subjets to be kept based on a $p_t$ cut. % The use of filtering and trimming has been advocated in number of contexts, beyond just the realm of boosted object reconstruction. The \ttt{fastjet::Filter} class derives from \ttt{Transformer}, and can be constructed using a \ttt{JetDefinition}, a \ttt{Selector} and (optionally) a value for the background density, \begin{lstlisting} #include "fastjet/tools/Filter.hh" // ... Filter filter(subjet_def, selector, rho); \end{lstlisting} This reclusters the jet's constituents with the jet definition \ttt{subjet\_def}\footnote{ % When the input jet was obtained with the Cambridge/Aachen algorithm and the subjet definition also involves the Cambridge/Aachen algorithm, the \ttt{Filter} uses the exclusive subjets of the input jet to avoid having to recluster its constituents. } and then applies \ttt{selector} on the \ttt{inclusive\_jets} resulting from the clustering to decide which of these (sub)jets have to be kept. % If \ttt{rho} is non-zero, each of the subjets is subtracted (using the specified value for the background density) prior to the selection of the kept subjets. Alternatively, the user can set a \ttt{Subtractor} (see section~\ref{sec:subtractor}), e.g. \begin{lstlisting} GridMedianBackgroundEstimator bge(...); Subtractor sub(&bge); filter.set_subtractor(sub); \end{lstlisting} When this is done, the subtraction operation is performed using the \ttt{Subtractor}, independently of whether a value had been set for \ttt{rho}. If the jet definition to be used to recluster the jet's constituents is the Cambridge/Aachen algorithm, two additional constructors are available: \begin{lstlisting} Filter(double Rfilt, Selector selector, double rho = 0.0); Filter(FunctionOfPseudoJet * Rfilt_dyn, Selector selector, double rho = 0.0); \end{lstlisting} In the first one, only the radius parameter is specified instead of the full subjet definition. In the second, one has to provide a (pointer to) a class derived from \ttt{FunctionOfPseudoJet} which dynamically computes the filtering radius as a function of the jet being filtered (as was originally used in \cite{BDRS} where $R_{\rm filt}={\rm min}(0.3,R_{b\bar{b}/2})$, with $R_{b\bar b}$ the distance between the parents of the jet). As an example, a simple filter, giving the subjets obtained clustering with the Cambridge/Aachen algorithm with radius $R_{\rm filt}$ and keeping the $n_{\rm filt}$ hardest subjets found, can be set up and applied using \begin{lstlisting} Filter filter(Rfilt, SelectorNHardest(nfilt)); PseudoJet filtered_jet = filter(jet); \end{lstlisting} The \ttt{pieces()} of the resulting filtered/trimmed jet correspond to the subjets that were kept: \begin{lstlisting} vector kept = filtered_jet.pieces(); \end{lstlisting} % Additional structural information is available as follows: % \begin{lstlisting} // the subjets (on the scale Rfilt) not kept by the filtering vector rejected = filtered_jet.structure_of().rejected(); \end{lstlisting} Trimming, which keeps the subjets with a $p_t$ larger than a fixed fraction of the input jet, can be obtained defining \begin{lstlisting} Filter trimmer(Rfilt, SelectorPtFractionMin(pt_fraction_min)); \end{lstlisting} and then applying \ttt{trimmer} similarly to \ttt{filter} above. Note that the jet being filtered must have constituents. Furthermore, if \ttt{rho} is non-zero or if a \ttt{Subtractor} is set, the input jet must come from a cluster sequence with area support and explicit ghosts. If any of these requirements fail, an exception is thrown. % In cases where the filter/trimmer has been defined with just a jet radius, the reclustering of the jet is performed with the same recombination scheme as was used in producing the original jet (assuming it can be uniquely determined). %...................................................................... \subsubsection{Jet pruning} \label{sec:pruning} Pruning was introduced in \cite{Ellis:2009su}. % It works by reclustering a jet's constituents with some given sequential recombination algorithm, but vetoing soft and large-angle recombinations between pseudojets $i$ and $j$, specifically when the two following conditions are met % \begin{enumerate} \item the geometric distance between $i$ and $j$ is larger than a parameter \ttt{Rcut}, with \ttt{Rcut} = \ttt{Rcut\_factor}$\times 2m/p_t$, where $m$ and $p_t$ are the mass and transverse momentum of the original jet being pruned; \item one of $p_t^i, p_t^j $ is $<$~\ttt{zcut}$\times p_t^{i+j}$. \end{enumerate} When the veto condition occurs, the softer of $i$ and $j$ is discarded, while the harder one continues to participate in the clustering. Pruning bears similarity to filtering in that it reduces the contamination of soft noise in a jet while aiming to retain hard perturbative radiation within the jet. % However, because by default the parameters for the noise removal depend on the original mass of the jet, the type of radiation that is discarded depends significantly on the initial jet structure. % As a result pruning, in its default form, is better thought of as a noise-removing boosted-object tagger (to be used in conjunction with a pruned-jet mass cut) rather than a generic noise-removal procedure. % The \ttt{fastjet::Pruner} class, derived from \ttt{Transformer}, can be used as follows, using a \ttt{JetAlgorithm} and two \ttt{double} parameters: \begin{lstlisting} #include "fastjet/tools/Pruner.hh" // ... Pruner pruner(jet_algorithm, zcut, Rcut_factor); // ... PseudoJet pruned_jet = pruner(jet); \end{lstlisting} The \ttt{pruned\_jet} will have a valid associated cluster sequence, so that one can, for instance, ask for its constituents with \ttt{pruned\_jet.constituents()}. % In addition, the subjets that have been rejected by the pruning algorithm (i.e. have been `pruned away') can be obtained with \begin{lstlisting} vector rejected_subjets = pruned_jet.structure_of().rejected(); \end{lstlisting} and each of these subjets will also have a valid associated clustering sequence. When using the constructor given above, the jet radius used by the pruning clustering sequence is set internally to the functional equivalent of infinity. Alternatively, a pruner transformer can be constructed with a \ttt{JetDefinition} instead of just a \ttt{JetAlgorithm}: \begin{lstlisting} JetDefinition pruner_jetdef(jet_algorithm, Rpruner); Pruner pruner(pruner_jetdef, zcut, Rcut_factor); \end{lstlisting} In this situation, the jet definition \ttt{pruner\_jetdef} should normally have a radius \ttt{Rpruner} large enough to ensure that all the constituents of the jet being pruned are reclustered into a single jet. % If this is not the case, pruning is applied to the entire reclustering and it is the hardest resulting pruned jet that is returned; the others can be retrieved using \begin{lstlisting} vector extra_jets = pruned_jet.structure_of().extra_jets(); \end{lstlisting} Finally, note that a third constructor for \ttt{Pruner} exists, that allows one to construct the pruner using functions that dynamically compute \ttt{zcut} and \ttt{Rcut} for the jet being pruned: \begin{lstlisting} Pruner (const JetDefinition &jet_def, FunctionOfPseudoJet< double > *zcut_dyn, FunctionOfPseudoJet< double > *Rcut_dyn); \end{lstlisting} \subsection{Boosted-object taggers} \label{sec:taggers} A number of the taggers developed to distinguish 2- or 3-pronged decays of massive objects from plain QCD jets (see the review \cite{Abdesselam:2010pt}) naturally fall into the category of transformers. % Typically they search for one or more hard branchings within the jet and then return the part of the jet that has been identified as associated with those hard branchings. % They share the convention that if they were not able to identify suitable substructure, they return a \ttt{jet} with zero momentum, i.e.\ one that has the property \ttt{jet == 0}. At the time of writing, we provide only a small set of taggers. % These include one main two-body tagger, the \ttt{fastjet::MassDropTagger} introduced in \cite{BDRS} and one main boosted top tagger, \ttt{fastjet::JHTopTagger} from \cite{Kaplan:2008ie} (\ttt{JHTopTagger} derives from the \ttt{fastjet::TopTaggerBase} class, expressly included to provide a common framework for all top taggers capable of also returning a $W$). % In addition, to help provide a more complete set of examples of coding methods to which users may refer when writing their own taggers, we have also included the % \ttt{fastjet::CASubJetTagger} introduced in~\cite{Butterworth:2009qa}, which illustrates the use of a \ttt{WrappedStructure} (cf.\ appendix~\ref{sec:transformerdetails}) and the rest-frame \ttt{fastjet::RestFrameNSubjettinessTagger} from Ref.~\cite{nsubtagger}, which makes use of facilities to boost a cluster sequence. We refer the reader to the original papers for a more extensive description of the physics use of these taggers. More taggers may be provided in the future, either through native implementations or, potentially, through a ``contrib'' type area. % Users are invited to contact the \fastjet authors for further information in this regard. %...................................................................... \subsubsection{The mass-drop tagger} Introduced in \cite{BDRS} for the purpose of identifying a boosted Higgs decaying into a $b\bar b$ pair, this is a general 2-pronged tagger. It starts with a fat jet obtained with a Cambridge/Aachen algorithm (originally, $R=1.2$ was suggested for boosted Higgs tagging). Tagging then proceeds as follows: \begin{enumerate} \item the last step of the clustering is undone: $j \to j_1,j_2$, with $m_{j_1} > m_{j_2}$; \item if there is a significant mass drop, $\mu \equiv m_{j_1}/m_j < \mu_{\rm cut}$, and the splitting is sufficiently symmetric, $y\equiv {\rm min}(p_{tj_1}^2, p_{tj_2}^2)\Delta R_{j_1j_2}^2/m_j^2 > y_{\rm cut}$, then $j$ is the resulting heavy particle candidate with $j_1$ and $j_2$ its subjets; \item otherwise, redefine $j$ to be equal to $j_1$ and go back to step 1. \end{enumerate} % The tagger can be constructed with \begin{lstlisting} #include "fastjet/tools/MassDropTagger.hh" // ... MassDropTagger mdtagger(double $\mu_\text{cut}$, double $y_\text{cut}$); \end{lstlisting} and applied using \begin{lstlisting} PseudoJet tagged_jet = mdtagger(jet); \end{lstlisting} % This tagger will run with any jet that comes from a \CS. A warning will be issued if the \CS is not based on the C/A algorithm. % If the \ttt{JetDefinition} used in the \CS involved a non-default recombiner, that same recombiner will be used when joining the final two prongs to form the boosted particle candidate. % For a jet that is returned by the tagger and has the property that \ttt{tagged\_jet != 0}, two enquiry functions can be used to return the actual value of $\mu$ and $y$ for the clustering that corresponds to the tagged structure: \begin{lstlisting} tagged_jet.structure_of.mu(); tagged_jet.structure_of.y(); \end{lstlisting} Note that in \cite{BDRS} the mass-drop element of the tagging was followed by a filtering stage using $\min(0.3, R_{jj}/2)$ as the reclustering radius and selecting the three hardest subjects. That can be achieved with \begin{lstlisting} vector tagged_pieces = tagged_jet.pieces(); double Rfilt = min(0.3, 0.5 * pieces[0].delta_R(pieces[1])); PseudoJet filtered_tagged_jet = Filter(Rfilt, SelectorNHardest(3))(tagged_jet); \end{lstlisting} (It is also possible to use the \ttt{Rfilt\_dyn} option to the filter discussed in section~\ref{sec:filtering}). %...................................................................... \subsubsection{The Johns-Hopkins top tagger} The Johns Hopkins top tagger~\cite{Kaplan:2008ie} is a 3-pronged tagger specifically designed to identify top quarks. % It recursively breaks a jet into pieces, finding up to 3 or 4 subjets and then looking for a $W$ candidate among them. % The parameters used to identify the relevant subjets include a momentum fraction cut and a minimal separation in Manhattan distance ($|\Delta y| + |\Delta \phi|$) between subjets obtained from a declustering. % The tagger will run with any jet that comes from a \CS, however % to conform with the original formulation of~\cite{Kaplan:2008ie}, the \CS should be based on the C/A algorithm. A warning will be issued if this is not the case. % If the \ttt{JetDefinition} used in the \CS involves a non-default recombiner, that same recombiner will be used when joining the final two prongs to form the boosted particle candidate. % The tagger can be used as follows: \begin{lstlisting} #include "fastjet/tools/JHTopTagger.hh" // ... double delta_p = 0.10; // subjets must carry at least this fraction of original jet's $p_t$ double delta_r = 0.19; // subjets must be separated by at least this Manhattan distance double cos_theta_W_max = 0.7; // the maximal allowed value of the W helicity angle JHTopTagger top_tagger(delta_p, delta_r, cos_theta_W_max); // indicate the acceptable range of top, W masses top_tagger.set_top_selector(SelectorMassRange(150,200)); top_tagger.set_W_selector (SelectorMassRange( 65, 95)); // now try and tag a jet PseudoJet top_candidate = top_tagger(jet); // jet should come from a C/A clustering if (top_candidate != 0) { // successful tagging double top_mass = top_candidate.m(); double W_mass = top_candidate.structure_of().W().m(); } \end{lstlisting} Other information available through the \ttt{structure\_of()} call includes: \ttt{W1()} and \ttt{W2()}, the harder and softer of the two $W$ subjets; \ttt{non\_W()}, the part of the top that has not been identified with a $W$ (i.e.\ the candidate for the $b$); and \ttt{cos\_theta\_W()}. % The \ttt{top\_candidate.pieces()} call will return 2 pieces, where the first is the $W$ candidate (identical to \ttt{structure\_of().W()}), while the second is the remainder of the top jet (i.e.\ \ttt{non\_W}). % Note the above calls to \ttt{set\_top\_selector()} and \ttt{set\_W\_selector()}. If these calls are not made, then the tagger places no cuts on the top or $W$ candidate masses and it is then the user's responsibility to verify that they are in a suitable range. Note further that \ttt{JHTopTagger} does not derive directly from \ttt{Transformer}, but from the \ttt{fastjet::TopTaggerBase} class instead. This class (which itself derives from \ttt{Transformer}) has been included to provide a proposed common interface for all the top taggers. In particular, \ttt{TopTaggerBase} provides (via the associated structure) \begin{lstlisting} top_candidate.structure_of().W() top_candidate.structure_of().non_W() \end{lstlisting} and standardises the fact that the resulting top candidate is a \ttt{PseudoJet} made of these two pieces. The benefits of the base class for top taggers will of course be more evident once more than a single top tagger has been implemented. %...................................................................... \subsubsection{The Cambridge/Aachen subjet tagger} The Cambridge/Aachen subjet tagger~\cite{Butterworth:2009qa}, originally implemented in a 3-pronged context, is really a generic 2-body tagger, which can also be used in a nested fashion to obtained multi-pronged tagging. % It can be obtained through the include \begin{lstlisting} #include "fastjet/tools/CASubjetTagger.hh" \end{lstlisting} As it is less widely used than the taggers mentioned above, we refer the user to the online doxygen documentation for further details. %...................................................................... \subsubsection{The rest-frame $N$-subjettiness tagger} The rest-frame $N$-subjettiness tagger~\cite{nsubtagger}, meant to identify a highly boosted colour singlet particle decaying to $2$ partons, can be obtained through the include \begin{lstlisting} #include "fastjet/tools/RestFrameNSubjettinessTagger.hh" \end{lstlisting} As it is less widely used than the taggers mentioned above, we refer the user to the online doxygen documentation for further details. %====================================================================== \section{Compilation notes} Compilation and installation make use of the standard \begin{verbatim} % ./configure % make % make check % make install \end{verbatim} procedure. Explanations of available options are given in the \ttt{INSTALL} file in the top directory, and a list can also be obtained running \ttt{./configure --help}. In order to access the \ttt{NlnN} strategy for the $k_t$ algorithm, the \fastjet library needs to be compiled with support for the Computational Geometry Algorithms Library \ttt{CGAL} \cite{CGAL}. This same strategy gives $N\ln N$ performance for Cambridge/Aachen and $N^{3/2}$ performance for anti-$k_t$ (whose sequence for jet clustering triggers a worst-case scenario for the underlying computational geometry methods.) % CGAL can be enabled with the \verb|--enable-cgal| at the \ttt{configure} stage. % \ttt{CGAL} may be obtained in source form from \url{http://www.cgal.org/} and is also available in binary form for many common Linux distributions. % For CGAL versions 3.4 and higher, the user can specify \verb|--with-cgaldir=...| if the CGAL files are not installed in a standard location.\footnote{For events with near degeneracies in their Delaunay triangulation, issues have been found with versions 3.7 and 3.8 of CGAL. We recommend the use of earlier or later versions.} The \ttt{NlnNCam} strategy does not require CGAL, since it is based on a considerably simpler computational-geometry structure~\cite{Chan}. %====================================================================== \section*{Acknowledgements} Many people have provided bug reports, suggestions for development and in some cases explicit code for plugin algorithms. We would in particular like to thank % % The list below should be identical to that in the AUTHORS file % Vanya Belyaev, Andy Buckley, Timothy Chan, Pierre-Antoine Delsart, Olivier Devillers, Robert Harris, Joey Huston, Sue Ann Koay, Andreas Oehler, Sal Rappoccio, Juan Rojo, Sebastian Sapeta, Mike Seymour, Jessie Shelton, Lars Sonnenschein, Hartmut Stadie, Mark Sutton, Chris Vermilion, Markus Wobisch. Since its inception, this project has been supported in part by grants ANR-05-JCJC-0046-01, ANR-09-BLAN-0060 and ANR-10-CEXC-009-01 from the French Agence Nationale de la Recherche, PITN-GA-2010-264564 from the European Commission and DE-AC02-98CH10886 from the U.S.\ Department of Energy. We would also like to thank the numerous institutes that have hosted us for shorter or longer stays while \fastjet was being developed, including the GGI in Florence, KITP at Santa Barbara, Rutgers University and Brookhaven National Laboratory. \appendix %====================================================================== \section{Clustering strategies and performance} \label{app:strategies} The constructor for a \ttt{JetDefinition} can take a strategy argument (cf.\ section~\ref{sec:JetDefinition}), which selects the algorithmic ``strategy'' to use while clustering. % It is an \ttt{enum} of type \ttt{Strategy} with relevant values listed in table~\ref{tab:Strategies}. % \begin{table} \begin{center} \begin{tabular}{ll}\toprule \ttt{N2Plain} & a plain $N^2$ algorithm (fastest for $N \lesssim 30$)\\ \ttt{N2Tiled} & a tiled $N^2$ algorithm (fastest for $30 \lesssim N \lesssim 400$)\\ \ttt{N2MinHeapTiled} & a tiled $N^2$ algorithm with a heap for tracking the minimum of \\& $d_{ij}$ (fastest for $400 \lesssim N \lesssim 15000$)\\ \ttt{NlnN} & the Voronoi-based $N\ln N$ algorithm (fastest for $ N \gtrsim 15000$)\\ \ttt{NlnNCam} & based on Chan's $N\ln N$ closest pairs algorithm (fastest for \\&$ N \gtrsim 6000$), suitable only for the Cambridge jet algorithm\\ \ttt{Best} & automatic selection of the best of these based on $N$ and $R$\\\bottomrule \end{tabular} \caption{The more interesting of the various algorithmic strategies for clustering. Other strategies are given \ttt{JetDefinition.hh} --- note however that strategies not listed in the above table may disappear in future releases. % For jet algorithms with spherical distance measures (those whose name starts with ``\ttt{ee\_}''), only the \ttt{N2Plain} strategy is available. } \label{tab:Strategies} \end{center} \end{table} % Nearly all strategies are based on the factorisation of energy and geometrical distance components of the $d_{ij}$ measure~\cite{fastjet}. In particular they involve the dynamic maintenance of a nearest-neighbour graph for the geometrical distances. They apply equally well to any of the internally implemented hadron-collider jet algorithms. % The one exception is \ttt{NlnNCam}, which is based on a computational geometry algorithm for dynamic maintenance of closest pairs \cite{Chan} (rather than the more involved nearest neighbour graph), and is suitable only for the Cambridge algorithm, whose distance measure is purely geometrical. The \ttt{N2Plain} strategy uses a ``nearest-neighbour heuristic'' \cite{Anderberg} approach to maintaining the geometrical nearest-neighbour graph; \ttt{N2Tiled} tiles the $y-\phi$ cylinder to limit the set of points over which nearest-neighbours are searched for,% \footnote{Tiling is a textbook approach in computational geometry, where it is often referred to as bucketing. It has been used also in certain cone jet algorithms, notably at trigger level and in \cite{Sonnenschein}.} % and \ttt{N2MinHeapTiled} differs only in that it uses an $N\ln N$ (rather than $N^2$) data structure for maintaining in order the subset of the $d_{ij}$ that involves nearest neighbours. % The \ttt{NlnN} strategy uses CGAL's Delaunay Triangulation \cite{CGAL} for the maintenance of the nearest-neighbour graph. % Note that $N \ln N$ performance of is an \emph{expected} result, and it holds in practice for the $k_t$ and Cambridge algorithms, while for anti-$k_t$ and generalised-$k_t$ with $p<0$, hub-and-spoke (or bicycle-wheel) type configurations emerge dynamically during the clustering and these break the conditions needed for the expected result to hold (this however has a significant impact only for $N \gtrsim 10^5$). % A further comment about the $N \ln N$ strategy is that it currently has the limitation that it cannot be used in events with perfectly collinear particles. % This is related to the fact that the underlying computation geometry structures cannot cleanly accommodate multiple particles in the same location, because of the degeneracies that are induced. % A workaround for this problem may be provided on request. If \ttt{strategy} is omitted then the \ttt{Best} option is set. % Note that the $N$ ranges quoted in table~\ref{tab:Strategies} for which a given strategy is optimal hold for $R=1$; the general $R$ dependence can be significant and non-trivial. % While some attempt has been made to account for the $R$-dependence in the choice of the strategy with the ``\ttt{Best}'' option, there may exist specific regions of $N$ and $R$ in which a manual choice of strategy can give faster execution. % Furthermore the \ttt{NlnNCam} strategy's timings may depend strongly on the size of the cache. Finally for a given $N$ and $R$, the optimal strategy may also depend on the event structure. \begin{figure}[t] \centering % NB: use of 3_0_1 in file naming is to ensure that we can drop the % file extension. That way both latex and pdflatex will find an % appropriate figure. \includegraphics[width=0.7\textwidth]{figs/timings_best_3_0_1} \caption{Time required to perform the clustering of $N$ particles in \fastjet 3.0.1 with the \ttt{Best} strategy. The anti-$k_t$, $k_t$, and Cambridge/Aachen (C/A) native algorithms are shown, together with the SISCone plugin. All use $R=0.7$. %% Shown for an Intel i5 760 processor with 8~MB of cache. %% For small $N$, $N$ was varied by taking a single hard dijet event generated with Pythia~6~\cite{Sjostrand:2006za} and extracting the $N$ hardest particles. %% Large $N$ values were obtained by taking a single hard dijet event and adding simulated minimum-bias events to it. %% The results include the time to extract the inclusive jets with $p_t > 5\GeV$ and sort them into decreasing $p_t$. } \label{fig:timings} \end{figure} Illustrative timings for the \ttt{Best} strategy are shown as a function of $N$ in figure~\ref{fig:timings} for the anti-$k_t$, $k_t$ and the Cambridge/Aachen algorithms. Results for the SISCone plugin are given for comparison purposes. % Kinks in the timings of the native algorithms are visible at the $N$ values where there is a switch from one strategy to another. % There can be imperfections in this choice, e.g. as seen for the $k_t$ algorithm near $N=20\,000$. % While their impact is generally modest, depending on event structure there can be cases where a manual choice of strategy can have significant benefits. % We note that there are a few places where there remains scope for timing improvements. % In particular at low $N$ the overheads related to copying and sorting of a vector of \ttt{PseudoJet} objects are a substantial fraction of the total time, and could be reduced. % Additionally, for the Cambridge/Aachen algorithm at moderate to large $N$, the use of multiple grid sizes could bring an $\order{1}$ benefit; % for the anti-$k_t$ algorithm one can envisage $\order{1}$ improvements at moderate to large $N$ when $N$ is dominated by ghost particles, making use of the fact that for the anti-$k_t$ algorithm one may neglect the ghosts' self clustering in the determination of hard jets' areas. % Should users have applications where such improvements would be critical, they are encouraged to contact the \fastjet authors. %====================================================================== \section{User Info in PseudoJets} \label{app:user-info} One method for associating extra user information with a \ttt{PseudoJet} is via its user index (section~\ref{sec:PseudoJet}). This is adequate for encoding simple information. such as an input particle's barcode in a HepMC event. % However, it can quickly show its limitations; for example, when simulating pileup one might have several HepMC events and it is then useful for each particle to additionally store information about which HepMC event it comes from. A second method for supplementing a \PJ with extra user information is for the user to derive a class from \ttt{PseudoJet::UserInfoBase} and associate the \ttt{PseudoJet} with a pointer to an instance of that class: \begin{lstlisting} void set_user_info(UserInfoBase * user_info); const UserInfoBase* user_info_ptr() const; \end{lstlisting} The function \ttt{set\_user\_info(...)} transfers ownership of the pointer to the \ttt{PseudoJet}. % This is achieved internally with the help of a shared pointer. Copies of the \ttt{PseudoJet} then point to the same \ttt{user\_info}. % When the \ttt{PseudoJet} and all its copies go out of scope, the \ttt{user\_info} is automatically deleted. % Since nearly all practical uses of \ttt{user\_info} require it to be cast to the relevant derived class of \ttt{UserInfoBase}, we also provide the following member function for convenience: \begin{lstlisting} template const L & user_info() const; \end{lstlisting} which explicitly performs the cast of the extra info to type \ttt{L}. % If the cast fails, or the user info has not been set, an error will be thrown.\footnote{% For clustering with explicit ghosts, even if the particles being clustered have user information, the ghosts will not. % The user should take care therefore not to ask for user information about the ghosts, e.g.\ with the help of the \texttt{PseudoJet::is\_pure\_ghost()} or \texttt{PseudoJet::has\_user\_info()} calls. % The \texttt{SelectorIsPureGhost()} can also be used for this purpose. } The user may wonder why we have used shared pointers internally (i.e.\ have ownership transferred to the \ttt{PseudoJet}) rather than normal pointers. % An example use case where the difference is important is if, for example, one wishes to write a \ttt{Recombiner} that sets the \ttt{user\_info} in the recombined \PJ. % Since this is likely to be new information, the \ttt{Recombiner} will have to allocate some memory for it. % With a normal pointer, there is then no easy way to clean up that memory when the \PJ is no longer relevant (e.g.\ because the \CS that contains it has gone out of scope). % In contrast, with a shared pointer the memory is handled automatically.\footnote{ The user may also wonder why we didn't simply write a templated version of \PJ in order to contain extra information. % The answer here is that to introduce a templated \PJ would imply that every other class in \fastjet should then also be templated. } The shared pointer type in \fastjet is a template class called \ttt{SharedPtr}, available through % \begin{lstlisting} #include "fastjet/SharedPtr.hh" \end{lstlisting} % It behaves almost identically to the \ttt{C++0x} \ttt{shared\_ptr}.\footnote{ % Internally it has been designed somewhat differently, in order to limit the memory footprint of the \PJ that contains it. One consequence of this is that dynamic casts of \ttt{SharedPtr}'s are not supported.} % The end-user should not usually need to manipulate the \ttt{SharedPtr}, though the \ttt{SharedPtr} to \ttt{user\_info} is accessible through \PJ's \ttt{user\_info\_shared\_ptr()} member. An example of the usage might be the following. First you define a class \ttt{MyInfo}, derived from \ttt{PseudoJet::UserInfo}, \begin{lstlisting} class MyInfo: public PseudoJet::UserInfoBase { MyInfo(int id) : _pdg_id(id); int pdg_id() const {return _pdg_id;} int _pdg_id; }; \end{lstlisting} Then you might set the info as follows \begin{lstlisting} PseudoJet particle(...); particle.set_user_info(new MyInfo(its_pdg_id)); \end{lstlisting} and later access the PDG id through the function \begin{lstlisting} particle.user_info().pdg_id(); \end{lstlisting} More advanced examples can be provided on request, including code that helps handle particle classes from third party tools such as Pythia~8~\cite{Sjostrand:2007gs}. %====================================================================== \section{Structural information for various kinds of \texttt{PseudoJet}} \label{app:structure_table} \begin{table}[t]\centering \begin{tabular}{lccccccc} \toprule && particle & jet & jet (no CS) & constituent & \ttt{join(}$j_1,j_2$\ttt{)} & \ttt{join(}$p_1,p_2$\ttt{)} \\ \midrule \ttt{has\_associated\_cs()} && false & true & true & true & false & false \\ \ttt{associated\_cs()} && NULL & CS & NULL & CS & NULL & NULL \\ \midrule \ttt{has\_valid\_cs()} && false & true & false & true & false & false \\ \ttt{validated\_cs()}&& \throws & CS & \throws & CS & \throws & \throws \\ \midrule \ttt{has\_constituents()} && false & true & true & true & true & true \\ \ttt{constituents()} && \throws & from CS & \throws & itself & recurse & pieces \\ \midrule \ttt{has\_pieces()} && false & true & \throws & false & true & true \\ \ttt{pieces()} && \throws & parents & \throws & empty & pieces & pieces \\ \midrule \ttt{has\_parents(...)} && \throws & from CS & \throws & from CS & \throws & \throws \\ \ttt{has\_child(...)}&& \throws & from CS & \throws & from CS & \throws & \throws \\ \ttt{contains(...)} && \throws & from CS & \throws & from CS & \throws & \throws \\ \bottomrule \end{tabular} \caption{summary of the behaviour obtained when requesting structural information from different kinds of \ttt{PseudoJet}. A particle (also $p_1,p_2$) is a \ttt{PseudoJet} constructed by the user, without structural information; a ``jet'' (also $j_1,j_2$) is the output from a \ttt{ClusterSequence}; ``from CS'' means that the information is obtained from the associated \ttt{ClusterSequence}. % A ``jet (no CS)'' is one whose \ttt{ClusterSequence} has gone out of scope. % All other entries should be self-explanatory.}\label{tab:structure} \end{table} Starting with \fastjet version 3.0, a \ttt{PseudoJet} can access information about its structure, for example its constituents if it came from a \ClusterSequence, or its pieces if it was the result of a \ttt{join(...)} operation. % In this appendix, we summarise what the various structural access methods will return for different types of \ttt{PseudoJet}s: input particles, jets resulting from a clustering, etc. % Table \ref{tab:structure} provides the information for the most commonly-used methods. Additionally, all the methods that access information related to the clustering (\ttt{has\_partner()}, \ttt{is\_inside()}, \ttt{has\_exclusive\_subjets()}, \ttt{exclusive\_subjets()}, \ttt{n\_exclusive\_subjets()}, \ttt{exclusive\_subdmerge()}, and \ttt{exclusive\_subdmerge\_max}) require the presence of an associated cluster sequence and throw an error if none is available (except for \ttt{has\_exclusive\_subjets()} which just returns \ttt{false}). For area-related calls, \ttt{has\_area()} will be \ttt{false} unless the jet is obtained from a \ttt{ClusterSequenceAreaBase} or is a composite jet made from such jets. All other area calls (\ttt{validated\_csab()}, \ttt{area()}, \ttt{area\_error()}, \ttt{area\_4vector()}, \ttt{is\_pure\_ghost()}) will return the information from the \ttt{ClusterSequenceAreaBase}, or from the pieces in case of a composite jet. An error will be thrown if the jet does not have area information. %...................................................................... \paragraph{Internal storage of structural information.} % The means by which information about a jet's structure is stored is generally transparent to the user. % The main exception that arises is when the user wishes to create jets with a new kind of structure, for example when writing boosted-object taggers. % Here, we simply outline the approach adopted. For concrete usage examples one can consult section~\ref{sec:transformers} and appendix \ref{sec:transformerdetails}, where we discuss transformers and taggers. To be able to efficiently access structural information, each \PJ has a shared pointer to a class of type \ttt{fastjet::PseudoJetStructureBase}. % For plain {\PJ}s the pointer is null. % For {\PJ}s obtained from a \CS the pointer is to a class \ttt{fastjet::ClusterSequenceStructure}, which derives from \ttt{PseudoJetStructureBase}. % For {\PJ}s obtained from a \ttt{join(...)} operation, the pointer is to a class \ttt{fastjet::CompositeJetStructure}, again derived from \ttt{PseudoJetStructureBase}. % It is these classes that are responsible for answering structural queries about the jet, such as returning its constituents, or indicating whether it \ttt{has\_pieces()}. % Several calls are available for direct access to the internal structure storage, among them \begin{lstlisting} const PseudoJetStructureBase* structure_ptr() const; PseudoJetStructureBase* structure_non_const_ptr(); template const StructureType & structure() const; template const TaggerType::StructureType & structure_of() const; \end{lstlisting} where the first two return simply the structure pointer, while the last two cast the pointer to the desired derived structure type. %====================================================================== \section{Functions of a \texttt{PseudoJet}} \label{app:function-of-pj} A concept that is new to \fastjet 3 is that of a \ttt{fastjet::FunctionOfPseudoJet}. % Functions of \ttt{PseudoJet}s arise in many contexts: many boosted-object taggers take a jet and return a modified version of a jet; background subtraction does the same; so does a simple Lorentz boost. % Other functions return a floating-point number associated with the jet: for example jet shapes, but also the rescaling functions used to provide local background estimates in section~\ref{sec:BGE-positional}. % To help provide a uniform interface for functions of a \PseudoJet, \fastjet has the following template base class: \begin{lstlisting} // a generic function of a PseudoJet template class FunctionOfPseudoJet{ // the action of the function (this _has_ to be overloaded in derived classes) virtual TOut result(const PseudoJet &pj) const = 0; }; \end{lstlisting} Derived classes should implement the \ttt{result(...)} function. % In addition it is good practice to overload the \ttt{description()} member, \begin{lstlisting} virtual std::string description() const {return "";} \end{lstlisting} Usage of a \ttt{FunctionOfPseudoJet} is simplest through the \ttt{operator(...)} member functions \begin{lstlisting} TOut operator()(const PseudoJet & pj) const; vector operator()(const vector & pjs) const; \end{lstlisting} which just call \ttt{result(...)} either on the single jet, or separately on each of the elements of the vector of {\PseudoJet}s.\footnote{Having \ttt{result(...)} and \ttt{operator(...)} doing the same thing may seem redundant, however, it allows one to redefine only \ttt{result} in derived classes. If we had had a virtual \ttt{operator(...)} instead, both the \ttt{PseudoJet} and \ttt{vector} versions would have had to be overloaded.}. The \ttt{FunctionOfPseudoJet} framework makes it straightforward to pass functions of \ttt{PseudoJet}s as arguments. This is, e.g., used for the background rescalings in section~\ref{sec:BGE-positional}, which are just derived from \ttt{FunctionOfPseudoJet}. % It is also used for the \ttt{Transformer}s of section~\ref{sec:transformers}, which all derive from \ttt{FunctionOfPseudoJet}. % The use of a class for these purposes, rather than a pointer to a function, provides the advantage that the class can be initialised with additional arguments. \section{User-defined extensions of \fastjet} \subsection{External Recombination Schemes} \label{sec:recombiner} A user who wishes to introduce a new recombination scheme may do so by writing a class derived from \ttt{JetDefinition::Recombiner}: \begin{lstlisting} class JetDefinition::Recombiner { public: /// return a textual description of the recombination scheme implemented here virtual std::string description() const = 0; /// recombine pa and pb and put result into pab virtual void recombine(const PseudoJet & pa, const PseudoJet & pb, PseudoJet & pab) const = 0; /// routine called to preprocess each input jet (to make all input /// jets compatible with the scheme requirements (e.g. massless). virtual void preprocess(PseudoJet & p) const {}; /// a destructor to be replaced if necessary in derived classes... virtual ~Recombiner() {}; }; \end{lstlisting} A jet definition can then be constructed by providing a pointer to an object derived from \ttt{JetDefinition::Recombiner} instead of the \ttt{RecombinationScheme} index: \begin{lstlisting} JetDefinition(JetAlgorithm jet_algorithm, double R, const JetDefinition::Recombiner * recombiner, Strategy strategy = Best); \end{lstlisting} % The derived class \ttt{JetDefinition::DefaultRecombiner} is what is used internally to implement the various recombination schemes if an external \ttt{Recombiner} is not provided. It provides a useful example of how to implement a new \ttt{Recombiner} class. % The recombiner can also be set with a \ttt{set\_recombiner(...)} call. % If the recombiner has been created with a \ttt{new} statement and the user does not wish to manage the deletion of the corresponding memory when the \ttt{JetDefinition} (and any copies) using the recombiner goes out of scope, then the user may wish to call the \ttt{delete\_recombiner\_when\_unused()} function, which tells the \ttt{JetDefinition} to acquire ownership of the pointer to the recombiner and delete it when it is no longer needed. %------------------------------------------------------ \subsection{Implementation of a plugin jet algorithm} \label{sec:new-plugin} % The base class from which plugins derive has the following structure: \begin{lstlisting} class JetDefinition::Plugin{ public: /// returns a textual description of the jet-definition implemented in this plugin virtual std::string description() const = 0; /// given a ClusterSequence that has been filled up with initial particles, /// the following function should fill up the rest of the ClusterSequence, /// using the following member functions of ClusterSequence: /// - plugin_do_ij_recombination(...) /// - plugin_do_iB_recombination(...) virtual void run_clustering(ClusterSequence &) const = 0; /// a destructor to be replaced if necessary in derived classes... virtual ~Plugin() {}; //------- ignore what follows for simple usage! --------- /// returns true if passive areas can be efficiently determined by /// (a) setting the ghost_separation scale (see below) /// (b) clustering with many ghosts with $p_t$ $\ll$ ghost_separation_scale /// (c) counting how many ghosts end up in a given jet virtual bool supports_ghosted_passive_areas() const {return false;} /// sets the ghost separation scale for passive area determinations /// in future runs (NB: const, so should set internal mutable var) virtual void set_ghost_separation_scale(double scale) const; virtual double ghost_separation_scale() const; }; \end{lstlisting} % Any plugin class must define the \ttt{description} and \ttt{run\_clustering} member functions. The former just returns a textual description of the jet algorithm and its options (e.g.\ radius, etc.), while the latter does the hard work of running the user's own jet algorithm and transferring the information to the \ttt{ClusterSequence} class. This is best illustrated with an example: \begin{lstlisting} using namespace fastjet; void CDFMidPointPlugin::run_clustering(ClusterSequence & clust_seq) { // when run_clustering is called, the clust_seq.jets() has already been // filled with the initial particles const vector & initial_particles = clust_seq.jets(); // it is up to the user to do their own clustering on these initial particles // ... \end{lstlisting} Once the plugin has run its own clustering it must transfer the information back to the \ttt{clust\_seq}. This is done by recording mergings between pairs of particles or between a particle and the beam. The new momenta are stored in the \ttt{clust\_seq.jets()} vector, after the initial particles. Note though that the plugin is not allowed to modify \ttt{clust\_seq.jets()} itself. Instead it must tell \ttt{clust\_seq} what recombinations have occurred, via the following (\ttt{ClusterSequence} member) functions \begin{lstlisting} /// record the fact that there has been a recombination between jets()[jet_i] /// and jets()[jet_j], with the specified dij, and return the index (newjet_k) /// allocated to the new jet. The recombined PseudoJet is determined by /// applying the JetDefinition's recombiner to the two input jets. /// (By default E-scheme recombination, i.e. a 4-vector sum) void plugin_record_ij_recombination(int jet_i, int jet_j, double dij, int & newjet_k); /// as for the simpler variant of plugin_record_ij_recombination, except /// that the new jet is attributed the momentum and user information of newjet void plugin_record_ij_recombination(int jet_i, int jet_j, double dij, const PseudoJet & newjet, int & newjet_k); /// record the fact that there has been a recombination between jets()[jet_i] /// and the "beam", with the specified diB; this jet will then be returned to /// the user when they request inclusive_jets() from the cluster sequence. void plugin_record_iB_recombination(int jet_i, double diB); \end{lstlisting} The \ttt{dij} recombination functions return the index \ttt{newjet\_k} of the newly formed pseudojet. The plugin may need to keep track of this index in order to specify subsequent recombinations. Certain (cone) jet algorithms do not perform pairwise clustering --- in these cases the plugin must invent a fictitious series of pairwise recombinations that leads to the same final jets. Such jet algorithms may also produce extra information that cannot be encoded in this way (for example a list of stable cones), but to which one may still want access. For this purpose, during \verb|run_clustering(...)|, the plugin may call the \verb|ClusterSequence| member function: \begin{lstlisting} inline void plugin_associate_extras(std::auto_ptr extras); \end{lstlisting} where \verb|ClusterSequence::Extras| is an abstract base class, which the plugin should derive from so as to provide the relevant information: \begin{lstlisting} class ClusterSequence::Extras { public: virtual ~Extras() {} virtual std::string description() const; }; \end{lstlisting} A method of \verb|ClusterSequence| then provides the user with access to the extra information: \begin{lstlisting} /// returns a pointer to the extras object (may be null) const ClusterSequence::Extras * extras() const; \end{lstlisting} The user should carry out a dynamic cast so as to convert the extras back to the specific plugin extras class, as illustrated for SISCone in section~\ref{sec:siscone-plugin}. %---------------------------------------------------------------------- \subsubsection{Building new sequential recombination algorithms} \label{sec:new-seq-rec} To enable users to more easily build plugins for new sequential recombination algorithms, \fastjet also provides a class \verb|NNH|, which provides users with access to an implementation of the nearest-neighbour heuristic for establishing and maintaining information about the closest pair of objects in a dynamic set of objects (see \cite{EppsteinHierarchical} for an introduction to this and other generic algorithms). % In good cases (C/A-like) this allows one to construct clustering that runs in $N^2$ time, though its worst case can be as bad as $N^3$ (e.g.\ anti-$k_t$). % It is a templated class and the template argument should be a class that stores the minimal information for each jet so as to be able to calculate interjet distances. % It underlies the implementations of the Jade and $\ee$ Cambridge plugins. % The interested user should consult those codes for more information, as well as the header for the \verb|NNH| class. %...................................................................... \subsection{Implementing new selectors} \label{sec:new-selectors} Technically a \ttt{Selector} contains a shared pointer to a \ttt{SelectorWorker}. % Classes derived from \ttt{SelectorWorker} actually do the work. % So, for example, the call to the function \ttt{SelectorAbsRapMax(2.5)} first causes a new instance of the internal \ttt{SW\_AbsRapMax} class to be constructed with the information that the limit on $|y|$ is 2.5 (\ttt{SW\_AbsRapMax} derives from \ttt{SelectorWorker}). % Then a \ttt{Selector} is constructed with a pointer to the \ttt{SW\_AbsRapMax} object, and it is this \ttt{Selector} that is returned to the user: % \begin{lstlisting} Selector SelectorAbsRapMax(double absrapmax) { return Selector(new SW_AbsRapMax(absrapmax)); } \end{lstlisting} % Since \ttt{Selector} is really nothing more than a shared pointer to the \ttt{SW\_AbsRapMax} object, it is a lightweight object. % The fact that it's a shared pointer also means that it looks after the memory management issues associated with the \ttt{SW\_AbsRapMax} object. If a user wishes to implement a new selector, they should write a class derived from \ttt{SelectorWorker}. % The base is defined with sensible defaults, so for simple usage, only two \ttt{SelectorWorker} functions need to be overloaded: \begin{lstlisting} /// returns true if a given object passes the selection criterion. pass(const PseudoJet & jet) const = 0; /// returns a description of the worker virtual std::string description() const {return "missing description";} \end{lstlisting} For information on how to implement more advanced workers (for example workers that do not apply jet-by-jet, or that take a reference), users may wish to examine the extensive in-code documentation of \ttt{SelectorWorker}, the implementation of the existing workers and/or consult the authors. % A point to be aware of in the case of constructors that take a reference is the need to implement the \ttt{SelectorWorker::copy()} function. %...................................................................... \subsection{User-defined transformers} \label{sec:transformerdetails} All transformers are derived from the \ttt{Transformer} base class, declared in the \ttt{fastjet/tools/Transformer.hh} header: \begin{lstlisting} class Transformer : public FunctionOfPseudoJet { public: // the result of the Transformer acting on the PseudoJet. // this has to be overloaded in derived classes virtual PseudoJet result(const PseudoJet & original) const = 0; // should be overloaded to return a description of the Transformer virtual std::string description() const = 0; // information about the associated structure type typedef PseudoJetStructureBase StructureType; // destructor is virtual so that it can be safely overloaded virtual ~Transformer(){} }; \end{lstlisting} Relative to the \ttt{FunctionOfPseudoJet} (cf.\ appendix~\ref{app:function-of-pj}) from which it derives, the \ttt{Transformer}'s main additional feature is that the jets resulting from the transformation are generally expected to have standard structural information, e.g.\ constituents, and will often have supplemental structural information, which the \ttt{StructureType} \ttt{typedef} helps access. % As for a \ttt{FunctionOfPseudoJet}, the action of a \ttt{Transformer} is to be implemented in the \ttt{result(...)} member function, % though typically it will be used through the \ttt{operator()} function, as discussed in appendix~\ref{app:function-of-pj}. To help understand how to create user-defined transformers, it is perhaps easiest to consider the example of a filtering/trimming class. % The simplest form of such a class is the following:% \footnote{The actual \texttt{Filter} class is somewhat more elaborate than this, since it also handles areas, pileup subtraction and avoids reclustering when the jet and subjet definitions are C/A based.} % \begin{lstlisting} /// a simple class to carry out filtering and/or trimming class SimpleFilter: public Transformer { public: SimpleFilter(const JetDefinition & subjet_def, const Selector & selector) : _subjet_def(subjet_def), _selector(selector) {} virtual std::string description() const { return "Filter that finds subjets with " + _subjet_def.description() + ", using a (" + _selector.description() + ") selector" ;} virtual PseudoJet result(const PseudoJet & jet) const; // CompositeJetStructure is the structural type associated with the // join operation that we use shall use to create the returned jet below typedef CompositeJetStructure StructureType; private: JetDefinition _subjet_def; Selector _selector; }; \end{lstlisting} The function that does the work in this class is \ttt{result(...)}: % \begin{lstlisting} PseudoJet SimpleFilter::result(const PseudoJet & jet) const { // get the subjets ClusterSequence * cs = new ClusterSequence(jet.constituents(), _subjet_def); vector subjets = cs->inclusive_jets(); // signal that the cluster sequence should delete itself when // there are no longer any of its (sub)jets in scope anywhere cs->delete_self_when_unused(); // get the selected subjets vector selected_subjets = _selector(subjets); // join them using the same recombiner as was used in the subjet_def PseudoJet joined = join(selected_subjets, *_subjet_def.recombiner()); return joined; } \end{lstlisting} This provides almost all the basic functionality that might be needed from a filter, including access to the \ttt{pieces()} of the filtered jet since it is formed with the \ttt{join(...)} function. % The one part that is potentially missing is that the user does not have any way of accessing information about the subjets that were not kept by the filter. % This requires adding to the structural information that underlies the returned jet. % The \ttt{join(...)} function creates a structure of type \ttt{CompositeJetStructure}. There is also a templated version, \ttt{join(...)}, which allows the user to choose the structure created by the \ttt{join} function. % In this case we therefore create \begin{lstlisting} #include "fastjet/CompositeJetStructure.hh" class SimpleFilterStructure: public CompositeJetStructure { public: // the form of constructor expected by the join<...> function SimpleFilterStructure(const vector & pieces, const Recombiner *recombiner = 0) : CompositeJetStructure(pieces, recombiner) {} // provide access to the rejected subjets from the filtering const vector & rejected() const {return _rejected;} private: vector _rejected; friend class SimpleFilter; }; \end{lstlisting} and then replace the last few lines of the \ttt{SimpleFilter::result(...)} function with \begin{lstlisting} // get the selected and rejected subjets vector selected_subjets, rejected_subjets; _selector.sift(subjets, selected_subjets, rejected_subjets); // join the selected ones, now with a user-chosen structure PseudoJet joined = join(selected_subjets, *_subjet_def.recombiner()); // and then set the structure's additional elements SimpleFilterStructure * structure = static_cast(joined.structure_non_const_ptr()); structure->_rejected = rejected_subjets; return joined; \end{lstlisting} Finally, with the replacement of the \ttt{typedef} in the \ttt{SimpleFilter} class with \begin{lstlisting} typedef SimpleFilterStructure StructureType; \end{lstlisting} then on a jet returned by the \ttt{SimpleFilter} one can simply call \begin{lstlisting} filtered_jet.structure_of().rejected(); \end{lstlisting} as with the fully fledged \ttt{Filter} of section~\ref{sec:filtering}. A second way of extending the structural information of an existing jet is to ``wrap'' it. This can be done with the help of the \ttt{WrappedStructure} class. % \begin{lstlisting} #include "fastjet/WrappedStructure.hh" /// a class to wrap and extend existing jet structures with information about /// "rejected" pieces class SimpleFilterWrappedStructure: public WrappedStructure { public: SimpleFilterWrappedStructure(const SharedPtr & to_be_wrapped, const vector & rejected_pieces) : WrappedStructure(to_be_wrapped), _rejected(rejected_pieces) {} const vector & rejected() const {return _rejected;} private: vector _rejected; }; \end{lstlisting} The \ttt{WrappedStructure}'s constructor takes a \ttt{SharedPtr} to an existing structure and simply redirects all standard structural queries to that existing structure. A class derived from it can then reimplement some of the standard queries, or implement non-standard ones, as done above with the \ttt{rejected()} call. % To use the wrapped class one might proceed as in the following lines: \begin{lstlisting} // create a jet with some existing structure PseudoJet joined = join(selected_subjets, *_subjet_def.recombiner()); // create a new structure that wraps the existing one and supplements it with new info SharedPtr structure(new SimpleFilterWrappedStructure(joined.structure_shared_ptr(), rejected_subjets)); // assign the new structure to the original jet joined.set_structure_shared_ptr(structure); \end{lstlisting} The \ttt{SharedPtr}s ensure that memory allocated for the structural information is released when no jet remains that refers to it. % For the above piece of code to be used in the \ttt{SimpleFilter} it would then suffice to include a \begin{lstlisting} typedef SimpleFilterWrappedStructure StructureType; \end{lstlisting} line in the \ttt{SimpleFilter} class definition. In choosing between the templated \ttt{join<...>} and \ttt{WrappedStructure} approaches to providing advanced structural information, two elements are worth considering: on one hand, the \ttt{WrappedStructure} can be used to extend arbitrary structural information; on the other, while \ttt{join<...>} is more limited in its scope, it involves fewer pointer indirections when accessing structural information and so may be marginally more efficient. %====================================================================== \section{Error handling} \label{sec:error-handling} \fastjet provides warning and error messages through the classes \ttt{fastjet::LimitedWarning} and \ttt{fastjet::Error} respectively. % A user does not normally need to interact with them, % however, they do provide some customisation facilities, especially to redirect and summarise their output. Each different kind of warning is written out a maximum number of times (the current default is 5) before its output is suppressed. The program is allowed to continue. % At the end of the run (or at any other stage) it is possible to obtain a summary of all warnings encountered, both explicit or suppressed, through the following static member function of the LimitedWarning class: \begin{lstlisting} #include "fastjet/LimitedWarning.hh" // ... cout << LimitedWarning::summary() << endl; \end{lstlisting} The throwing of an \ttt{Error} aborts the program. One can use \begin{lstlisting} /// controls whether the error message (and the backtrace, if its printing is enabled) /// is printed out or not static void Error::set_print_errors(bool print_errors); /// controls whether the backtrace is printed out with the error message or not. /// The default is "false". static void Error::set_print_backtrace(bool enabled); \end{lstlisting} to control whether an error message is printed (default = \ttt{true}) and whether a full backtrace is also given (default = \ttt{false}). % Switching off the printing of error messages can be useful, for example, if the user expects to repeatedly catch \fastjet errors. % The \ttt{message()} member function can then be used to access the specific error message. The output of both \ttt{LimitedWarning} and \ttt{Error}, which by default goes to \ttt{std::cerr}, can be redirected to a file using their \ttt{set\_default\_stream(std::ostream * ostr)} functions. For instance, \begin{lstlisting} #include "fastjet/LimitedWarning.hh" #include "fastjet/Error.hh" #include #include // ... ostream * myerr = new ofstream("warnings-and-errors.txt"); LimitedWarning::set_default_stream(myerr); Error::set_default_stream(myerr); Error::set_print_backtrace(true); // ... cout << LimitedWarning::summary() << endl; \end{lstlisting} will send the output of both classes to the file \ttt{warnings-and-errors.txt} (as well as provide the backtrace of errors). % Note that the output of \ttt{LimitedWarning::summary()} will only be present if the program did not abort earlier due to an error. With a suitable design of the output stream, the output redirection facility can also be used by the user to record additional information when an error or warning occurs, for example the event number. % One only \ttt{stream << string} type operation is performed for each warning or error, so as to help with formatting in such cases. As well as performing output of warnings and errors, \fastjet also outputs a banner the first time that clustering is performed. % If the user wishes to have the banner appear before the first clustering (e.g.\ during the initialisation phase of their program), they may call the static \ttt{ClusterSequence::print\_banner()} function. %====================================================================== \section{Evolution of FastJet across versions} \label{sec:fastjet-history} \subsection{History} Version 1 of \fastjet provided the first fast implementation of the longitudinally invariant $k_t$ clustering~\cite{ktexcl,ktincl}, based on the factorisation of momentum and geometry in that algorithm's distance measure~\cite{fastjet}. Version 2.0 brought % the implementation of the inclusive Cambridge/Aachen algorithm \cite{CamOrig,CamWobisch} and of jet areas and background estimation~\cite{cs,CSSAreas}; other changes include a new interface,\footnote{The old one was retained through v2} and new algorithmic strategies that could provide a factor of two improvement in speed for events whose number $N$ of particles was $\sim 10^4$. % Choices of recombination schemes and plugins for external jet algorithms were new features of version 2.1. % The initial set of plugins included SISCone~\cite{SISCone}, the CDF midpoint~\cite{RunII-jet-physics} and JetClu~\cite{Abe:1991ui} cones and PxCone~\cite{PxCone,Seymour:2006vv}. % The plugins helped provide a uniform interface to a range of different jet algorithms and made it possible to overlay \fastjet features such as areas onto the external jet algorithms. % Version 2.2 never made it beyond the beta-release stage, but introduced a number of the features that eventually were released in 2.3. % The final 2.3 release included the anti-$k_t$ algorithm~\cite{antikt}, a broader set of area measures, improved access to background estimation, means to navigate the ClusterSequence and a new build system (GNU autotools). % % Version 2.4 included the new version 2.0 of SISCone (including the spherical variant), as well as plugins to the \Dzero Run II cone, the ATLAS cone, the CMS cone, TrackJet and a range of $e^+e^-$ algorithms, and also further tools to help investigate jet substructure. % It also added a wrapper to \fastjet allowing one to run SISCone and some of the sequential recombination algorithms from Fortran programs. A major practical change in version 3.0 was that \ttt{PseudoJet} acquired knowledge (where relevant) about its underlying ClusterSequence, allowing one to write {\em e.g.} \ttt{jet.constituents()} % It also became possible to associate extra information with a \ttt{PseudoJet} beyond just a user index. % It brought the first of a series of \fastjet tools to help with advanced jet analyses, namely the \ttt{Selector} class, filters, pruners, taggers and new background estimation classes. % Version~3 also added the D0-Run I cone~\cite{Abbott:1997fc} plugin and support for native jet algorithms to be run with $R>\pi/2$. %...................................................................... \subsection{Deprecated and removed features} \label{sec:deprecated} While we generally aim to maintain backwards compatibility for software written with old versions of \fastjet, there are occasions where old interfaces or functionality no longer meet the standards that are demanded of a program that is increasingly widely used. % Table~\ref{tab:deprecated} lists the cases where such considerations have led us to deprecate and/or remove functionality. \begin{table} \centering \begin{tabular}{lccl}\toprule Feature, class or include file & Dep. & Rem. & Suggested replacement\\\midrule FjClusterSequence.hh & 2.0 & 3.0 & fastjet/ClusterSequence.hh\\ FjPseudoJet.hh & 2.0 & 3.0 & fastjet/PseudoJet.hh\\\midrule %---------------------------------------------------------------------- CS::set\_jet\_finder(...) & 2.1 & 3.0 & pass a JetDefinition to constructor\\ CS::set\_jet\_algorithm(...) & 2.1 & 3.0 & pass a JetDefinition to constructor\\ CS::CS(particles, R, ...) & 2.1 & 3.0 & CS::CS(particles, jet\_def)\\ JD(jet\_alg, R, strategy) & 2.1 & - & JD(jet\_alg, R, recomb\_scheme, strategy)\\ \midrule %---------------------------------------------------------------------- JetFinder & 2.3 & - & JetAlgorithm \\ SISConePlugin.hh & 2.3 & 3.0 & fastjet/SISConePlugin.hh (idem.\ other plugins)\\ ActiveAreaSpec & 2.3 & -- & AreaDefinition \& GhostedAreaSpec\\ ClusterSequenceWithArea & 2.3 & -- & ClusterSequenceArea\\\midrule %---------------------------------------------------------------------- default $f=0.5$ in some cone plugins & -- & 2.4 & include $f$ explicitly in constructor\\ default $R=1$ in JetDefinition & -- & 2.4 & include $R$ explicitly in constructor\\ \midrule %------------------------------------------------------------ RangeDefinition & 3.0 & -- & Selector(s) \\ CircularRange & 3.0 & -- & SelectorCircle \\ CSAB::median\_pt\_per\_unit\_area(...) & 3.0 & -- & BackgroundEstimator\\ CSAB::parabolic\_pt\_per\_unit\_area(...) & 3.0 & -- & BackgroundEstimator (cf.\ section \ref{sec:BGE-positional})\\ GAS::set\_fj2\_placement(...) & 3.0 & -- & use new default ghost placement instead\\ \bottomrule %========================================================= \end{tabular} \caption{Summary of interfaces and features of earlier versions that have been deprecated and/or removed. For brevity we have used the following abbreviations: Dep. = version since which a feature has been deprecated, Rem. = version where removed, CS = ClusterSequence, JD = JetDefinition, CSAB = ClusterSequenceAreaBase, GAS = GhostedAreaSpec. \label{tab:deprecated} } \end{table} %...................................................................... \subsection{Backwards compatibility of background estimation facilities} \label{sec:BGE-backwards} The \ttt{JetMedianBackgroundEstimator} and \ttt{GridMedianBackgroundEstimator} classes are new to \fastjet 3. % In \fastjet versions 2.3 and 2.4, the background estimation tools were instead integrated into the \ttt{ClusterSequenceAreaBase} class. % Rather than using selectors to specify the jets used in the background estimation, they used the \ttt{RangeDefinition} class. % For the purpose of backwards compatibility, these facilities will remain present in all 3.0.x versions. % Note that \ttt{ClusterSequenceAreaBase} now actually uses a selector in its background estimation interface, and that a \ttt{RangeDefinition} is automatically converted to a selector. An explicit argument in $\rho$-determination calls in \fastjet 2.4 concerned the choice between the use of scalar areas and the transverse component of the 4-vector area in the denominator of $p_t/A$. % The transverse component gives the more accurate $\rho$ determination and that is now the default in \ttt{JetMedianBackgroundEstimator}. % The behaviour can be changed with a member function call of the form \begin{lstlisting} set_use_area_4vector(false); \end{lstlisting} % Finally, the calculation of $\sigma$ in \fastjet 2.x incorrectly handled the limit of a small number of jets. This is now fixed in \fastjet 3, but a call to \ttt{set\_provide\_fj2\_sigma(true)} causes \ttt{JetMedianBackgroundEstimator} to reproduce that behaviour. \fastjet 2.x also placed the ghosts differently, resulting in different event-by-event rho estimates, and possibly a small systematic offset (scaling as the square-root of the ghost area) when ghosts and particles both covered identical (small) regions. % This offset is no longer present with the \fastjet 3 ghost placement. % If the old behaviour is needed, a call to a specific \ttt{GhostedAreaSpec}'s \ttt{set\_fj2\_placement(true)} function causes ghosts to placed as in the 2.x series. %====================================================================== \newpage \begin{thebibliography}{99} \bibitem{StermanWeinberg} G.~Sterman and S.~Weinberg, ``Jets From Quantum Chromodynamics,'' Phys.\ Rev.\ Lett.\ {\bf 39} (1977) 1436. %%CITATION = PRLTA,39,1436;%% \bibitem{Moretti:1998qx} S.~Moretti, L.~Lonnblad and T.~Sjostrand, ``New and old jet clustering algorithms for electron positron events,'' JHEP {\bf 9808} (1998) 001 [arXiv:hep-ph/9804296]. %% CITATION = JHEPA,9808,001;%% %\cite{Blazey:2000qt} \bibitem{RunII-jet-physics} G.~C.~Blazey {\it et al.}, % ``Run II jet physics,'' hep-ex/0005012. %% CITATION = HEP-EX 0005012;%% \bibitem{Ellis:2007ib} S.~D.~Ellis, J.~Huston, K.~Hatakeyama, P.~Loch and M.~Tonnesmann, ``Jets in Hadron-Hadron Collisions,'' Prog.\ Part.\ Nucl.\ Phys.\ {\bf 60} (2008) 484 [arXiv:0712.2447 [hep-ph]]. %%CITATION = PPNPD,60,484;%% \bibitem{Salam:2009jx} G.~P.~Salam, %``Towards Jetography,'' Eur.\ Phys.\ J.\ {\bf C67 } (2010) 637-686 [arXiv:0906.1833 [hep-ph]]. \bibitem{Ali:2010tw} A.~Ali, G.~Kramer, %``Jets and QCD: A Historical Review of the Discovery of the Quark and Gluon Jets and its Impact on QCD,'' Eur.\ Phys.\ J.\ {\bf H36 } (2011) 245-326. [arXiv:1012.2288 [hep-ph]]. \bibitem{GPLv2} \url{http://www.gnu.org/licenses/gpl-2.0.html} \bibitem{ktexcl} S.~Catani, Y.~L.~Dokshitzer, M.~H.~Seymour and B.~R.~Webber, %``Longitudinally invariant K(t) clustering algorithms for hadron hadron %collisions,'' Nucl.\ Phys.\ B {\bf 406} (1993) 187. \bibitem{ktincl} S.~D.~Ellis and D.~E.~Soper, %``Successive Combination Jet Algorithm For Hadron Collisions,'' Phys.\ Rev.\ D {\bf 48} (1993) 3160 %\prd{48}{1993}{3160} [hep-ph/9305266]. %%CITATION = HEP-PH 9305266;%% \bibitem{fastjet} M.~Cacciari and G.~P.~Salam, %``Dispelling the N**3 myth for the k(t) jet-finder,'' Phys.\ Lett.\ B {\bf 641} (2006) 57 [hep-ph/0512210]. %%CITATION = HEP-PH 0512210;%% \bibitem{KtClus} M. Seymour, \url{http://hepwww.rl.ac.uk/theory/seymour/ktclus/}. \bibitem{KtJet} \url{http://hepforge.cedar.ac.uk/ktjet/}; J.~M.~Butterworth, J.~P.~Couchman, B.~E.~Cox and B.~M.~Waugh, %``KtJet: A C++ implementation of the K(T) clustering algorithm,'' Comput.\ Phys.\ Commun.\ {\bf 153}, 85 (2003) [hep-ph/0210022]. %%CITATION = HEP-PH 0210022;%% \bibitem{CGAL} %Andreas Fabri, Geert-Jan Giezeman, Lutz Kettner, Stefan Schirra and Sven Schonherr, A.~Fabri {\it et al.}, %On the design of CGAL a computational geometry algorithms library Softw.~Pract.~Exper.~ {\bf 30} (2000) 1167; %Jean-Daniel Boissonnat, Olivier Devillers, Sylvain Pion, Monique Teillaud and Mariette Yvinec J.-D.~Boissonnat {\it et al.}, % Triangulations in CGAL Comp.~Geom.~{\bf 22} (2001) 5; \url{http://www.cgal.org/} \bibitem{antikt} M.~Cacciari, G.~P.~Salam and G.~Soyez, %``The anti-k_t jet clustering algorithm,'' JHEP {\bf 0804} (2008) 063 [arXiv:0802.1189 [hep-ph]]. %%CITATION = ARXIV:0802.1189;%% \bibitem{Abdesselam:2010pt} A.~Abdesselam, E.~B.~Kuutmann, U.~Bitenc, G.~Brooijmans, J.~Butterworth, P.~Bruckman de Renstrom, D.~Buarque Franzosi, R.~Buckingham {\it et al.}, %``Boosted objects: A Probe of beyond the Standard Model physics,'' Eur.\ Phys.\ J.\ {\bf C71 } (2011) 1661. [arXiv:1012.5412 [hep-ph]]. \bibitem{SpartyJet} P.A.~Delsart, K.~Geerlings, J.~Huston, B.~Martin and C.~Vermilion, SpartyJet, \url{http://projects.hepforge.org/spartyjet} \bibitem{CSSAreas} M.~Cacciari, G.~P.~Salam and G.~Soyez, %``The Catchment Area of Jets,'' JHEP {\bf 0804} (2008) 005, [arXiv:0802.1188 [hep-ph]]. %%CITATION = ARXIV:0802.1188;%% \bibitem{cs} M.~Cacciari and G.~P.~Salam, %``Pileup subtraction using jet areas,'' Phys.\ Lett.\ B {\bf 659} (2008) 119 [arXiv:0707.1378 [hep-ph]]. %%CITATION = PHLTA,B659,119;%% \bibitem{Cacciari:2010te} M.~Cacciari, J.~Rojo, G.~P.~Salam, G.~Soyez, %``Jet Reconstruction in Heavy Ion Collisions,'' Eur.\ Phys.\ J.\ {\bf C71 } (2011) 1539. [arXiv:1010.1759 [hep-ph]]. %\cite{Buttar:2008jx} \bibitem{Buttar:2008jx} C.~Buttar {\it et al.}, %``Standard Model Handles and Candles Working Group: Tools and Jets Summary %Report,'' arXiv:0803.0678 [hep-ph]. %%CITATION = ARXIV:0803.0678;%% %\cite{Ellis:2009su} \bibitem{Ellis:2009su} S.~D.~Ellis, C.~K.~Vermilion, J.~R.~Walsh, %``Techniques for improved heavy particle searches with jet substructure,'' Phys.\ Rev.\ {\bf D80 } (2009) 051501. [arXiv:0903.5081 [hep-ph]]. \bibitem{CamOrig} Y.~L.~Dokshitzer, G.~D.~Leder, S.~Moretti and B.~R.~Webber, %``Better jet clustering algorithms,'' JHEP {\bf 9708}, 001 (1997) [hep-ph/9707323]; %%CITATION = HEP-PH 9707323;%% \bibitem{CamWobisch} M.~Wobisch and T.~Wengler, ``Hadronization corrections to jet cross sections in deep-inelastic %scattering,'' arXiv:hep-ph/9907280; %%CITATION = HEP-PH 9907280;%% %\cite{Wobisch:2000dk} %\bibitem{Wobisch:2000dk} M.~Wobisch, ``Measurement and QCD analysis of jet cross sections in deep-inelastic %positron proton collisions at s**(1/2) = 300-GeV,'' DESY-THESIS-2000-049. %\href{http://www.slac.stanford.edu/spires/find/hep/www?r=desy-thesis-2000-049}{SPIRES entry} \bibitem{eekt} S.~Catani, Y.~L.~Dokshitzer, M.~Olsson, G.~Turnock and B.~R.~Webber, %``New clustering algorithm for multi - jet cross-sections in e+ e- %annihilation,'' Phys.\ Lett.\ B {\bf 269}, 432 (1991); \bibitem{Lonnblad:1992qd} L.~Lonnblad, %``ARCLUS: A New jet clustering algorithm inspired by the color dipole model,'' Z.\ Phys.\ {\bf C58 } (1993) 471-478. \bibitem{SISCone} G.P.~Salam and G.~Soyez, %``A practical Seedless Infrared-Safe Cone jet algorithm,'' JHEP {\bf 0705} 086 (2007), [arXiv:0704.0292 [hep-ph]]; %%CITATION = arXiv:0704.0292;%% standalone code available from \url{http://projects.hepforge.org/siscone}. \bibitem{EHT} S.~D.~Ellis, J.~Huston and M.~Tonnesmann, %``On building better cone jet algorithms,'' in {\it Proc. of the APS/DPF/DPB Summer Study on the Future of Particle Physics (Snowmass 2001) } ed. N.~Graf, p. P513 %in {\it the Proceedings of APS / DPF / DPB Summer Study on the %Future of Particle Physics (Snowmass 2001), Snowmass, Colorado, 30 %Jun - 21 Jul 2001, pp P513} [hep-ph/0111434]. %%CITATION = HEP-PH 0111434;%% \bibitem{TeV4LHC} TeV4LHC QCD Working Group {\it et al.}, %``Tevatron-for-LHC report of the QCD working group,'' hep-ph/0610012. %%CITATION = HEP-PH 0610012;%% \bibitem{Weinzierl:2011jx} S.~Weinzierl, %``The SISCone jet algorithm optimised for low particle multiplicities,'' arXiv:1108.1934 [hep-ph]. \bibitem{CDFCones} The CDF code has been taken from \\ \url{http://www.pa.msu.edu/~huston/Les_Houches_2005/JetClu+Midpoint-StandAlone.tgz}\,. \bibitem{Abe:1991ui} F.~Abe {\it et al.} [CDF Collaboration], ``The Topology of three jet events in $\bar{p}p$ collisions at $\sqrt{s} = 1.8$ TeV,'' Phys.\ Rev.\ D {\bf 45} (1992) 1448. %%CITATION = PHRVA,D45,1448;%% \bibitem{Abbott:1997fc} B.~Abbott {\it et al.} [D0 Collaboration], %``Fixed cone jet definitions in D0 and R(sep),'' FERMILAB-PUB-97-242-E. \bibitem{arXiv:1110.3771} V.~M.~Abazov {\it et al.} [D0 Collaboration], %``Measurement of the inclusive jet cross section in $p \bar {p}$ collisions at $\sqrt{s}=1.96$ TeV,'' %Submitted to: Phys.Rev.D arXiv:1110.3771 [hep-ex]. \bibitem{Seymour:2006vv} M.~H.~Seymour and C.~Tevlin, %``A comparison of two different jet algorithms for the top mass %reconstruction at the LHC,'' JHEP {\bf 0611} (2006) 052 [arXiv:hep-ph/0609100]. %%CITATION = JHEPA,0611,052;%% \bibitem{PxCone} L.~A.~del~Pozo and M.~H.~Seymour, unpublished. \bibitem{Affolder:2001xt} T.~Affolder {\it et al.} [ CDF Collaboration ], %``Charged jet evolution and the underlying event in $p\bar{p}$ collisions at 1.8 TeV,'' Phys.\ Rev.\ {\bf D65 } (2002) 092002. \bibitem{Bartel:1986ua} W.~Bartel {\it et al.} [JADE Collaboration], %``Experimental Studies On Multi - Jet Production In E+ E- Annihilation At %Petra Energies,'' Z.\ Phys.\ C {\bf 33} (1986) 23; %%CITATION = ZEPYA,C33,23;%% \bibitem{Bethke:1988zc} S.~Bethke {\it et al.} [JADE Collaboration], %``Experimental Investigation Of The Energy Dependence Of The Strong Coupling %Strength,'' Phys.\ Lett.\ B {\bf 213} (1988) 235. %%CITATION = PHLTA,B213,235;%% \bibitem{SpheriSISCone} G.~P.~Salam and G.~Soyez, April 2009, unpublished. \bibitem{Fortune} S.~Fortune, %''A sweepline algorithm for Voronoi diagrams,'' Algorithmica {\bf 2} (1987) 1. \bibitem{Cacciari:2009dp} M.~Cacciari, G.~P.~Salam, S.~Sapeta, %``On the characterisation of the underlying event,'' JHEP {\bf 1004 } (2010) 065. [arXiv:0912.4926 [hep-ph]]. \bibitem{GridMedianLH} M.~Cacciari, G.~P.~Salam and G.~Soyez, contribution in preparation to proceedings of ``Workshop on TeV Colliders'', Les Houches, June 2011. \bibitem{BDRS} J.~M.~Butterworth, A.~R.~Davison, M.~Rubin and G.~P.~Salam, %``Jet substructure as a new Higgs search channel at the LHC,'' Phys.\ Rev.\ Lett.\ {\bf 100} (2008) 242001 [arXiv:0802.2470 [hep-ph]]. %%CITATION = PRLTA,100,242001;%% \bibitem{trimming} D.~Krohn, J.~Thaler and L.~T.~Wang, %``Jet Trimming,'' JHEP {\bf 1002} (2010) 084 [arXiv:0912.1342 [hep-ph]]. %%CITATION = JHEPA,1002,084;%% \bibitem{Kaplan:2008ie} D.~E.~Kaplan, K.~Rehermann, M.~D.~Schwartz, B.~Tweedie, %``Top Tagging: A Method for Identifying Boosted Hadronically Decaying Top Quarks,'' Phys.\ Rev.\ Lett.\ {\bf 101 } (2008) 142001 [arXiv:0806.0848 [hep-ph]]. %\cite{Butterworth:2009qa} \bibitem{Butterworth:2009qa} J.~M.~Butterworth, J.~R.~Ellis, A.~R.~Raklev, G.~P.~Salam, %``Discovering baryon-number violating neutralino decays at the LHC,'' Phys.\ Rev.\ Lett.\ {\bf 103 } (2009) 241803. [arXiv:0906.0728 [hep-ph]]. \bibitem{nsubtagger} J.~H.~Kim, %``Rest Frame Subjet Algorithm With SISCone Jet For Fully Hadronic Decaying %Higgs Search,'' Phys.\ Rev.\ D {\bf 83} (2011) 011502 [arXiv:1011.1493 [hep-ph]]. %%CITATION = PHRVA,D83,011502;%% \bibitem{Chan} T.~M.~Chan, ``Closest-point problems simplified on the RAM,'' in Proc.\ 13th ACM-SIAM Symposium on Discrete Algorithms (SODA), p.~472 (2002). \bibitem{Anderberg} M.~R.~Anderberg, Cluster Analysis for Applications, (Number 19 in Probability and Mathematical Statistics, Academic Press, New York, 1973). \bibitem{Sonnenschein} L.~Sonnenschein, Ph.D. Thesis, RWTH Aachen 2001; \\ %% link verified GPS 2011-11-12 \url{http://cmsdoc.cern.ch/documents/01/doc2001_025.ps.Z} \bibitem{Sjostrand:2006za} T.~Sjostrand, S.~Mrenna and P.~Skands, ``{\tt Pythia} 6.4 physics and manual,'' JHEP {\bf 0605} (2006) 026, [arXiv:hep-ph/0603175]. %%CITATION = JHEPA,0605,026;%% \bibitem{Sjostrand:2007gs} T.~Sjostrand, S.~Mrenna, P.~Z.~Skands, %``A Brief Introduction to PYTHIA 8.1,'' Comput.\ Phys.\ Commun.\ {\bf 178 } (2008) 852-867. [arXiv:0710.3820 [hep-ph]]. \bibitem{EppsteinHierarchical} %%David Eppstein D.~Eppstein %``Fast hierarchical clustering and other applications of dynamic %closest pairs,'' J. Experimental Algorithmics {\bf 5} (2000) 1-23 [cs.DS/9912014]. \end{thebibliography} \end{document} fastjet-3.0.6+dfsg.orig/doc/Makefile.am0000644000175000017500000000005211772065203016033 0ustar sunsunSUBDIRS=figs EXTRA_DIST = fastjet-doc.tex fastjet-3.0.6+dfsg.orig/TODO0000644000175000017500000000000012153603564013715 0ustar sunsunfastjet-3.0.6+dfsg.orig/ltmain.sh0000755000175000017500000073306012130050345015057 0ustar sunsun# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6b # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION=2.2.6b TIMESTAMP="" package_revision=1.3017 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 fastjet-3.0.6+dfsg.orig/missing0000755000175000017500000002623312111460634014635 0ustar sunsun#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fastjet-3.0.6+dfsg.orig/depcomp0000755000175000017500000004426712111460634014622 0ustar sunsun#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fastjet-3.0.6+dfsg.orig/Makefile.in0000644000175000017500000007122712233506216015310 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/fastjet-config.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ TODO config.guess config.sub depcomp install-sh ltmain.sh \ missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = fastjet-config CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(bindir)" SCRIPTS = $(bin_SCRIPTS) SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags am__tty_colors = \ red=; grn=; lgn=; blu=; std= DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # redirect to subdirectories SUBDIRS = src include plugins tools example fortran_wrapper doc # install the fastjet-config script in the bin directory bin_SCRIPTS = fastjet-config # tests done using make check TEST_ENVIRONMENT = $(SHELL) TESTS = test-compare.sh # local macros for aclocal ACLOCAL_AMFLAGS = -I m4 # additional files we need in the distribution EXTRA_DIST = test-compare.sh makefile.static test-static.sh test-script-output-orig.txt Doxyfile BUGS all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): fastjet-config: $(top_builddir)/config.status $(srcdir)/fastjet-config.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list=' $(TESTS) '; \ $(am__tty_colors); \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all $$tests failed"; \ else \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ echo "$$grn$$dashes"; \ else \ echo "$$red$$dashes"; \ fi; \ echo "$$banner"; \ test -z "$$skipped" || echo "$$skipped"; \ test -z "$$report" || echo "$$report"; \ echo "$$dashes$$std"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod u+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-recursive all-am: Makefile $(SCRIPTS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-local distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binSCRIPTS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-TESTS check-am clean \ clean-generic clean-libtool ctags ctags-recursive dist \ dist-all dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ \ dist-xz dist-zip distcheck distclean distclean-generic \ distclean-libtool distclean-local distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-binSCRIPTS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-binSCRIPTS # AX_PREFIX_CONFIG_H leaves some files undeleted after a make distclean # # we could use DISTCLEAN=... here but this would also overwrite the defaults # So, instead, we use the (apparently recommended) -local target to extend # the default behaviour distclean-local: distclean-ax-prefix-config-h distclean-ax-prefix-config-h: rm -f _configs.sed include/fastjet/config_auto.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/ChangeLog0000644000175000017500000114242512233506111015007 0ustar sunsun2013-10-29 Gavin SALAM + Matteo * NEWS: Release of FastJet fastjet-3.0.6 * configure.ac: * include/fastjet/config_win.h: * Doxyfile: * tex/fastjet-doc.tex: changed version to 3.0.6 2013-10-28 Gavin Salam * plugins/D0RunIICone/ConeSplitMerge.hpp: made ProtoJet_ET_seedET_order::operator() const, to fix compilation issue under OS X 10.9 (Mavericks). * plugins/CDFCones/CDFcode/JetCluAlgorithm.cc: included and switched abs -> std::abs to fix compilation issue under OS X 10.9 (Mavericks). This and the above one reported by David Grellscheid and Pere Mato Vila. * example/11-filter.cc: * tools/MassDropTagger.cc: * tools/JHTopTagger.cc: fixed bugs where (! a==b) was being used instead of (a!=b) in certain consistency checks. In the two taggers, this should only affect whether a warning is produced when called with algorithms other than Cambridge/Aachen. Reported by David Grellscheid. 2013-10-25 Gavin SALAM + Matteo * plugins/GridJet/fastjet/GridJetPlugin.hh: added drap(), dphi(), rapmin() and rapmax() query functions to get actual grid spacings. Merged 2013-10-28 from development trunk revision 3247. 2013-09-16 Gregory Soyez * configure.ac: * include/fastjet/config_win.h: * Doxyfile: * tex/fastjet-doc.tex: changed version to 3.0.6-devel 2013-09-16 Gregory Soyez * NEWS: Release of FastJet fastjet-3.0.5 * configure.ac: * include/fastjet/config_win.h: * Doxyfile: * tex/fastjet-doc.tex: changed version to 3.0.5 * src/ClusterSequence_TiledN2.cc (_tiled_N2_cluster): added a dummy initialisation of oldB.tile_index at the start of two more routines so as to resolve a long-standing (worrying, but bogus) gcc warning about uninitialised variables. (Taken from 3.1-devel trunk). [extension of same fix mentioned 20 lines below] 2013-09-15 Gavin Salam (later still) * NEWS: drafted 3.0.5 NEWS 2013-09-15 Gavin Salam (later) * example/fastjet_timing_plugins.cc (main): added -etamax option back in, but it now prints a warning that it's actually just setting a maximum rapidity. 2013-09-15 Gavin Salam * regression-tests/nightly-check.pl: merged revisions 3160 and 3184 from trunk to disable zetes and add g++4.6 and 4.7 to checks * src/ClusterSequence_TiledN2.cc (_minheap_faster_tiled_N2_cluster): added a dummy initialisation of oldB.tile_index at the start of the routine so as to resolve a long-standing (worrying, but bogus) gcc warning about uninitialised variables. (Taken from 3.1-devel trunk). * autogen.sh: small fix for glibtool tests (added an "x" in front on `whereis glibtool`). 2013-09-15 Gavin Salam * include/fastjet/Selector.hh: * include/fastjet/NNH.hh: * include/fastjet/internal/ClusterSequence_N2.icc: these files had guards without FASTJET_ in their name, as a result of which the fjcore files had identical guards, causing a conflict. the FASTJET_ tag has now been added. (Merge of rev.3202 from trunk). 2013-09-13 Gavin Salam + Matteo * regression-tests/test-all-algs.pl: replaced -etamax -> -rapmax (following yesterday's change); fixed an issue where bkgds & areas were giving problems when running more than one strategy (to do with copies v. aliases in foreach loops). updated checksums for background estimations with -rapmax option, in light of yesterday's bugfix in fastjet_timing_plugins. Internal program consistency should be OK given that the nightly check from the night before last came out OK (and we haven't touched core code since then). Also added some extra checksums for quick tests with 10 events. These changes merged from revisions 3189, 3192, 3199 from trunk (2013-09-15, +some manual adjustment). 2013-09-12 Gavin Salam + Matteo * example/fastjet_timing_plugins.cc: replaced -etamax option with -rapmax and fixed bug that it was acting only as an upper limit of rapidity. (Not a lower limit) 2013-07-31 Gregory Soyez * example/data/Makefile.am (EXTRA_DIST): added the missing boosted top event to the distribution 2013-06-05 Gavin SALAM * switched version to 3.0.5-devel, and SISCone back to trunk 2013-06-05 Gavin SALAM + Matteo * Release of FastJet fastjet-3.0.4, including SISCone 2.0.6 2013-06-05 Gavin SALAM + Matteo * example/fastjet_timing_plugins.cc: fixed a couple of harmless errors in the messages concerning missing plugins; added protection in case of null extras for SISCone. Both brought in from trunk. * scripts/mkfjcore.sh: DROP_CGAL gets renamed __FJCORE_DROP_CGAL (only in core). also renamed a bunch of FASTJET_XXX (from autotools) -> FJCORE_XXX Added the NNH headers, for those who wish to build their own algs. * include/fastjet/SharedPtr.hh: replaced USETR1SHAREDPTR -> __FASTJET_USETR1SHAREDPTR * regression-tests/nightly-check.pl: copied this across from rev.3127 of trunk 2013-05-05 Matteo Cacciari * scripts/mkfjcore.sh added sed lines to remove a block beginning with #ifndef WIN32 in fjcore.hh 2013-05-04 Gavin Salam * include/fastjet/ClusterSequence.hh: * src/ClusterSequence_Delaunay.cc moved inclusion of DynamicNearestNeighbours.hh from ClusterSequence.hh (a forward definition is sufficient) to the Delaunay file. * scripts/mkfjcore.sh added renaming of fastjet:: in fastjet files; moved more headers from internal headers to internal sources, to reduce .hh file size (from 2200 lines to 1600 lines; cc file of course grows to compensate). * include/fastjet/PseudoJet.hh: added explicit fastjet:: to cast_if_derived call, to avoid ambiguities when converting from fastjet to fjcore PseudoJets (and vice versa), where it wasn't clear whether to use fastjet:: or fjcore:: cast_if_derived. 2013-05-03 Gavin SALAM + Matteo * include/fastjet/internal/SearchTree.hh: renamed TRACK_DEPTH define as __FASTJET_SEARCHTREE_TRACK_DEPTH * scripts/mkfjcore.sh added renaming of __FASTJET* definitions 2013-04-29 Matteo Cacciari + Gregory * scripts/mkfjcore.sh updated comment and enable plugin tags removals 2013-04-07 Gavin SALAM * regression-tests/nightly-check.pl: copied across latest version from trunk 2013-04-06 Matteo Cacciari * include/fastjet/PseudoJet.hh: * src/PseudoJet.cc: in response to request from ATLAS, initialize PseudoJet::_rap to a dummy value even though it's not necessary, in order to avoid NaN's in ATLAS rigid NaN tests. [ported from 3.1-devel, revs 3068/3069] 2013-04-06 Gavin Salam * configure.ac: backported autotools changes needed for compatibility with autoconf 2.69 + automake 1.13 [manually ported from 3.1-devel, part of revs. 3065, 3066 & 3081] * switched SISCone back over to trunk (which also has autotools fixes) 2013-04-05 Matteo Cacciari * include/fastjet/internal/SearchTree.hh (template): a further fix for clang v1.1 (release 27) compilation [ported from 3.1-devel, rev. 2886/2888] * doc/fastjet-doc.tex (section{Introduction}): added a footnote about stopping the exclusive algorithm once it reaches a predetermined number of jets. (Thanks to Giulia Zanderighi for pointing out this omission). [ported from 3.1-devel, rev. 2893] * src/ClusterSequence.cc (print_banner): updated references in the banner [ported from 3.1-devel, rev. 2898] * m4/CGAL.m4: linked against gmp, gmpxx and mpfr if available (this provides a more robust CGAL support as in some cases -lgmp has to be explicitly included at link time) [ported from 3.1-devel, rev. 3028] 2013-04-01 Matteo Cacciari * scripts/mkfjcore.sh *** ADDED *** * scripts/preamble-fjcore.txt *** ADDED *** * scripts/Makefile-fjcore.txt *** ADDED *** Script, and text to be added to the resulting files, to automatically extract fjcore.cc|.hh from the full FastJet distibution. With respect the the version currently in 3.1-devel, mkfjcore.sh now also replaces the fastjet namespace with the fjcore one. A note about this is added in preamble-fjcore.txt Also, mkfjcore.sh now copies the single-event.dat file to the fjcore directory, together with a makefile copied from Makefile-fjcore, and leaves the 01-basic.cc example there. Finally, the preamble is also copied into a README file. * src/ClusterSequenceStructure.cc * src/CompositeJetStructure.cc * src/PseudoJet.cc * src/PseudoJetStructureBase.cc * src/Selector.cc * include/fastjet/ClusterSequenceStructure.cc * include/fastjet/CompositeJetStructure.cc * include/fastjet/PseudoJet.cc * include/fastjet/PseudoJetStructureBase.cc * include/fastjet/Selector.cc addition of "ifndef __FJCORE__" and corresponding #endif's to mark code to be excluded from fjcore.cc|hh * include/fastjet/internal/IsBase.hh in cast_if_derived(), replaced a NULL with "0" to avoid having to include cstdlib (breaks in fjcore otherwise. This modification is consistent with the one already made in 3.1-devel) * src/ClosestPair2D.cc (closest_pair): use std::swap instead of swap (i.e. make the namespace explicit to avoid conflict with fastjet::swap in SharedPtr (only needed because we are in the fastJet namespace) [modification and comment backported from 3.1-devel] 2012-06-26 Gavin SALAM + Matteo + Gregory * configure.ac: * include/fastjet/config_win.h: * Doxyfile: * tex/fastjet-doc.tex: changed version to 3.0.4-devel 2012-06-25 Gavin SALAM + Gregory + Matteo * Release of FastJet fastjet-3.0.3 * NEWS: tidied it up. * configure.ac: * include/fastjet/config_win.h: * Doxyfile: * tex/fastjet-doc.tex: changed version to 3.0.3 2012-06-15 Gregory Soyez * NEWS: cleaned the list of things we need to merge from the trunk * configure.ac: * include/fastjet/config_win.h: * Doxyfile: * tex/fastjet-doc.tex: changed version to 3.0.3-devel * Merged the items below from the trunk 2012-06-13 Gavin Salam + Matteo & Gregory * NEWS: worked on NEWS file for 3.0.3, including a list of the things we need to merge from the trunk 2012-06-12 Gregory Soyez * include/fastjet/NNH.hh: * plugins/D0RunIICone/ILConeAlgorithm.hpp: Worked around some issues to allow compilation with gcc 4.7 (and clang) which no longer performs unqualified template lookups. See e.g. http://gcc.gnu.org/gcc-4.7/porting_to.html [Thanks to Gavin Hesketh and Jihun Kim for reporting this] 2012-02-20 Gregory Soyez * configure.ac: fixed bug related to the --extra-warnings flag: it now sets its own internal variable (ENABLE_EXTRA_WARNINGS_FLAG rather than overwriting ENABLE_DEBUG_FLAG. Now, enabling/disabling debug info should work fine again. 2012-02-06 Gregory Soyez * configure.ac: * doc/Makefile.am: * doc/figs/Makefile.am: *** ADDED *** added the figures of the manual to the distributed tarball 2012-01-17 Gavin SALAM + Matteo & Gregory * Release of fastjet-3.0.2 2012-01-12 Gregory Soyez * fastjet-config.in: used @libdir@ instead of @prefix@/lib and @includedir@ instead of @prefix@/include for a correct treatment of non-standard installation location 2011-12-16 Matteo Cacciari * configure.ac: added test that prevents user from installing in the build directory (copied from LHAPDF) 2011-12-13 Gregory Soyez * plugins/D0RunICone/D0RunIBaseConePlugin.cc: * plugins/D0RunIICone/D0RunIIConePlugin.cc: updated banner to give credit to the D0 collaboration * COPYING: * plugins/D0RunIICone/ProtoJet.hpp: * plugins/D0RunIICone/inline_maths.h: * plugins/D0RunIICone/ILConeAlgorithm.hpp: * plugins/D0RunIICone/HepEntity.h: * plugins/D0RunIICone/ConeSplitMerge.hpp: * plugins/D0RunIICone/ConeJetInfo.hpp: * plugins/D0RunICone/inline_maths.h: * plugins/D0RunICone/HepEntityIpre96.h: * plugins/D0RunICone/HepEntityI.h: * plugins/D0RunICone/ConeClusterAlgo.hpp: added license information (Lars Sonnenschein and the D0 collaboration granted us the permission to distribute the D0 codes under the terms of the GPLv2 2011-12-05 Gregory Soyez * configure.ac: fixed an issue in the "g++ presence test" to cover situations where the full path to the compiler is specified. 2011-12-03 Gavin Salam * ../contrib: *** ADDED *** * ../contrib/vermilion/* *** ADDED *** * ../3rd_party_interfaces/ -> ../contrib/3rd_party_interfaces/ set up some structure for our copy of contrib, including the code from Chris Vermilion + moved our pythia8 interface into there. 2011-12-02 Gavin SALAM + Matteo + Gregory * RoadMap: cleaned it up in preparation for transition to 3.1.0-devel * doc/contrib-policy.txt: *** ADDED *** added this as a location to start thinking about how the contrib area will work. 2011-12-02 Gregory Soyez * configure.ac: . added a test for sed . added an explicit test that the C++ compiler returned by AC_PROG_CXX (g++ if none found!) really exists (in case g++ is not installed) 2011-12-01 Gavin Salam * src/ClusterSequence.cc: * include/fastjet/ClusterSequence.hh: void _print_banner() -> static void print_banner(); i.e. it's now public and documented in doxygen. * example/fastjet_timing_plugins.cc: this now prints a banner early on * doc/fastjet-doc.tex (section{Error handling}): added mention of CS::print_banner(). 2011-12-01 Gregory Soyez * configure.ac: issued an error message if no C++ compiler is found 2011-11-29 Gavin Salam * CHECKLIST: updated this to reflect the new scripts/set-version.sh script * doc/fastjet-doc.tex added note about comment lines to be removed for automatic version changes * scripts/set-version.sh (version): *** ADDED *** run ./scripts/set-version.sh VERSION-NUMBER to make all the changes needed to switch to a new version * mksnapshot.sh -> scripts/mksnapshot.sh clean up main directory by having maintenance scripts in the scripts/ directory. * tarit.sh -> scripts/old/tarit.sh * tarit-areas.sh -> scripts/old/tarit-areas.sh * svntagit.sh -> scripts/old/svntagit.sh these scripts were out of date in some way of other, so moved them out of the way 2011-11-28 Gavin SALAM * doc/fastjet-doc.tex: * Doxyfile (PROJECT_NUMBER): * include/fastjet/config_win.h (FASTJET_PACKAGE_STRING): * configure.ac: version number becomes 3.0.2-devel * switched SISCone back over to trunk 2011-11-25 Gavin SALAM + Matteo & Gregory Release of FastJet 3.0.1 2011-11-25 Gavin SALAM + Matteo & Gregory * NEWS: further small changes. * plugins/TrackJet/TrackJetPlugin.cc (_print_banner): rephrased the banner to reflect updated authorship info. 2011-11-25 Gregory Soyez * plugins/D0RunIICone/D0RunIIConePlugin.cc (_print_banner): * plugins/PxCone/PxConePlugin.cc (_print_banner): * plugins/D0RunICone/D0RunIBaseConePlugin.cc (_print_banner): * plugins/CMSIterativeCone/CMSIterativeConePlugin.cc (_print_banner): * plugins/CDFCones/CDFJetCluPlugin.cc (_print_banner): * plugins/CDFCones/CDFMidPointPlugin.cc (_print_banner): * plugins/ATLASCone/ATLASConePlugin.cc (_print_banner): removed the mention to a minimal FJ version (vX.Y upwards) * plugins/SISCone/SISConeSphericalPlugin.cc: * plugins/SISCone/SISConePlugin.cc: redirect the SISCone banner to the same stream as the FastJet banners. * plugins/ATLASCone/ATLASConePlugin.cc: fixed a memory leak in the interface to the ATLAS cone plugin * example/fastjet_timing_plugins.cc: inverted the ordering of some tests for the default jet alg to make sure that the -kt command-line option is processed. 2011-11-24 Gregory Soyez * plugins/PxCone/PxConePlugin.cc: disabled the banner since the fortran code already has one * plugins/D0RunICone/D0RunIBaseConePlugin.cc: * plugins/D0RunIICone/D0RunIIConePlugin.cc: * plugins/ATLASCone/ATLASConePlugin.cc: * plugins/CMSIterativeCone/CMSIterativeConePlugin.cc: modified banner message 2011-11-24 Gavin SALAM * COPYING: have reworded this in various places to give a better overview at the start of the file and a discussion of references that's similar to what we have on the "About" page of the website. * src/Voronoi.cc: * plugins/ATLASCone/ATLASConePlugin.cc: typos * example/fastjet_timing_plugins.cc: added -all-algs option to run all algorithms and -file option to read events from a file. You can now also specify multiple algorithms, e.g. -kt -cam. NB: the algorithms loop is the outer one, and event-reading is done in an innter an iev loop; -all-algs must be used in conjunction with -file if you want the same set of particles to be used for each jet alg. * include/fastjet/ClusterSequence.hh: * src/ClusterSequence.hh: * plugins/D0RunIICone/D0RunIIConePlugin.cc * plugins/CDFCones/CDFMidPointPlugin.cc * plugins/CDFCones/CDFJetCluPlugin.cc * plugins/PxCone/PxConePlugin.cc * plugins/SISCone/siscone * plugins/CMSIterativeCone/CMSIterativeConePlugin.cc * plugins/D0RunICone/D0RunIBaseConePlugin.cc * plugins/TrackJet/TrackJetPlugin.cc * plugins/ATLASCone/ATLASConePlugin.cc access to banner ostream is now through the cleaner CS::fastjet_banner_stream() member + renamed CS::fastjet_banner_ostr -> CS::_fastjet_banner_ostr and made it private. 2011-11-24 Gregory Soyez * plugins/D0RunICone/D0RunIBaseConePlugin.cc (_print_banner): updated the version availability (3.0 rather than 2.4) 2011-11-24 Gavin Salam * NEWS: prepared preliminary summary of changes 2011-11-24 Gregory Soyez * plugins/D0RunIICone/D0RunIIConePlugin.cc: * plugins/D0RunIICone/fastjet/D0RunIIConePlugin.hh: * plugins/D0RunICone/fastjet/D0RunIpre96ConePlugin.hh: * plugins/D0RunICone/fastjet/D0RunIConePlugin.hh: * plugins/D0RunICone/D0RunIBaseConePlugin.cc: * plugins/D0RunICone/HepEntityIpre96.h: * plugins/D0RunICone/HepEntityI.h: * plugins/D0RunICone/ConeClusterAlgo.hpp: * plugins/D0RunICone/inline_maths.h: * plugins/D0RunIICone/ILConeAlgorithm.hpp: * plugins/D0RunIICone/ProtoJet.hpp: * plugins/D0RunIICone/ConeSplitMerge.hpp: * plugins/D0RunIICone/ConeJetInfo.hpp: * plugins/D0RunIICone/HepEntity.h: * plugins/D0RunIICone/inline_maths.h: added a history of Changes + a banner * COPYING: mentioned the origin of the D0 code * plugins/TrackJet/fastjet/TrackJetPlugin.hh: * plugins/TrackJet/TrackJetPlugin.cc: * plugins/PxCone/fastjet/PxConePlugin.hh: * plugins/PxCone/PxConePlugin.cc: * plugins/CMSIterativeCone/fastjet/CMSIterativeConePlugin.hh: * plugins/CMSIterativeCone/CMSIterativeConePlugin.cc: * plugins/CDFCones/fastjet/CDFMidPointPlugin.hh: * plugins/CDFCones/fastjet/CDFJetCluPlugin.hh: * plugins/CDFCones/CDFMidPointPlugin.cc: * plugins/CDFCones/CDFJetCluPlugin.cc: * plugins/ATLASCone/fastjet/ATLASConePlugin.hh: * plugins/ATLASCone/ATLASConePlugin.cc: print the banner to FJ's ClusterSequence::fastjet_banner_ostr + removed 'disable_banner()' * include/fastjet/ClusterSequence.hh: * src/ClusterSequence.cc (_print_banner): added ClusterSequence::fastjet_banner_ostr. This is a (pointer to a) stream where the banner will be printed. 2011-11-23 Gavin Salam * src/ClusterSequence.cc (ClusterSequence::_print_banner): updated banner following morning's discussion. 2011-11-22 Gavin Salam * example/10-subjets.cc: sorted out residual warning. * plugins/D0RunICone/fastjet/D0RunIpre96ConePlugin.hh: * plugins/D0RunICone/fastjet/D0RunIBaseConePlugin.hh * plugins/D0RunICone/fastjet/D0RunIConePlugin.hh: replaced CONrad -> CONErad. 2011-11-22 Gregory Soyez * plugins/ATLASCone/fastjet/ATLASConePlugin.hh: * plugins/ATLASCone/ATLASConePlugin.cc: added a banner * plugins/ATLASCone/Makefile.am (libATLASConePlugin_la_SOURCES): removed empty source files * plugins/ATLASCone/CommonUtils.hh: * plugins/ATLASCone/JetConeFinderTool.cc: * plugins/ATLASCone/JetConeFinderTool.hh: * plugins/ATLASCone/JetDistances.hh: * plugins/ATLASCone/Jet.cc: * plugins/ATLASCone/Jet.hh: * plugins/ATLASCone/JetSplitMergeTool.cc: * plugins/ATLASCone/JetSplitMergeTool.hh: * plugins/ATLASCone/LorentzVector.hh: added information about the file origin + a history of changes * COPYING: added info about all plugins written by the FastJet authors * plugins/PxCone/PxConePlugin.cc (_print_banner): * plugins/CMSIterativeCone/CMSIterativeConePlugin.cc (_print_banner): * plugins/CDFCones/CDFJetCluPlugin.cc (_print_banner): * plugins/CDFCones/CDFMidPointPlugin.cc (_print_banner): * plugins/PxCone/fastjet/PxConePlugin.hh: * plugins/CMSIterativeCone/fastjet/CMSIterativeConePlugin.hh: * plugins/TrackJet/fastjet/TrackJetPlugin.hh: removed an unwanted 'const' 2011-11-22 Gavin Salam * plugins/PxCone/pxcone.f (PXCONE): added some info about licensing in this file. 2011-11-22 Gregory Soyez * plugins/CDFCones/CDFcode/PhysicsTower.hh: * plugins/CDFCones/CDFcode/MidPointAlgorithm.hh: * plugins/CDFCones/CDFcode/JetCluAlgorithm.cc: * plugins/CDFCones/CDFcode/JetCluAlgorithm.hh: * plugins/CDFCones/CDFcode/LorentzVector.hh: * plugins/CDFCones/CDFcode/ClusterComparisons.hh: * plugins/CDFCones/CDFcode/Cluster.hh: * plugins/CDFCones/CDFcode/Centroid.hh: * plugins/CDFCones/CDFcode/CalTower.hh: added info about permission for distribution + history of changes * plugins/CDFCones/CDFcode/Makefile.am: removed empty files * plugins/TrackJet/TrackJetPlugin.cc: * plugins/TrackJet/fastjet/TrackJetPlugin.hh: added license information + print a banner at first usage * plugins/PxCone/fastjet/PxConePlugin.hh: * plugins/PxCone/PxConePlugin.cc: print a banner at first usage * plugins/PxCone/README: mentioned the list of changes in pxcone.f * plugins/CMSIterativeCone/SortByEt.h: * plugins/CMSIterativeCone/CMSIterativeConePlugin.cc: inserted a proper license description and a list of changes compared to the original CMS code + print a banner at 1st use * COPYING: added a series of license agreements for 3rd party plugins 2011-11-21 Gregory Soyez + Gavin * tools/MassDropTagger.cc (result): replaced m() by equivalent expressions using m2() * tools/fastjet/tools/MassDropTagger.hh: used a WrappedStructure instead of a CompositeJetStructure for the base MassDropTaggerStructure class. 2011-11-20 Gregory Soyez * configure.ac: put the extra warnings (-ansi -pedantic -Wextra -Wshadow) under a --enable-extra-warnings configure flag 2011-11-20 Gavin Salam * include/fastjet/PseudoJet.hh: added pt(), pt2(), mt() and mt2() methods. * src/GhostedAreaSpec.cc: * include/fastjet/GhostedAreaSpec.hh: switched kt -> pt in default function names; kept copies of functions with "kt" in name for backwards compatibility. * test-script-output-orig.txt: edits of kt -> pt given change in GAS. 2011-11-17 Gavin Salam * src/ClusterSequence.cc: * include/fastjet/internal/base.hh: moved the doxygen group list out of base.hh and into ClusterSequence.cc; also added reference plugins where we mentioned JetDefinition (otherwise it's a fairly non-obvious two clicks away from the main page). 2011-11-17 Gregory Soyez * src/ClusterSequence.cc (_decant_options): added a missing call to _decant_options_partial() (needed for proper initialisation as used e.g. in cases with area) 2011-11-16 Gavin Salam * src/ClusterSequence.cc: * include/fastjet/ClusterSequence.hh (template): constructor now uses an initialisation list for things like the _jet_def that are substantial and that one doesn't want to be initialising twice. Also introduced _decant_options_partial() and _initialise_and_run_no_decant(), which are now used directly in the constructor. The calls _decant_options(...) and _initialise_and_run(...) are maintained and just do the relevant extra bits and pieces before calling _decant_options_partial() and _initialise_and_run_no_decant() respectively. This shaves off about 0.1 microseconds (can be relevant at low N). * src/JetDefinition.cc (JetDefinition::JetDefinition): removed function-wide ostringstream (for errors) in constructor, which was causing a 0.6 microsecond time penalty, and replaced it with oss's created only when an error condition is actually seen. 2011-11-16 Gregory Soyez * example/fastjet_timing_plugins.cc: added a -repeat-incl option to show the jets above ptmin at each repetition of the clustering [modified it so that the jets are just extracted and sorted but not printed] * configure.ac: increased the level of warnings in the default compilation flags * example/10-subjets.cc: * example/04-constituents.cc: * example/fastjet_timing_plugins.cc: * example/fastjet_areas.cc (print_jets): replaced/cast size_t by/to unsigned int (this is mostly to avoid a compiler warning related to the fact that size_t is equivalent to ungigned int on 32-bit machines and long unsigned int on 64) 2011-11-16 Gavin Salam * src/ClusterSequence.cc: lowered switchover point from N2Plain -> N2Tiled based on observations from Gregory and me on more modern computers than were used in the original studies (presumably larger cache is at play). 2011-11-15 Gregory Soyez * src/ClusterSequence_TiledN2.cc (_minheap_faster_tiled_N2_cluster): added a note about a gcc "may-be-used-uninitialised" warning which is irrelevant. * include/fastjet/NNH.hh (set_NN_nocross): replaced 'head' and 'tail' by the parameters 'begin' and 'end' (respectively). Note that all the calls to set_NN_nocross have begin==head and end==tail so this is equivalent. But it is cleaner and avoids a compiler warning. * plugins/PxCone/fastjet/PxConePlugin.hh (ctor): renamed arguments to avoid shadowing class members * plugins/SISCone/fastjet/SISConeSphericalPlugin.hh: removed extraneous ; * src/CompositeJetStructure.cc (ctor): renamed a local var to avoid shadowing a class member 2011-11-14 Gavin Salam * tools/Filter.cc: * tools/fastjet/tools/Filter.hh: Reworked use of _subjet_def and _selector so that they are no longer mutable. Also arranged for description to be more accurate. 2011-11-14 Gregory Soyez * tools/Filter.cc (_get_all_pieces, ...): removed the internal mutable all_pieces variable and pass instead an argument to the appropriate functions * plugins/D0RunICone/HepEntityIpre96.h: * plugins/D0RunICone/HepEntityI.h: * plugins/ATLASCone/Jet.hh: * plugins/ATLASCone/LorentzVector.hh: * plugins/D0RunIICone/ILConeAlgorithm.hpp: * plugins/D0RunIICone/ProtoJet.hpp: * plugins/D0RunIICone/ConeJetInfo.hpp: * plugins/CDFCones/CDFcode/LorentzVector.hh: * include/fastjet/internal/Voronoi.hh: * src/Voronoi.cc: started/completed a history of Changes to 3rd party code * plugins/CDFCones/CDFcode/CalTower.hh (ctor): added a few () to get rid of a gcc warning * src/ClusterSequence_DumbN3.cc (_really_dumb_cluster): marked as obsolete a part of the code that was associated with another obsolete part of the code * tools/fastjet/tools/Filter.hh: * tools/Filter.cc: removed all_pieces as the 2nd argument of get_all_pieces: this is a member variable of the class so there is no need to pass it as an argument. * src/ClusterSequence_TiledN2.cc (_tiled_N2_cluster, _minheap_faster_tiled_N2_cluster, _faster_tiled_N2_cluster): replaced Tile * tile by Tile * tile_ptr to avoid a shadowing (gcc -Wshadow warning) * example/09-user_info.cc (MyUserInfo ctor): * example/fastjet_timing_plugins.cc (main): * plugins/D0RunICone/fastjet/D0RunIpre96ConePlugin.hh (ctor): * plugins/D0RunICone/fastjet/D0RunIConePlugin.hh (ctor): * plugins/D0RunICone/fastjet/D0RunIBaseConePlugin.hh (ctor): * plugins/D0RunICone/HepEntityIpre96.h (ctor, Fill): * plugins/D0RunICone/HepEntityI.h (ctor, Fill): * plugins/EECambridge/fastjet/EECambridgePlugin.hh (ctor): * plugins/ATLASCone/fastjet/ATLASConePlugin.hh (ctor): * plugins/ATLASCone/Jet.hh (ctor): * plugins/ATLASCone/LorentzVector.hh (ctor): * plugins/D0RunIICone/ILConeAlgorithm.hpp (TemporaryJet ctor, midpoint): * plugins/D0RunIICone/ProtoJet.hpp (ctor,setJet): * plugins/D0RunIICone/ConeJetInfo.hpp (ctors): * plugins/D0RunIICone/fastjet/D0RunIIConePlugin.hh (ctor): * plugins/CDFCones/fastjet/CDFMidPointPlugin.hh (ctors): * plugins/CDFCones/fastjet/CDFJetCluPlugin.hh (ctors): * plugins/CDFCones/CDFcode/LorentzVector.hh (ctor): * plugins/SISCone/fastjet/SISConePlugin.hh (ctors): * plugins/SISCone/fastjet/SISConeSphericalPlugin.hh (ctor): * include/fastjet/NNH.hh (init, other_init): * tools/TopTaggerBase.cc (_cos_theta_W): * tools/JHTopTagger.cc (result, _split_once): * tools/CASubJetTagger.cc (result): * tools/RestFrameNSubjettinessTagger.cc (result): * tools/fastjet/tools/JHTopTagger.hh (ctor): * tools/fastjet/tools/TopTaggerBase.hh (description_of_selectors): * tools/fastjet/tools/Boost.hh (result): * tools/fastjet/tools/RestFrameNSubjettinessTagger.hh (ctor): * tools/MassDropTagger.cc (result): * tools/fastjet/tools/MassDropTagger.hh (ctor): * tools/Pruner.cc (result): * tools/fastjet/tools/JetMedianBackgroundEstimator.hh (set_rescaling_class): * tools/GridMedianBackgroundEstimator.cc (set_rescaling_class): * tools/JetMedianBackgroundEstimator.cc (set_jet_density_class): * tools/fastjet/tools/BackgroundEstimatorBase.hh (set_rescaling_class): * include/fastjet/ClusterSequenceArea.hh (initialize_and_run_cswa): * src/Error.cc (ctor): * src/ClusterSequence1GhostPassiveArea.cc (_initialise_and_run_1GPA): * src/ClusterSequencePassiveArea.cc (_initialise_and_run_PA): * src/ClusterSequenceVoronoiArea.cc (_initializeVA): * include/fastjet/ClusterSequenceVoronoiArea.hh (ctor): * src/Voronoi.cc (generateVoronoi): * src/ClusterSequenceActiveArea.cc (_initialise_and_run_AA, _initialise_AA, _transfer_areas): * src/GhostedAreaSpec.cc (ctor): * src/PseudoJet.cc (ctor, boost, unboostm set_cached_rap_phi, set_structure_shared_ptr, reset_momentum_PtYPhiM): * src/JetDefinition.cc (ctor): * include/fastjet/ClusterSequenceArea.hh (ctors): * include/fastjet/AreaDefinition.hh (VoronoiAreaSpec): * include/fastjet/ClusterSequence1GhostPassiveArea.hh (ctor): * include/fastjet/ClusterSequencePassiveArea.hh (ctor): * include/fastjet/ClusterSequenceActiveArea.hh (ctor): * src/ClusterSequenceActiveAreaExplicitGhosts.cc (empty_area): * include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh (ctors, _initialise): * include/fastjet/ClusterSequenceAreaBase.hh (ctor): * src/ClusterSequenceAreaBase.cc (subtracted_jets): * src/Selector.cc (count, operator(), sift): * include/fastjet/GhostedAreaSpec.hh (ctors): * src/ClusterSequence.cc (_initialise_and_run, _decant_options, inclusive_jets, exclusive_jets_up_to, print_jets_for_root, particle_jet_indices): * include/fastjet/ClusterSequence.hh (ctor): * include/fastjet/Selector.hh (ctor): * include/fastjet/JetDefinition.hh (ctors): * include/fastjet/internal/DynamicNearestNeighbours.hh (ctor): * include/fastjet/PseudoJet.hh (reset_PtYPhiM, reset, reset_momentum): added a '_in' suffix to some variables passed as argument to avoid a shadowing gcc warning, and a '_local' suffix for similar local variables. Note that these warnings were anyway harmless as they were shadowing unused methods. * include/fastjet/internal/Voronoi.cc: * src/Voronoi.cc: - removed 'plot' and 'triangulate' (were always 0) - removed unused plot functions (openpl, circle, range, out_bisector, out_ep, out_vertex, out_site, out_triple) - removed unused 'VPoint p' in 'intersect' - fixed missing changes in earlier history * include/fastjet/internal/Voronoi.cc: * src/Voronoi.cc: added a summary of changes compared to the original code by S. O'Sullivan * example/14-groomers.cc: * example/13-boosted_top.cc: * example/12-boosted_higgs.cc: * example/11-filter.cc: * example/09-user_info.cc: * example/08-selector.cc: * example/07-subtraction.cc: * example/06-area.cc: * example/05-eplus_eminus.cc: * example/04-constituents.cc: * example/03-plugin.cc: * example/02-jetdef.cc: * example/01-basic.cc: * example/fastjet_example.cc: * example/fastjet_areas.cc: * example/fastjet_timing_plugins.cc: . removed some unused method parameters . fixed format warnings for fprintf * tools/Filter.cc: * include/fastjet/ClusterSequenceVoronoiArea.hh: * tools/fastjet/tools/BackgroundEstimatorBase.hh: commented out unused method parameters removed extraneous ';' * include/fastjet/NNH.hh: removed some unused method parameters 2011-11-13 Gregory Soyez * src/CompositeJetStructure.cc: * src/JetDefinition.cc: * include/fastjet/CompositeJetStructure.hh: commented out unused method parameters * src/PseudoJetStructureBase.cc: commented out the name of unused parameters in a few methods to remove a compiler warning coming with -Wunused-parameter (and -Wextra) * src/Selector.cc (SelectorWorker): removed the name of unused parameters in a few methods to remove a compiler warning coming with -Wunused-parameter (and -Wextra) 2011-11-12 Gregory Soyez * src/Selector.cc (SelectorWorker): typo in comment * include/fastjet/SharedPtr.hh (SharedPtr): . in the postfix increment and decrement operators, replaced "int unused" by "int" to avoid a compiler warning. Note that this dummy var is just a C++ trick to differentiate the postfix from the prefix operators. . used the prefix operator instead of the postfix one whenever possible 2011-11-12 Gavin Salam * tools/fastjet/tools/Filter.hh: added reference to manual for a simple example of a Filter implementation. * include/fastjet/PseudoJet.hh: added a bunch of shorthands such as has_valid_cs() so as to coincide with table 3. * include/fastjet/SharedPtr.hh: fixed typo in comment. 2011-11-11 Gavin Salam * include/fastjet/ClusterSequence.hh: * src/ClusterSequence.cc: moved main page of doxygen documentation into .cc file to avoid big recompilation at every change. * include/fastjet/Selector.hh: * include/fastjet/PseudoJet.hh: * include/fastjet/SharedPtr.hh: * include/fastjet/PseudoJetStructureBase.hh: commented out unused dummy arguments to avoid compiler warnings. 2011-11-09 Gavin Salam * plugins/PxCone/README: added copy of email from Mike Seymour granting authorization to distribute under GPLv2. 2011-11-08 Gregory Soyez * autogen.sh: * configure.ac: * config.h.siscone.in: *** ADDED *** added the necessary steps to configure/build SISCone directly from the FastJet configure/build system. This has mailny the advantage to reduce the size of the distribution (1.7MB instead of 2.0MB) and save a bit of time during configuration. However it comes at the expense that we have to hardcode the SISCone version in a new configuration (auto)header --- since it would no longer be obtained from SISCone's configure.ac. Therefore, we stick to the old situation and comment out the inclusion of SISCone configuration into FastJet's. 2011-11-07 Gregory Soyez * configure.ac (AC_PROG_FC): when searching for a Fortran compiler, make sure one is actually found or exit with an error message. 2011-11-07 Gavin SALAM + Matteo & Gregory * plugins/SISCone/SISConeSphericalPlugin.cc (run_clustering): * plugins/SISCone/SISConePlugin.cc (run_clustering): jets' user indices are no longer set to the pass from which they come. * include/fastjet/PseudoJet.hh (P): added validated_cluster_sequence() and validated_cluster_sequence_area_base(). 2011-10-31 Gavin SALAM + Matteo * doc/fastjet-doc.tex: - moved strategies into an appendix of their own; we should add timing fig. there - documented deprecation of JetFinder and JD(jet_alg, R, strategy) in relevant appendix - various other small changes up to end of section 3.3; next question is whether to move reco-schemes into an appendix. * include/fastjet/JetDefinition.hh: removed some old commented code * src/PseudoJet.cc (description): fixed typo in default description 2011-10-28 Gregory Soyez & Matteo * doc/fastjet-doc.tex: reworked Section 7 (jet areas): - rephrased slightly the introduction (mostly added a brief usage example) to avoid being too technical - reorganised the description of ClusterSequenceArea to reflect the fact that jet-area information can directly be accessed through PseudoJet. reworked Section 8 (background estim+subtraction): - moved the section about the subtraction higher up (in Section on general usage) - positional dependence: made explicit that rho(jet) and sigma(jet) work for both the JMBGE and the GMBGE, as well as for both techniques (selector-based and rescaling-based) * include/fastjet/ClusterSequenceArea.hh: fixed a typo in the Doxygen comments 2011-10-21 Gregory Soyez * BUGS: mention the release of CGAL-3.9 2011-10-09 Gavin SALAM * include/fastjet/ClusterSequence.hh: changed link to fastjet main page in doxygen main page. * Doxyfile (PROJECT_NUMBER): * doc/fastjet-doc.tex: * configure.ac: switched version over to 3.0.1-devel * plugins/SISCone: switched it back to trunk 2011-10-09 Gregory Soyez & Matteo & Gavin Release of FastJet 3.0.0 2011-10-09 Gavin Salam * src/ClusterSequenceActiveAreaExplicitGhosts.cc (ClustSeqActAreaEG::_post_process): replaced area_4vectors[i] = _jets[i] with _area_4vectors[i].reset_momentum(_jets[i]); so that areas are structure-free (and so they don't mess up the use count, leading to potential memory leaks). Checked this solves the leak found in the 11-filter example. * INSTALL: added a note about the old compilation system not working. * NEWS: updated release date * BUGS: fixed some wording in a few places. * CHECKLIST included a line for checks on the examples. 2011-10-09 Matteo Cacciari * INSTALL: reworked a bit the initial part, updated the list of examples 2011-10-08 Gregory Soyez * TODO: removed done items 2011-10-06 Gregory Soyez * plugins/D0RunICone/D0RunIBaseConePlugin.cc: inverted the order of the include files (this works around an anonymous enum bug in gcc-4.0.1 on Macs) * plugins/SISCone" switched to SISCone 2.0.3 * doc/fastjet-doc.tex: * include/fastjet/config_win.h: * Doxyfile-devel: * Doxyfile: * configure.ac: switched version number to 3.0.0 * plugins/D0RunICone/inline_maths.h: * plugins/D0RunICone/HepEntityI.h: * plugins/D0RunICone/ConeClusterAlgo.hpp: * plugins/D0RunICone/HepEntityIpre96.h: put the d0runi namespace inside the FastJet namespace * plugins/D0RunICone/ConeClusterAlgo.hpp: reverted a misordered #endif and namespace } * include/fastjet/internal/IsBase.hh: fixed a typo in a class name in a doxygen comment * src/genconfig.sh: added the FASTJET_ prefix for the GridJet plugin 2011-09-29 Gavin Salam * tools/*.cc: * tools/fastjet/tools/*.hh: replaced tabs with spaces 2011-09-28 Gavin SALAM + Matteo + Gregory * example/fastjet_areas.cc: * test-script-output-orig.txt: switched "make check" area test over to active area (new ghost placement). * example/07 upwards-*.cc updates: added using namespace fastjet and removed redundant fastjet:: * example/14-groomers.cc: small changes to comments + addition of header * example/11-filter.cc: addition of header 2011-09-28 Matteo Cacciari * example/14-groomers.cc ** ADDED ** added example showing unified use of filtering, trimming, pruning 2011-09-28 Gregory Soyez * NEWS: mentioned libfastjettools 2011-09-27 Gavin Salam * tools/Pruner.cc (Pruner::result): removed extraneous cout. 2011-09-26 Gavin SALAM + Matteo & Gregory * include/fastjet/GhostedAreaSpec.cc: * src/GhostedAreaSpec.cc: added warning for when set_fj2_placement(true) is called. 2011-09-25 Gregory Soyez * tools/JetMedianBackgroundEstimator.cc (set_particles): Bug fixed: simply set _uptodate to false instead of calling reset(). This avoids that in code like jmbge.set_rescaling_class(...); jmbge.set_particles(...)\ the 2nd call resets the rescaling class to NULL (erasing the effect of the 1st one) 2011-09-23 Gavin SALAM + Matteo & Gregory * include/fastjet/ClusterSequence.hh: * src/ClusterSequence.cc: removed old (and objectionable) constructor that took just R rather than a jet_def; also removed set_jet_algorithm and set_jet_def and related _default_jet_algorithm private variable. * include/fastjet/internal/Triangulation.hh: moved the include guards. * tools/Makefile.am: * tools/JHTopTagger.cc: * tools/TopTaggerBase.cc (_cos_theta_W): *** ADDED *** moved the _cos_theta_W(...) call into a new file TopTaggerBase.cc (also modified the .hh files) 2011-09-17 Gavin Salam * src/JetDefinition.cc: * include/fastjet/JetDefinition.hh: moved max_allowable_R value into .cc file to try and resolve problem on karnak. 2011-09-16 Gavin Salam + Matteo * tools/Filter.cc: fixed a bug whereby the recombiner in the internal jet def may point to a default recombiner that gets deleted before retuning the filtered jet to the user; see also the BUGS file for a residual issue in the case of recombiners that delete themselves. * tools/Pruner.cc (and .hh): - added "minimal" constructor that takes a jet_alg (rather than jet_def), automatically sets the R to JetDefinition::max_allowable_R and deduces the recombiner from the jet that is being Pruned. - removed _recursively_mark_as_rejected, since no longer needed. - added a "return true" in _check_explicit_ghosts to fix a bug in the case of jets with pieces, so that areas were not available - fixed a bug whereby internal pruning plugin was being deleted too early * include/fastjet/JetDefinition.hh: * include/fastjet/JetDefinition.cc: changed hard-coded limit for R of 1000 into JetDefinition::max_allowable_R, with extra comments; replaced assertion with throw for when the condition is not satisfied. 2011-09-13 Gavin Salam + Matteo * tools/fastjet/tools/RestFrameNSubjettinessTagger.hh: * tools/fastjet/tools/BackgroundEstimatorBase.hh: * tools/fastjet/tools/JetMedianBackgroundEstimator.hh: * tools/fastjet/tools/GridMedianBackgroundEstimator.hh: small mods and fixes to doxygen * all files: Changed the GPL pointer to be to the website http://www.gnu.org/licenses/ rather than a physical address. Updated the copyright line to make sure Gregory is always included and have the latest date as 2011. 2011-09-12 Gavin Salam + Matteo * tools/fastjet/tools/JHTopTagger.hh: * tools/fastjet/tools/MassDropTagger.hh: small changes to comments * tools/fastjet/tools/Filter.hh: reworked the doxygen documentation. * tools/fastjet/tools/Transformer.hh (class Transformer): rewrote the main doxygen comment, aiming it at users rather than developers. * tools/Pruner.cc: * tools/fastjet/tools/Pruner.hh: - worked on the comments a bit + switched it over to childless_pseudojets(); - moved constructor with dynamic Rcut and zcut to .cc file and asserted that the two pointers are non-zero. - got description working in case of dynamic Rcut and zcut * src/ClusterSequence.cc: * include/fastjet/ClusterSequence.hh: renamed CS::orphaned() -> CS::childless_pseudojets() 2011-09-08 Gregory Soyez * include/fastjet/ClusterSequence.hh: * src/ClusterSequence.cc: added an "orphaned()" member that returns all the objects in the ClusterSequence that have not made it into a jet (i.e. that have no child and are not a recombination with the beam) * src/Selector.cc: * include/fastjet/Selector.hh: added SelectorIsZero that selects PseudoJet's with zero momentum * tools/Pruner.cc (PruningPlugin): when a branch of the internal ClsuterSequence is vetoed, keep it until the point where is has been vetoed (instead of leaving its constituents unclustered) * BUGS: added a mention about the known assertion violation we noticed in CGAL 3.7, 3.8 and 3,9-beta and that will be fixed in CGAL 3.9 2011-09-05 Gregory Soyez * tools/Pruner.cc: added a couple of missing ';' 2011-09-04 Matteo Cacciari * tools/fastjet/tools/Pruner.hh: * tools/Pruner.cc: Some work on the doxygen comments and the description functions 2011-09-02 Gregory Soyez * tools/Pruner.cc: * tools/fastjet/tools/Pruner.hh: . fixed a wrong typedef syntax in Pruner . used the radius of the specified jet definition to do the re-clustering (updated comments accordingly) . used Rcut_factor instead of Rcut in the Pruner. The Rcut is determined from the jet being pruned using Rcut_factor * 2m/pt . replaced the requirement that the jet must have an associated CS by the requirement that the jet must have constituents . added a PrunerStructure that allows access to the rejected constituents and the other jets that may have been found during the re-clustering. . added support for areas (provided the jet being pruned has explicit ghosts) . allowed the Rcut and zcut to be functions of the PseudoJet being pruned 2011-09-02 Gregory Soyez * include/fastjet/RangeDefinition.hh: * tools/RestFrameNSubjettinessTagger.cc: * tools/CASubJetTagger.cc: * tools/fastjet/tools/CASubJetTagger.hh: removed some unnecessary 'fastjet::' 2011-09-01 Gregory Soyez + Matteo * tools/fastjet/tools/Pruner.hh: *** ADDED *** * tools/Pruner.cc: *** ADDED *** * tools/fastjet/tools/Makefile.am: * tools/Makefile.am: added a Pruner transformer (arXiv:0903.5081) using an internal PruningPlugin and PruningRecombiner. Note that the implementation differs from the FastPrune plugin from arXiv:0903.5081: for uniformity we provide Pruner as a Transformer rather than a Plugin (as a consequence, our internal Plugin just reclusters the constituents of a single jet and not the whole event as in FastPrune). * example/11-filter.cc (main): fixed comment+requirement to have at least 3 (and not 2) jets above 5 GeV 2011-08-31 Gavin Salam * fortran_wrapper/fastjetfortran.cc: replaced RangeDefinition with a Selector (is more uptodate and avoids a deprecated warning). * fortran_wrapper/Makefile.alt: changed FC and F77 to refer to gfortran without a path (to avoid risk of picking up one that differs from the user's default choice) * include/fastjet/LimitedWarning.hh: * src/LimitedWarning.cc: added set_default_max_warn(...) static member function; changed interface to warn(warning, ostr) so that ostr must now be a pointer; if it's null there is no output; similarly if the default stream is null there's no output (unless a different stream is requested in an individual warn call). * src/Error.cc: * include/fastjet/Error.hh: changed meaning of a null default stream choice, so that it now suppressed output (as with change to LimitedWarning). 2011-08-29 Gavin Salam * src/LimitedWarning.cc (LimitedWarning::warn): * include/fastjet/LimitedWarning.hh (class LimitedWarning): bug fix: previously when the max warning count was set to zero, there would be one summary entry for each call to the warning. Fixed this by zeroing the summary pointer in the constructor and using its zero status to decide whether to allocate it or not. 2011-08-22 Matteo Cacciari * plugins/D0RunICone/fastjet/D0RunIBaseConePlugin.hh: * plugins/D0RunICone/fastjet/D0RunIConePlugin.hh: * plugins/D0RunICone/fastjet/D0RunIpre96ConePlugin.hh: put "v3.0 or later" in all three files. Perhaps not necessary for the base class, but seems sensible to have the same everywhere. Also modified slightly the doxygen comments. * include/fastjet/Error.hh renamed set_backtrace() -> set_print_backtrace(), fixed its doxygen comment Reworked some doxygen comments, also to reflect the fact that printing of backtrace is "off" by default * include/fastjet/Error.hh * include/fastjet/Error.cc added set_default_stream() for a user-set output stream for errors * include/fastjet/LimitedWarning.cc added ostr.flush() in warn(), so as to get something written to a file even in the event of the program aborting because of an error 2011-08-16 Gavin SALAM + Matteo * include/fastjet/internal/LimitedWarning.hh: * include/fastjet/LimitedWarning.hh: *** ADDED *** * src/LimitedWarning.cc: *** ADDED *** moved LimitedWarning from internal to standard include space; added two static functions: - LimitedWarning::set_default_stream(...) - LimitedWarning::summary(...) // for summary of all warnings issued Also moved the class into the error_handling part of doxygen * changed them to access limited warning through the new location * include/fastjet/Error.hh (Error): typo in comments 2011-08-11 Gregory Soyez * tools/fastjet/tools/TopTaggerBase.hh: fixed some doxygen comments 2011-08-10 Gregory Soyez * configure.ac: * include/fastjet/config_win.h: * doc/fastjet-doc.tex: * Doxyfile: * Doxyfile-devel: moved version number to 3.0beta2-devel 2011-08-10 Gregory Soyez & Matteo & Gavin Release of FastJet 3.0beta1 2011-08-09 Gregory Soyez * plugins/GridJet/fastjet/GridJetPlugin.hh: put the GridJet plugin in the "plugins" documentation module * plugins/D0RunICone/fastjet/D0RunIConePlugin.hh: * plugins/D0RunICone/fastjet/D0RunIpre96ConePlugin.hh: "from version 2.4 onwards" -> "from version 3.0 onwards" 2011-08-09 Gregory Soyez * configure.ac: * include/fastjet/config_win.h: * doc/fastjet-doc.tex: * Doxyfile: * Doxyfile-devel: set the version number to 3.0beta1 in preparation of the release 2011-08-09 Gavin SALAM + Matteo & Gregory * NEWS: prepared the NEWS for the release of FastJet 3.0beta1 2011-08-09 Gavin SALAM * CHECKLIST: started the checklist for the 3.0beta1 release. 2011-08-08 Gregory Soyez * configure.ac: sorted out quotation issues 2011-08-08 Gavin Salam * include/fastjet/PseudoJet.hh: added has_user_info() and has_user_info<...>() functions; (also documented this). 2011-08-08 Gavin SALAM + Matteo & Gregory * plugins/GridJet/fastjet/GridJetPlugin.hh: expanded the documentation a little. 2011-08-08 Gregory Soyez * configure.ac: print "/usr/local" instead of "NONE" as installation dir if none is specified. * configure.ac: * fastjet-config.in: . replaced "echo -e" with the more portable "printf" . added the configuration invocation arguments to the summary printted for fastjet-config --config 2011-08-08 Gavin Salam * tools/fastjet/tools/TopTaggerBase.hh: added note about need to derive top tagger structures also from something related to PseudoJetStructureBase 2011-08-05 Gavin Salam * configure.ac: exchanged order of -lsiscone and -lsiscone_spherical in fastjet-config --libs (spherical first now), because the spherical one needs elements from the standard one. 2011-08-04 Gavin SALAM + Matteo * tools/Makefile.am: * tools/fastjet/tools/Makefile.am: * tools/fastjet/tools/RestFrameNSubjettinessTagger.hh: (renamed) * tools/RestFrameNSubjettinessTagger.hh: (renamed) renamed NSubjettinessTagger -> RestFrameNSubjettinessTagger to avoid confusion with the other NSubjettiness based tagger. 2011-08-03 Gavin SALAM + Matteo * example/11-filter.cc: Added examples of filters with subtraction. Revamped the output. * tools/fastjet/tools/Filter.hh: * tools/Filter.cc: added a set_subtractor(...) option to the Filter. * AUTHORS: * doc/fastjet-doc.tex: a common (and longer) acknowledgements list now present in both files. Still not complete. * src/Selector.cc: * include/fastjet/Selector.hh: renamed SelectorM{Max,Min,Range} -> SelectorMass{Max,Min,Range}, to enhance code readability (as found when handling top tagging examples). * tools/fastjet/tools/JHTopTagger.hh: * tools/JHTopTagger.cc: worked on the documentation so that it corresponds to the new structure; description now include details of the top and W mass selectors if they're present. 2011-08-02 Gavin SALAM + Matteo * tools/fastjet/tools/TopTaggerBase.hh: *** ADDED *** * tools/fastjet/tools/JHTopTagger.hh: * tools/JHTopTagger.cc: experimenting with a structure whereby the JHTopTagger derives from a TopTaggerBase, as requested by Chris Vermilion. * tools/fastjet/tools/BackgroundEstimatorBase.hh: added a virtual destructor that does nothing. * tools/fastjet/tools/Subtractor.hh: * tools/Subtractor.cc: tried moving a const static invalid_rho definition into the .cc file to work around problems on karnak. Changed the value so that it's equal to -infinity. 2011-08-01 Gavin SALAM + Matteo * tools/Subtractor.cc: * tools/fastjet/tools/Subtractor.hh: worked a bit on the documentation and allowed for construction with a constant value of rho. Added a sensible description(). * src/Selector.cc: * include/fastjet/Selector.hh: changed some documentation and argument names in parts related to selector areas. 2011-07-26 Matteo Cacciari * doc/fastjet-doc.tex Moved Internal pseudojet structure to appendix, revised Selectors. * Doxyfile added "Selected additional tools" to Doxygen main page 2011-07-26 Matteo Cacciari * tools/fastjet/tools/MassDropTagger.hh * tools/fastjet/tools/CASubJetTagger.hh * tools/fastjet/tools/NSubjettinessTagger.hh * tools/fastjet/tools/JHTopTagger.hh * tools/fastjet/tools/Filter.hh * tools/MassDropTagger.cc * tools/CASubJetTagger.cc * tools/NSubjettinessTagger.cc * tools/JHTopTagger.cc * tools/Filter.cc commented out _original_jet and function returning it 2011-07-26 Matteo Cacciari * example/07-subtraction.cc * tools/GridMedianBackgroundEstimator.cc * tools/JetMedianBackgroundEstimator.cc * tools/fastjet/tools/BackgroundEstimatorBase.hh * tools/fastjet/tools/JetMedianBackgroundEstimator.hh * tools/fastjet/tools/GridMedianBackgroundEstimator.hh added description() to base class and derived ones. Modified subtraction example accordingly. * tools/fastjet/tools/MassDropTagger.hh * tools/fastjet/tools/CASubJetTagger.hh * tools/fastjet/tools/NSubjettinessTagger.hh * tools/fastjet/tools/JHTopTagger.hh made doxygen comment to description() uniform through the taggers 2011-07-25 Matteo Cacciari * tools/CASubJetTagger.cc * tools/JHTopTagger.cc * tools/MassDropTagger.cc * tools/NSubjettinessTagger.cc * tools/fastjet/tools/CASubJetTagger.hh * tools/fastjet/tools/JHTopTagger.hh * tools/fastjet/tools/MassDropTagger.hh * tools/fastjet/tools/NSubjettinessTagger.hh added original() to all Taggers, like it exists in Filter, as a step to make it uniform across Transformers 2011-07-25 Gregory Soyez * doc/fastjet-doc.tex: . fixed typo, reworked the description of PseudoJet::reset() . inverted 2 class names in footnote 13 to make the text alignemt a bit better. 2011-07-22 Gregory Soyez * include/fastjet/internal/Voronoi.hh: * src/Voronoi.cc: * src/ClusterSequenceVoronoiArea.cc: Renamed Point into VPoint to avoid any potential interference with the fastjet::Point defined in Triangulation.hh (note that both are only used internally) 2011-07-22 Gavin Salam * doc/fastjet-doc.tex: changed last paragraph of 9.1 (it didn't reflect the structure of the many plugins in the following two subsections). Also mentioned the stable_sort in the documentation of the ATLASCone and TrackJet plugins. Also documented delete_recombiner_when_unused(), delete_plugin_when_unused() and reshuffled some parts of the plugin section so that plugin use now comes before explanations about the structure of the plugin class. * tools/fastjet/tools/MassDropTagger.hh: * tools/fastjet/tools/JHTopTagger.hh: * tools/fastjet/tools/CASubJetTagger.hh: * tools/fastjet/tools/NSubjettinessTagger.hh: reowrked some doxygen comments a little. 2011-07-21 Gavin SALAM + Matteo & Gregory * example/fastjet_subtraction.cc: removed deprecated things * NEWS: prepared draft of news for 3.0b1 * include/fastjet/PseudoJet.hh: * tools/fastjet/tools/JetMedianBackgroundEstimator.hh: removed some old commented code. 2011-07-21 Gregory Soyez * fastjet/tools/MassDropTagger.hh: * fastjet/tools/CASubJetTagger.hh: * fastjet/tools/NSubjettinessTagger.hh: * fastjet/tools/JHTopTagger.hh: * JHTopTagger.cc: * MassDropTagger.cc: * CASubJetTagger.cc: Renamed the structure associated with XYZTagger, XYZTaggerStructure (was XYZStructure) * tools/fastjet/tools/JHTopTagger.hh: fixed documentation of the cos_theta_W member 2011-07-21 Gregory Soyez * tools/BackgroundEstimatorBase.cc: * tools/fastjet/tools/BackgroundEstimatorBase.hh: declared the nempty argument of percentile(...) as a double instead of an unsigned int. 2011-07-20 Gavin Salam * tools/fastjet/tools/JHTopTagger.hh: * tools/JHTopTagger.cc: removed the mutable _jet in JHTopTagger; other small changes to details of ways things are written. * include/fastjet/ClusterSequenceWithArea.hh: small change to C-preprocessor warning message 2011-07-20 Gavin SALAM + Matteo * regression-tests/test-all-algs.pl: added gridjet to default checks and also added the relevant checksums. * plugins/GridJet/GridJetPlugin.cc: * plugins/GridJet/fastjet/GridJetPlugin.hh: exchanged rapidity extent and spacing in constructor (spacing now comes second), for consistency with the GridMedianBGE. Added a consistency check that extent>spacing to catch possible wrong order of arguments. * example/fastjet_timing_plugins.cc: added -bkgd:gridmedian option * tools/JetMedianBackgroundEstimator.cc: * tools/fastjet/tools/JetMedianBackgroundEstimator.hh: for the CSAB,Selector constructor exchanged arguments, so it's now Selector,CSAB (that way Selector always comes first). * tools/fastjet/tools/GridMedianBackgroundEstimator.hh: * tools/GridMedianBackgroundEstimator.cc: exchanged ymax and grid_spacing arguments in constructor (grid_spacing now goes first, like the selector goes first elsewhere). Added a consistency check that extent>spacing to catch possible wrong order of arguments. included a check that particles have been set (throw an error otherwise). 2011-07-20 Gregory Soyez * tools/fastjet/tools/JetMedianBackgroundEstimator.hh: * tools/JetMedianBackgroundEstimator.cc: . removed the ctor that sets the jets & the selector . merged the "empty" ctor and the one setting just rho_range (by using an identity range by default) * regression-tests/test-all-algs.pl: * regression-tests/nightly-check.pl: added support for area tests 2011-07-18 Gregory Soyez * Doxyfile: removed inline source and reference relations in class member documentation * tools/fastjet/tools/BackgroundEstimatorBase.hh: * tools/fastjet/tools/JetMedianBackgroundEstimator.hh: * tools/JetMedianBackgroundEstimator.cc: . declared jet_density_class() and rescaling_class() as const . moved rescaling_class() to the base class . marked the density classes as preliminarry in doxygen (+ minor midifocations to doxugen declarations) . added a warning that this is still some preliminary work when one tries to set the density class 2011-07-16 Gavin Salam * regression-tests/test-all-algs.pl (setDefaults): commented out areaConfigs for now, to prevent warnings, which give issues with the nightly check. 2011-07-15 Gavin Salam * regression-tests/test-all-algs.pl (setDefaults): added a bunch of "areaConfigs", indicating how we might run area tests. 2011-07-15 Gregory Soyez & Matteo * tools/fastjet/tools/GridMedianBackgroundEstimator.hh: * tools/GridMedianBackgroundEstimator.cc: added the computation of sigma (and sigma(jet)) * tools/fastjet/tools/JetMedianBackgroundEstimator.hh: * tools/JetMedianBackgroundEstimator.cc: put the same description of rho_range everywhere * tools/fastjet/tools/JHTopTagger.hh: * tools/fastjet/tools/MassDropTagger.hh: * tools/fastjet/tools/Filter.hh: pointed the link to the correct example 2011-07-14 Matteo Cacciari * tools/fastjet/tools/BackgroundEstimatorBase.hh: * tools/BackgroundEstimatorBase.cc: fixed the comment in front of _percentile() 2011-07-14 Gavin Salam * example/fastjet_timing_plugins.cc: added support for areas and background estimation (intended as a prelude to their inclusion in night checks). * src/ClusterSequenceAreaBase.cc: fixed warning message for large -ve area. * tools/fastjet/tools/BackgroundEstimatorBase.hh: * tools/BackgroundEstimatorBase.cc: fixed bug whereby n_empty_jets was not being used in the new percentile determination code; fixed missing bits of fj2 compliance (was present in earlier code, but got lost), moving it all into _percentile; put in the safety checks (for -ve empty area) that were already present in CSAB; fixed large -ve area warning message. 2011-07-13 Gregory Soyez * tools/fastjet/tools/BackgroundEstimatorBase.hh: * tools/BackgroundEstimatorBase.cc: . added support for rescaling . added a bunch of comments . moved BackgroundRescalingYPolynomial from JetMedianBackgroundEstimator * tools/fastjet/tools/GridMedianBackgroundEstimator.hh: * tools/GridMedianBackgroundEstimator.cc: . dosumented the class . implemented support for rescaling (applied on each particles; set_rescaling needs to be called before set_particles) * tools/fastjet/tools/JetMedianBackgroundEstimator.hh: * tools/JetMedianBackgroundEstimator.cc: . moved parts of the code from the header to the source . sorted out come of the comments 2011-07-08 Gavin Salam + Matteo * tools/fastjet/tools/JetMedianBackgroundEstimator.hh: reordered classes so that JMBGE appears first and all the helper ones comes later. Reworked some of the comments a little. 2011-07-08 Gavin Salam * include/fastjet/GhostedAreaSpec.hh: * include/fastjet/ActiveAreaSpec.hh: moved typedef of ActiveAreaSpec into GhostedAreaSpec; that way people who used to get it indirectly still do, but anyone who used the header itself will get a warning, without that warning appearing indirectly from inclusion of other headers. 2011-07-08 Gregory Soyez * example/12-boosted_higgs-new.cc: *** REMOVED *** * example/12-boosted_higgs.cc: *** ADDED *** * example/07-subtraction-new.cc: *** REMOVED *** * example/07-subtraction.cc: *** ADDED *** removed the "-old" of the new versions of the examples * example/12-boosted_higgs.cc: *** REMOVED *** * example/12-boosted_higgs-old.cc: *** ADDED *** * example/07-subtraction.cc: *** REMOVED *** * example/07-subtraction-old.cc: *** ADDED *** appended "-old" to the deprecated examples * tools/BackgroundEstimatorBase.cc: *** ADDED *** * tools/fastjet/tools/JetMedianBackgroundEstimator.hh: * tools/fastjet/tools/GridMedianBackgroundEstimator.hh: * tools/JetMedianBackgroundEstimator.cc: * tools/GridMedianBackgroundEstimator.cc: . moved _percentile and _median_and_stddev to the base class . added 'nempty' support to _percentile . made _median_and_stddev use _percentile * tools/fastjet/tools/Subtractor.hh: Use a BackgroundEstimatorBase * tools/fastjet/tools/BackgroundEstimator.hh: *** REMOVED *** * tools/fastjet/tools/JetMedianBackgroundEstimator.hh: *** ADDED *** * tools/BackgroundEstimator.cc: *** REMOVED *** * tools/JetMedianBackgroundEstimator.cc: *** ADDED *** renamed BackgroundEstimator -> JetMedianBackgroundEstimator * example/Makefile.am: * example/11-boosted_higgs-new.cc: *** REMOVED *** * example/12-boosted_higgs-new.cc: *** ADDED *** * example/11-boosted_higgs.cc: *** REMOVED *** * example/12-boosted_higgs.cc: *** ADDED *** * example/12-filter.cc: *** REMOVED *** * example/11-filter.cc: *** ADDED *** inverted examples 11 ad 12 (so that the two "boosted taggers" examples have consecutive numbers 2011-07-07 Gavin Salam + Matteo * example/13-boosted_top.cc: * tools/JHTopTagger.cc: * tools/fastjet/tools/JHTopTagger.hh: changed default mW to 80.4; reworked some of the comments to help illustrate usage more explicitly; added mW and cost_theta_W_max to description() output. JHTopStructure.W() [etc] now returns a const reference rather than a copy. 2011-07-07 Gregory Soyez * configure.ac: tested a series of autoconf versions. To be on the safe side, set pre-required version number to 2.59 as it is the lowest we could easily find (was 2.57). Note that this only impacts the version used to produce configure. * tools/fastjet/tools/JHTopTagger.hh: worked on the comments * configure.ac: used AC_LANG_TEST(...) to enclose code excerpts (as advised by autoconf) * include/fastjet/JetDefinition.hh: * src/JetDefinition.cc: added delete_plugin_when_unused and delete_recombiner_when_unused for easier memory management * fastjet-config.in: * m4/plugin.m4: * configure.ac: fastjet-config --config now prints a summary of the fastjet configuration * tools/fastjet/tools/JHTopTagger.hh: * tools/JHTopTagger.cc: added a cut on cos(theta_W) directly in the tagger. * example/07-subtraction-new.cc: used BGE::set_particles() + revised some of the comments * tools/fastjet/tools/BackgroundEstimator.hh: * tools/BackgroundEstimator.cc: added support for set_particles 2011-07-07 Gavin SALAM * regression-tests/nightly-check.pl: updated karnak gcc-4.4 tests to 4.4.3 2011-07-06 Gregory Soyez * example/13-boosted_top.cc: *** ADDED *** added an example on how to use the JHTopTagger * tools/JHTopTagger.cc: *** ADDED *** * tools/fastjet/tools/JHTopTagger.hh: *** ADDED *** added an implementation of the Johns Hopkins boosted top tagger 2011-07-06 Gavin SALAM * regression-tests/nightly-check.pl: added option to modify fastjet_timing_plugin compilation options (anything that appeats after a ":" in the "link" options). switched karnak non-shared tests over to -O2 compilation (with gridjet in), to work around the 4.0.1 non-caught throw issue. added output of the URL of the directory (to help with tracking whether we run on trunk or on a branch). fixed issue with -only 0 2011-07-06 Gregory Soyez * include/fastjet/WrappedStructure.hh: included Error.hh 2011-07-05 Gregory Soyez * include/fastjet/CircularRange.hh: * include/fastjet/RangeDefinition.hh: * src/RangeDefinition.cc: declared RangeDefinition and Circular range as deprecated (use Selector and SelectorCircle instead) * example/07-subtraction-new.cc: * example/07-subtraction.cc: ActiveAreaSpec -> GhostedAreaSpec (the former being deprecated) * include/fastjet/ActiveAreaSpec.hh: declared as deprecated * include/fastjet/ClusterSequenceActiveArea.hh: do not include deprecated headers ClusterSequenceWithArea.hh and ActiveAreaSpec * include/fastjet/ClusterSequenceWithArea.hh: removed an unnecessary #ifndef * include/fastjet/Makefile.am: do not install config_win.h (just put it in the distribution) * tools/fastjet/tools/MassDropTagger.hh: * tools/MassDropTagger.cc: warned when the jet being tagged does not come from a Cambridge/Aachen clustering * testsuite/TestPseudoJet.hh (TestBase): added tests of PJ::has_structure_of() * include/fastjet/ClusterSequence.hh: included ClusterSequenceStructure so that CS::StructureType is well-defined and PJ::has_structure_of() works. * include/fastjet/ClusterSequenceWithArea.hh: declared as deprecated 2011-07-05 Gavin SALAM * regression-tests/nightly-check.pl: added --disable-gridjet to the --disable-shared karnak run; also added a --disable-shared option to the g++-4.4 run on karnak. 2011-07-04 Gavin Salam * doc/trial-progs/README: *** ADDED *** * doc/trial-progs/checks-for-3.0b1.cc: *** ADDED *** add the doc/trial-progs directory for internal testing of elements that will go into the documentation. 2011-07-03 Gavin SALAM * regression-tests/nightly-check.pl: -only can now take a comma-separated list. Provided more output in cases where ssh reports failure (including the messages and summary outputs if they exist). 2011-07-02 Gavin SALAM * regression-tests/nightly-check.pl: add -list option to get a list of the different setups that are encoded (together with their index, to facilitate usage of -only) 2011-07-01 Gavin Salam + Matteo * tools/Makefile.am: * tools/fastjet/tools/Makefile.am: * tools/fastjet/tools/BackgroundEstimator.hh: * tools/fastjet/tools/BackgroundEstimatorBase.hh: *** ADDED *** * tools/GridMedianBackgroundEstimator.cc: *** ADDED *** * tools/fastjet/tools/GridMedianBackgroundEstimator.hh: *** ADDED *** Introduced a base class for background estimation, arranged for BackgroundEstimator to derive from it and also added GridMedianBackgroundEstimator (which is what has been used for some of the grid rho tests). * example/fastjet_timing_plugins.cc (main): switched grid_ymax to 4.99999999 to avoid rounding error issues in determining the number of grid cells in y (with R=0.4). * include/fastjet/WrappedStructure.hh: updated the exclusive_subjets_up_to here too. 2011-06-30 Gavin Salam [later, on the train] * src/ClusterSequence.cc: * include/fastjet/ClusterSequence.hh: Wrote an explicit copy constructor, which just uses transfer_from_sequence. Until now, there had been a default copy constructor, which failed to update the structural pointers within the copied jets (so they pointed to the wrong CS, i.e. the original one, and if the original CS went out of scope, the jets from the copy could no longer access their structure). Also modified transfer_from_sequence(...) so as to make its CS argument const. One side effect was that this required _extras to be converted from an auto_ptr to a SharedPtr, because until now the auto_ptr in the original CS was being zeroed as part of an ownership transfer (the call to set _extras from a plugin remains auto_ptr based for now). 2011-06-30 Gavin Salam + Matteo * regression-tests/test-all-algs.pl: added a -verbose option. * test-script-output-orig.txt: added gridjet output. * example/fastjet_timing_plugins.cc: * test-compare.sh: put a FASTJET_ in front of some preprocessor variables (had been missed in earlier tests). * include/fastjet/PseudoJet.hh: * src/PseudoJet.cc (PtYPhiM, PseudoJet::set_cached_rap_phi): can now legitimately be called with -2pi + Matteo + Gregory * m4/plugin.m4 * Doxyfile * src/genconfig.sh * example/makefile.static * example/fastjet_timing_plugins.cc * example/Makefile.am * configure.ac * test-compare.sh * Doxyfile-devel * plugins/GridJet * plugins/GridJet/fastjet * plugins/GridJet/fastjet/GridJetPlugin.hh * plugins/GridJet/fastjet/Makefile.am * plugins/GridJet/makefile.static * plugins/GridJet/Makefile.am * plugins/GridJet/GridJetPlugin.cc * plugins/SISCone/siscone * plugins/makefile.static * plugins/Makefile.am * ChangeLog * experimental/plugins/Makefile * config.h.in Did most of the work of adding the GridJet plugin. Still not functional though. 2011-06-30 Gregory Soyez * tools/fastjet/tools/Filter.hh: * tools/Filter.cc: For situations with C/A subjets with rho==0 and without explicit ghosts, removed the "area" support since one cannot trust the area of subjets without explicit ghosts. * Doxyfile: * Doxyfile-devel: fixed header path in the doc 2011-06-30 Gavin Salam + Matteo & Gregory * doc/fastjet-doc.tex: * src/ClusterSequenceStructure.cc * src/PseudoJet.cc * src/ClusterSequence.cc * src/PseudoJetStructureBase.cc * include/fastjet/ClusterSequenceStructure.hh * include/fastjet/PseudoJet.hh * include/fastjet/ClusterSequence.hh * include/fastjet/PseudoJetStructureBase.hh added exclusive_subjets_up_to(int) to CS & PJ, replaced exclusive_subjets(int) with exclusive_subjets_up_to(int) in CSS and PJSB and added exclusive_jets_up_to(int) to CS. We now consistently have the behaviour that exclusive_subjets(int) and exclusive_jets(int) throw errors if you request more subjets than there are available particles; exclusive_subjets_up_to(int) and exclusive_jets_up_to(int) in this case just return all available particles. * src/FunctionOfPseudoJet.cc: * include/fastjet/FunctionOfPseudoJet.hh: removed the operator>(FOPJ &, cut) [etc] functions for now. 2011-06-30 Gregory Soyez * tools/Filter.cc: for rho!=0, if the jet has support for area but has no explicit ghosts, do not compute the areas for the filtered elements (Note that this is true when re-clustering is needed, for C/A filtering, area support for the filtered elements is inherited from the original cluster sequence. 2011-06-29 Gregory Soyez * tools/Filter.cc: - added support for recombination schemes - improved various tests (including caching the pieces) 2011-06-29 Gavin SALAM * regression-tests/nightly-check.pl: got compilation of "external" program to use CXXFLAGS and also arranged for icpc to have flags to make it use the gcc34 stdlib (as suggested by Gregory). 2011-06-29 Gregory Soyez * tools/fastjet/tools/Filter.hh: * tools/Filter.cc: . added support for jet areas to the subjets for the case where the parent jet has area support and rho=0 . added support for subtraction for composite jets * include/fastjet/Selector.hh: * src/Selector.cc: added support for &= and |= 2011-06-29 Gavin SALAM * regression-tests/nightly-check.pl: removed icpc checks (issues with gcc-4.6.0 STL), updated CGAL_DIR 2011-06-29 Gregory Soyez * tools/fastjet/tools/BackgroundEstimator.hh: * tools/BackgroundEstimator.cc (_median_and_stddev): same modification as below * src/ClusterSequenceAreaBase.cc: * include/fastjet/ClusterSequenceAreaBase.hh: dealt with a potential overflow when the estimated number of empty jets becomes large and negative: - we issue a warning when n_empty < -pt_over_areas_size/4.0 - we make sure int_nj_median <= pt_over_areas_size-2 with int pt_over_areas_size = pt_over_areas.size(); this avoids the issue of subtraction and negation operations on unsigned int, which give nonsense, and also eliminates inappropriate warnings about empty areas being too negative. (imported from FastJet 2.4.4) 2011-06-28 Gregory & Thiago Soyez * include/fastjet/internal/Voronoi.hh: * src/Voronoi.cc:0000000000000000000000000000000000000000000000000000 imported the fixes to the Fortune/O'Sullivan code for the Voronoi diagram generator from the fastjet-2.4.X (2.4.4) branch: - dealt with nearly-degenerate parent points in "intersection" - handled coniciding particles (assign the full cell to the first of the coinciding particles + print a warning). - solved an overflow issue. * regression-tests/test-all-algs.pl: updated the reference results using "stable_sort" * BUGS: * plugins/ATLASCone/Jet.hh: * plugins/TrackJet/TrackJetPlugin.cc: used stable_sort instead of sort to avoid potential issue for "equal cases" (see "Other issues to be aware of", point 2 in BUGS). Note that this would solve the issues in BUGS but would still make the result dependent on the ordering of the particles in case of a degeneracy. 2011-06-28 Gavin Salam * regression-tests/test-all-algs.pl: updated this so that it looks for data file in the correct place on cern mac. 2011-06-28 Gregory Soyez * include/fastjet/internal/LimitedWarning.hh: put the LimitedWarning class in the fastjet namespace 2011-06-28 Gavin SALAM * src/GhostedAreaSpec.cc (GhostedAreaSpec): fixed non-initialisation of _fj2_placement in one of the several constructors. 2011-06-23 Gavin Salam * regression-tests/test-all-algs.pl: $refResults{$name} can now be a reference to an array of valid checksum results or a single checksum result. Exploited this for the trackjet 1000 run, including the result corresponding to the new recombination code (checked manually that differences are just at the level of rounding errors). 2011-06-21 Gavin Salam * example/fastjet_areas.cc: made a call set set_fj2_placement(true) so that make check continues to work. * include/fastjet/GhostedAreaSpec.hh: * src/GhostedAreaSpec.cc: Changed default ghost placement so that - number of phi and rapidity intervals rounded to nearest integer (rather than up, which is less stable) - rapidities offset by sqrt(area)/2 so that total area of ghosts matches 2*rapmax. - phi placed sensibly (i.e. no longer reproduce funny FJ2 phi definition) Old behaviour can be obtained by calling set_fj2_placement(true). The new behaviour produces ghosts that should match nicely onto centres of the GridJet tiles. * src/JetDefinition.cc (DefaultRecombiner::preprocess): modified some of the preprocessing code for non-E-scheme clustering and also got the recombination code to use reset_PtYPhiM; checked that results don't change. * src/ClusterSequenceActiveAreaExplicitGhosts.cc (ClustSeqActAreaEG::_post_process): tried to avoid some temporary PJs, but not clear this helps much. * include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh: added an extra couple of reserve statements, that give some speed gain in tests. * src/PseudoJet.cc * include/fastjet/PseudoJet.hh (PseudoJet::reset_momentum): added reset_momentum(const PJ & ); added PseudoJet::reset_momentum_PtYPhiM(...), PseudoJet::reset_PtYPhiM(...), which can bring speed advantages in some cases (e.g. recombiner). 2011-06-20 Gavin Salam * include/fastjet/PseudoJet.hh: introduced a new constructor that takes a bool as an argument; its value is ignored, while but its presence indicates that there should be no initialisation of anything other than the shared pointers. * src/JetDefinition.cc (DefaultRecombiner::recombine): replaced pab=pa+pb with pab.reset(x,y,z,E), which gives some speed gain when this is a time-critical step (a factor of 1.2 to 1.7 in tests of CCN32-83). Also made use of the non-initialising constructor for the temporary result variable, to gain a few more percent in speed. * src/JetDefinition.cc (DefaultRecombiner::preprocess): fixed this to use reset_momentum for non-E schemes (more efficient + touches neither user index nor user info). 2011-06-15 Gavin Salam * include/fastjet/SharedPtr.hh: speeded up the constructor from another SharedPtr. 2011-06-14 Gregory Soyez * src/Voronoi.cc: - fixed potential overflow issue when computing buckets in the hash: we compare the position to the boundaries before making the conversion to an int (avoids potential overflow issues) - fixed completion test in the main loop (if there were still some events to be processed in the priority queue after the last site was considered, the previous version was stopping, leaving an incomplete VD) 2011-06-05 Gavin Salam * tools/fastjet/tools/BackgroundEstimator.hh: rho(jet) was taking a copy rather than a const reference to the jet. In the comments to set_rescaling_class, mentioned the BackgroundRescalingYPolynomial class as an example, and in the docuementation for the latter, included the rapidity dependence that we've been using the LHC7 Pythia8 4C tune 2011-06-03 Gregory Soyez & Gavin * NEWS: * include/fastjet/config_win.h (FASTJET_PACKAGE_STRING): * configure.ac: * doc/fastjet-doc.tex: * Doxyfile-devel (PROJECT_NUMBER): * Doxyfile (PROJECT_NUMBER): switched to version number 3.0beta1-devel 2011-06-03 Gregory Soyez & Gavin Release of FastJet 3.0alpha3 2011-06-03 Gregory Soyez * NEWS: put the v3.0alpha3 release date * doc/fastjet-doc.tex: * configure.ac: * Doxyfile: updated the version number * Doxyfile-devel: updated the version number; enabled the search engine * include/fastjet/config_win.h: updated for v3.0alpha3 * example/11-boosted_higgs-new.cc: explicitly set the recombiner to use by the filter * tools/Filter.cc (_finalise): do not reset the user and clust_seq_index of the result of the Filter to those of the original jet 2011-06-03 Gavin Salam * doc/fastjet-doc.tex: sorted out documentation of the subtraction (referring readers to the relevant example). * tools/fastjet/tools/Transformer.hh (class Transformer): clarified some comments * README: mods for 3.0, including updated references, mention of new directories, etc. 2011-06-03 Gregory Soyez * example/Makefile.am: * example/11-boosted_higgs-new.cc: *** ADDED *** added a new version of the boosted Higgs example using the new available tools: MassDropTagger and Filter * example/12-filter.cc: take the 2nd and 3rd jets for the composite-jet example rather than the two hardest * BUGS: added a comment about potential issues with plugins relying on Et ordering of the input particles (due to the undefined behaviour of sort(...) for equal entities). This applies for the TrackJet plugin, for which it happens when 2 particles have exactly the same Et (so it should not be too much of an issue for the final jets); and for the ATLAS cone plugin where the result could be affected in some situations (since 2 particles with an difference in Et < 0.001 are considered equal) * plugins/ATLASCone/JetConeFinderTool.cc: added a comment about an instability in the ATLAS stable cone search due to the Et ordering 2011-06-03 Gavin Salam * example/12-filter.cc: RfiltDyn -> DynamicRfilt, which now takes two arguments (Rmax, deltaR_factor). * example/07-subtraction.cc: * example/07-subtraction-new.cc: changes to comments and default values * example/09-user_info.cc: changes to comments * include/fastjet/PseudoJet.hh: changes to comments + plus addition of delta_R(other) member 2011-06-03 Gregory Soyez * plugins/Makefile.am (DIST_SUBDIRS): removed the usage examples, since they are mostly covered by the examples * include/fastjet/JetDefinition.hh: * src/JetDefinition.cc (have_same_recombiner): have_same_recombiner -> has_same_recombiner * include/fastjet/JetDefinition.hh: * src/JetDefinition.cc (have_same_recombiner): moved in jet definition: JetDefinition::have_same_recombiner(other_jd) 2011-06-02 Gregory Soyez & Gavin * include/fastjet/WrappedStructure.hh: throws an error if constructed from an empty (NULL) structure * tools/Filter.cc (_recursively_check_ca): * src/ClusterSequence.cc (contains): * src/ClusterSequenceStructure.cc: * src/PseudoJet.cc: * include/fastjet/WrappedStructure.hh: * include/fastjet/ClusterSequenceStructure.hh: * include/fastjet/PseudoJetStructureBase.hh: * include/fastjet/PseudoJet.hh: has_validated_cluster_sequence() -> has_valid_cluster_sequence() 2011-06-02 Gavin Salam & Gregory * NEWS: tried to compactify it. * include/fastjet/FunctionOfPseudoJet.hh: worked on documentation * src/JetDefinition.cc (DefaultRecombiner::recombine): user_index used to be set to 0 on recombination. This should be considered a bug (dates to 27 November 2006 and was never updated to reflect the default user index of -1 that was set on 24 February 2007. The user index from recombination is now the default that comes out of addition / initialisation (i.e. -1). 2011-06-02 Gregory Soyez * src/CompositeJetStructure.cc: * include/fastjet/CompositeJetStructure.hh: get the scalar area and its error from the pieces rather than caching it + added support for is_pure_ghost (true if all pieces are). * tools/MassDropTagger.cc: * tools/NSubjettinessTagger.cc: returned an empty PseudoJet when the tagger fails 2011-06-02 Gavin Salam * testsuite/run_tests.cc: * testsuite/TestSubStructure.hh: *** ADDED *** added some tests of CASubJetTagger and MassDropTagger * testsuite/TestBase.hh: verify function all return a boolean now; verify_equal for PseudoJets takes an option to ignore the substructure; and added a specific verify_null for PseudoJets that checks == 0 * tools/CASubJetTagger.cc: * tools/fastjet/tools/CASubJetTagger.hh: made CASubJetTagger::JetAux private and updated some comments; got rid of the mutable member and cleaned up some behaviour (including correct failure on jet that should not be tagged). Changed the default scale to be jade (also put a non-zero z_threshold). Changed error -> warning when alg passed is not C/A. 2011-06-02 Gregory Soyez * doc/fastjet-doc.tex: added a table corresponding to the structure associated with a PseudoJet for different types of PseudoJet. * configure.ac: * plugins/Makefile.ac: * plugins/usage_examples: *** REMOVED *** removed usage_example for plugins (we have some examples in the example dir!) 2011-06-02 Gregory Soyez * NEWS + RoadMap: included changes up to here in the NEWS. updated the RoadMap with open questions/tasks before 3.0a3 * tools/fastjet/tools/CASubJetTagger.hh: added the StructureType (typedef'ed to CASubJetStructure) 2011-06-01 Gregory Soyez * src/ClusterSequence.cc (contains): instead of testing if jet structure shared pointer is equal to the ClusterSequence one, compare directly the pointer to the cluster sequence itself. This would work also with the wrapped structure. * tools/fastjet/tools/CASubJetTagger.hh: *** ADDED *** * tools/CASubJetTagger.c: *** ADDED *** * tools/fastjet/tools/Makefile.am: * tools/Makefile.am: added a tagger searching for a maximal scale (distance) in a Cambridge/Aachen cluster sequence history * include/fastjet/WrappedStructure.hh: *** ADDED *** * include/fastjet/Makefile.am: added a wrapper around another structure (makes feasible the addition of extra features to a structure while keeping sharing the memry of the wrapped structure) 2011-05-31 Gregory Soyez * tools/Filter.cc (_finalise): do not set the structure share pointer at the end (this is already done by the call to join() and would lead to a memory problem) * include/fastjet/Selector.hh: * src/Selector.cc: removed SelectorIsZero (not needed now + could introduce some confusion) 2011-05-30 Gregory Soyez * tools/fastjet/tools/MassDropTagger.hh: relaxed the input condition (has_parents is the only thing we really use/need) * tools/Filter.cc: used has_validated_cluster_sequence instead of has_associated_cs when apropriate * include/fastjet/PseudoJet.hh: * src/PseudoJet.cc: . adapted to the new has_associated_cs vs. has_validated_cs . adapted to the argument added to has_pieces (in the structure) . pieces() now relies entirely on the implementation in the structure (before it was making sire that the structure had support for pieces and throwing an error otherwise) * include/fastjet/CompositeJetStructure.hh: * src/CompositeJetStructure.cc: . adapted to the additional argument in has_pieces() . considered pieces without constituents as their own constituent. This means that except for composite jets with no pieces (for which constituents() will return an empty vector) all composite jets have constituents. constituents() will recurse into pieces that have constituents support. * include/fastjet/ClusterSequenceStructure.hh: * src/ClusterSequenceStructure.cc: . pieces() for jets associated with a ClusterSequence will now return the jets parent's (or an empty vector if the jet has no parents). has_pieces() would return true in the first case and false in the second. . adapted to the new has_associated_cs vs. has_validated_cs * include/fastjet/PseudoJetStructureBase.hh: . added has_validated_cluster_sequence(). Now, has_associated_cluster_sequence() just check if the structure is associated with a CS. It no longer check if it is valid. The added method is the one that also checks if it is valid. That way we can disentangle between jets with no associated cluster sequence and jets for which the cluster sequence has gone out of scope . added a reference argument to 'has_pieces()' * src/PseudoJetStructureBase.cc: slightly modified the messages for thrown errors * tools/MassDropTagger.cc: * tools/MassDropTagger.hh: added support for user-defined recombiners (in the tagged jets) * src/JetDefinition.cc (have_same_recombiner): * include/fastjet/JetDefinition.hh: added a test that different jet definitions share the same recombiner * tools/fastjet/tools/MassDropTagger.hh: * tools/MassDropTagger.cc: used the parent ClusterSequence recombiner to build the final composite jet * tools/Filter.cc: * tools/MassDropTagger.cc: * tools/NSubjettinessTagger.cc: used the non-const access to the structure to build the final jet more transparently * tools/fastjet/tools/MassDropTagger.hh: * tools/fastjet/tools/NSubjettinessTagger.hh: removed the "mutable" qualifier for the structure data (no longer needed with the non-const access to the * src/PseudoJet.cc: * include/fastjet/PseudoJet.hh: added structure_non_const_ptr() to get a "write" access to the PseudoJet's underlying structure. Only use this if you know what you are doing! * src/JetDefinition.cc (join): avoided the risk that the recombiner does not handle properly plus_equal for uninitialised jets. * include/fastjet/CompositeJetStructure.hh: added a templated version of join (as the first one, for use together with structures derived from CompositeJetStructure) with support for an external recombination scheme * tools/Transformer.cc: * tools/Subtractor.cc: * tools/NSubjettinessTagger.cc: * tools/MassDropTagger.cc: * tools/Filter.cc: * tools/BackgroundEstimator.cc: * tools/fastjet/tools/Transformer.hh: * tools/fastjet/tools/Subtractor.hh: * tools/fastjet/tools/NSubjettinessTagger.hh: * tools/fastjet/tools/MassDropTagger.hh: * tools/fastjet/tools/Filter.hh: * tools/fastjet/tools/BackgroundEstimator.hh: * tools/fastjet/tools/Boost.hh: renamed 'apply()' into 'result()' * include/fastjet/FunctionOfPseudoJet.hh: renamed 'apply()' into 'result()' * include/fastjet/PseudoJet.hh: * srcPseudoJet.cc: added a comparison (== and !=) between a PseudJEt and a constant (double). It tests if a PseudoJet has zero momentum (the operator == can only be called with a zero double value, an error is thrown otherwise) 2011-05-26 Gregory Soyez * src/FunctionOfPseudoJet.cc: *** ADDED *** * include/fastjet/FunctionOfPseudoJet.hh: added a series of Selectors implementing ordering between a FunctionOfPseudoJet and a double. * src/Selector.cc: * include/fastjet/Selector.hh: added a SelectorIsZero selecting zero PseudoJet * tools/fastjet/tools/Filter.hh: * tools/Filter.cc: * example/12-filter.cc: renamed FilteredJetStructure into FilterStructure * example/09-user_info.cc: removed unneeded header * example/12-filter.cc: typos in comments * include/fastjet/CompositeJetStructure.hh: * include/fastjet/PseudoJet.hh: * include/fastjet/JetDefinition.hh: * src/CompositeJetStructure.cc: * src/PseudoJet.cc: * src/JetDefinition.cc: join(pieces, Recombiner*) has been split into a join(pieces) in PseudoJet.(hh,cc) and a join(pieces, Recombiner&) in JetDefinition.(hh,cc). The advantage of this is that an end-user that want to use join does not explicitly need to include any header. If he wants the "basic" version then PseudoJet should anyway already be available, and if he wants the version with the recombiner then JetDefinition should already have been included. 2011-05-20 Gregory Soyez * src/PseudoJet.cc (has_area): we were imposing an associated cluster sequence then calling the underlying structure for area. This is overdoing it: just checking if there is a structure and if it has area is what we need (we may have area support in jets wo an associated ClusterSequence) * example/09-user_info.cc: included the CompositeJetStructure header * src/PseudoJet.cc: * src/CompositeJetStructure.cc: * include/fastjet/PseudoJet.hh: * include/fastjet/CompositeJetStructure.hh: added support for a user-specified recombiner in join(...). Since this requires the inclusion of JetDefinition.hh (for JetDefiniton::Recombiner), we have moved the declaration of join() in CompositeJetStructure.{hh,cc}. One thus needs to include that header (on top of PseudoJet.hh) if one needs join(...). The computation of the area (when applicable) is done in the constructor of CompositeJetStructure and cached (as for areas in ClusterSequenceArea). * example/11-boosted_higgs.cc: In the recombiner, considered negative user indices as 0 (particles with a default user index, such as potential ghosts added to the computation, should not be considered as b-tagged) * tools/Filter.cc (_check_ca): slightly changed the coding style. added a safety check in case one passes a composite jet with 0 pieces 2011-05-19 Gavin Salam * src/ClusterSequence.cc (transfer_from_sequence): put in protection to make sure transfer_from_sequence will throw an error if the CS deletes_self_when_unused (which would cause complications we don't want to worry about right now). 2011-05-19 Gregory Soyez * tools/Filter.cc: added the condition that all the pieces must share the same cluster sequence for the C/A simplification to be applicable. * tools/Filter.cc: * tools/fastjet/tools/Filter.hh: improved the test for the simple CA trick: when the jet is made of pieces, we ask that the maximal distance between the pieces should not be smaller than the filtering radius. If that requirement fails, we just recluster all the constituents * example/12-filter.cc: fixed a bug in the dynamic filter case (max(Rbb,0.3) was implemented instead of min(Rbb,0.3)) * tools/NSubjettinessTagger.cc: passed a pointer to the boost transformation rather than a reference * src/ClusterSequence.cc (transfer_from_sequence): * include/fastjet/ClusterSequence.hh: merged the 2 versions of transfer_from_sequence into a single one taking a pointer to a FunctionPOfPseudoJet (instead of a reference) which is NULL by default. made the implementation a bit more robust in case action_on_jets messes up with the structural information * tools/Makefile.am: * tools/Transformer.cc: *** REMOVED *** no longer needed (empty file) * tools/fastjet/tools/Transformer.hh: set apply() and description() as purely virtual: one has to implement them in derived classes * include/fastjet/FunctionOfPseudoJet.hh: removed the virtual for operator(). This highlights the fact that apply() is the one to be overloaded. 2011-05-18 Gavin Salam * tools/fastjet/tools/NSubjettinessTagger.hh: * tools/NSubjettinessTagger.cc: small changes to comments * include/fastjet/FunctionOfPseudoJet.hh: typos + other small changes in comments * src/ClusterSequence.cc (ClusterSequence::transfer_from_sequence): typo in comments * tools/MassDropTagger.cc: slight reworking of some comments * tools/fastjet/tools/MassDropTagger.hh: fixed the descriptions of mu() and y() for MassDropStructure * tools/fastjet/tools/BackgroundEstimator.hh: typos in comments * testsuite/TestPseudoJet.hh (class TestPJCSaccess): added a class to help help maintain consistency of behaviours wrt constituents etc. once the CS goes out of scope 2011-05-18 Gregory Soyez * doc/fastjet-doc.tex (algorithms): . added a description of SelectorIdentity and SelectorIsPureGhost . put the correct ref to FunctionOfPseudoJet<> in the documentation of BackgroundEstimator . documented the Filter . started to document the boosted taggers * tools/NSubjettinessTagger.cc: made sure that the subjets returned as the pieces of the result refer to the ClusterSequence boostedback in the lab frame * example/Makefile.am: . added the example illustrating the "new" subtraction . updated the comments * example/07-subtraction-new.cc: made subtractor take a pointer to the background estimator * tools/MassDropTagger.cc: * tools/NSubjettinessTagger.cc: * example/12-filter.cc: adapted to the renaming mentioned just below. * include/fastjet/PseudoJet.hh: renamed 'has_properties_of' -> 'has_structure_of' and 'extra_properties' -> 'structure_of'. This is hopefully more indicative of the fact that it deals with the structure of the jet. 2011-05-17 Gavin Salam * tools/fastjet/tools/MassDropTagger.hh: tiny change to comment. 2011-05-17 Gregory Soyez * doc/fastjet-doc.tex (algorithms): started to document the Transformer's; added FunctionOfPseudoJet<> as an appendix. * tools/fastjet/tools/Transformer.hh (>): added a missing "virtual" in Transformer 2011-05-17 Gavin Salam * tools/Filter.cc (Filter::apply): compactified the apply(...) code somewhat, making use of Selector::sift(...). 2011-05-17 Gregory Soyez * tools/fastjet/tools/Subtractor.hh: * tools/Subtractor.cc: reinserted the change made by Gavin on May 14th and somehow lost during the insertion of FunctionOfPseudoJet<>. Checked that the rest of the modifications are OK. 2011-05-16 Gregory Soyez * tools/fastjet/tools/BackgroundEstimator.hh: * tools/BackgroundEstimator.cc: replaced BackgroundDensityBase and BackgroundRescalingBase by FunctionOfPseudoJet * tools/fastjet/tools/MassDropTagger.hh: * tools/fastjet/tools/NsubjettinessTagger.hh: updated the info about what is included in the associated structure * tools/NSubjettinessTagger.cc: kept the information about the internal cluster sequence (boosted back to the lab frams) * tools/NSubjettinessTagger.cc: *** ADDED *** * tools/fastjet/tools/NSubjettinessTagger.hh: *** ADDED *** added a tagger using 2-subjettiness in the rest-frame of the fat jet * tools/MassDropTagger.cc: *** ADDED *** * tools/fastjet/tools/MassDropTagger.hh: *** ADDED *** added a tagger based on the mass-drop criterion * tools/fastjet/tools/Boost.hh: *** ADDED *** added a couple of classes (FunctionOfPseudoJet) with the action of boosting and unboosting a PseudoJet * src/ClusterSequence.cc: * include/fastjet/ClusterSequence.hh: added a version of transfer_from_sequence() that takes, as a second argument, a FunctionOfPseudoJet that would be an action applied on all the jets of the cluster sequence after the transfer. * include/fastjet/CompositeJetStructure.hh: added a template version of join() to help create composite jets with a Structure derived from CompositeJet Structure. * tools/fastjet/tools/Makefile.am: * include/fastjet/Makefile.am: * tools/fastjet/tools/Transformer.hh: * include/fastjet/FunctionOfPseudoJet.hh: *** ADDED *** * tools/fastjet/tools/FunctionOfPseudoJet.hh: *** DELETED *** moved FunctionOfPseudoJet<> to the core of FastJet. made apply() purely virtual to make sure one overloads it in derived classes. * tools/fastjet/tools/Subtractor.hh: * tools/fastjet/tools/Filter.hh: declared the description as virtual (more consistent) * tools/Subtractor.cc: * tools/fastjet/tools/Subtractor.hh: overloaded apply instead of operator() to fit the new Transformer. * example/12-filter.cc: added an example of the specification of a dynamic Rfilt * tools/Filter.cc: * tools/fastjet/tools/Filter.hh: . added a ctor specifying just Rfilt (Cambridge/Aachen used by default) . added a ctor with Rfilt specified using a FunctionOfPseudoJet. In that case, Rfilt will be computed dynamically as a function of the jet being filtered * tools/fastjet/tools/Transformer.hh: Declared Transformer as a FunctionOfPseudoJet i.e. a special function that returns a PseudoJet from a PseudoJet. This also has a description and a structure type as before. * tools/fastjet/tools/Makefile.am: * tools/fastjet/tools/FunctionOfPseudoJet.hh: *** ADDED *** added a generic FunctionOfPseudoJet class allowing to define a function returning a result ot type TOut from a PseudoJet input. These functions have a virtual member 'apply()' that one can overload to define any function. The operator() will have the same effect as apply when called from a single object but can also be called on a vector of objects. * include/fastjet/CompositeJetStructure.hh: added area support for CompositeJet. Note that the area error is estimated (conservatively) as the sum of the errors on each of the pieces. 2011-05-14 Gavin Salam * tools/Subtractor.cc: * tools/fastjet/tools/Subtractor.hh: subtractor now takes a pointer to a bge * tools/fastjet/tools/BackgroundEstimator.hh: fixed bug in BackgroundJetPtMDensity return value (excess sqrt) * include/fastjet/PseudoJet.hh: corrected typo in first sentence of doc... * Doxyfile (SEARCHENGINE): turned on the javascript-based search -- we should play with it a little to see how it performs, especially over a web connection. * doc/fastjet-doc.tex: new documentation section for the BackgroundEstimator (and some mods to the subdivision of the areas section as a whole) * tools/fastjet/tools/BackgroundEstimator.hh: worked on some comments and (for now) commented out all the alternative calls to set_rescaling_class 2011-05-13 Gavin Salam + Gregory * NEWS: prepared a summary of what we've done so far towards 3.0b1 * RoadMap: a series of updates reflect needs for 3.0b1 2011-05-13 Gregory Soyez * include/fastjet/CompositeJetStructure.hh: added area support for CompositeJet. Note that the area error is estimated (conservatively) as the sum of the errors on each of the pieces. * tools/Subtractor.cc: * tools/fastjet/tools/Subtractor.hh: overloaded apply instead of operator() to fit the new Transformer. * example/12-filter.cc: added an example of the specification of a dynamic Rfilt * tools/Filter.cc: * tools/fastjet/tools/Filter.hh: . added a ctor specifying just Rfilt (Cambridge/Aachen used by default) . added a ctor with Rfilt specified using a FunctionOfPseudoJet. In that case, Rfilt will be computed dynamically as a function of the jet being filtered * tools/fastjet/tools/Transformer.hh: Declared Transformer as a FunctionOfPseudoJet i.e. a special function that returns a PseudoJet from a PseudoJet. This also has a description and a structure type as before. * tools/fastjet/tools/Function.hh: *** ADDED *** added a generic Function class allowing to define an object returning a result ot type TOut from an object of type TIn. Defined FunctionOfPseudoJet allowing to define functions of PseudoJet returning any desired type. These functions have a virtual member 'apply()' that one can overload to define any function. The operator() will have the same effect as apply when called from a single object but can also be called on a vector of objects. * tools/BackgroundEstimator.cc: * tools/fastjet/tools/BackgroundEstimator.hh: Fixed policy regarding constness and selectors taking (or not) a reference: - rho(),sigma(): const; throws for selectors taking a reference - rho(jet),sigma(jet): non-const; (allowed too for selectors not taking a reference) - mean_area(),...: const: return the result of the last computation, do the computation if there's none available, in the last case throws an error if there is a selector with an unset reference. All const calls leave the behaviour unchanged (only mutable cached data could change) * src/Selector.cc (SelectorWorker): fixed an issue with setting the reference for negated selectors --- set_reference was missing in SW_Not. 2011-05-13 Gavin Salam * include/fastjet/PseudoJet.hh: added operator==(const PseudoJet& a, const PseudoJet& b) and corresponding !=. * tools/fastjet/tools/BackgroundEstimator.hh: * tools/BackgroundEstimator.cc: added set_jets, set_cluster_sequence, set_selector calls and allowed for constructors in which the jets/CS or selector are unset. * tools/fastjet/tools/BackgroundEstimator.hh: a few games with the range of set_rescaling_class(...) calls * src/ClusterSequence.cc: * include/fastjet/ClusterSequence.hh: added CS::_set_structure_shared_ptr(jet), to make sure use count is kept updated any time a jet is associated with the CS internally (all calls to jet.set_structure_shared_ptr(...) were correspondingly replaced). This should ensure that the delete_self_when_unused() call will work also with CSArea etc. without mods all over the place. * src/ClusterSequenceStructure.cc: added a check in destructor that when _associated_cs is not NULL, it is only deleted if CS::will_delete_self_when_unused() is true. Previously we relied on the CS setting the associated_cs pointer to null in its destructor. But if the CS constructor throws an error, then ~CS never gets called and this extra check becomes necessary. * src/ClusterSequenceAreaBase.cc (subtracted_jet): just added a comment about the set_structure call 2011-05-12 Gregory Soyez * tools/fastjet/tools/Filter.hh: * tools/Filter.cc: got rid of the internal_cs in FilteredJetStructure and at various places in the Filter by using the new CS::delete_self_when_unused(). 2011-05-12 Gavin Salam * src/Error.cc: turned off backtrace by default * src/ClusterSequenceStructure.cc (ClusterSequenceStructure): * include/fastjet/ClusterSequenceStructure.hh (PseudoJetStructureBase): * include/fastjet/ClusterSequence.hh: * src/ClusterSequence.cc: added CS::delete_self_when_unused() allowing FastJet to look after deletion of a CS when there are no longer any jets or other objects associated with it. (+small fix to SharedPtr) 2011-05-12 Gregory Soyez * include/fastjet/SharedPtr.hh: added the option to force the count to a user-specified value (USE AT YOUR OWN RISKS). Note that this is certainly not in the standard shared_ptr specification. 2011-05-12 Gavin Salam * include/fastjet/PseudoJet.hh (class PseudoJet): changed the default constructor so that it provides a sensibly-initialised PseudoJet (with zero momentum). No speed penalty and some significant speed improvement on some systems. * testsuite/PJtiming.cc: *** ADDED *** small program for testing timing of default PseudoJet constructor * testsuite/TestBase.hh: * testsuite/TestPseudoJet.hh: * testsuite/run_tests.cc: a bunch more tests, including one that found the _user_info not being reset by reset_indices. * include/fastjet/PseudoJet.hh (reset_indices): ensured that _user_info also gets reset 2011-05-12 Gregory Soyez * include/fastjet/internal/Makefile.am (fastjetincludeinternal_HEADERS): * include/fastjet/internal/DerivedPseudoJetHelper.hh: *** REMOVED *** no longer needed * include/fastjet/PseudoJet.hh: instead of having the template ctor decide whether the object is derived from PseudoJet, do that in reset (that way, reset also handles properly the case where L derives from PseudoJet). We also switched to the use of cast_if_derived which avoid the need for the DerivedPseudoJetHelper class * include/fastjet/internal/IsBase.hh: added a "cast_if_derived" that, from a pointer of type D, converts it into a pointer of type B if D is derived from B and returns NULL otherwise (as dynamic_cast except that it works for non-polymorphic types) 2011-05-12 Gavin Salam * testsuite/run_tests.cc: * testsuite/TestBase.hh: * testsuite/TestPseudoJet.hh: *** ADDED *** added some more infrastructure for running tests and beefed-up the PtYPhiM test. 2011-05-10 Gavin Salam * tools/fastjet/tools/BackgroundEstimator.hh: added (perhaps temporary) illustration of a templated set_rescaling. 2011-05-09 Gavin Salam & Matteo * tools/BackgroundEstimator.cc: * tools/fastjet/tools/BackgroundEstimator.hh added BackgroundRescalingBase and BackgroundRescalingYPolynomial classes, and corresponding support within BackgroundEstimator (both in the background estimation part and the local rho part, so that overall normalisation should cancel). 2011-05-09 Gregory Soyez * tools/fastjet/tools/BackgroundEstimator.hh: added a use_area_4vector method returning true if the background estimation is currently using 4-vector area 2011-05-09 Gavin Salam + Matteo * tools/BackgroundEstimator.cc: * tools/fastjet/tools/BackgroundEstimator.hh: added facility for using the background estimator to get estimates of quantities other than just pt/area, with a few classes to help with this (e.g. for PtM). Docs etc. to follow * tools/BackgroundEstimator.cc (): * tools/fastjet/tools/BackgroundEstimator.hh: factored median calculation out into _median_and_stddev(...), in anticipation of other future modifications (e.g. medians of quantities other than pt/area). Also modified calculation of sigma so that it deals with the "bin width" associated with each jet. To obtain the old FJ2 calculation of sigma, first call the new function set_provide_fj2_sigma(). * testsuite/TestBase.hh: *** ADDED *** * testsuite/run_tests.cc: *** ADDED *** just some first structural thoughts about tests * src/PseudoJet.cc: * include/fastjet/PseudoJet.hh: renamed hint_associated_rap_phi() -> set_cached_rap_phi() [this is hopefully a clearer name]. * src/GhostedAreaSpec.cc (add_ghosts): renamed the old (wrong) phi as phi_fj2 and now use a phi that has the correct px,py use. Also speeded up the ghost generation a little (exprap) and added a hint to set the ghost rapidity and phi. Checked that active results are unchanged. 2011-05-02 Gregory Soyez * src/PseudoJet.cc (PtYPhiM): fixed serious bug where PtYPhiM was using ptm (=mt) to generate x and y components (making pt wrong and m=0 when a non-zero m was asked) 2011-04-28 Gavin Salam * src/PseudoJet.cc (PtYPhiM): fixed serious bug where PtYPhiM was generating exchanged x and y components (making it inconsistent with the hinted phi). Pointed out by Gregory. 2011-04-21 Gavin Salam * src/ClusterSequence.cc (ClusterSequence::_initialise_and_run): * src/JetDefinition.cc: * include/fastjet/JetDefinition.hh: added an undefined_jet_algorithm entry to the JetAlgorithm enum; this is now set in the default constructor to JetDefinition; corresponding entries/error-messages have been added to JetDefinition::description() and ClusterSequence::_initialise_and_run. 2011-04-18 Gavin Salam * include/fastjet/PseudoJet.hh: added the new hint_associated_rap_phi(rap,phi) routine, which allows a user to tell the PseudoJet what its rapidity and phi are, thus sometimes avoiding expensive recalculations. * src/PseudoJet.cc (PtYPhiM): made this significantly more efficient, by directly calculating exp(y) rather than calling sinh and cosh; also avoided a sqrt(pt^2+m^2) if the mass is zero and called PseudoJet::hint_associated_rap_phi so that rapidity and phi info are passed to the PseudoJet for free. 2011-04-16 Gavin Salam * include/fastjet/PseudoJet.hh (PseudoJet::reset_momentum): added reset_momentum(...), which changes the momentum but leaves all other information untouched. 2011-04-14 Gregory Soyez + Matteo & Gavin * src/ClusterSequence.cc (_print_banner): updated the banner * doc/fastjet-doc.tex (Note): fixed name in the acks 2011-04-12 Gavin Salam * COPYING: fixed a typo; added SISCone reference 2011-04-12 Gregory Soyez * src/ClusterSequenceAreaBase.cc: only imposes a finite area if the area has no explicit ghosts * include/fastjet/ClusterSequenceAreaBase.hh: * include/fastjet/ClusterSequenceArea.hh: * include/fastjet/ClusterSequenceActiveArea.hh: * include/fastjet/ClusterSequencePassiveArea.hh: * include/fastjet/ClusterSequence1GhostPassiveArea.hh: * include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh: * include/fastjet/Makefile.am: * src/GhostedAreaSpec.cc: * src/ClusterSequenceAreaBase.cc: * src/ClusterSequenceArea.cc: * src/ClusterSequencePassiveArea.cc: * src/ClusterSequenceActiveArea.cc: * src/ClusterSequenceActiveAreaExplicitGhosts.cc: * src/Makefile.am: replaced the use of RangeDefinition by Selector. From ClusterSequenceArea, the selector is required to be geometric and to have a finite area. For more advanced usage, use BackgroundEstimator and Subtractor. Note that from now on, the use of RangeDefinition is considered obsolete and should be disfavoured. Use Selector instead. * include/fastjet/Selector.hh: * src/Selector.cc: * tools/BackgroundEstimator.cc: replaced the has_area test by is_geometric() that tests if the selector only puts constraints on the geometry of the PseudoJet (y and phi) and has_finite_area() that checks if the selector has a finite area * include/fastjet/Selector.hh: * src/Selector.cc: . added a SW_RangeDefinition that works from a RangeDefinition . added a Selector ctor from a RangeDefinition [provided for backward compatibility only] * include/fastjet/RangeDefinition.hh (RangeDefinition): removed the ctor from a Selector * include/fastjet/Makefile.am (fastjetinclude_HEADERS): removed PseudoJetPlusInfo.hh from the list of headers since the file is no longer included. * example/12-filter.cc: adapted the example to the fact that extra_properties now returns a reference 2011-04-12 Gavin Salam * plugins/PxCone/Makefile.am: * plugins/SISCone/Makefile.am: * plugins/CDFCones/Makefile.am: * plugins/CDFCones/CDFJetCluPlugin.hh: *** DELETED *** * plugins/CDFCones/CDFMidPointPlugin.hh: *** DELETED *** * plugins/PxCone/PxConePlugin.hh: *** DELETED *** * plugins/SISCone/SISConePlugin.hh: *** DELETED *** removed all of these deprecated headers; access now must be via fastjet/PluginName.hh 2011-04-11 Gavin Salam * include/fastjet/PseudoJet.hh: extra_properties() now returns a reference rather than a pointer. * include/fastjet/PseudoJetPlusInfo.hh: *** DELETED *** we decided there wasn't much benefit from this * example/07-subtraction-new.cc: *** ADDED *** an example with the new form of subtraction; not yet compiled by default; comments still need work. * tools/Makefile.am: * tools/fastjet/tools/Subtractor.hh: * tools/Subtractor.cc: *** ADDED *** modified comments; moved some of the code to .cc and ensured that the resulting subtracted jets have their pt set to zero if the subtraction would take away too much pt and that they retain their structural information. * tools/fastjet/tools/BackgroundEstimator.hh: * tools/BackgroundEstimator.cc: made rho() and sigma() calls const, which necessitated making a number of member variables mutable. 2011-04-06 Gavin SALAM * regression-tests/nightly-check.pl: re-enabled karnak 2011-03-30 Gregory Soyez * tools/fastjet/tools/Subtractor.hh: passed the ctor argument as a reference * tools/BackgroundEstimator.cc (_compute): fixed typo in error message 2011-03-27 Matteo Cacciari * fortran_wrapper/fastjetfortran.cc * fortran_wrapper/fastjet_fortran_example.f Added subroutine for rho determination from fortran 2011-03-24 Matteo Cacciari * fortran_wrapper/fastjetfortran.cc * fortran_wrapper/fastjet_fortran_example.f Added fortran interface to calculate and retrieve active jet areas (subroutines fastjetsisconewitharea(), fastjetppgenktwitharea() and function fastjetarea()). Also moved some code in new helper routine transfer_cluster_transfer() 2011-03-23 Gavin Salam * regression-tests/nightly-check.pl: removed karnak from nightly check * include/fastjet/GhostedAreaSpec.hh: * GhostedAreaSpec.cc: GhostedAreaSpec can now take a Selector in the constructor and do the sensible thing with it (+later, got description working for it) * include/fastjet/Selector.hh: * Selector.cc: Set up separate area() and area(ghost_area) calls, so that we do not need to provide a default area in the include file (this was causing circularity in the includes with GhostedAreaSpec) Reorganised order of some methods (so everything public is together). 2011-03-21 Gregory Soyez * tools/BackgroundEstimator.cc (_compute): . use systematically scalar area to estimate the empty area . fixed a bug in the computation of the empty area (dividing by R^2 rather than R) Note that the method to compute the empty area when there is no explicit ghost works as for ClusterSequenceAreaBase. This would differ to what is implemented in ClusterSequenceActiveArea. 2011-03-20 Gregory Soyez * src/Selector.cc: provide a virtual dtor to QuantityBase (so that the derived quantities also have a virtual dtor). 2011-03-20 Gavin Salam * src/ClusterSequenceVoronoiArea.cc: fixed rounding-error issue in VAC::circle_area(...), which was causing nan Voronoi areas in some circumstances for particles on a calorimeter. (Problem reported by Sue Ann Koay, with example event sent on 2011-03-20). * src/Selector.cc (SelectorM*, SelectorEt*): these were incorrectly interpreting their arguments as the square-root of mass and Et. Should now be fixed. 2011-03-17 Gavin Salam * src/Selector.cc: * include/fastjet/Selector.hh: added two new Selector methods - Selector::count(jets), which returns a count of the number of jets that pass the selection; intended to be a a bit more efficient that getting a results vector and evaluating its size. - Selector::sift(jets, jets_that_pass, jets_that_fail), which sifts the input jets into two vectors, which respectively pass and fail the selector. Also eliminated some operator indirection in the main selection routine. * regression-tests/nightly-check.pl: removed zetes from nightly check since it's down. 2011-03-16 Gregory Soyez * tools/fastjet/tools/Subtractor.hh: *** ADDED *** * tools/fastjet/tools/Makefile.am: added a transformer that performs subtraction (taking a BackgroudEstimetor as a ctor parameter) * tools/BackgroundEstimator.cc: * tools/fastjet/tools/BackgroundEstimator.hh: added the "traditional" FastJet header. 2011-03-15 Gavin Salam * tools/fastjet/tools/Filter.hh: small change in description to take into account the two possible scales "offered" with trimming. 2011-03-11 Gregory Soyez * example/01-basic.cc: * example/02-jetdef.cc: * example/04-constituents.cc: * example/06-area.cc: * example/08-selector.cc: * example/09-user_info.cc: * example/12-filter.cc: sorted out the links in the Doxygen doc (class names had to be prefixed by fastjet::) 2011-03-11 Gavin Salam * tools/fastjet/tools/BackgroundEstimator.hh: * tools/BackgroundEstimator.cc: reworked some of the comments in BackgroundEstimator. 2011-03-10 Gavin SALAM * configure.ac: switched version number fo 3.0alpha3-devel 2011-03-10 Gavin SALAM Release of fastjet-3.0alpha2 2011-03-10 Gavin Salam * configure.ac: * NEWS: * plugins/SISCone: [externals] * ... preparing for 3.0alpha2 * tools/Makefile.am: * tools/fastjet/tools/Makefile.am: * tools/fastjet/tools/BackgroundEstimator.hh: * tools/BackgroundEstimator.cc: moved BackgroundEstimator into core from experimental area to allow people to play with them in 3.0a2; adapted it to work with latest naming of PseudoJet structure information 2011-03-10 Gregory Soyez * tools/Filter.cc: * tools/fastjet.tools/Filter.hh: declared _selector as mutable to better handle the case of selectors taking a reference * src/Selector.cc (SW_WithReference): added the missing copy() method. * example/Makefile.am: * example/09-extra_info.cc: *** REMOVED *** * example/09-user_info.cc: *** ADDED *** renamed according to the renaming of the class. Note that the example itself is still to be written! * tools/fastjet/tools/Filter.hh: - added a link in the Doxygen doc to the example 12 * example/12-filter.cc: - updated description - we now show 2 filters: "filtering" and "trimming" * example/08-selector.cc: fixed typo in description * tools/fastjet/tools/Filter.hh: use the jet being filtered as a reference if the selector takes one. 2011-03-10 Gavin Salam * doc/fastjet-doc.tex: documented composite jets * tools/fastjet/tools/Filter.hh: worked on doxygen documentation of Filter.hh * tools/fastjet/tools/Transformer.hh: fixed a minor issue in doxygen output from this file * NEWS: working on this in view of 3.0alpha2 * doc/fastjet-doc.tex: incomplete treatment UserInfoBase renaming * example/fastjet_example.cc: completed list of examples for doxygen * src/ClusterSequence.cc (~ClusterSequence): documenting use of assert * various updates to copyright dates * Roadmap gets some completion * include/fastjet/Selector.hh: * include/fastjet/internal/base.hh added a new selectors "module" for doxygen 2011-03-10 Gregory Soyez * fastjet-config.in: fixed portability issue with sed and newlines 2011-03-09 Gregory Soyez * include/fastjet/PseudoJetInterfaceBase.hh: *** REMOVED *** * include/fastjet/PseudoJetStructureBase.hh: *** ADDED *** * include/fastjet/ClusterSequenceInterface.hh: *** REMOVED *** * include/fastjet/ClusterSequenceStructure.hh: *** ADDED *** * include/fastjet/MergedJetInterface.hh: *** REMOVED *** * include/fastjet/CombinedJetStructure.hh: *** ADDED *** * src/PseudoJetInterfaceBase.cc: *** REMOVED *** * src/PseudoJetStructureBase.cc: *** ADDED *** * src/ClusterSequenceInterface.cc: *** REMOVED *** * src/ClusterSequenceStructure.cc: *** ADDED *** * src/MergedJetInterface.cc: *** REMOVED *** * src/CombinedJetStructure.cc: *** ADDED *** * include/fastjet/PseudoJet.hh: * src/PseudoJet.cc: * include/fastjet/ClusterSequence.hh: * src/ClusterSequence.cc: * src/ClusterSequenceAreaBase.cc (subtracted_jet): * tools/fastjet/tools/Transformer.hh: * tools/fastjet/tools/Filter.hh: * tools/Transformer.cc: * tools/Filter.cc: * example/12-filter.cc: done some renaming: + Interface -> Structure + ClusterSequenceInterface -> ClusterSequenceStructure + MergedJetInferface -> CompositeJetStructure + merge -> join + FilteredJetInterface -> FilteredJetStructure + UserInfo -> UserInfoBase In PseudoJet: set the structure methods to bool has_structure() const; const PJSB * structure_ptr() const; const PJSB * validated_structure_ptr() const; const SharedPtr structure_shared_ptr() const; const T & structure() const; _associated_interface -> _structure In ClusterSequence.hh: _interface_to_this -> _structure_shared_ptr const SharedPtr structure_shared_ptr() * include/fastjet/Selector.hh: * src/Selector.cc: - pure-ghost selector: fixed comment; fixed return value for jets with no area (false is returned as they are certainly not ghosts) - added a SelectorPtFractionMin that keeps the jets carrying at least a given fraction of a reference jet. 2011-03-08 Gregory Soyez * include/fastjet/Selector.hh: * src/Selector.xx: added SelectorIdentity and SelectorIsPureGhost 2011-03-08 Gavin SALAM & Matteo * example/Makefile.am: * experimental/tools/test.cc -> example/12-filter.cc: moved the test program for filter to example/ Note, this will probably need reworking a little in the future. * include/fastjet/PseudoJetInterfaceBase.hh: removed some extraneous semicolons. * experimental/tools/Transformer.* -> tools/ * experimental/tools/Filter.* -> tools/ * tools/**/Makefile.am moved the Filter (and Transformer) into tools/ directory of the core structure. Removed TransformerInterface (it seemed to be unused and redundant) + worked a little bit on comments. 2011-03-07 Gavin SALAM & Matteo * src/PseudoJet.cc: * include/fastjet/PseudoJet.hh: * doc/fastjet-doc.tex: renamed ExtraInfo -> UserInfo (and similarly for all occurrences of extra_info -> user_info). Also changed some of the other naming aspects: - user_info() is now a template and returns a const ref - user_info_ptr() returns the pointer - user_info_shared_ptr() returns the shared pointer Updated documentation and included a simple usage example as well. 2011-02-28 Gavin Salam * tools/dummy.cc: *** ADDED *** added missing file here. 2011-02-28 Gregory Soyez * src/PseudoJet.cc: * include/fastjet/PseudoJetInterfaceBase.hh: * include/fastjet/ClusterSequenceInterface.hh: * src/PseudoJetInterfaceBase.cc: * src/ClusterSequenceInterface.cc: contains() + is_inside() -> object_in_jet() in the interface (not in PseudoJet) * include/fastjet/PseudoJetInterfaceBase.hh: made pieces() throw an error when no pieces associated * src/MergedJetInterface.cc: trivial typo 2011-02-28 Gavin Salam * src/ClusterSequenceInterface.cc: changed the validated_cs Error messages to refer only to the CS having gone out of scope (since anything that reaches CSI necessarily has assoc CSI). * src/ClusterSequence.cc: * include/fastjet/ClusterSequence.hh: _potentially_valid(jet) replaced with contains(jet), and added a check for all the exclusive_subjet calls. 2011-02-27 Gavin Salam * tools/dummy.cc: *** ADDED *** added this file (with one dummy function) to avoid problems with nightly checks on OS X. 2011-02-25 Gregory Soyez * include/fastjet/PseudoJet.hh: added template methods to help accessing the interface: + associated_interface_ptr returns a pointer of type IfaceType* or NULL if the interface is incompatible + extra_properties returns a pointer to a interface of type TransformerType::InterfaceType (or NULL if incompatible) + has_properties_of check that the interface of the type TransformerType::InterfaceType can be returned. 2011-02-24 Gregory Soyez * include/fastjet/MergedJetInterface.hh: adjusted references and constness. * include/fastjet/ClusterSequenceInterface.hh (PseudoJetInterfaceBase): has_constituents() and has_exclusive_subjets() will throw an Error if the associated CS has gone out of scope * include/fastjet/Makefile.am (fastjetinclude_HEADERS): * src/Makefile.am (libfastjet_la_SOURCES): * include/fastjet/PseudoJet.hh: * src/PseudoJet.cc: * include/fastjet/MergedJetInterface.hh: *** ADDED *** * src/MergedJetInterface.cc: *** ADDED *** added the interface for a jet made of pieces (copied and adapted from Merger in experimental/tools) * src/ClusterSequenceInterface.cc: for contains and is_inside, check that the two jets belong to the same ClusterSequence (failing which false is returned) * include/fastjet/ClusterSequenceInterface.hh: all the has_* methods that were simply returning 'true' now return true only if the associated ClusterSequence is still available (and false otherwise). That way, if has_xyz() returns true, xyz() can safely be applied to get the result. * include/fastjet/PseudoJetInterfaceBase.hh: * src/PseudoJetInterfaceBase.cc: updated some of the default behaviours (e.g. a jet has no pieces by default and pieces() throws an Error); updated comments * include/fastjet/Makefile.am (fastjetinclude_HEADERS): * src/Makefile.am (libfastjet_la_SOURCES): * include/fastjet/PseudoJet.hh: * include/fastjet/ClusterSequenceInterface.hh: * src/ClusterSequenceInterfaceBase.cc: *** DELETED *** * include/fastjet/ClusterSequenceInterfaceBase.hh: *** DELETED *** * src/PseudoJetInterfaceBase.cc: *** ADDED *** * include/fastjet/PseudoJetInterfaceBase.hh: *** ADDED *** renamed the files ClusterSequenceInterfaceBase.* into PseudoJetInterfaceBase.* * src/ClusterSequenceAreaBase.cc: * src/ClusterSequence.cc: * src/ClusterSequenceInterfaceBase.cc: * src/PseudoJet.cc: * include/fastjet/PseudoJet.hh: * include/fastjet/ClusterSequence.hh: * include/fastjet/ClusterSequenceInterface.hh: * include/fastjet/ClusterSequenceInterfaceBase.hh: done some renaming: ClusterSequenceInterfaceBase -> PseudoJetInterfaceBase *_csi -> *_interface 2011-02-23 Gavin SALAM + Matteo * doc/fastjet-doc.tex: * src/Selector.cc: * include/fastjet/Selector.hh: changed relocate(...) and is_relocatable() to set_reference(...) and takes_reference(...) + other small mods to wording of documentation. * example/08-selector.cc: * tools/Selector.cc -> src/Selector.cc * tools/fastjet/tools/Selector.hh -> include/fastjet/Selector.hh * various Makefile.am: * doc/fastjet-doc.tex: moved Selector into core of distribution. For doxygen, left it @ingroup tools. Revisit this later? 2011-02-23 Gavin SALAM * include/Makefile.am: * include/FjPseudoJet.hh: *** DELETED *** * include/FjClusterSequence.hh: *** DELETED *** removed these legacy headers 2011-02-22 Gavin Salam * include/fastjet/ClusterSequenceInterface.hh: tiny mods (extraneous semicolons) 2011-02-22 Gregory Soyez * include/fastjet/PseudoJet.hh: include/fastjet/ClusterSequenceInterface.hh: include/fastjet/ClusterSequenceInterfaceBase.hh: src/PseudoJet.cc: src/ClusterSequenceInterfaceBase.cc: added a few extra methods: . has_constituents() that tells if the interface supports constituents . has_exclusive_subjets() that tells if the interface supports constituents . pieces() that returns the pieces of a jet (by default both "input particles" and clustering products are considered as made of a single piece, the object itself. 2011-02-20 Gavin Salam * include/fastjet/ClusterSequence.hh: adjusted comments 2011-02-17 Gregory Soyez * src/PseudoJet.cc * include/fastjet/ClusterSequenceInterfaceBase.hh * include/fastjet/ClusterSequenceInterface.hh * include/fastjet/PseudoJet.hh: PseudoJet (and the various CSInterfaces) acquired a description() 2011-02-09 Gregory Soyez * include/fastjet/ClusterSequenceWrapper.hh: *** REMOVED *** * src/ClusterSequenceInterface.cc: Fixed the removal of ClusterSequenceWrapper (that apparently went wrong during the branch merging.) 2011-02-08 Gregory Soyez * src/ClusterSequence_CP2DChan.cc (_CP2DChan_limited_cluster): same bugfix (make_mirror(... Dlim4mirror) as earlier today (I had forgotten one) 2011-02-08 Gregory Soyez * merged the fastjet-2.5.X-clusterinfo-devel branch into the trunk ========================================================================= MERGING the devel-clusterinfo branch Here starts the ChangeLog for the modifications in the branch ========================================================================= 2011-02-08 Gregory Soyez * merged the (remaining) changes from the trunk into the branch created at revision 1804. It should now be ready for a reinsertion in the trunk. 2011-02-02 Gregory Soyez * src/ClusterSequence.cc: * include/fastjet/ClusterSequenceInterface.hh (ClusterSequenceInterfaceBase): . removed the friendiness w CS: set_associated_cs can be used instead . added a missing const in the ctor 2011-02-01 Gregory Soyez * plugins/usage_examples/pxcone_example.cc: prefixed ENABLE_PLUGIN_PXCONE with FASTJET_ 2011-01-31 Gregory Soyez * tools/Selector.cc (SW_NHardest): first check if the size of the vector is larger than the cut. 2011-01-31 Gregory Soyez * src/Error.cc (Error): * configure.ac: checked for the presence of execinfo.h added a corresponding #ifdef in Error.cc * src/Error.cc (Error): prefixed the index in the stack with a hash * include/fastjet/ClusterSequence.hh (ClusterSequence): added a method to extraced the associated CSW (rename?) * m4/ax_prefix_config_h.m4: *** ADDED *** apparently this is missing on some installations of autoconf just adding it to our own m4 dir seems to solve the problem * configure.ac: made sure AC_CONFIG_HEADER outputs its (intermediate) header in include/fastjet in order to have the correct -I compilation flags * Makefile.am: extended the target distclean to remove leftovers from AX_PERFIX_CONFIG_H 2011-01-31 Gregory Soyez * src/ClusterSequence.cc (plugin_record_ij_recombination): replaced wrapper- > interface (comes from a bugfix in the branch that needed an update to the new nomenclature) * src/PseudoJet.cc (has_area): replaced NULL by 0 to avoid a warning. 2010-11-27 Gregory Soyez * src/Makefile.am: * include/fastjet/Makefile.am: included the previously added files in the build system * include/fastjet/ClusterSequenceInterfaceBase.hh: *** ADDED *** * include/fastjet/ClusterSequenceInterface.hh: *** ADDED *** * src/ClusterSequenceInterfaceBase.cc: *** ADDED *** * src/ClusterSequenceInterface.cc: *** ADDED *** * src/PseudoJet.cc: * src/ClusterSequence.cc: * include/fastjet/PseudoJet.hh: * include/fastjet/ClusterSequence.hh: * include/fastjet/ClusterSequenceWrapper.hh: * include/fastjet/ClusterSequenceInfo.hh: *** REMOVED *** * src/ClusterSequenceInfo.hh: *** REMOVED *** Merged the ClusterSequenceWrapper+ClusterSequenceInfo in a single ClusterSequenceInterface. at the same time, we've added a base calss ClusterSequenceInterfaceBase that allows to define other bahaviours than the default one in ClusterSequenceInterface. 2010-11-04 Gregory Soyez * include/fastjet/ClusterSequenceInfo.hh: added a series of missing 'virtual' declarations 2010-11-03 Gregory Soyez * src/Makefile.am: * include/fastjet/Makefile.am: included the previously added files in the build system * include/fastjet/ClusterSequenceInfo.hh: *** ADDED *** * src/ClusterSequenceInfo.cc: *** ADDED *** * src/ClusterSequenceAreaBase.cc: * src/PseudoJet.cc: * src/ClusterSequence.cc: * include/fastjet/PseudoJet.hh: * include/fastjet/ClusterSequence.hh: * include/fastjet/ClusterSequenceWrapper.hh: added ClusterSequenceInfo as an intermediate layer between the ClusterSequenceWrapper and the classes that use it (i.e. ClusterSequence and PseudoJet). By default, a single ClusterSequenceInfo object is shared between all the objects associated with the same ClusterSequence. This can thus be thought as a wrapper of ClusterSequenceWrapper. The underlying idea behind this apparently redundant structure is that if one wants to add info to a PseudoJet (e.g. jet substructure or filtering info), one can derive a class from ClusterSequenceInfo, add the extra information to it and associate it to the analysed jet. That way, each jet could carry its own extra information about its own substructure while keeping a shared ClusterSequenceWrapper. ========================================================================= MERGING the devel-clusterinfo branch Here stops the ChangeLog for the modifications in the branch ========================================================================= 2011-02-08 Gregory Soyez * src/ClusterSequence_CP2DChan.cc (_CP2DChan_limited_cluster): for R>pi, some particles were mirrored outside the [-pi:3pi] range causing an assertion to be failed in ClosestPair2D. We fixed this by limiting the "mirroring distance" to pi i.e. practically copying all the particles: adding 2pi to the particles with phipi (note that the particles at phi==pi are not mirrored). For additional security, we extended the range [-pi:3pi] to [-3.15:9.45]. 2011-02-05 Gavin Salam * src/ClusterSequence.cc (ClusterSequence::_initialise_and_run): fixed issue created by reordering of tests for Best strategy. 2011-02-03 Gregory Soyez * tools/fastjet/tools/Selector.hh: added a Selector::nullify_non_selected() that sets to 0 the jets that do not pass the selection (equivalent to SelectorWorker::terminator()) * src/ClusterSequence.cc (_initialise_and_run): . for the Best strategy, moved the small N test first; . similarily, inverted the series of tests redirecting to the processing method for the various strategies * include/fastjet/Error.hh (Error): . added a 'set_backtrace(bool)' to control whether the backtrace is printed together with the error message or not . added a bunch of Doxygen comments 2011-02-02 Gregory Soyez * src/Error.cc: used the correct header (cstdlib) for the access to free() 2011-02-01 Gregory Soyez * plugins/usage_examples/pxcone_example.cc: prefixed ENABLE_PLUGIN_PXCONE with FASTJET_ 2011-01-31 Gregory Soyez * tools/Selector.cc (SW_NHardest): first check if the size of the vector is larger than the cut. 2011-01-31 Gregory Soyez * src/Error.cc (Error): * configure.ac: checked for the presence of execinfo.h added a corresponding #ifdef in Error.cc * src/Error.cc (Error): prefixed the index in the stack with a hash * include/fastjet/ClusterSequence.hh (ClusterSequence): added a method to extract the associated CSW (rename?) * m4/ax_prefix_config_h.m4: *** ADDED *** apparently this is missing on some installations of autoconf just adding it to our own m4 dir seems to solve the problem * configure.ac: made sure AC_CONFIG_HEADER outputs its (intermediate) header in include/fastjet in order to have the correct -I compilation flags * Makefile.am: extended the target distclean to remove leftovers from AX_PERFIX_CONFIG_H 2011-01-28 Gregory Soyez * include/fastjet/Error.hh (Error): * src/Error.cc (Error): when throwing a fastjet::Error, include a backtrace of the stack in the message * example/01-basic.cc: * example/02-jetdef.cc: * example/03-plugin.cc: * example/04-constituents.cc: * example/05-eplus_eminus.cc: * example/06-area.cc: * example/07-subtraction.cc: * example/08-selector.cc: * example/09-extra_info.cc: * example/10-subjets.cc: * example/11-boosted_higgs.cc: changed "Source file" into "Source code" to avoid empty links created by Doxygen * include/fastjet/ClusterSequenceWrapper.hh: remove the non_const_cs() method (it provided a way to cast constness away) * include/fastjet/config_win.h: * src/genconfig.sh: reflected the change below to the other affected scripts and headers * configure.ac: * include/fastjet/version.hh: * example/03-plugin.cc: * example/fastjet_timing_plugins.cc: * plugins/usage_examples/many_algs_example.cc: * plugins/usage_examples/siscone_example.cc: * plugins/usage_examples/cdfmidpoint_example.cc: added FASTJET_ to the macros defined in config(_auto).h so that one can safely include it without risking an interference with another package * Doxyfile (STRIP_CODE_COMMENTS): set to NO Doxyfile-devel (STRIP_CODE_COMMENTS): set to NO + version number set to 3.0alpha2-devel 2011-01-27 Gavin SALAM * configure.ac: * plugins/SISCone/siscone back on trunk for SISCone and work starts on fastjet-3.0alpha2-devel 2011-01-27 Gregory Soyez and Gavin * NEWS * configure.ac Release of fastjet-3.0alpha1 2011-01-27 Gregory Soyez and Gavin * CHECKLIST: reported ongoing progress * plugins/SISCone/siscone switched back to 2.0.1 * NEWS: fixed the text for 3.0alpha1 * doc/fastjet-doc.tex: added a note on what's new in 3.0alpha1 * include/fastjet/config_win.h: * configure.ac: updated version number * Doxyfile: * Doxyfile-devel: updated version numbers; checked included paths * fastjet-config.in: * examples/Makefile.am: reverted the order of the fastjettools and fastjet libs 2011-01-27 Gavin Salam * fortran_wrapper/Makefile.am: * fortran_wrapper/README: * fortran_wrapper/fastjetfortran_v2.cc -> fastjetfortran.cc: * fortran_wrapper/Makefile: moved what was called fastjetfortran_v2 to fastjetfortran providing SISCone, constituents, dmerge features from fortran. * several places: set the svn:keywords property to Id 2011-01-27 Gregory Soyez * example/Makefile.am: * example/09-extra_info.cc: *** ADDED *** added a (dummy) example for extra info + modified the doxygen doc for the examples 2011-01-27 Gavin Salam * include/fastjet/PseudoJet.hh: renamed reset_extra_info(...) to set_extra_info(...) and renamed argument. 2011-01-27 Gregory Soyez * example/README: *** ADDED *** * example/01-basic.cc: *** ADDED *** * example/02-jetdef.cc: *** ADDED *** * example/03-plugin.cc: *** ADDED *** * example/04-constituents.cc: *** ADDED *** * example/05-eplus_eminus.cc: *** ADDED *** * example/06-area.cc: *** ADDED *** * example/07-subtraction.cc: *** ADDED *** * example/08-selector.cc: *** ADDED *** * example/10-subjets.cc: *** ADDED *** * example/11-boosted_higgs.cc: *** ADDED *** * example/Makefile.am: added a list of examples starting with the simplest one then illustrating various specific features. 2011-01-26 Gregory Soyez * tools/Selector.cc (SW_Relocatable): for relocatable objects, make sure thay are initialized when calling _get_rapidity_extent() 2011-01-26 Gavin Salam * tools/fastjet/tools/Selector.hh: relocate now returns a const Selector & rather than void, so that one can write selector.relocate(jet_on_which_to_centre)(jets_to_select) 2011-01-26 Gregory Soyez + Gavin * src/ClusterSequence.cc (plugin_record_ij_recombination): when overwriting the recombination result with the specified resulting PseudoJet, make sure it contains info about the ClusterSequenceWrapper * tools/fastjet/tools/Selector.hh: put the logical operators inside the doc * configure.ac, example/Makefile.am, tools/Makefile.am: if --enable-debug is set, add by default -Woverloaded-virtual to the list of default compilation flags (if the compiler supports it) * tools/Selector.cc, tools/fastjet/tools/Selector.hh: - added a SelectorRapPhiRange (with a corresponding SW_RapPhiRange) - used half_width instead of radius for the SelectorStrip (cc file) - the Doughnut range now uses its own worker rather than a combination of 2 circles (advantages: has a known area + is really >= radius_in instead of >) - added a relocatable Rectangle range (given rap and phi half-widths) - added check rapmin <= rapmax * Makefile.am: added the -Woverloaded-virtual flag for a better finding of possible overloading issues. * tools/Selector.cc: fixed a missing const in various get_rapidity_extent * tools/fastjet/tools/Selector.hh: slight update of exception messages in SW::copy 2011-01-26 Gavin Salam * tools/Selector.cc: * tools/fastjet/tools/Selector.hh: moved some longer bits of code from Selector.hh to Selector.cc; replaced assertions with exceptions; and tided up some comments in a few places. 2011-01-26 Gavin Salam * regression-tests/nightly-check.pl: switched --enable-monolithic check over to --disable-monolithic 2011-01-26 Gregory Soyez * m4/plugin.m4: check for monolithix uses yes/no instead of true/false 2011-01-25 Gregory Soyez * Doxyfile: remove alphabetical ordering of detailed descriptions * include/fastjet/ClusterSequence.hh: added extra doc on the mainpage (links to enum,...) * include/fastjet/internal/base.hh: added a "tool" module for the documentation; documented the fastjet namespace 2011-01-25 Gavin Salam * include/fastjet/PseudoJet.hh: added a reset_extra_info(...) so that the user does not need to be aware of any details of the shared pointer (unless they do advanced things). * doc/fastjet-doc.tex: added documentation of D0 run I algorithm (and adapted the Run II doc to correspond) * plugins/D0RunICone/fastjet/D0RunIBaseConePlugin.hh: * plugins/D0RunICone/fastjet/D0RunIConePlugin.hh: * plugins/D0RunICone/fastjet/D0RunIpre96ConePlugin.hh: * Doxyfile * Doxyfile-devel updated comments to give more informative doxygen documentation and included the D0RunI plugins in the doxygen. * NEWS working on making this accurate 2011-01-25 Gregory Soyez * configure.ac: enables the monolithic build of plugins by default * Doxyfile, Doxyfile-devel: fixed a missing \; updated the devel doc * Doxyfile: updated the file (v1.7.1) limited the dot-graph depth to a single inheritance * include/fastjet/ClusterSequence.hh (ClusterSequence): reshaped the doxygen main page (restored links, added more links) * include/fastjet/internal/IsBase.hh: added the workarounds for MSVC * m4/CGAL.m4: in case a CGAL directory is explicitly specified, skip the makefile test (previously, /usr/share/cgal/cgal.mk was tested anyway). This is safer in case both an "old" and a new installation coexist. * configure.ac: slightly moved the "tools" section (right after the plugins) added a summary at the end of the run * m4/plugin.m4: added AC_PLUGIN_SUMMARY to show what is enabled/disabled 2011-01-25 Gavin Salam & Gregory * tools/ *** ADDED *** * tools/fastjet/ *** ADDED *** * tools/fastjet/tools *** ADDED *** * tools/**/Makefile.am *** ADDED *** * tools/Selector.cc * tools/fastjet/tools/Selector.hh * Makefile.am * configure.ac * fastjet-config.in * Doxyfile-devel: * Doxyfile: Created a tools/ top-level directory, moved the Selector code in from the experimental area, arranged all the Makefiles so that it gets placed in libfastjettools and ensured that fastjet-config adds that library too + Doxygen access. 2010-12-20 Gavin Salam * fortran_wrapper/fastjet_fortran_example.f: * fortran_wrapper/fastjetfortran_v2.cc: Added a comment concerning the order of array indices in the fortran interface noting that it differs from the order in Pythia 6. 2010-12-20 Gavin SALAM * regression-tests/test-all-algs.pl: replaced a zcat (causing problems on mac) with a gunzip -c * regression-tests/nightly-check.pl: re-enabled karnak 2010-12-09 Gavin SALAM * src/PseudoJet.cc (delta_phi_to): fixed serious bug relating to sign of delta_phi_to (presence of abs internally, which made the sign of the result unreliable) 2010-11-29 Gavin SALAM * regression-tests/nightly-check.pl: and took karnak out... 2010-11-28 Gavin SALAM * regression-tests/nightly-check.pl: put karnak back in. 2010-11-21 Gavin Salam * regression-tests/test-all-algs.pl: allowed -deposit option to create the deposit directoy. * src/ClusterSequence_CP2DChan.cc: added in assertions to make sure that we catch recombination with mirror points (will only occur if the CP2DChan routines mistakenly get called with R >= 2pi). 2010-11-20 Gavin Salam * regression-tests/test-all-algs.pl: changed the default data file so as to increase the number of events that can be used for tests. switched checksum identifiers over to the new file name. Allowed both -strat and -strategy arguments, and also allowed them to take a colon-separated list of multiple strategies. * include/fastjet/JetDefinition.hh: clarified possible issues when using the pointer returned by recombiner(). 2010-11-19 Gavin Salam * include/fastjet/JetDefinition.hh (enum Strategy): added comments indicating which strategies are non-functional for R>=2pi. * src/JetDefinition.cc: replaced enforcement of R < pi/2 with R < 1000, now that we support all R values in ClusterSequence. The reason for maintaining some limit is that particles with pt=0, m=0 can have rapidities O(10000) and one doesn't want the clustering to start including them as if their rapidities were physical. * include/fastjet/ClusterSequence.hh: * src/ClusterSequence.cc (ClusterSequence::_initialise_and_run): set up automatic change of strategy when R>=2pi, to ensure that we run a strategy that will give correct answers. * src/ClusterSequence_TiledN2.cc (ClusterSequence::_initialise_tiles): set the minimum number of tiles in the phi direction to be 3, so that it works even for large values of R * include/fastjet/internal/Dnn2piCylinder.hh: just updated comments about periodicity in phi and the kt (etc.) algorithms 2010-10-27 Gregory Soyez * src/genconfig.sh: * example/makefile.static: * plugins/CDFCones/CDFcode/makefile.static: * plugins/SISCone/makefile.static: * plugins/makefile.static: aligned the static build of plugins to the default choices. + minor corrections to have the static build actually work! 2010-10-26 Gregory Soyez * m4/plugin.m4, plugins/Makefile.am: added comments for the automatic plugin release scripts. 2010-10-26 Gavin Salam * include/fastjet/GhostedAreaSpec.hh (class GhostedAreaSpec): changed comment for add_ghosts 2010-10-25 Gregory Soyez * plugins/D0RunICone/D0RunIBaseConePlugin.cc: carry info about the recombination from HepEntity to the Fastjet recombination * plugins/D0RunICone/: *** ADDED *** released a plugin for the D0 run I cone algorithms. (two versions: D0RunIpre96ConePlugin and D0RunIConePlugin corresponding to the code used before an dafter 1996) Thanks to Lars Sonnenschein for providing the code 2010-10-13 Gavin SALAM * regression-tests/nightly-check.pl: temporary disabling of karnak (given nfs problems) * include/fastjet/PseudoJet.hh: small fix (template class name) to get compilation working with gcc-3.4 2010-10-10 Gavin Salam * include/fastjet/PseudoJet.hh: * src/PseudoJet.cc: added extra_info_cast() member function to directly get a cast to the extra information in the form one needs. Throws a PseudoJet::InexistentExtraInfo error (new internal class, derived from Error). * include/fastjet/Error.hh: added a virtual destructor, so make life easier for when we want to produce derived classes for errors. 2010-10-04 Gavin Salam * autogen.sh: added comments at start as a reminder of how to run this without getting configured in the process 2010-10-01 Gavin Salam * fortran_wrapper/fastjet_fortran_example.f: * fortran_wrapper/fastjetfortran_v2.cc: added fastjetdmerge_(..) and fastjetdmergemax_(..) functions, requested by Stefano Frixione. Showed use of them in example program. 2010-09-21 Gregory Soyez * include/fastjet/PseudoJetPlusInfo.hh: added PseudoJetPlusInfo::extra_info that already does the dynamic cast amd returns a pointer to TExtraInfo * include/fastjet/PseudoJet.hh: added a 'const' version of extra_info_shared() * include/fastjet/PseudoJetPlusInfo.hh: - added a copy ctor from a "regular" PseudoJet. The extra information is copied from the PJ if available and of the correct format. - added a 'convert_to_vector that copies a vector of type U to a vector of type T (provided t=u works) 2010-09-20 Gavin Salam * example/fastjet_example.cc: removed testing line accidentally left in (printing of unavailable areas) that caused the example program to fail. 2010-09-17 Gavin Salam * example/fastjet_example.cc: * example/fastjet_areas.cc: * example/fastjet_subjets.cc: * example/fastjet_boosted_higgs.cc: * example/fastjet_timing.cc: * example/fastjet_timing_plugins.cc: * example/fastjet_subtraction.cc: switched these over to new form of access to jet information. * src/PseudoJet.cc: * include/fastjet/PseudoJet.hh: added the validated_cs() and validated_csab() methods (intended mainly for internal use), which return pointers to the associated ClusterSequence (and ClusterSequenceAreaBase) objects if possible, otherwise throw an error. All methods that provide information from the cluster sequence now go through these methods (and so throw errors when they can't return sensible information). Also added the exclusive_subjet (etc) series of methods 2010-09-16 Gregory Soyez * include/fastjet/PseudoJet.hh: removed the access to the shared ptr to the associated csw * include/fastjet/internal/IsBase.hh: moved to the internal headers folder * include/fastjet/internal/DerivedPseudoJetHelper.hh: renamed PseudoJetPlusInfoHandler into DerivedPseudoJetHelper plus moved it in the internal headers folder * include/fastjet/ClusterSequenceWrapper.hh: placed things in the fastjet namespace * include/fastjet/PseudoJet.hh (PseudoJet): simplified the ctor with initialisation from a generic 4-vector * Doxyfile and most of the headers, Doxyfile-devel *** ADDED *** Doxygen documentation cleaning: - classified the classes into modules (see base.hh for the list) - added an internal tag (internal_doc) to allow removing classes from the public page - removed undocumented classes and private class members from the public doxygen doc. - added a Doxygen-devel file that (on top of the public/default doc) includes internal classes and private member. 2010-09-15 Gregory Soyez * include/fastjet/Makefile.am: added the new headers to the list of installed files * include/fastjet/PseudoJetPlusInfo.hh: *** ADDED *** This is a generic template class that allows to build PseudoJet carrying extra information. You'd basically define a class MyExtraInfo : public PseudoJet::ExtraInfo{}; then use PseudoJetPlusInfo instead of PseudoJet The implementation allows one to copy from PseudoJetPlusInfo to PseudoJet without any loss of information (e.g. you can copy, element by element, a vector of PseudoetPlusInfo into a vector of PseudoJet and pass it to a ClusterSequence without loosing the original ExtraInfo). Memory is managed internally so you can easily use the extra information if you define your own recombiner. * include/fastjet/PseudoJet.hh: added support to carry extra info. It is stored as a shared pointer of a dummy type ExtraInfo. A generic extra information can be stored by deriving a class from ExtraInfo. * include/fastjet/PseudoJetPlusInfoHandler.hh: *** ADDED *** This class is a helper to allow to disantangle in the template PseudoJet::PseudoJet(T &some_four_vector) between the situation where T just implements T[0--3] and the case where T is derived from PseudoJet (and thus may carry extra information) * include/fastjet/IsBase.hh: *** ADDED *** added a class (mostly borrowed from TR1 and boost), that allows to check whether a given pair of typed are a based class and a class derived from it. * include/fastjet/PseudoJet.hh src/PseudoJet.cc: added associated_cluster_sequence_shared() that returns a reference to the shared pointer holding the ClusterSequenceWrapper * include/fastjet/ClusterSequenceWrapper.hh: *** ADDED *** moved the ClusterSequenceWrapper class in its own header 2010-09-06 Gregory Soyez * regression-tests/nightly-check.pl: pointed to a new installaion of CGAL (note: this could be done through the CGAL_DIR environment var as it was done before) 2010-08-30 Gregory Soyez * INSTALL: Fixed default description of static/shared-lib build 2010-08-09 Gavin Salam * include/fastjet/PseudoJet.hh: _reset_indices now also resets the _associated_csw (mainly so that reset() does the expected thing). * include/fastjet/SharedPtr.hh: for testing purposes, added an option (if you define USETR1SHAREDPTR) in which SharedPtr basically wraps the STL TR1 shared_ptr. 2010-08-08 Gavin Salam * src/ClusterSequenceAreaBase.cc: subtracted_jet now transfers information about the csw too * include/fastjet/PseudoJet.hh: added associated_csw() to retrieve information about the cs 2010-07-29 Gavin Salam * include/fastjet/PseudoJet.hh: more organisation of documentation. 2010-07-28 Gavin Salam * include/fastjet/ClusterSequence.hh: added more info in the \mainpage section * include/fastjet/PseudoJet.hh: starting to group some of the member functions; but not yet very successful. 2010-07-18 Gavin Salam * AUTHORS: realised authors was very out of date, so updated it. 2010-07-14 Gregory Soyez * include/fastjet/PseudoJet.hh: added a virtual destructor; declared the methods that access the associated CS as virtual too (for inheritance purposes). Negligible speed impact; ~3-5% cost in memory. 2010-07-12 Gregory Soyez * src/PseudoJet.cc: used a ctor with initialisation for returning 0 PJs when the CSW is not available. * include/fastjet/PseudoJet.hh, src/PseudoJet.cc: added support to acces the area properties. * src/ClusterSequence.cc, include/fastjet/ClusterSequence.hh: added a 'transfer_ownership' flag to CS::transfer_from_sequence (true by default.) That way, the CS associated to the jets of the CS is the new one. * src/PseudoJet.cc, include/fastjet/PseudoJet.hh, src/ClusterSequence.hh: . replaced _parent_cs by _associated_csw and likewise changes in the varisou methods. . added a PseudoJet::set_associated_csw. That allows to remove the friendship to CS in PJ. . moved CSWrapper to PseudoJet (avoids incomplete type warnings) 2010-07-12 Gregory Soyez * src/ClusterSequence.cc (ClusterSequence): bug fixed: made sure that _wrapper_to_this "exists" before setting its internal CS pointer to NULL * src/PseudoJet.cc (has_parent_cluster_sequence): simplified the test 2010-07-12 Gavin SALAM * ISSUES: *** ADDED *** some thoughts on structure of CSW use etc. * include/fastjet/ClusterSequence.hh: * include/fastjet/PseudoJet.hh: minor changes to coding style / comments. * src/ClusterSequence.cc: changed const properties of CSWrapper 2010-07-12 Gregory Soyez * src/ClusterSequence.cc, src/ClusterSequence_TiledN2.cc, * plugins/EECambridge/EECambridgePlugin.cc, include/fastjet/NNH.hh, * include/fastjet/internal/ClusterSequence_N2.icc: SharedPointer adds an implementation of 'swap' in the fastjet namespace. For code inside 'namespace fastjet{...}', the std::swap() thus has to be specified explicitly (Note: if you just have 'using namespace std; using namespace fastjet;' (i.e. use the fastjet namespace but don't put your code inside it), then you can call the swap functions from both std and fastjet without explicitly specifying the namespace. * include/fastjet/PseudoJet.hh, src/PseudoJet.cc: added a list of methods giving access to the info in the parent ClusterSequence (if any): has_parent_cluster_sequence(), parent_cluster_sequence(), has_partner(), has_child(), has_parents(), contains(), is_inside(), constituents() * include/fastjet/PseudoJet.hh, include/fastjet/ClusterSequence.hh, * src/ClusterSequence.cc: added a ClusterSequenceWrapper class that contains a pointer to a ClusterSequence. Then, added a SharedPointer to such an object both in ClusterSequence and PseudoJet. All the PseudoJet's created within a ClusterSequence are thus given access to that parent ClusterSequence through the shared pointer (_parent_cs in PseudoJet). When the ClusterSequence goes out of scope, the pointer in the common wrapper object is set to NULL so all PseudoJet's can avoid accessing it. * include/fastjet/SharedPtr.hh: included cstdlib 2010-03-31 Gavin Salam * example/fastjet_timing_plugins.cc (print_jets): output constituent index as well. * fortran_wrapper/fastjetfortran_v2.cc: *** COPIED from fastjetfortran.cc *** an attempt at version 2 of the fortran wrapper, which centralises some of the housekeeping calls and adds access to constituents; tested that jet results are the same as for the original version of the fortran wrapper * fortran_wrapper/fastjet_fortran_example.cc: adapted it to show constituents (v2 feature) * fortran_wrapper/Makefile.alt: now uses _v2 * fortran_wrapper/Makefile.am (EXTRA_DIST): added fastjetfortran_v2.cc 2010-03-24 Gavin SALAM * include/fastjet/ClusterSequence.hh: removed the commented (unused) GenBriefJet code. 2010-03-10 Gregory Soyez * include/fastjet/SharedPtr.hh: removed internal get_pointer() (use get() instead), made get_container() private (_get_container()) * include/fastjet/SharedPtr.hh: Apart from a few things like - the support for deleter/allocator - the initialisation from a weak_ptr or auto_ptr - the {static,const,dynamic}_pointer_cast the implementation seems to match the standard. Note, *_pointer_casts would require the constructor template SharedPtr(SharedPtr & share, T * ptr); which stores T but shares the counter with 'share' This would probably require a __SharedCounter detached from __SharedCounterPtr, so we postpone it for the moment 2010-03-09 Gregory Soyez * include/fastjet/SharedPtr.hh (SharedPtr): Start getting closer to the boost implementation... * include/fastjet/SharedPtr.hh (SharedPtr): replaced the previous smart_ptr with a new SharedPtr: - more generic implementation rather than sth tuned for a specific situation - removed the owner part (to be dealt with in an intermediate class - manage the object it's pointing to (i.e. deletes it when counts==0) - used standard fastjet coding conventions 2010-03-09 Gavin Salam * include/fastjet/smart_ptr.hh: added an operator* 2010-03-08 Gregory Soyez * include/fastjet/smart_ptr.hh (smart_ptr): added a template class to handle smart pointer (see description in the header) 2010-03-08 Gregory Soyez * m4/CGAL.m4: force the use of C++ language for the AC_CHECK_LIB test. In that case, arguments passed through CXXFLAGS are used automatically without having to set them again in CFLAGS. 2010-03-08 Gavin SALAM * src/PseudoJet.cc: * include/fastjet/PseudoJet.hh: phi and rapidity are now no longer cached on construction of the PseudoJet. Instead _phi is set to a nonsense value (-100), and both _phi and _rap are calculated the first time that phi() or rap() is requested. ***************************************************** Start of work towards FJ 2.5/3.0 ***************************************************** 2010-02-26 Gavin Salam * configure.ac: * CHECKLIST: release of 2.4.2 carried out; switched over to 2.5-devel 2010-02-26 Gavin Salam * regression-tests/nightly-check.pl: added a test with --enable-monolithic 2010-02-26 Gregory Soyez * Merged changes from the devel-monolithic-2.4.2 branch (see the log for 2010-02-12 for details) 2010-02-18 Gavin Salam * src/ClusterSequence.cc (ClusterSequence::_print_banner): added a "flush" to the output (to avoid problems in case the application is separately writing to /dev/stdout) 2010-02-12 Gregory Soyez * m4/plugin.m4: * configure.ac: added a list of macros to handle the plugin configure options modified the configure script accordingly * fastjet-config.in: * configure.ac: added a --list-plugins option to fastjet-config that lists the available plugins * configure.ac plugins/Makefile.am: plugins/SISCone/Makefile.am: plugins/CDFCones/Makefile.am: plugins/PxCone/Makefile.am: plugins/D0RunIICone/Makefile.am: plugins/NestedDefs/Makefile.am: plugins/TrackJet/Makefile.am: plugins/ATLASCone/Makefile.am: plugins/EECambridge/Makefile.am: plugins/Jade/Makefile.am: plugins/CMSIterativeCone/Makefile.am: added the --enable-monolithic option (off by default for the moment) that allows to build all the plugins in a single lib: libfastjetplugins.{a,so} 2010-02-12 Gavin Salam * include/fastjet/JetDefinition.hh: * include/fastjet/ClusterSequenceAreaBase.hh: removed explicit names for arguments in preprocess(jet) and a number of CSAB default implementations that were not actually using their arguments. This should resolve an issue of warnings reported by LHCb (Stefan Roiser ) 2010-02-02 Gavin SALAM * regression-tests/nightly-check.pl: switched to 1000 event tests on tycho (32bit), karnak (mac 64 bit) and on pallas with intel compiler. * regression-tests/test-all-algs.pl: Put D0RunIICone back with the default tests. updated 1000 event d0runiicone checksum again following earlier wrong cut and paste. 2010-02-01 Gavin SALAM * regression-tests/test-all-algs.pl: updated checksum values for 100 and 1000 events on d0runiicone, following Gregory's inclusion of -fno-inline as a default compiler flag (eliminates certain damaging optimisations under 32 bits). 2010-02-01 Gregory Soyez * plugins/D0RunIICone/Makefile.am (libD0RunIIConePlugin_la_CXXFLAGS): * configure.ac: added the -fno-inline option when building the D0 cone plugin. This is meant to solve a bug related to the optimisation of the D0 code on some platforms (apparently gcc4 on 32-bit systems). Notes: - if -fno-inline is not supported, disable optimisation by using -O0 - if the user explicitly specifies CXXFLAGS on the command line, these will prevail. As a noticeable example, if the compiler does not support -fno-inline and the used specifies CXXFLAGS="-g -O2", the -O2 will prevail over the -O0, Arranged a series of minor typos to clean the code. 2010-01-20 Gregory Soyez * configure.ac: moved AC_PROG_LIBTOOL to avoid checking for a Fortran compiler when it is not needed 2010-01-20 Gavin SALAM * regression-tests/nightly-check.pl (build_and_check): sorted out problems related to the output of fortran compiler info. Put some tests onto tycho (32 bits). 2010-01-19 Gavin SALAM * regression-tests/test-all-algs.pl: allow for compressed data files. Added commented use of 10k file. That was generated in same way as the default 1k file, but does not currently give identical results for 1k events. Needs further investigation between making it our new default file. DISABLED testing of D0RunIICone temporarily, given the 64 bit issues. * include/fastjet/ClusterSequenceArea.hh (initialize_and_run_cswa): * src/ClusterSequenceArea.cc: added warning when using explicit ghosts with repeat!=1. 2009-11-19 Gavin SALAM * include/fastjet/internal/ClusterSequence_N2.icc: * include/fastjet/ClusterSequence.hh (ClusterSequence): commented all bits of code related to GenBriefJet, which is not used (following reports from Andy Buckley about missing virtual destructor in that code). 2009-10-22 Gavin Salam * src/ClusterSequenceActiveArea.cc (ClusterSequenceActiveArea::_throw_unless_jets_have_same_perp_or_E): in error message, added reference to FAQ for explanations. 2009-07-08 Gavin SALAM * Doxyfile: changed image format over to png. 2009-07-03 Gavin SALAM * regression-tests/nightly-check.pl: removed zetes from nightly check because it's down and added a separate check on toth with gcc-3.4. 2009-06-12 Gregory Soyez * plugins/D0RunIICone/D0RunIIConePlugin.cc (run_clustering): explicitly discard empty jets (those sometimes come out of the D0 code when the min_jet_Et parameter is set to 0. This was creating a segmentation fault (reported by Andy Buckley). 2009-06-10 Gregory Soyez * include/fastjet/ClusterSequence.hh (ClusterSequence): fixed bug in exclusive_ymerge_max which was calling itself rather than exclusive_dmerge_max. (Reported by Frank Siegert) 2009-05-29 Gavin SALAM * moved SISCone back to trunk * switched to version 2.4.2-devel 2009-05-29 Gavin SALAM * configure.ac: switched to version 2.4.1 * regression-tests/nightly-check.pl: added -only XX option for running just the test with index XX * fastjet-config.in: ensured that --rpath=no removes the RPATH that is there with CGAL. 2009-05-29 Gregory Soyez * fastjet-config.in: fixed the returned compilation flags for fastjet-config --cxxflags --libs 2009-05-28 Gregory Soyez * configure.ac: if CGAL is explicitly requested and not found (or not functional), return an error (and exit) * regression-tests/test-all-algs.pl (setRefResults): added checksums for PxCone * src/ClusterSequenceAreaBase.cc (get_median_rho_and_sigma), include/fastjet/ClusterSequenceAreaBase.hh: disregarded jets with 0 area in the computation of the median rho and sigma. Added a warning wheh a 0-area jet is encountered. 2009-05-28 Gavin SALAM * example/fastjet_timing_plugins.cc: * regression-tests/test-all-algs.pl: inexistent algs no longer crash, and real crashes are now reported by test-all-algs as *** BAD (crash) *** * autogen.sh: ensured that recursion for creation of configure files is only inside the plugin directory (e.g. no $srcdir/tmp-* directories) * regression-tests/nightly-check.pl: simplified output of fail messages; now if update changes the nightly check, then it reruns itself; it should now also output a summary message about what it has done 2009-05-28 Gregory Soyez * configure.ac: moved the test for Fortran at a more flexible and nice-looking place. * include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh (ClusterSequenceAreaBase): commented out ghost_area() * fastjet-config.in: --rpath set to the form --rpath[=yes|no] (yes by default). * configure.ac: . enabled shared libs by defaut (following a long discussion regarding static vs. shared libraries, we finally decided to make a minimal modification compared to the previous release, i.e. keep shared libraries on). By default, shared libs will be built and used and a -rpath will be added. You can switch back to static libs by adding --shared=no to fastjet-config. The rpath can be removed using --rpath=no or turned into a runpath using --runpath (ELF platforms only) . set a CONFIG_CXXFLAGS variable that allows one to specify the compilation arguments in fastjet-config independently of the ones used to compile fastjet. 2009-05-27 Gavin SALAM * regression-tests/nightly-check.pl: added facility for running some of the tests on remote hosts, and included a bunch of remote runs by default. Also set up a fairly long series of combinations that will be tested... 2009-05-26 Gavin SALAM * regression-tests/nightly-check.pl: made it possible to have several set of configure/link/nev options within a single run (e.g. to test out-of-the box running, as well as a configure with full set of algs). Current tests include: - out-of-the-box - all cxx plugins + CGAL - shared enabled, static disabled, wtih --runpath 2009-05-26 Gregory Soyez * fastjet-config.in: fixed a typo with the runpath argument allows use of --cxxflags and --libs at the same time 2009-05-26 Gavin SALAM * configure.ac: following Gregory's suggestion, fixed a typo related to temporary CXXFLAGS (this solves a problem on testing some algs, which seems to have been related to marginally different handling of floating point operations). 2009-05-25 Gregory Soyez * fastjet-config.in (Usage): added support for a --rpath and a --runpath option to fastjet-config * configure.ac: . switched back to static libs by default . check if the compiler/linker supports -Wl,-enable-new-dtags i.e. add support for the runpath (on supported platforms) 2009-05-25 Gavin SALAM * include/fastjet/ClusterSequenceArea.hh: * include/fastjet/ClusterSequenceActiveArea.hh: * include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh: * src/ClusterSequenceActiveAreaExplicitGhosts.cc: * src/ClusterSequenceActiveArea.cc: renamed area_spec -> ghost_spec, in a few places where they won't affect users (but this helps readability) * fortran_wrapper/fastjetfortran.cc: * fortran_wrapper/fastjet_fortran_example.f: changed interface so that we have generalised kt (fastjetppgenkt_) as the main way of accessing the seq.rec. algorithms. 2009-05-21 Gavin Salam * example/fastjet_timing_plugins.cc (print_jets_and_sub): expanded output on the -subdcut flag. * src/ClusterSequence.cc (ClusterSequence::exclusive_subdmerge_max): added some comments about output (zero) when nsub >= number of constituents 2009-05-20 Gavin SALAM * fortran_wrapper/fastjetsiscone.cc: *** DELETED *** * fortran_wrapper/fastjetfortran.cc: *** ADDED *** * fortran_wrapper/fastjet_fortran_example.f: (was siscone_example.f) extended the wrappers to have some seq.rec. pp algorithms as well 2009-05-10 Gregory Soyez * autogen.sh: fixed a sh script problem (replaced [[ "x"=="y" ]] w [ "x"="y" ]) * src/Makefile.am, example/Makefile.am, plugins/usage_examples/Makefile.am, plugins/D0RunIICone/Makefile.am, plugins/SISCone/Makefile.am, plugins/Jade/Makefile.am, plugins/CDFCones/CDFcode/Makefile.am, plugins/CDFCones/Makefile.am, plugins/NestedDefs/Makefile.am, plugins/CMSIterativeCone/Makefile.am, plugins/TrackJet/Makefile.am, plugins/EECambridge/Makefile.am, plugins/ATLASCone/Makefile.am, plugins/PxCone/Makefile.am, include/fastjet/internal/Makefile.am: replaced a bunch of ${VAR} by $(VAR) * configure.ac: - specified the tar-ustar option for automake. This solves a problem with filenames of length larger than 99 that were not included in the distribution under Ubuntu. - moved F77 to FC (and related) so that gfortran is automatically detected if available. - added a bunch of comments regarding the recommendation to use AC_CONFIG_MACRO_DIR([m4]) in the latest libtool versions. Nothing is done (and justified!) 2009-05-10 Gavin Salam * plugins/ATLASCone/fastjet/ATLASConePlugin.hh: * plugins/ATLASCone/ATLASConePlugin.cc: added R,seedPt,f to description + removed extraneous headers * plugins/TrackJet/fastjet/TrackJetPlugin.hh: * plugins/TrackJet/TrackJetPlugin.cc: moved some headers out of .hh into .cc * plugins/CMSIterativeCone/fastjet/CMSIterativeConePlugin.hh: * plugins/CMSIterativeCone/CMSIterativeConePlugin.cc fixed description so that it includes the radius and seed threshold + removed extraneous headers. 2009-05-08 Gavin Salam * regression-tests/nightly-check.pl: added some comments for how this might evolve in future 2009-05-08 Matteo Cacciari * example/fastjet_example.cc: * example/fastjet_subjets.cc: * example/fastjet_timing.cc: * include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh: * plugins/usage_examples/run_jet_finder.cc: added #include for compatibility with g++-4.4 (pointed out by 2009-05-07 Gavin SALAM * regression-tests/nightly-check.pl: put back the svn update lines. 2009-05-01 Gavin Salam * regression-tests/nightly-check.pl: removed the --enabled-shared option in the configure; * moved siscone back over to the trunk... 2009-04-29 Gregory Soyez * include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh (ClusterSequenceAreaBase): added a ghost_area() method to get the info about the ghost area used with this clusterSequence 2009-04-29 Gavin SALAM * src/ClusterSequence.cc: * src/ClusterSequence_N2.cc: * include/fastjet/ClusterSequence.hh: replaced void ClusterSequence::_dummy_N2_cluster_instantiation() (dummy instantiation of template to make it available elsewhere) with _simple_N2_cluster_BriefJet() and _simple_N2_cluster_EEBriefJet() (they are to be called and should directly run the template). 2009-04-27 Gregory Soyez * src/ClusterSequence.cc: restored the warning about dangerous request for exclusive jets (removed earlier today) with a more reasonnable list of algorithms for which no warnings are given. * include/fastjet/JetDefinition.hh: * plugins/Jade/fastjet/JadePlugin.hh: * plugins/EECambridge/fastjet/EECambridgePlugin.hh: added a 'exclusive_seqence_meaningful' member allowing to know if a plugin gives meaningful exclusive jets (default=false). Set to true in Jade and EECambrigde. * configure.ac: include/fastjet/config_win.h: DoxyFile: switched version number to 2.4.1-devel * test-compare.sh: discard lines with "WARNING" (occurs in non-predictable positions due to flushing issues) * src/ClusterSequence.cc: removed the WARNING previously given when extracting exclusive jets for algorithms other than pp and e+e- kt 2009-04-16 Gregory Soyez * plugins/SISCone/fastjet/SISConeBasePlugin.hh: Switched back to an implementation without templates (we're now using virtual function overloading) * plugins/CMSIterativeCone/fastjet/CMSIterativeConePlugin.hh: Added a plugin for the CMS iterative cone (see plugins/CMSIterativeCone/README for details) 2009-04-13 Gavin Salam * include/fastjet/PseudoJet.hh (dot_product): added dot_product binary operator... 2009-04-10 Gavin SALAM * m4/CGAL.m4: updated comments to make it clearer what goes with 3.3.x v. 3.4. 2009-04-06 Gavin SALAM + Matteo * src/ClusterSequenceAreaBase.cc: * include/fastjet/ClusterSequenceAreaBase.hh: changes to comments * doc/fastjet-doc.tex: sorted out a few details here and there about local ranges, and added info on running with hard jets excluded. * include/fastjet/CircularRange.hh: added check that a center has been properly defined 2009-03-31 Gavin Salam * example/fastjet_timing_plugins.cc (main): move root printout in with main jet printout (so you can get root even for exclusive jets) 2009-03-18 Gregory Soyez * src/ClusterSequence.cc (ClusterSequence::add_constituents): When the jet is made of a single particle, add explicitly that particled instead of the given 'jet'. This ensures that calling add_constituents with a subtracted jet containing only one particle will work. 2009-03-11 Gregory Soyez * m4/CGAL.m4 m4/compiler_flags.m4: *** ADDED *** check if the compiler supports -frounding-math (for the moment, just discard it if it's not supported) 2009-03-11 Gavin SALAM * regression-tests/nightly-check.pl: switched over to using CGAL 3.4. * plugins/CDFCones/fastjet/CDFJetCluPlugin.hh: removed default overlap for jetclu... * set svn:keywords to be "Id" on a bunch of files where this was missing 2009-03-07 Gregory Soyez * plugins/Jade: *** ADDED *** Added a plugin for the JADE algorithm It is an e+e- sequential recombination algorithm with interparticle distance dij = 2 E_i E_j (1 - cos theta_ij) or equivalently yij = dij/E_{visible}^2 This corresponds to the distance measured used in "Experimental Investigation of the Energy Dependence of the Strong Coupling Strength." JADE Collaboration (S. Bethke et al.) Phys.Lett.B213:235,1988 The JADE article carries out particle recombinations in the E-scheme (4-vector recombination), which is the default procedure for this plugin. NOTE: other widely used schemes include E0, P, P0; however they also involve modifications to the distance measure. Be sure of what you're doing before running a JADE type algorithm. To access the jets with a given ycut value (clustering stops once all yij > ycut), use vector jets = cluster_sequence.exclusive_jets_ycut(ycut); and related routines. 2009-03-02 Gavin Salam * regression-tests/test-all-algs.pl: fixed commented entry for d0runiicone with 10events 2009-03-02 Gregory Soyez * configure.ac: Added options --enable-allplugins and --enable-allcxxplugins Allow to enable all the (CXX) plugins at a go. We do actually only change the set of default values, so combinations like ./configure --enable-allplugins --disable-pxcone will enable everything but PxCone On top of that, --disable-all(cxx)plugins is automatically defined by autoconf Therefore, we implement it so as it does what it is supposed to do i.e. disable all the plugins. Again, --disable-allplugins --enable-siscone will work and just enable the SISCone plugin 2009-02-18 Gregory Soyez * m4/CGAL.m4: put the resulting info on CGAL compilation requirements into CGAL_xyz variables rather than the global vars. 2009-02-18 Gavin Salam * include/fastjet/NNH.hh: modified this so that one can now also use NNH where Info is an information class. One then uses the constructor NNH(const vector & particles, Info * info) and the briefjets get initialised via the call BJ->init(const PseudoJet & jet, Info * info) if you want to make sure that info does get modified, use NNH. The original NNH continues to work without the Info in the constructors/initialisation calls. 2009-02-13 Gregory Soyez * example/fastjet_timing_plugins.cc (main): added a -ycut comand-line argument * plugin/EECambridge: *** ADDED *** Added a plugin for the e+e- Cambridge algorithm. Default: enabled. This plugin takes ycut as a parameter. * plugins/ATLASCone: *** ADDED *** Added a plugin for the e+e- Cambridge algorithm. Default: disabled. This plugin takes as a parameter a cone radius, a seed threshold (2.0 GeV by default) and an overlap threshold (default:0.5). See the header file for a comment on the default values. This plugin is derived from the SpartyJet implementation of the ATLAS cone algorithm. 2009-02-12 Gregory Soyez * m4/CGAL.m4: added support for CGAL 3.4 (and cleaned) A Makefile can still be provided using the --with-cgalmakefile=... option, so backward compatibility is not broken. On top of that, a path to an installation of CGAL can be specified using --with-cgal-directory=PATH in which case the headers and lib will be searched in PATH/include and PATH/lib respectively. Finally, if no argument (except --eanble-cgal) are specified, CGAL is searched in standard locations. * makefile.static: added support for CGAL 3.4 this is done in line with CGAL.m4 by allowing the specification of a CGAL_DIRECTORY instead of the CGAL_MAKEFILE variable. 2009-02-12 Gavin Salam * src/ClusterSequence.cc (ClusterSequence::_initialise_and_run): arranged for ee algos with an R value to behave sensibly when R > pi (i.e. last pair of particles gets recombined into one). * example/fastjet_example_v1_interface.cc -> example/graveyard * example/Makefile.am: moved fastjet_example_v1_interface into the graveyard (no longer * example/fastjet_timing_plugins.cc: tried to improve documentation of various options and added -excly; -ee-print for printing jets in terms of px,py,pz,E; common output file for a range of jet output options. * include/fastjet/ClusterSequence.hh: added exclusive_ymerge, exclusive_ymerge_max, n_exclusive_jets_ycut, exclusive_jets_ycut so as to provide more helpful access to things in e+e- Jade and kt algorithms * moved plugins/Jade/NNH.hh -> fastjet/include/NNH.hh so as to make it available to other algorithms too * include/fastjet/ClusterSequence.hh: * src/ClusterSequence.cc (ClusterSequence::_fill_initial_history): added Q() to return total energy in the event (relevant for e+e-) 2009-02-11 Gavin Salam * include/fastjet/internal/ClusterSequence_N2.icc: *** ADDED *** * include/fastjet/ClusterSequence.hh * src/ClusterSequence_N2.cc * include/fastjet/internal/Makefile.am reorganised things internally so that plugins should now have access to the templated N2 implementation. 2009-02-10 Gavin Salam * include/fastjet/PseudoJet.hh (class PseudoJet): removed some consts following PAD's report of compilation warnings un gcc 4.3 (with fastjet-2.3.4). 2009-01-26 Gavin SALAM * Doxyfile: updated to avoid warnings with doxygen 1.5.7 2009-01-23 Gavin SALAM * experimental/coding-guidelines.txt: *** ADDED *** following GS's suggestion... 2009-01-21 Matteo Cacciari * include/fastjet/RangeDefinition.hh and CircularRange.hh Reinstated set_position(), added is_localizable() to base class (RangeDefinition) and derived one (CircularRange) 2009-01-16 Gregory Soyez * for each plugin, put everything under the namespace fastjet:: to avoid any conflict with other codes * plugins/TrackJet/fastjet/TrackJetPlugin.hh plugins/TrackJet/TrackJetPlugin.cc plugins/NestedDefs/fastjet/NestedDefsPlugin.hh plugins/NestedDefs/NestedDefsPlugin.cc: aligned with previous naming conventions (i.e. used _var for private vars) * test-compare.sh: extended the check down to pt=0 (instead of only jets with pt>5) 2009-01-16 Gavin SALAM + Matteo * example/fastjet_timing_plugins.cc: adapted this to use modern forms of constructors * include/fastjet/JetDefinition.hh: * src/JetDefinition.cc: put in a constructor without R (for eekt) and a default constructor, as well as a check that the jet algorithm has been constructed with the right number of parameters. *** BACKWARDS COMPATIBILITY BREAK *** CALLING USUAL PP JET ALGS WITH NO R NOW GIVES A RUN-TIME ERROR. * test-compare.sh: fixed problem with pxcone mixing f77/c++ output order according to system, which caused problems in make check * plugins/D0RunIICone/D0RunIIConePlugin.cc: Attempt to sort out compilation problem on a mac 2009-01-15 Gregory Soyez * include/fastjet/PseudoJet.hh (class PseudoJet): added Et() and Et2() to compute the transverse energy 2009-01-14 Gavin Salam * doc/fastjet-doc.tex (subsection{SISCone Plugin}): * plugins/SISCone/SISConePlugin.cc (SISConePlugin::description): * plugins/SISCone/SISConeSphericalPlugin.cc (SISConeSphericalPlugin::description): * plugins/SISCone/fastjet/SISConeBasePlugin.hh: extras now contains a function int pass(jet), which returns the pass of the jet; added function to set, query the use of the jet-definition's own recombiner (which then overrides the presence of the pass in the jets' user-index). documented the whole lot. * example/fastjet_timing_plugins.cc: -cones also prints out passes of jets, user-index, etc. 2009-01-14 Gregory Soyez * test-compare.sh: added options to specify additional params added options to specify another event added genkt, eekt and eegenkt added multiple values of R * configure.ac: even though they're enabled by default, AM_ENABLE_SHARED has to be called so that ${enable_shared} is set to 'yes' instead of '' * test-compare.sh: - dealt with a missing ${srcdir} - cleaned a bit more the output 2009-01-13 Gregory Soyez * configure.ac: switched shared libs to enabled by default note that the static libs are also built. 2009-01-13 Gavin SALAM + Matteo * src/ClusterSequence.cc: * src/ClusterSequenceVoronoiArea.cc: * src/ClusterSequenceActiveArea.cc: made modifications to allow zero-particle events to work fine. Tested various areas, as well as plain runs, including plugins (or at least SISCone). * src/ClusterSequence_TiledN2.cc: added a lower limit on the tile size to avoid huge memory use with tiny jet radii. * include/fastjet/RangeDefinition.hh: removed set_position and associated variables (will go back in -> 2.5) 2009-01-13 Gregory Soyez * test-compare.sh test-script-output-orig.txt: used now fastjet_timings_plugin rather than many_algs_examples to test the output of each installed algorithm/plugin. 2009-01-12 Gavin SALAM * src/ClusterSequence.cc (ClusterSequence::_initialise_and_run): changed the transition N for the anti-kt algorithm to 35000/R^1.15 (based only on R=0.7) * regression-tests/nightly-check.pl: added --enable-shared, to test that Gregory's new option works fine (probably want a manual test anyway...) 2009-01-11 Gregory Soyez * include/fastjet/RangeDefinition.hh (class RangeDefinition): - initialised _phispan in the default constructor - bound the phi range to twopi in the computation of total_area 2009-01-09 Gregory Soyez * include/fastjet/RangeDefinition.hh (class RangeDefinition): sorted out the issue of periodicity for generic phi ranges. 2009-01-09 Gavin SALAM * regression-tests/test-all-algs.pl (setRefResults): * doc/fastjet-doc.tex * src/ClusterSequence.cc: switched R in eegenkt to be in radians, not sqrt(2(1-\cos\theta))!! Updated docs and regression tests also, and deposited test results in in usual place, ~salam/work/fastjet/validation-ref-2008-10-30 * example/ktjet_timing.cc: added -get-all-dij option to print out the full list of dij * example/fastjet_timing_plugins.cc: added -get-all-dij option to print out the full list of dij + fixed up up output on -excld (removed squared pt) Ran tests on 1k events ./fastjet_timing_plugins -nev 1000 -eekt -get-all-dij < ../../data/Pythia-PtMin1000-LHC-1000ev.dat | grep '^d for' ./ktjet_timing -nev 1000 -eekt -get-all-dij < ../../data/Pythia-PtMin1000-LHC-1000ev.dat | grep '^d for' and it passed it fine (modulo some small rounding error issues here and there. 2009-01-05 Gregory Soyez * plugins/TrackJet/TrackJetPlugin.cc: released the TrackJet plugin. Adapted many_algs_examples, fastjet_timing_plugins and all build scripts accordingly 2008-12-18 Gavin SALAM * regression-tests/test-all-algs.pl: added documentation on how to add a new algorithm. * regression-tests/nightly-check.pl: adding a little more info to output 2008-11-17 Gavin SALAM * include/fastjet/RangeDefinition.hh: added a check that phimax <= twopi in constructor 2008-10-31 Gavin SALAM * regression-tests/nightly-check.pl: finished a first version of this, with a fairly complete set of checks. 2008-10-30 Gavin SALAM * regression-tests/nightly-check.pl: *** ADDED *** started work on this script for running a full swathe of regular checks * regression-tests/test-all-algs.pl: *** ADDED *** script to help test correctness of fastjet, by running many algs and, for each, comparing checksum of numerical part of results to a previously stored checksum. * example/fastjet_timing_plugins.cc: various small changes to ease test-all-algs.pl behaviour 2008-10-30 Matteo Cacciari * include/fastjet/RangeDefinition.hh: replaced methods place_at() and place() with set_position() 2008-10-29 Gavin SALAM & Matteo * include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh: * include/fastjet/ClusterSequenceAreaBase.hh: * include/fastjet/ClusterSequenceArea.hh: added a virtual function has_explicit_ghosts(), which returns true if the clusterSequence has explicit ghosts within the jets. * src/ClusterSequenceArea.cc: if has_explicit_ghosts() is true, then don't bother with fancy estimations of empty_area in get_median_rho_and_sigma(...). Instead set it to zero, and assume that the corresponding information is provided by the pure ghost jets. NB: the empty_area(range) routine also returns zero if has_explicit_ghosts(); the empty_area(jets, range) does not, on the grounds that the user may have deliberately passed some incomplete set of jets within the range. 2008-10-27 Matteo Cacciari * src/ClusterSequence.cc: updated banner link to www.fastjet.fr 2008-10-13 Matteo Cacciari * include/fastjet/RangeDefinition.hh Added method place_at(jet) and place_at(rap,phi), to be used by derived local ranges to place the range at a jet's position, after having defined the range only once with just its geometrical parameters. Moved _rapjet and _phijet from private to protected. Correspondingly modified CircularRange.hh 2008-10-09 Gavin Salam * example/fastjet_boosted_higgs.cc: *** ADDED *** * example/data/HZ-event-Hmass115.dat: *** ADDED *** * example/Makefile.am: * example/data/Makefile.am: added an example to show how to carry out subjet decomposition for finding boosted objects * example/Makefile.am: * example/fastjet_subjets.cc: tidied this up a little & arranged for it to be compiled 2008-09-04 Gavin SALAM + Matteo * plugins/CDFCones/CDFJetCluPlugin.cc: in transfer part of plugin, sorted the constituents of a jet (into ascending fjindex), to work around the problem that JetClu may return constiuents in different orders when soft ghost-particles are added. Note: JetClu seems to be IR unsafe (at the 10^{-4} level in toy events) even when the seed threshold is non-zero. The frequence is higher in real events and means that passive areas, and active areas with repeat > 1, will throw fastjet::Error(...); users should catch this if they want to continue running. tested on 1k events against unmodified jetclu plugin in 2.3.4 ----------------------------------------------- released 2.3.4 on 2008-08-15 it contains jetclu & "exit" bug fixes from below + siscone 1.3.3 ----------------------------------------------- 2008-08-15 Gavin Salam * plugins/CDFCones/CDFJetCluPlugin.cc: switched over to the use of PhysicsTower::fjindex for bookkeeping a jet's contents (rather than a map, which had led to a bug report by James Monk). * plugins/CDFCones/CDFcode/PhysicsTower.hh (class PhysicsTower): add fjindex member variable to this class to allow bookkeeping needed by the JetClu plugin. 2008-08-11 Gavin Salam * include/fastjet/GhostedAreaSpec.hh (class GhostedAreaSpec): * src/GhostedAreaSpec.cc (GhostedAreaSpec::add_ghosts): added constructor and implementation for asymmetric ghost range (different min & max rapidities), following request by Roman Kogler (H1 is asym in rap). * example/fastjet_timing_plugins.cc: dense coverage switched over to using GhostedAreaSpec (will change root pictures relative to earlier), used also for testing the new asymmetric range of ghosts. 2008-08-06 Gregory Soyez * example/fastjet_timing_plugins.cc (main): when appropriate, delete the plugin at the end of the execution. 2008-07-24 Matteo Cacciari * src/ClusterSequenceAreaBase.cc Added copy of user_index over to subtracted jet in subtracted_jet() [previously fogotten] 2008-07-23 Gregory Soyez * NEWS: updated the warnings about IR safety of the spherical implementation of SISCone * example/Makefile.am, plugins/usage_examples/Makefile.am: adapted the compilation flags to use the new version of the plugin (requires inclusion of the SISCone headers) * plugins/SISCone/fastjet/SISConeBasePlugin.hh, plugins/SISCone/fastjet/SISConePlugin.hh, plugins/SISCone/fastjet/SISConeSphericalPlugin.hh, plugins/SISCone/SISConePlugin.cc, plugins/SISCone/SISConeSphericalPlugin.cc: Added a template plugin and made the two current plugins derive from it. 2008-07-18 Gregory Soyez * configure.ac: removed the unnecessary -I../included flag from AM_CXXFLAGS 2008-07-18 Gavin SALAM * example/CmdLine.cc: * example/CmdLine.hh: put in a missing "const" & included cstdlib in the .cc (for access to exit) 2008-07-17 Gregory Soyez * include/fastjet/Makefile.am (nodist_fastjetinclude_HEADERS): config_auto.h removed from the package distribution as it may conflict with the configure-generated one when building in a separate directory. 2008-07-16 Gavin Salam * mksnapshot.sh: included fix for ensuring the windows include file is correct in the snapshot. 2008-07-14 Gavin Salam * src/PseudoJet.cc: * include/fastjet/PseudoJet.hh: added sorted_by_pz() (used for safety tests on new algs) 2008-07-12 Gavin Salam * NEWS: added mention of spherical siscone * example/fastjet_timing_plugins.cc: added -sisconespheri option for running spherical siscone; changed scale of "dense" additions to separate them better from normal particles. * plugins/SISCone/fastjet/SISConeSphericalPlugin.hh: added comments about differences relative to the cylindrical algorithm NB: some other files have changed with minor typographical fixes 2008-07-11 Gregory Soyez * include/fastjet/ClusterSequenceAreaBase.hh: added a comment to notice that putting a negative value for 'exclude_above' means the cut is discarded (in parabolic_pt_per_unit_area). * configure.ac (ENABLE_PLUGIN_SISCONE) examples/Makefile.am plugins/usage_examples/Makefile.am: added libsiscone_spherical to the list of libs to link against when using the SISCone plugin. 2008-07-11 Matteo Cacciari * fixed CircularRange.hh (wrong filenme and missing fastjet namespace) 2008-07-07 Gregory Soyez * plugins/SISCone/SISConeSphericalPlugin.cc: plugins/SISCone/fastjet/SISConeSphericalPlugin.hh: added a plugin for the spherical version of SISCone. It is named SISConeSplericalPlugin and included in the same plugin library as the main plugin 2008-06-28 Gregory Soyez * plugins/NestedAlgs/fastjet/NestedAlgsPlugin.hh plugins/NestedAlgs/NestedAlgsPlugin.cc: - rename NestedAlgs in NestedDefs - internally, call 'algorithms' 'definitions', for consistency - do not put the last alg. recomb at the end but at the moment they appear. - keep the dij, diB for the last def; and set all others to zero? That way people can run sub-jet tools on the last jet-def without worrying about strange conflicts with the previous dij's which have a different meaning. - do some renaming of the internal variables for readability 2008-06-22 Gavin Salam * doc/fastjet-doc.tex: updated the documentation to contain information about the e+e- algorithms; added note on accessing version info; * src/ClusterSequence.cc: removed warning about exclusive jets for the ee_kt alg. Added test of ee_kt R value. Arranged distance-measure normalisations such that dij has 1/R^2 for ee_gen_kt, but not for ee_kt (the former matches on directly to gen_kt, the latter onto the usual e+e- convention). * include/fastjet/JetDefinition.hh: * src/JetDefinition.cc (JetDefinition::JetDefinition): moved the code for the constructor into the .cc file; For the ee_kt_algorithm, set the R value explicitly (R=4), to avoid the user getting something that isn't the original kt algorithm without realising. Also removed the mention of $R$ in the description. NB: functionality of R for this alg can be obtained with ee_genkt. 2008-06-19 Gavin Salam * TESTING: ran basic tests on behaviour of eegenkt for a set of simple events; checked that eegenkt with p=1 gives same as eekt (for R=2); and rechecked once again against original KtJet. * include/fastjet/JetDefinition.hh: removed inappropriate restriction on R for eegenkt. 2008-06-14 Gavin Salam * include/fastjet/JetDefinition.hh (enum JetAlgorithm): * src/JetDefinition.cc (JetDefinition::description): * src/ClusterSequence.cc (ClusterSequence::_initialise_and_run, inclusive_jets): * src/ClusterSequence_N2.cc (ClusterSequence::_bj_set_jetinfo): added support for the ee_genkt_algorithm [should double check ee_kt (some mods may have affected it, though quick tests done) and check genkt more extensively [e.g. with spherical plots?] 2008-06-02 Gregory Soyez * plugins/NestedAlgs/NestedAlgsPlugin.cc: Added a new plugin which does the clustering by applying successively a set of algorithms. The usage simply goes as follows list jet_list; // add here the list of algs you want (the first one // you want to be applied goes first) to 'jet_list' JetDefinition jet_def = new NestedAlg(jet_list); ClusterSequence(particle_list, jet_def); As for the other plugins, NestedAlgs can be enabled or disabled at configure-time using --enable-nestedalgs or --disable-nestedalgs (enabled by default). 2008-05-28 Gavin Salam * plugins/D0RunIICone/fastjet/D0RunIIConePlugin.hh: Following discussions with Christophe Royon and Lars Sonnenschein, removed the default value for the min_jet_Et in the D0RunIIConePlugin, since two different values have been used over the years. * test-script-output-orig.txt: * example/fastjet_timing_plugins.cc: * plugins/usage_examples/many_algs_example.cc: updated these to use min_jet_Et to 6 GeV (was 8) for the d0runiicone 2008-05-23 Gavin Salam * src/PseudoJet.cc: * include/fastjet/PseudoJet.hh: Added a delta_phi_to(...) member function to calculte phi distance to another PseudoJet 2008-05-21 Gavin Salam * include/fastjet/ClusterSequence.hh: * src/ClusterSequence.cc: Rather than have an inline virtual destructor, moved it into the .cc file (no particular reason) 2008-05-17 Gavin Salam * src/ClusterSequenceAreaBase.cc: * include/fastjet/ClusterSequenceArea.hh: * include/fastjet/ClusterSequenceAreaBase.hh: Added an extra version of get_median_rho_and_sigma which takes an explicit list of jets and calculates the median from that --- intended to help easily consider multiple R values within the C/A algorithm. Also added empty_area_from_jets() NB: "gmrs" also takes an extra argument to indicate whether the supplied jets are inclusive or not (affects assumptions it makes in calculating number of empty jets) NB2: when playing these games, the estimate of the number of empty jets is very hard to get in "plain" area classes for non-inclusive jets. Currently it's done by estimating the empty_area and dividing this by the mean_area of the non-empty jets; however there are situations where this procedure becomes dodgy (still to be understood why)... * TODO: updated this to reflect the current status of things 2008-05-16 Gavin SALAM * NEWS: updated this to reflect main current changes 2008-05-14 Matteo Cacciari * include/fastjet/CircularRange.hh ADDED added derived class for circular range 2008-05-12 Gavin Salam * example/root/jet-plots.C: - changed histograms to doubles so that ghosting gives visible results. - JetHist::default_etamax and default_nbins can now be set by user - showjets now plots labels on axes - it reads a comment from the file and uses it as a label if none is supplied - it returns a pointer to the canvas, for user's subsequent manipulation * src/ClusterSequence.cc (ClusterSequence::print_jets_for_root): * include/fastjet/ClusterSequence.hh: added alternative interface for print_jets_for_root, which takes filename and optional comment * include/fastjet/ClusterSequence.hh: *** COULD BREAK COMPILED LIBRARIES?? *** added virtual ~ClusterSequence () {} destructor; necessary in order to get deletion of pointers to generic ClusterSequence type objects working correctly (e.g. ClusterSequence *, that points to a ClusterSequenceArea). Leaving this out originally was related to the fact that we did not originally forsee derived classes from ClusterSequence. ----------------------------------------------- released 2.3.3 on 2008-04-28 it contains bug fixes from below ----------------------------------------------- 2008-04-28 Gavin SALAM * include/fastjet/internal/SearchTree.hh: added a missing typename (pointed out by Belyaev). * include/fastjet/Makefile.am (fastjetinclude_HEADERS): added config_auto.h which was not being installed. 2008-04-18 Gavin SALAM * mksnapshot.sh: added this script for creating snapshots, numbered both with date and revision number 2008-04-04 Gavin SALAM later **** TESTS CARRIED OUT **** tested 1000 events from ../data/Pythia-PtMin1000-LHC-1000ev.dat between fastjet_timing_plugins and ktjet_timing with dcut = 10 and dcut = 2000; both give identical results. Commands used were: ./ktjet_timing -eekt -nev 1000 -excld 2000 < ../../data/Pythia-PtMin1000-LHC-1000ev.dat ./fastjet_timing_plugins -eekt -R 2.0 -nev 1000 -excld 2000 < .... NB: R > sqrt(2) is mandatory within the current interface * example/fastjet_timing_plugins.cc: * example/ktjet_timing.cc: added e+e- kt run options to these programs * include/fastjet/ClusterSequence.hh: * src/ClusterSequence_N2.cc: * src/ClusterSequence.cc: modifications so that the _simple_N2_cluster() routine becomes a template, whose action depends on specific type of BriefJet with which it is called. Added the EEBriefJet type, together with minimal functions, so as to get a form of the e+e- algorithm. * include/fastjet/PseudoJet.hh added the modp2() member function which returns the squared modulus of the 3-vector part of the PseudoJet * include/fastjet/JetDefinition.hh added the ee_kt_algorithm; 2008-04-04 Gavin SALAM earlier * plugins/CDFCones/fastjet/CDFMidPointPlugin.hh: * plugins/SISCone/fastjet/SISConePlugin.hh: removed the default value for the overlap_threshold (was 0.5 and this caused physics problems in the past; 0.75 is recommended). 2008-04-03 Gavin SALAM * NEWS: updated NEWS to reflect changes made on the 2.3.2-devel bug-fix branch ----------------------------------------------- released 2.3.2 on 2008-04-03 it contains a subset of what is listed below ----------------------------------------------- 2008-04-03 Gavin SALAM * BUGS: updated this file to reflect current status 2008-04-01 Gregory SOYEZ * src/Voronoi.{hh,cc} BUGS: declared some variables as volatile. Those were subject to "==" tests which lead to segmentation faults when the registers did not have the same precision as a regular double. This closes the following bug: . The Voronoi area evaluation (=Passive for the kt algorithm), is known to crash on events in which the momenta lie on a exact grid in rapidity,phi (i.e. a calorimeter). An unsatisfactory workaround is to slightly displace input momenta away from the exact grid. Work is in progress to address this issue. * src/ClusterSequenceVoronoiArea.cc (VAC::VoronoiAreaCalc): added bits of comments 2008-03-28 Gregory Soyez * src/ClusterSequenceActiveArea.cc (ClusterSequenceActiveArea::_transfer_areas): fixed array-size issue when there are unclustered particles. 2008-03-26 Gregory Soyez * configure.ac: fix a bug with AM_CXXFLAGS being overwritten at some point 2008-03-23 Gavin Salam * configure.ac: fix CXXFLAGS in such a way as to allow the user to set their own default. * include/fastjet/ClusterSequenceArea.hh (class ClusterSequenceArea): added some missing Doxygen comments to this class 2008-03-15 Gavin Salam * src/Voronoi.cc * plugins/SISCone/siscone * include/fastjet/ClusterSequence1GhostPassiveArea.hh * include/fastjet/ClusterSequencePassiveArea.hh * include/fastjet/ClusterSequenceActiveArea.hh * include/fastjet/internal/Voronoi.hh got rid of using namespace std in the headers 2008-03-15 Gavin Salam * did svnmerge.py uninit on the D0ILConePlugin branch * merged the D0ILConePlugin Branch, which provides the D0 Run II Cone, the genkt algorithm, and a full set of subjet tools (still to be tested in part?) ============== MERGE OF D0ILConePlugin Branch ===================== 2008-01-12 Gavin SALAM * example/fastjet_timing_plugins.cc: changed position of a #ifdef ENABLE_PLUGIN_SISCONE so that when we merge it doesn't logically conflict with a parallel change in the trunk). 2007-12-29 Gavin Salam * include/fastjet/ClusterSequence.hh: * src/ClusterSequence.cc: added a full set of subjet functions, in analogy with what's available for normal exclusive jets. Not yet documented 2007-12-28 Gavin Salam * doc/fastjet-doc.tex documented genkt and subjet work; NB: MORE FUNCTIONALITY (SPLIT TO N JETS, ETC.) NEEDED FOR THE SUBJET WORK. * include/fastjet/JetDefinition.hh: * src/JetDefinition.cc: * src/ClusterSequence.cc: Got genkt working. * example/fastjet_timing_plugins.cc: added option (-subdcut) for carrying out subjet analysis on every jet; various methods are programmed internally, and the subjet analysis was checked by making sure that for each method, ./fastjet_timing_plugins -nev 1000 -cam -subdcut 0.25 \ < ~/work/fastjet/data/Pythia-PtMin50-TeV-1000ev.dat gave identical results (similarly also for kt). This validates the ClustSequence::exclusive_subjets(...) routine. Also added -doruniicone option. * plugins/D0RunIICone/fastjet/D0RunIIConePlugin.hh: added default values for min_jet_Et and split_ratio, such that the algorithm can be called with just the cone radius and it will correspond to what is used by D0. * example/fastjet_subjets.cc: added some explicit subjet analysis * src/ClusterSequence.cc: corrected a couple of bugs in exclusive_subjets 2007-12-21 Gavin Salam * src/ClusterSequence.cc: * include/fastjet/ClusterSequence.hh: added the exclusive_subjets(jet,dcut) routine to find out about the subjets at scale (dcut) inside a given jet ----------------------------------------------------- * from revision 989 onwards, add subjet analysis ----------------------------------------------------- 2007-12-14 Gavin Salam * example/fastjet_timing_plugins.cc: fixed compilation bug when siscone is disabled * plugins/usage_examples/many_algs_example.cc: * test-script-output-orig.txt: * test-compare.sh modified these so that D0 cone is tested as well + fixed bug in check when siscone is disabled * [various]/Makefile.am * configure.ac added compilation of D0 code & plugins * plugins/D0RunIICone/fastjet/D0RunIIConePlugin.hh: *** ADDED *** * plugins/D0RunIICone/D0RunIIConePlugin.cc: *** ADDED *** added these both, modified the D0RunIICone to get easy access to jet constituents, and tested that it gives correct answers on sample event sent by Lars Sonnenschein. * plugins/D0RunIICone/ *** ADDED *** - put in untarred version of D0RunIIcone/ - copied main pieces into top directory - made modifications for compilation - added index entry to HepEntity 2007-12-14 Gavin Salam ----------------------------------------------------- * on branch (from revision 981) for adding D0 cone... ----------------------------------------------------- ============== END OF MERGE OF D0ILConePlugin Branch ===================== 2008-03-15 Gavin Salam * initialised svnmerge.py on svn+ssh://tycho/ada1/lpthe/salam/svn/fastjet/branches/fastjet-release-devel-D0ILConePlugin 2008-03-15 Gavin Salam * doc/fastjet-doc.tex (subsection[$k_t$ jet algorithm]): added refs separately to inclusive and exclusive when describing jet-alg (subsequent to mails from Piergiulio Lenzi who was having trouble understanding what was happening). 2008-03-07 Gavin SALAM * configure.ac: switched version number over to 2.4-devel ----------------------------------------------- released 2.3.1 on 2008-03-07 ----------------------------------------------- 2008-03-07 Gavin SALAM * configure.ac * test-compare.sh * src/genconfig.sh * src/makefile.static * include/fastjet/config.h *** ADDED *** * include/fastjet/config_win.h *** ADDED *** Moved to a structure of config_auto.h (with autotools and unix static makefiles), and config_win.h (under windows). The config.h file now detects the system and includes the appropriate one 2008-02-28 Matteo Cacciari * src/ClusterSequenceAreaBase.cc: Revisited part of the change made on 2008-02-18: subtracted jets with unphysical momentum now also get a valid index 2008-02-25 Gavin SALAM * src/ClusterSequence.cc: in exclusive_dmerge(njets) and exclusive_dmerge_max(njets), fixed assert(njets > 0) to njets >= 0; Bug reported by Piergiulio Lenzi . 2008-02-18 Matteo Cacciari * src/ClusterSequenceAreaBase.cc: in subtracted_jet(), copied cluster_hist_index from original jet to sub_jet, so that one can then directly analyse sub_jet (for instance in terms of its constituents). Feature request by Juan Rojo 2008-01-28 Gavin Salam * plugins/SISCone/fastjet/SISConePlugin.hh: added note about recommended value for overlap_threshold different from the default. * Doxyfile: updated this to reflect new plugin header locations * CHECKLIST: added this to indicate what's needed for a release 2008-01-17 Gavin Salam * src/genconfig.sh (configfile): can now take a first argument to generate a file of whatever name user likes. 2008-01-15 Gregory Soyez * plugins/PxCone/pxcone.h: fix name conventions for VC compilation * plugins/CDFCones/CDFcode/LorentzVector.hh (M_PI): * plugins/CDFCones/CDFcode/Centroid.hh (M_PI): * plugins/CDFCones/CDFcode/CalTower.hh (M_PI): added a definition of M_PI in case not already defined (VC compilation) * include/fastjet/internal/SearchTree.hh: added 'typename' where required (VC compilation) * src/ClusterSequenceVoronoiArea.cc: - added the limis header (VC compilation) - replaced M_PI by pi (defined in fastjet/internal/numconsts.hh) * src/ClusterSequenceActiveArea.cc: - added the algorithm, cmath and valarray headers (VC compilation) - fixed a type/operator confusion in ClusterSequenceActiveArea::_postprocess_AA (VC compilation) * src/PseudoJet.cc: * src/ClusterSequence_TiledN2.cc: * src/ClusterSequenceAreaBase.cc: * src/ClosestPair2D.cc: added the algorithm header (VC compilation) 2008-01-15 Gavin Salam * plugins/CDFCones/CDFcode/MidPointAlgorithm.cc (MidPointAlgorithm::iterateCone): fixed speed issue with optimized compilation by making some local variable volatile (Gregory's proposal). The problem was that on 32 bit machines a 64 bit stored variable was being compared to an 80 bit register -- making everything volatile forces thing to go into memory and solves the problem. 2008-01-14 Gavin Salam * plugins/SISCone/siscone switched this back over to the SISCone trunk, in preparation for Belyaev's bug fixes. 2008-01-11 Gavin SALAM * TODO: updated this a little * test-compare.sh: fixed typo that caused make check failure when siscone is disabled * example/fastjet_timing_plugins.cc: bug-fix in conditional compilation to get things to still work when siscone is disabled. * configure.ac: switched over to 2.3.1-devel 2008-01-04 Gavin Salam * BUGS: added remark about pt=0 and ambiguities in clustering inputs on a perfect y-phi grid + VC7.1 compilation. ----------------------------------------------- released 2.3.0 on 2008-01-03 ----------------------------------------------- 2008-01-03 Gavin SALAM + Matteo * BUGS *** ADDED *** * prepared things for the 2.3.0 release 2007-12-24 Gavin Salam * NEWS: added information summarising 2.1 -> 2.3 2007-12-18 Gavin SALAM * Makefile.am: added Doxyfile to EXTRA_DIST 2007-12-11 Gavin Salam * example/root/jet-plots.C: minor fix to get it working with modern (5.16) version of root. 2007-12-04 Gavin Salam + Gregory * include/fastjet/ClusterSequenceArea.hh: * include/fastjet/ClusterSequenceAreaBase.hh: made 4-argument get_median_rho_and_sigma virtual, and added a 4-argument overridden version to ClusterSequenceArea; this was necessary because when you redefine one version with a given name, then you need to explicitly override all other versions with the same name. 2007-12-04 Gavin Salam * configure.ac moved version number over to 2.3-beta1-devel * NEWS renamed 2.2-beta1 -> 2.3-beta0 * ClusterSequenceActiveArea.cc|hh Commented out the parabolic_pt_per_unit_area function, since it is provided by the AreaBase class. This should also avoid the compilation warning about the base class function being hidden. * example/fastjet_areas.cc: added more explicit comments about some of the alternatives that are currently commented out. 2007-12-03 Gavin Salam + Gregory * TAGGED the 2.3-beta0 release 2007-11-30 Gregory Soyez * include/fastjet/Makefile.am: remove config.h from the list of headers included in the distribution. It should be generated from config.h.in at configure time. When included, it also seems to cause trouble for make distcheck. * test-compare.sh: add write permissions to the temporary copy of the original output (read-only by default for make distcheck). Also, explicitely remove the files generated by make ckeck in case it succeeds (also required for make distcheck to work.) 2007-11-29 Matteo Cacciari * src/ClusterSequenceAreaBase.cc very minor fix to subtracted_jets() (use of int in loop was giving a warning, *this was useless, eliminated debugging comments) * src/ClusterSequence.cc Updated the banner (PLB + anti-kt) * configure.ac Version number moved to 2.3-beta0 (from 2.3-beta0-devel) * INSTALL - single line version for compiling and linking external program - replaced output example vith version 2.3-beta0 (only the banner changes) 2007-11-26 Matteo Cacciari * src/ClusterSequenceAreaBase.cc [+.hh] : * fixed comment of subtracted_jet() * added the methods subtracted_jets() which returns a vector of PseudoJet by acting on inclusive_jets() * added fortran wrapper to TODO list * typo-fixing in documentation * include/fastjet/JetDefinition.hh include/fastjet/ClusterSequence.hh [.cc] Replaced JetFinder by JetAlgorithm, and (_)jet_finder by (_)jet_algorithm, in keeping with Les Houches convention. Also replaced accordingly _default_jet_finder and the jet_finder() method. Backward compatibility is assured at the user-level by a typedef and by doubling functions containing the word "jet_finder" NB. THERE IS ONE EXCEPTION: _default_jet_finder and _jet_finder were protected variables of ClusterSequence: the replacement will break derived classes using them. They should be replaced everywhere by "_default_jet_algorithm" and "_jet_algorithm" * src/ClusterSequenceAreaBase.cc src/ClusterSequencePassiveArea.cc src/JetDefinition.cc replaced jet_finder() by jet_algorithm() * example/fastjet_subtraction.cc median rho is now calculated using ...per_unit_area_4vector when used in 4-vector subtraction along with area_4vector * example/fastjet_subtraction.cc fastjet_areas.cc fastjet_example.cc fastjet_timing.cc fastjet_timing_plugin.cc replaced "finder" with "algorithm" 2007-11-22 Gavin SALAM & Matteo Tidying up in anticipation of 2.3-beta0 release; in addition to what's mentioned below, various bits of old commented code removed. * include/fastjet/JetDefinition.hh introduced jet_algorithm() (does same as jet_finder()); * src/ClusterSequenceArea.cc: *** ADDED *** +.hh * src/ClusterSequenceAreaBase.cc: + .hh set get_median_rho_and_sigma (and parabolic...) to be virtual, overloaded it in ClusterSequenceArea so as to check that if ghosts were used they're over a suitably large rapidity range. * src/ClusterSequenceAreaBase.cc: removed explicit code for median_pt_per_unit_something -- it now just calls get_median_rho_and_sigma and returns the median; tested that results are identical! * include/fastjet/RangeDefinition.hh: modified comment for _numerical_total_area; added virtual get_rap_limits() to find out what rapidity limits the range has. Mentioned it in the documentation too. * src/ClusterSequenceActiveArea.cc (_initialise_AA): * [and elsewhere] removed commented lines with old "maxrap" interface for setting range when finding median etc. * configure.ac: switched version number to 2.3-beta0 * plugins/SISCone/ put siscone onto tagged version 1.3.0 2007-11-10 Gavin Salam Summary of places where tests carried out in past few days: name | system | tarball v autoconf+automake | conf ------------------------------------------------------------- ramses | OSX 10.3 | t + a 2.61+1.10 (DIY) | ?? tycho | FC 7 | a 2.61+1.10 | cp bison(me)| Ubun 7.04 | a 2.61+1.9.6 | cps bison(me)| cygwin | a ??? | p?(s?) lxplus | SLC4 | t + a 2.59+1.9.2 | ps zetes | SLC4? | t | ps lpnui | SLC3 | t | ps The "conf" column indicates which of cgal, pxcone and shared were enabled, when I can remember... Lowest libtool: 1.5.6 * plugins/PxCone/Makefile.am: added missing pxcone.h to EXTRA_DIST * test-compare.sh: fixed bug causing it to fail when build takes place in a separate directory. * test-static.sh: *** RENAMED FROM *** test-script.sh modified it so that it uses test-compare.sh for carrying out the tests. * src/makefile.static: adapted it so that it uses install-sh for the installation in lib/ (works around issue with absent lib/ directory in the distribution) * Makefile.am: included test-script.sh in EXTRA_DIST * example/Makefile.am: removed test-*.sh from EXTRA_DIST (since the scripts have been removed) * plugins/usage_examples/Makefile.am: removed test-*.sh from EXTRA_DIST (since the scripts have been removed) added -I../../include so as to get the ../../include/fastjet/config.h when building in a separate directory. 2007-11-09 Gregory Soyez * test-compare.sh: test-script-output-orig.txt: Allow to test the complete set of installed plugins. * plugins/usage_examples/many_algs_example.cc (main): append the anti-kt clustering algorithm * fastjet-config.in: sort out the -static issue Now, shared lib is used by default if enabled. You can still use the static one using the --shared=no flag 2007-11-09 Gavin Salam * include/FjPseudoJet.hh: * include/FjClusterSequence.hh: added obscolescence warning * put version number over to 2.2-beta1-devel (-beta ensures it comes alphabetically before 2.2.0) 2007-11-08 Gregory Soyez * test-compare.sh: all tests will be launched from here This allows to test examples before plugins examples * plugins/(PxCone|CDFCones|SISCone)/...Plugin.hh: added a #warning to tell the user to switch to new version 2007-11-08 Gavin SALAM * plugins/(PxCone|CDFCones|SISCone)/Makefile.am: * plugins/(PxCone|CDFCones|SISCone)/...Plugin.hh: ***ADDED*** added * example/root/Makefile.am: * example/Makefile.am: * configure.ac: put in some stuff missing from the distribution (example/makefile.static, example/root/...) 2007-11-08 Gavin SALAM * MERGED svn/fastjet/branches/fastjet-release-autoconf (Rev 938) back into the trunk; assembled the Changelogs to be in date order across the two groups of chages. 2007-11-08 gavin salam * configure.ac: removed EXEEXT for fastjet-config (relevant presumably only for cygwin, where, as a script, it should not have the extension). * example/Makefile.alt: removed explicit path to fastjet-config 2007-11-07 Gregory Soyez * m4/CGAL.m4: move the local m4 macro defs in the m4 subdir * Makefile.am (ACLOCAL_AMFLAGS): add info on the local m4 macros * autogen.sh: search local aclocal m4 macros in the m4 subdir * INSTALL: add info regarding autoreconf 2007-11-07 Gavin SALAM * autogen.sh: removed lines replacing libtool->glibtool on MAC, since with fresh compilation of recent autoconf, automake and libtool, it's all working fine. * doc/Makefile.am *** ADDED *** added doc/ to the tarfile * fortran_wrapper/siscone_example.f: * fortran_wrapper/Makefile -> Makefile.alt * fortran_wrapper/Makefile.am * Makefile.am * configure.ac got the fortran wrapper example working 2007-11-07 Gavin SALAM * configure.ac: * example/Makefile.am: * plugins/usage_examples/Makefile.am: when pxcone is enabled, the following macros get called AC_PROG_F77 AC_F77_LIBRARY_LDFLAGS they set up FLIBS, which is then used where relevant 2007-11-07 Gavin SALAM * include/fastjet/PseudoJet.hh: modified reset(...) a little so that we have: - version with 4 args (px,...,E) and template (vectorial) version - version that takes a PseudoJet The first ones reset the indices to default values; the latter just copies the PseudoJet; Also coordinated the resetting of indices. 2007-11-06 Gavin SALAM * include/fastjet/PseudoJet.hh: added PseudoJet::reset(...) for modifying the 4-momentum. 2007-11-06 Gavin SALAM * src/ClusterSequence.cc: promoted Gregory to full author status. * include/fastjet/version.hh: * configure.ac: * src/genconfig.sh: ***ADDED*** arranged things so that we generate include/fastjet/config.h even with the makefile.static options, and we also use the version number from config.h in fastjet output... + fixed some dependence issues in other makefiles * example/fastjet_timing_plugins.cc: * example/fastjet_areas.cc: * plugins/usage_examples/cdfmidpoint_example.cc * plugins/usage_examples/siscone_example.cc * plugins/usage_examples/many_algs_example.cc * plugins/usage_examples/pxcone_example.cc adapted them to get rid of PLUGINS_NOT_IN_FASTJET and use instead config.h * example/Makefile.alt: documented a bit better 2007-11-05 Gregory Soyez * fastjet-config.in: configure.ac: Previous replacement of AM_LIBS by CONFIG_LIBS had some influence on fastjet-config that was not properly taken into account. This should be fixed now. * plugins/SISCone/fastjet plugins/CDFCones/fastjet plugins/PxCone/fastjet: Those 3 directories now contain the header files for the corresponding plugins * plugins/SISCone/fastjet/Makefile.am plugins/CDFCones/fastjet/Makefile.am plugins/PxCone/fastjet/Makefile.am: Files added for autotools support * plugins/SISCone/SISConePlugin.cc plugins/CDFCones/CDFJetCluPlugin.cc plugins/CDFCones/CDFMidPointPlugin.cc plugins/PxCone/PxConePlugin.cc plugins/usage_examples/Makefile.am plugins/usage_examples/siscone_example.cc plugins/usage_examples/cdfmidpoint_example.cc plugins/usage_examples/pxcone_example.cc plugins/usage_examples/many_algs_example.cc examples/Makefile.am example/fastjet_timing_plugins.cc example/fastjet_areas.cc: update to match the new include path structure 2007-11-01 Gregory Soyez * INSTALL: add a bit more details * CGAL.m4 (ACX_CHECK_CGAL): fix the previous changes. CGAL check starts by looking for a --with-cgalmakefile option. If this is absent it looks for a defined CGAL_MAKEFILE variable. Otherwise, the default location is used. 2007-10-31 Gavin Salam * CGAL.m4 (ACX_CHECK_CGAL): hopefully fixed problem with it not finding the CGAL makefile * autogen.sh: fixed minor incompatibility with plain sh (in Darwin "if") 2007-10-27 Gregory Soyez * example/fastjet_timing_plugins.cc: plugins/usage_examples/many_algs_examples.cc: use config.h to get the info on the available plugins For the static build (using makefile.static), we explicitely define the SISCone and CDFCones flags. * example/test-areas.sh: *** ADDED *** example/test-example.sh: *** ADDED *** test-compare.sh: *** ADDED *** test-script-output-orig.txt example/Makefile.am: add tests accessible through "make check". Note that the comparison results file has been reorganised to follow the order in which tests are run now (the latter being a consequence of the build/Makefile order). * plugins/usage_examples/Makefile.am: build many_algs_example and the enabled plugins tests * example/Makefile.am: - build different executables: fastjet_example fastjet_example_v1_interface fastjet_areas fastjet_subtraction fastjet_timing fastjet_timing_plugin * autogen.sh: Add test to use glibtool(ize) under Darwin (Mac) 2007-10-24 Gregory Soyez * series of small fixes to have a working make distcheck: - correctly set the include dirs in case one builds into a directory which is not the one containing the sources - fix issues with the conditional build of plugins to make sure that distribution-related make goals include all directories 2007-10-24 Gavin Salam * example/fastjet_areas.cc: * example/fastjet_timing_plugins.cc: Arranged for these to work both with new compilations and old (with ifdefs at beginning to decide where to search for plugins), using the PLUGINS_NOT_IN_FASTJET define for the old case * makefile.static: added CXXFLAGS += -DPLUGINS_NOT_IN_FASTJET to signal to example programs what is going on -- maybe sort this out more elegantly later? * test-script.sh: arranged for it to use makefile.static (for now) * example/makefile.static put this in (things had got lost) * example/Makefile.alt this one should provide an example of how to get things to work with the new build/install procedure 2007-10-24 Gregory Soyez * plugins/PxCone/Makefile.am *** ADDED *** plugins/Makefile.am configure.ac: Add autotools support for the PxCone plugin * configure.ac: - add options to enable plugins: --enable-siscone (default=yes) --enable-cdfcones (default=yes) --enable-pxcone (default=no) - add recursion into the SISCone autotools build - the --enable-shared cmd-line option is already handled by libtool. We just need to add AM_DISABLE_SHARED to disable the shared lib by default (can still be changed by using --enable-shared) * fastjet-config.in: added a '--prefix' option which returns the installation dir 2007-10-24 Gavin Salam * configure.ac: included mention of the new Makefiles * Makefile.am, example/Makefile.am, example/data/Makefile.am Added the latter two and hopefully the example should now be included in the tarball (but testing seems to be awkard) * fastjet-config.in: fixed bug left in from previous mod 2007-10-23 Gregory Soyez * Makefile.am: the script is installed ad bin_SCRIPT!!!! 2007-10-23 Gavin Salam * fastjet-config.in: removed -static ouput in case where things only built with static option (but not tested) changed some a+="b" to a=$a"b" for compatibility with mac 2007-10-22 Gavin SALAM * example/Makefile.alt *** ADDED *** illustration of how to compile things with the new structure. 2007-10-20 salam * INSTALL: started adding some instructions * configure.ac: sorted out order of libraries for siscone plugin in fastjet-config 2007-10-19 Gregory Soyez * configure.ac: plugins/SISCone/Makefile_main_SISCone.am *** ADDED *** We add an additional Makefile.am to avoid the '/' in the SUBDIRS in plugins/SISCone/Makefile.am which does not seem supported by older vesions of automake We also replace each occurence of VAR+="value" by VAR=${VAR}"value" which is more portable and apparently supported by older versions of autoconf 2007-10-19 Gavin Salam * configure.ac: changed version number by hand here to reflect what we have in the code (this needs to be dealt with properly at some point), so that tarballs can't get confused with those already released. 2007-10-18 Gregory Soyez * configure.ac: fastjet-config.in include/Makefile.am *** ADDED *** include/fastjet/Makefile.am *** ADDED *** include/fastjet/internal/Makefile.am *** ADDED *** plugins/CDFCones/Mkefile.am *** ADDED *** plugins/CDFCones/CDFcode/Makefile.am *** ADDED *** A set of updates: - added installation of fastjet headers - added build of the CDFCones plugin - and fixed issues with the SISCone plugin - fixed bug in fastjet-config wrt plugins 2007-10-17 Gregory Soyez * plugins/Makefile.am *** ADDED *** plugins/SISCone/Makefile.am *** ADDED *** These two files, together with modification of the main configure.ac and Makefile.am allow for the SISCone plugin to be installed * modify the main Makefile.am so the fastjet-config program is installed * autogen.sh *** ADDED *** configure.ac *** ADDED *** config.h.in *** ADDED *** fastjet-config.in *** ADDED *** CGAL.m4 *** ADDED *** Makefile.am *** ADDED *** src/Makefile.am *** ADDED *** This is the base files for an automake/autoconf-generated build of fastjet. With those files, building of the main lib can be done by issuing ./autogen.sh ; make; make install There are configure options to configure the type of lib (shared or static) and the CGAL support. * Change the external reference to the SISCone svn so that it points to the development trunk. This allows to use the makefile.static and autoconf things already implemented there. * rename "ReleaseNotes' into "NEWS" and added "AUTHORS" This is done to satisfy GNU standards * move all Makefile to makefile.static In doing that, we have updated the makefile contents so that the recursive behaviour is not broken 2007-10-17 Gregory Soyez * BRANCHED (REVISION 889) -> svn/fastjet/branches/fastjet-release-autoconf for autoconf related work ? 2007-10-16 Gavin Salam * plugins/CDFCones/CDFcode/MidPointAlgorithm.cc: added protection in midpoint code for cases when no stable cones are found (e.g. because all particles are below seed threshold). 2007-09-30 Gavin Salam * AutoConfSpecs: *** ADDED *** added this outline of what we might like from autoconf. 2007-08-24 Gavin SALAM * bug-examples/: *** ADDED *** * bug-examples/voronoi-square-problem.* *** ADDED *** added this directory as a common place for putting code that highlights bugs that need solving, together with a specific example bug. * include/fastjet/PseudoJet.hh: * src/PseudoJet.cc: added a PtYPhiM(...) function for creating a pseudojet from pt, y, phi, m (alternative would be a constructor from some new type that just held pt,y,phi,m?) 2007-08-01 Matteo & Gavin SALAM * fortran_wrapper/ *** ADDED *** wrote a wrapper to show how to use parts of fastjet from Fortran. 2007-07-30 Gavin SALAM + Matteo * src/Makefile: removed the pedantic option because CGAL 3.3 fails with it. * example/fastjet_timing_plugins.cc added output of fastjet version 2007-07-26 Gavin Salam * include/fastjet/GhostedAreaSpec.hh: added GhostedAreaSpec::generator_at_own_risk() for access to the internal generator object. 2007-07-18 Gavin SALAM + Matteo * include/fastjet/ClusterSequence.hh|cc: added version of has_child which returns a pointer to the child (more efficient) and also introduced object_in_jet Corrected bugs in has_child and has_partner, related to the treatment of cases near beam jets; introduced a new protected member function _potentially_valid(jet), for checking the use of a jet won't lead to crash-causing nonsense (it may still lead to meaningless answers). NB: now adding [RETHINK-IF-CHANGE-NUMBERING: ...] in neighoburhood of things that may be affected if we ever decide to give inclusive jets their own separate identify. 2007-07-12 Gavin Salam * plugins/SISCone/SISConePlugin.cc: added output of SISCone version number within the plugin description. * include/fastjet/JetDefinition.hh: * src/ClusterSequence.cc: added fastjet_version_string() function which returns a string along the lines of "FastJet version 2.2beta1-devel" 2007-06-28 Matteo Cacciari * added subtracted_jet and subtracted_pt methods to ClusterSequenceAreaBase 2007-06-28 Gavin SALAM * include/fastjet/GhostedAreaSpec.hh: added deprecated access to intenal random number generator (for internal development purposes) -- not guaranteed to stay. * include/fastjet/ClusterSequenceAreaBase.hh: * include/fastjet/ClusterSequenceArea.hh: Added is_pure_ghost as a virtual function in the area base class (implemented -- gives false by default) and added a proper version to ClusterSequenceArea. * test-script.sh + test-script-output-orig.txt: sorted out some little hiccups in test script output ----------------------------------------------- released 2.2beta0 on 2007-06-28 ----------------------------------------------- 2007-06-27 Gavin SALAM * include/fastjet/version.hh updated version number to 2.2beta0 * test-script-output-orig.txt adapted this to current version * example/fastjet_subtraction.cc sorted out some poor naming 2007-06-25 Gavin SALAM * moved SISConePlugin/siscone over to 1.2.0 tag of siscone 2007-06-22 Gavin SALAM * regression-tests/regression-test.pl: *** ADDED *** regression-tests*.res *** ADDED *** added this directory for carrying out regressions tests and output files, so as to (help) ensure that each new version of fastjet is giving consistent results. * ChangeLog (this file!): moved contents of INTERNAL_CHANGELOG (deleted) into here. * include/fastjet/JetDefinition.hh: updated comments relating to optimal strategy for a given N * README: adapted this to reflect current situation with plugins and anti-kt 2007-06-17 Gavin Salam * include/fastjet/JetDefinition.hh: introduced typedef so that JetAlgorithm == JetFinder * src/PseudoJet.cc: added pseudorapidity() method. * plugins/CDFCones/CDFJetCluPlugin.hh: added control of ratcheting to quick constructor for CDFJetCluPlugin. 2007-06-16 Gavin Salam + Matteo * ClusterSequence--various-area-classes.cc|hh adapted all the derived classes so that they take the RangeDefinition rather than maxrap -- this is subsequent to changes made below * plugins/Makefile plugins/CDFCones/Makefile fixed error on Macs (case-insensitive file system) 2007-06-16 Matteo Cacciari * RangeDefinition.hh Added. Allows one to define the range in which to average pt/area points in terms of rapmin,rapmax,phimin,phimax * ClusterSequenceAreaBase.cc|hh added parabolic_pt_per_unit_area, essentially copied from ClusterSequenceActiveArea except for the raprange, which has now no default and must be specified. 2007-06-14 Gavin Salam + Matteo * ClusterSequence.cc|hh: added has_parents(...), has_child(...) and has_partner(...) methods for acccessing the branching structure. 2007-06-06 Gavin SALAM * src/ClusterSequenceActiveAreaExplicitGhosts.cc: amplified warning message. * src/ClusterSequenceActiveArea.cc: added extra checking when matching different sequences (bounds, making sure we match dij with dij and not dij with diB). * include/fastjet/JetDefinition.hh: added enum entry for the genkt_algorithm 2007-06-05 Gavin SALAM * test-script-output-orig.txt updated this so that it corresponds to current results (concerns areas and banners) 2007-06-04 Gavin Salam * include/fastjet/internal/LimitedWarning.hh: *** ADDED *** added this for dealing with warnings that should appear a limited number of times * src/ClusterSequenceActiveAreaExplicitGhosts.cc|hh: fixed bug (a missing "!") in determination of has_dangerous_particles, and switched warnings over to the LimitedWarning class. * src/ClusterSequenceAreaBase.cc: added warnings about jet alg used in median determination (if not kt, cam) 2007-06-03 Gavin Salam * src/ClusterSequenceActiveArea.cc: made error for unmatched sequences more explicit and provided a explanation of origin (based on has_dangerous_particles() below), when the suspected cause is particles with low pt. Also added (but did not test) has_dangerous_particles(). * src/ClusterSequenceActiveAreaExplicitGhosts.cc|hh: added max_ghost_perp2() and has_dangerous_particles() member functions, as well as an explicit warning (first few times) in cases which are dangerous (particle pt2 < ghost pt); 2007-05-28 Gavin Salam * TODO: *** ADDED *** it was about time we had this in here, even if it's not yet complete. 2007-05-16 Gregory Soyez * src/ClusterSequenceVoronoiArea.cc: Clearing parts of the code 2007-05-14 Gavin SALAM * include/fastjet/ClusterSequenceWithArea.hh: *** ADDED *** * include/fastjet/ClusterSequenceActiveArea.hh: * include/fastjet/ClusterSequenceArea.hh: switched to naming and backwards compatibility options decided on 2007-05-11. 2007-05-11 Gavin SALAM (later) * include/fastjet/ClusterSequenceWithArea.hh -> include/fastjet/ClusterSequenceArea.hh + corresponding renaming in various places -- designed to ensure we really can get full backwards compatibility. 2007-05-11 Gavin SALAM * include/fastjet/ClusterSequenceActiveArea.hh: * include/fastjet/ClusterSequenceWithArea.hh: partially fixed the problem of backwards compatibility with v2.1 by #defining ClusterSequenceWithArea as ClusterSequenceAreaBase, UNLESS ClusterSequenceWithArea is explicitly included anywhere. 2007-05-10 Gavin SALAM + Matteo * include/fastjet/AreaDefinition.hh: (later) changed the enum values and order for AreaType (to make them more logical) * include/fastjet/ActiveAreaSpec.hh: *** ADDED *** new version of this file, which just defines ActiveAreaSpec = GhostedAreaSpec, for backwards compatibility * ActiveAreaSpec -> GhostedAreaSpec: changed the name to reflect use of this class for passive & active; * AreaDefinition.hh|cc moved AreaType enum out of class. Sorted out the descriptions. * ClusterSequenceActiveAreaExplicitGhosts.cc|hh: sorted out empty_area for this case too. * plugins/SISCone/SISConePlugin.hh: fixed missing component in a constructor 2007-05-09 Gavin Salam + Matteo [later] * JetDefinition.cc|hh: * plugins/SISCone/SISConePlugin.hh|cc: added mechanism for supporting ghosted passive areas in plugins * include/fastjet/ClusterSequencePassiveArea.hh *** ADDED *** * src/ClusterSequencePassiveArea.cc *** ADDED *** put in support for this passive area class that redirects one to the supposedly optimal passive-area determination for each each algorithm. * include/fastjet/AreaDefinition.hh: * include/fastjet/ClusterSequence1GhostPassiveArea.hh: * include/fastjet/ClusterSequencePassiveArea.hh: * include/fastjet/ClusterSequenceActiveArea.hh: * include/fastjet/ClusterSequenceWithArea.hh: various changes related to the above, including selection of the PassiveArea from the WithArea class. 2007-05-09 Gavin Salam + Matteo * ClusterSequencePassiveArea -> ClusterSequence1GhostPassiveArea * JetDefinition.cc|hh: * ClusterSequence.cc|hh: introduced cambridge_for_passive_algorithm (for internal use only), and moved the jet_scale_for_algorithm routine into the .cc file. 2007-05-09 Gavin Salam * src/JetDefinition.cc: * src/ClusterSequence.cc: updated banner to reflect current status * example/Makefile (depend): * src/Makefile: removed CXXFLAGS from make depend (it caused it to get all CGAL files). * many places: set the svn:keywords property to "Id" on many files where it was missing. Sorted out some copyright statements (e.g. Voronoi.cc we should not be claiming copyright!) 2007-05-09 Gregory Soyez * include/fastjet/ClusterSequenceWithArea.hh: redirect to the ClusterSequencePAssiveArea class when area type is set to passive_area * include/fastjet/AreaDefinition.hh: - added passive_area to the list of allowed area types. - added a new ctor specifying an ActiveAreaSpec together with an AreaType. This allow definition of active, active_with_explicit_ghosts and passive areas. 2007-05-08 Gavin SALAM & matteo * include/fastjet/ClusterSequencePassiveArea.hh: ***ADDED*** * src/ClusterSequencePassiveArea.cc: ***ADDED*** added a passive class that scans a single ghost over the event, repeating the clustering once for each ghost position -- the name may well evolve in the coming days. * ClusterSequenceActiveArea.hh|cc: changed some private/protected statuses to allow the PassiveArea to access whatever it needs to access, and split some of the functions into pieces so that they can be used piecemeal from derived class. 2007-05-08 Gregory Soyez * src/ClusterSequenceVoronoiArea.cc: Fix problem with particles at phi=0 2007-05-08 Gavin SALAM + Matteo * ActiveAreaSpec.hh|cc: added get_random_statu(), set_random_status(), checkpoint_random(), restore_checkpoint_random(), to facilitate the user's life when then need correlated random numbers for the areas. * include/fastjet/internal/BasicRandom.hh: added set_status and get_status routines in the and versions. 2007-05-08 Gavin, Matteo & Gregory * example/fastjet_areas.cc: adapted example to new form of ClusterSequenceWithAreas * include/fastjet/AreaDefinition.hh: added default constructor for VoronoiAreaSpec * ActiveAreaSpec.cc|hh changed default grid_scatter (1e-4 -> 1.0) [gives better systematics at large ghost areas, and runs faster on cone], and redefined scatter (kt and y,phi) to be around central values (rather than an asymmetric shift as before). * ClusterSequenceWithArea.hh added constructors that take ActiveAreaSpec and VoronoiAreaSpec directly. 2007-05-07 Gavin SALAM * ClusterSequenceVoronoiArea.hh|cc: added area_4vector to class, based on sum of cell centers rather than the 4vector for each cell. 2007-05-07 Gregory Soyez * include/fastjet/ClusterSequenceWithArea.hh|cc: Append Voronoi area computation. * src/ClusterSequenceVoronoiArea.hh|cc: Add a class to compute the Voronoi area. * src/Voronoi.hh|cc: Add O'Sullivan C++ adaptation of Fortune's code to compute Voronoi diagrams. 2007-05-07 Gavin SALAM & Matteo * ClusterSequence.hh|cc: added the transfer_from_sequence(...) member, which copies the information from another sequence into this one. * include/fastjet/ClusterSequenceWithArea.hh: *** ADDED *** class to access a generic type of area, as specified through an AreaDefinition. * AreaDefinition.hh|cc *** ADDED *** start of work towards an area definition, to be used as an input to the future ClusterSequenceWithArea.hh|cc * RENAMED ClusterSequenceWithArea.hh|cc -> ClusterSequenceAreaBase.hh|cc carried out this renaming in view of reusing the original name not as a base class, but rather as a class that provides easy access to all different types of areas. NB: numerous associated changes, for things to carry on working... 2007-05-06 Gavin SALAM * ClusterSequenceWithArea.hh|cc: added get_median_rho_and_error(...) to allow one to extract the median together with the size of fluctuations around the median (and the mean error, of use in doing converting fluctuations to errors on individual jets). 2007-05-05 Gavin Salam * areas/jet_def_from_cmdline.cc|hh: added this so as to provide easy (and common) access to a jet finder from the command-line 2007-05-02 Gavin SALAM & Matteo * include/fastjet/ClusterSequenceWithArea.hh|cc: added empty_area(...), n_empty_jets(...), median_pt_per_unit_area(...), median_pt_per_unit_area_4vector(...), and the one that does the work, median_pt_per_unit_something, as virtual functions, so that these facilities can be accessed with any of the area classes. * include/fastjet/ClusterSequenceActiveArea.hh|cc: added versions of empty_area(...), n_empty_jets(...), that make use of all the information that's available from the ghosts. * include/fastjet/JetDefinition.hh: * plugins/*/*Plugin.hh: added the double R() const abstract virtual member function to the JetDefinition::Plugin class, and updated all the plugins, so that one can get a sensible value of R out of any algorithm. 2007-04-24 Gavin SALAM * plugins/SISCone/SISConePlugin.hh|cc: added the split_merge_on_transverse_mass in the constructor (+ other ways of accessing it), which interfaces with SISCone's SM_var2_hardest_cut_off variable. 2007-04-19 Gavin SALAM & Matteo * src/ClusterSequenceActiveArea.cc|hh: moved the check on equivalence of ghosted jets into a common member function for ij and iB recombination -- now they both use pt == ptref || E == Eref. At some point this check should be made more robust (move away from momentum and towards tags or something similar). 2007-04-18 Gavin SALAM & Matteo * include/fastjet/JetDefinition.hh: * include/fastjet/ClusterSequence.hh: * src/JetDefinition.cc: * src/ClusterSequence.cc: introduced the "antikt" algorithm. * example/fastjet_timing_plugins.cc got it working with antikt 2007-04-13 Gavin SALAM * example/root/jet-plots.C: *** ADDED *** root script for plotting output from print_jets_for_root(...); see instructions at beginning for usage. * include/fastjet/ClusterSequence.hh|cc: added print_jets_for_root, which takes jets and outputs them in a form suitable for the root script... * example/fastjet_timing_plugins.cc: fixed a bug that prevented compilation and added some extra cone-related options. ----------------------------------------------- released 2.1.0 on 2007-04-02 ----------------------------------------------- 2007-04-02 Gavin SALAM + MC * plugins/usage_examples/many_algs_example.cc: removed PxCone by default (compile with -DUSEPXCONE get it back and adapt Makefile too). * test-script.sh corrected bug related to G77LIBDIR; removed fortran related stuff (pxcone now out by default) 2007-03-16 Gavin SALAM * example/data/cone-midpoint-problem-ev1.dat * example/data/cone-midpoint-problem-ev2.dat added these to illustrate the IR problem with midpoint 2007-03-14 Gavin Salam * plugins/SISCone/SISConePlugin.hh: changed the default number of passes to 0 * plugins/SISCone/SISConePlugin.cc: fixed bug in choice of split-merge scale when recomputing jets from a cached siscone run. 2007-03-12 Gavin SALAM * src/PseudoJet.cc|hh: added boost(...) and unboost(...) methods. * example/data/cone-darktower.dat: * example/data/cone-sm-pt-problem-ev(1|2).dat: added two simple example events to illustrate the split-merge problem with pt ordering, as well as the dark-tower problem in single-pass algs. 2007-03-10 Gavin Salam * include/fastjet/ActiveAreaSpec.hh: changed default repeat value to 1 (was 5); * plugins/CDFCones/CDFcode/ClusterComparisons.hh: * plugins/CDFCones/CDFcode/Cluster.hh: * plugins/CDFCones/CDFcode/MidPointAlgorithm.cc|hh: added support for the pt_tilde scale in the split-merge procedure; note that the way this is done adds a small (1-3%) speed penalty for all choices. * plugins/CDFCones/CDFMidPointPlugin.cc|hh: added the corresponding pt_tilde entry to the SplitMergeScale enum. * plugins/SISCone/SISConePlugin.hh: changed default split_merge_scale to SM_pttilde; in legacy interface, bool split_merge_on_transverse_mass now decides between SM_mt and SM_pttilde; 2007-03-09 Gavin Salam * plugins/SISCone/SISConePlugin.cc|hh: introduced the SISConePlugin::SplitMergeScale enum (like the one for the CDF plugin) and implemented the interface between this and siscone's corresponding enum (NB: they must be ordered the same way, otherwise you will get surprises...). 2007-03-06 Gavin SALAM & Matteo * include/fastjet/version.hh: updated internal version number (to avoid confusion) * include/fastjet/ActiveAreaSpec.hh|cc: added description() member function * moved siscone external back onto siscone trunk 2007-03-04 Gavin Salam * doc/fastjet-doc.tex: Wrote the SISCone section; moved the example program forward, since it uses only features from section 2, not all the subsequence stuff. Updated intro. * plugins/SISCone/SISConePlugin.hh: added the stable_cones() method to SISConeExtras, which is identical to protocones() (but stable_cones is a more consistent name). 2007-03-03 Gavin Salam * switched the plugins/SISCone svn:externals property to point to svn+ssh://login.hepforge.org/hepforge/svn/siscone/tags/siscone-1.1.0 rather than svn+ssh://login.hepforge.org/hepforge/svn/siscone/trunk 2007-03-01 (later) Gavin Salam * include/fastjet/PseudoJet.hh: added transverse mass functions. * plugins/SISCone/SISConePlugin.cc|hh: added a new member function SISConeExtras::most_ambiguous_split(), which returns the degree of ambiguity of the most ambiguous decision about attributing a particle to one or other jet during a split step. Useful for testing purposes. * example/fastjet_timing_plugins.cc: started adding minimal access to cone information with the "-cones" option. 2007-03-01 MC * doc/fastjet-doc.tex Updated the documentation to describe the new options of pt_per_unit_area and parabolic_pt_per_unit_area concerning the use of area_4vector 2007-03-01 Gavin Salam * include/fastjet/PseudoJet.hh: fixed bug in phi_std() pointed out by Oscar Stal, * test-script-output-orig.txt updated this so that it corresponds to current output. * include/fastjet/ClusterSequence.hh: added the ClusterSequence::Extras class, as well as ClusterSequence::extras() function which returns a (possibly null) pointer to any extras. * plugins/SISCone/SISConePlugin.hh|cc: updated them to reflect a change in naming in siscone; added SISConeExtras class (derives from ClusterSequence::Extras), whose contents are set up from within the plugin and which allows a user to access the protocones. * ReleaseNotes: updated to reflect recent additions 2007-02-28 Gavin Salam + MC * src/ClusterSequenceActiveArea.cc: switched over to use of the current recombination scheme when averaging 4vector areas over multiple repeats with different ghosts. * include/fastjet/JetDefinition.hh: added Recombiner::plus_equal(A,B) to help simplify code in various places * src/ClusterSequenceActiveArea.cc|hh Added median_4vector option to mean_pt_strategies for pt_per_unit_area Added use_area_4vector to parabolic_pt_per_unit_area NB. Neither is the default. * src/JetDefinition.cc Corrected bug in massless recombination schemes for when the pt of both particles is zero * src/ClusterSequenceActiveAreaExplicitGhosts.cc The area_4vector is now calculated with the same recombination scheme as the jets 2007-02-25 Gavin Salam * plugins/PxCone/pxcone.f: fixed some bugs in the way momenta are recombined relating to 2pi periodicity of phi; identified origin of a remaining problem of jets depending on the order of input particles -- related to the way the n-way midpoints are determined. 2007-02-24 Gavin Salam * include/fastjet/PseudoJet.hh: arranged for template constructor also to set default user and cluster-history indices 2007-02-21 Gavin SALAM * plugins/CDFCones/CDFMidPointPlugin.hh|cc: added the option of specifying the scale to be used in the split-merge step (pt is default, but we also have Et and mt), to take advantage of the modification made to the CDF code below. * plugins/CDFCones/CDFcode/MidPointAlgorithm.hh|cc: added the option of specifying the scale to be used in the split-merge step (pt is default, but we also have Et and mt) NB: this means that the CDF code we release is now actually a modified version of the original. 2007-02-20 Gavin Salam * example/CmdLine.* updated these to recent versions * example/fastjet_timing_plugins.cc (main): added the -nomt option for choosing the ordering in siscone split merge. * plugins/SISCone/SISConePlugin.cc|h: added the "bool split_merge_on_transverse_mass" parameter to constructor, put in a corresponding member variable and used it when calling siscone. 2007-02-18 Gavin Salam * plugins/SISCone/Makefile (libSISConePlugin.a): fixed some dependencies wrt to the siscone distribution directory. 2007-02-12 Gavin Salam * updated test-script.sh to accept -j2 option for faster compilation * ADDED include/fastjet/version.hh which sets the version number; this is used throughout, also in tarit.sh and in svntagit.sh * ADDED svntagit.sh which will one day deal with all the tagging... * updated the test script ref. output to reflect the new version numbers 2007-02-09 Gavin Salam * switched external reference to siscone over to new repository, svn+ssh://login.hepforge.org/hepforge/svn/siscone/trunk 2007-02-08 Gavin Salam * modified tarit.sh so that it indicates which svn commands to use to tag the release 2007-01-24 Gavin Salam + Matteo * tweaked test-script.sh some more * added fastjet-release/test-script-output-orig.txt * modified tarit.sh accordingly 2007-01-23 Gavin Salam + Matteo * removed more (all?) extraneous semi-colons * added fastjet-release/test-script.sh * added protojet_ptmin argument to SISConePlugin constructor (etc.) 2007-01-19+20 Gavin Salam * removed some extraneous semi-colons after functions in many places, and checked that library now compiles with the "-pedantic -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses" options. NB PxConePlugin needs some more work on it before it will compile (variable length arrays). 2007-01-12 Gavin Salam + matteo * areas/SubtractionDefinition.hh definition class for a future subtraction class * areas/ClusterSequenceWithSubtraction.hh class for subtraction * areas/subtraction-HIeff-native.cc main program which will eventually use the new subtraction class * areas/subtraction-HIeff-iter.cc Added before. Slightly modified version of subtraction-HIeff-tests.cc. Performs a multi-pass subtraction, the same which will eventually be performed by the "-native" file above. 2007-01-08 Gavin Salam * areas/area-plots/2point-areas-3alg.gp Passive area for 3 algs * areas/areas-1gluon-for-root.cc areas/root-games/ghosted_plots.C root-related stuff for when there's a single hard parton (illustrate active areas) 2007-01-02 Gavin Salam * added the areas/hydjet_eff directory to repository 2006-12-28 Gavin Salam * Added a "caching" option to the SISCone plugin to allow runs with multiple overlap_threshold values (and everything else identical) to reuse the set of stable cones. * in PseudoJet introduced the "have_same_momentum(jeta, jetb)" function (used in SISCone plugin). 2006-12-26 Gavin Salam * Added SISCone to the list of plugins made automatically * SISCone plugin now sets the jet "user_index" to be equal to the pass at which the jet was found; documentation added to the beginning of the class... * adapated areas/areas-hist.cc to use midpoint and siscone plugins as well... * dealt with renaming from scones -> siscone; * added the siscone repository as an "external" repository to fastjet, inside plugins/SISCone (so that it is updated automatically each time fastjet is updated -- but note: commits do not recurse automatically down...) * also updated the usage_examples (many_algs_example now also runs siscone). * made this version 2.1.0b1 (changed tarit, but did not "tag" it) 2006-12-21 Gavin Salam + Gregory Soyez * Modified SCones plugin so that it provides information also on the use of "wrong" split-merge procedure. 2006-12-18 Gavin Salam + Gregory Soyez * Added output of description of the algorithm in the fastjet_timing_plugins routine routines (and got the .pl script to read it), so that one knows what it is one's been doing. 2006-12-14 Gavin Salam + Gregory Soyez * Added static function set_print_errors(bool) to Error.hh class so that user can request "quiet" exceptions. NOT YET TESTED... 2006-12-12 Gavin Salam + Gregory Soyez * Added plugin for SCones (Gregory's seedless cones code); ran some basic tests; note the seedless cone code is not yet included here, and the Makefile is accordingly a bit rough... * added example/fastjet_timing_plugins for running the timing tests with the various plugin algorithms. 2006-12-07 Gavin Salam * Changed tar script so that it works by first creating a tar file, unpacking it in /tmp, renaming the corresponding directory and then recreating the tar file (all of this to get the proper directory name while maintaining symbolic links) * added ClusterSequence::unclustered_particles(), which returns a vector of unclustered particles. * added warning (printed up to 5 times) when extracting exclusive jets with an algorithm other than kt. * in main Makefile, changed default inclusion of fortran libraries to avoid also getting multiple libstdc++ (when g77 uses a different version of gcc than g++). 2006-11-30 Gavin Salam * Renamed the plugin directories (to have capitalisation corresponding to library names), added the CDF cone code together with Makefiles etc. * added plugins/usage_examples to illustrate how to use the plugins, and how to use multiple jet algorithms together; added some documentation to the pxcone and midpoint plugins (jetclu users are on their own for the time being...) * adapted Doxyfile to include the plugins directory; made it non-recurisve so that it doesn't get the CDF code and as a result had to add various directories by hand * added mention of plugins/ directory in documentation. * Updated the banner to include mention of plugins; compactified the rest a little. * Updated ReleaseNotes to reflect the current status 2006-11-29 Gavin Salam * Added the Et and Et2 schemes, as well as boost invariant BIpt and BIpt2 schemes. 2006-11-28 Gavin Salam * fixed problems with alternative orderings of arguments in JetDefinition constructor; added constructor with external recombination scheme; added "preprocess" virtual function to recombination scheme so that it carries out necessary modification of momenta before running the clustering (as in ktjet), and checked that pt and pt2 schemes give results identical to those in ktjet (albeit boost-dependent...) 2006-11-27 Gavin Salam * added recombination scheme functionality, both via a plugin (not currently tested much) and (for standard use) with a RecombinationScheme enum; take a look at ReleaseNotes for things that still need to be done/tested... Modified example program so that it makes recombination scheme freedom explicitly visible. 2006-11-23 Gavin Salam * added areas/area-hist-plots/ which contains results of area histograms for "idealized" soft clustering and clustering with a single hard parton. 2006-11-13 Gavin Salam * Added more stuff related to plots & sorted out some svn:ignore properties 2006-11-11 Gavin Salam * added a whole bunch of plots and related material in the area-plots directory that previously weren't in version control * added a QM2006/ directory which includes some material (jet-finding on individual events) for illustrative plots. * in areas/ put a recent version of the CmdLine.* utility class. * added areas/README to help navigate that directory, which is rapidly becoming too complex! 2006-11-06 Gavin Salam * added squared_distance(...) to PseudoJet (does the same as plain_distance, but the name is more logical). * added areas/subtraction-tests-HIeff.cc for carrying out efficiency and purity studies. * areas/SimpleHist.hh got modified to provide more extensive histogramming facilities (notably an overflow bin) * areas/run-mass-test.pl was modified to as to enable combined hydjet+subtraction-tests-HIeff running. (Had previously also been modified to have run_hydjet as the executable rather than test2_hydjet). 2006-10-25 Gavin Salam * added m() method to PseudoJet (like CLHEP, for negative m2() it returns -sqrt(-m2())). * to PseudoJet, added cluster_sequence_history_index() and set_cluster_sequence_history_index(...) as alternative names for cluster_hist_index() and set_cluster_hist_index(...), in the hope that these new names might be more meaningful. * added a function particle_jet_indices(...) to ClusterSequence so as to allow the user to easily identify which particles fall into which jet (or no jet at all). [NOT YET DOCUMENTED] 2006-10-19 Gavin Salam * replaced eta -> y (or rap) in documentation (was potentially unclear before) and in ActiveAreaSpec class... 2006-10-16 Gavin Salam Introduced plugin functionality (CCN28-76) * added description() member function to JetDefinition class (involved adding src/JetDefinition.cc which returns a default value). * added a JetDefinition::Plugin abstract base class, which serves as a model for user-supplied plugins; added an JetDefinition constructor that takes a pointer to a plugin. * added checks in ClusterSequence to see whether we're dealing with a plugin -- if we are then the plugin clustering routine is called instead of ours; modified the inclusive_jets() routine so that it behaves sensibly regardless of the diB values and ordering of the clustering returned by the plugin. added "plugin_record_ij_recombination", etc., member functions to allow the plugin to make a record of what it's done in the cluster sequence. 2006-10-12 Gavin Salam * in include/fastjet/ClusterSequence.hh added a slightly more user-friendly message for the doxygen main page. 2006-10-09 Gavin Salam + Matteo --- release of fastjet-2.0.0 --- * added a wider range of arithmetic operations on PseudoJets; added phi_std() and phi_02pi() which return values respectively in the -pi..pi range and 0..2pi range; in the clustering code, switched from use of phi() to phi_02pi() to allow for future changes to action of phi(). * switched fastjet_subtraction.cc over to new arithmetic operations. * programmed improved formulae for automatic choice of best strategy, including the choice also for the Cambridge algorithm. * switched a number of member function of PseudoJet over from const double & to simply double. * various small changes made to the documentation. 2006-09-25 Gavin Salam + Matteo * added areas/areas-hist.cc for getting the distribution of areas for pure noise (+ option of anchor). * moved the SimpleHist.hh file into this directory from ../../chan 2006-08-24 Gavin Salam + Matteo * Renamed old_median -> non_ghost_median * parabolic_pt_per_unit_area made const 2006-08-23 Gavin Salam * Renamed NlnNCam2piMultD -> NlnNCam (for simplicity). 2006-08-22 Matteo Cacciari * example/fastjet_subtraction.cc Added the subtraction using area_4vector. The results are compared in output to the "standard" subtraction. Added some comments. 2006-08-19 Gavin Salam * include/fastjet/Error.hh error message output now states that this is a fastjet::Error error. * include/fastjet/ClusterSequence.hh * src/ClusterSequence.cc Put some of the bookkeeping code into specific member functions (_transfer_input_jets, _decant_options), so that this housekeeping can be more easily (reliably) carried out also by derived classes. These new functions, as well as _do_iB_recombination_step, _do_ij_recombination_step have been made protected (as opposed to private), again for access from derived classes. * src/ClusterSequenceActiveAreaExplicitGhosts.cc * include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh Arranged for _is_pure_ghost(int history_index) to return false for any negative value of history_index (so that e.g. BeamJet is not considered a ghost). * include/fastjet/ClusterSequenceActiveArea.hh * src/ClusterSequenceActiveArea.cc Rather than first running the clustering on the unghosted event and then providing area info from runs on ghosted events, this class now deduces the unghosted clustering sequence from a ghosted event, so as to reduce the number of runs. This is relevant for heavy-ions. If the requested number of repetitions is zero, it reverts to the plain unghosted-clustering 2006-08-19 Gavin Salam * include/fastjet/internal/BasicRandom.hh *** ADDED *** * src/BasicRandom.hh *** ADDED *** Added these files, which are basically copies of the (GPL) random-number generator from Zoltan Nagy's nlojet++ program. * include/fastjet/ActiveAreaSpec.hh * ActiveAreaSpec.cc Added _our_rand() to return a random double between 0.0 and 1.0, checked that it gave identical results to before and then switched over to using the BasicRandom class. NOTE: currently the random number generator object for ActiveAreaSpec is static (ie. there is a single sequence shared among all instances of ActiveAreaSpec). One consequence of this is that in areas-2point.cc, previously we restarted the sequence from the beginning for each separation Delta eta (giving some correlation between successive values of eta), whereas, now, successive values of eta are completely uncorrelated. * include/fastjet/ClusterSequenceActiveArea.hh Commented the lines that reset the global C random seed and wrote a warning about this. 2006-08-17 Gavin Salam & Matteo * Reworked naming scheme, so that all includes are now in include/fastjet/ and those not destined for the user are in include/fastjet/internal; we've introduced a namespace (fastjet) and a fastjet/internal/base.hh file where we define begin and end macros for it; we've put everything into the namespace... The "Fj" prefix has been systematically removed... added private/fastjet-rename-v1-to-v2.pl, to help in much of the renaming of internals. * Introduced include/FjPseudoJet.hh and include/FjClusterSequence.hh files that provide access to everything needed by programs based on the v1 legacy interface * Removed the CP2DCHAN compile definition -- now the Chan code is always included. * Added areas code to main release: created a base class ClusterSequenceWithArea, as well as derived classes: ClusterSequenceActiveArea // was WithMeanArea ClusterSequenceActiveAreaExplicitGhosts // was WithArea and also included the class ActiveAreaSpec * Placed an explicit limit (via assertion) on R <= pi/2 (larger than this can cause crashes in many places...) * Removed extraneous code in areas/, adapted remaining code to new interface. 2006-08-15 Gavin Salam & Matteo * Copied Chan method across from its development directory * Added a data/ directory with some sample input files * moved release number up to 1.9, in preparation for forthcoming release 2 * updated examples to use new interface for specifying jet finder 2006-08-11 Gavin Salam * modified FjPseudoJet's rapidity calculation so that it gives answers that are not completely crazy for momenta where rounding error causes the difference between E and pz to be zero. * played around with passive areas (including a plot or two) -- they seem to work OK. * fixed a bug (when reaching last pair of objects to cluster) in the CP2DChan strategies. * in the main Makefile (and Triangulations.h) added option for using a simpler CGAL kernel -- this can give about 20% speed gain but it's not clear how robust it is. 2006-08-10 Gavin Salam * incorporated a first passive areas class, FjClusterSequenceWithPassiveArea. It is quite slow, and currently seen only very limited testing, but seems to work in the 2-particle case... next steps: add gnuplot visulation, look at more complex events * modified order of includes in some other class definitions to place private things after public ones. 2006-08-04 Gavin Salam * switched remaining jet-finding strategies over to use of "_do_XY_recombination_step". * updated thresholds for "Best" to take into account the N2MinHeapTiled version (though perhaps this should wait until we've incorporated MinHeap into our "standard" suite... Have not updated things to deal with the Cambridge algorithm -- not sure what the best option would be here, given that Chan's approach is so cache dependent... 2006-08-04 Gavin Salam * added routines for clustering the Cambridge algorithm based on Chan's closest pairs (CP) method. The new strategies are: NlnNCam4pi // all points duplicated NlnNCam2pi2R // points within R of 0,2pi duplicated NlnNCam2piMultD // two steps of clustering to reduce duplctn. [fastest] For 10^4 particles, on a dual core P4D with 2MB cache, NlnNCam2piMultD seems to be about 2.5 times faster than NlnN (and 1.7 times faster than N2MinHeapTiled described below). As N grows larger, the advantages of the NlnNCam routines seem to disappear, presumably because we end up outside limits of cache. (And on machines with a small cache, e.g. anubis with 512KB, the advantage of the Cambridge-specific routines seem to disappear. * added a version of the tiled N2 algorithm that makes use of the MinHeap developed for the CP work: N2MinHeapTiled On a dual-core P4D with 2MB cache, it seems to be the fastest general option for 400 \lesssim N \lesssim 16000. * the above options currently all require the CP2DChan library which is in cvs in ../chan/ -- compilation there uses scons: scons libCP2DChan.a (was testing out scons as an alternative to make...). At some point, we should probably merge that codebase into ours. * added FjClusterSequence::_do_ij_recombination_step and _do_iB_recombination_step so as to avoid rampant duplication of the associated code. Not all clusterings have switched over to this yet... 2006-07-17 Gavin Salam * added area-plots/midpoint-zmass-profile-N1947.eps to see what cone timings are like... 2006-07-17 Gavin Salam * In FjJetDefinition.hh renamed _R -> _Rparam (single letter with underscore caused problems under g++3.3) * Added results and associated files for the ttbar analysis. 2006-07-15 Gavin Salam * FjPseudoJet: added operator+=,-=,*=,/=, which leave the user and cluster_hist indices unchanged. It is natural (in a sense) insofar as these operators act naturally just on the momentum -- in practice it is also useful because a user may want to correct a jet in some way while still have the jet associated with its "history"). * subtraction-tests-ttbar: now gives a full panoply of results in histograms so that one can get a semi-sensible analysis of ttbar events. * run-mass-test.pl: adapted it so that it deals nicely with the ttbar cases too... 2006-07-14 Gavin Salam * *** ADDED include/FjJetDefinition.hh *** in which we now define: enum FjStrategy // unchanged enum FjJetFinder // was part of FjClusterSequence class FjJetDefinition // new The class is designed to hold all info that specifies a jet algorithm (currently, just R, jet-finder ID and strategy) In FjClusterSequence.* new interfaces have been introduced in which the FjJetDefinition is used to specify the jet algorithm; these interfaces are present both for the public constructor and for the protected _initialise_and_run(...) routines... In areas/, some minor changes have been made to account for these changes... Also got the limit on the inclusive pt for the Cambridge jets working (introduced separate code inside the inclusive_jets routine). Started work on the ttbar project... * In areas/FjClusterSequenceWith[Mean]Area.* Introduced the class FjActiveAreaSpec, which contains the specification of how one defines the active area. It is intended to provide a somewhat cleaner way of passing the information around, and should hopefully provide an easier way of dealing with the random number issue for this class (at least it's now a well separated). Introduced new interfaces for the various area routines so that one can refer to them in both the new way (with an FjActiveAreaSpec object) and the old way (for backwards compatibility). For now the FjActiveAreaSpec is inside the FjClusterSequenceWithArea.* files -- but perhaps at some point it should be moved? 2006-07-13 Gavin Salam * Added areas/subtraction-tests-ttbar.cc areas/FlavourHolder.hh areas/FlavourHolder.cc as part of work towards an analysis of semi-leptonic ttbar events. 2006-07-10 Gavin Salam + Matteo Cacciari * Added option in FjClusterSequenceWithMeanArea of excluding particles with pt/area greater than some threshold 2006-07-05 Gavin Salam + Matteo Cacciari * Minor bug-fixed to FjClusterSequenceWithMeanArea + some files added related to heavy-ion studies 2006-07-03 Gavin Salam + Matteo Cacciari * Added areas/subtraction-tests-inclpt.cc for looking at inclusive pt distributions (designed for use with hydjet events, at least initially). * To FjClusterSequenceWithMeanArea.* added parabolic_pt_per_unit_area for carrying out a parabolic (a+b*y^2) fit to the pt/area. * areas/run-mass-test.pl adapted to deal with the hydjet case too * areas/area-plots -- all plots updated (for Florence talk and Matteo's US visit [done some time ago...]) 2006-06-18 Gavin Salam * to areas/FjClusterSequenceWithArea.* placed upper limit on number of seed warnings messages; on subtraction-tests-mass, also placed upper limit on output of info (to avoid eccessively large mails when running jobs) 2006-06-18 Gavin Salam * to areas/FjClusterSequenceWithArea.* placed upper limit on number of seed warnings messages; on subtraction-tests-mass, also placed upper limit on output of info (to avoid eccessively large mails when running jobs) 2006-06-18 Gavin Salam * to FjClusterSequenceWith[Mean]Area.* added FjPseudoJet extended_area(const FjPseudoJet & jet) const; member function which returns a four vector corresponding to E-scheme addition and averaging of the ghost vectors (with appropriate normalisation for each). * adapated areas/subtraction-tests-mass.cc to use the new extended area (i.e. four-vector subtraction) for an alternative subtraction scheme ("hecr" "fecr" go into two extra columns at end, so as not to mess up original file format). 2006-06-13 Gavin Salam * Found bug in reading of hydjet format (didn't skip particles with istat/=1), but in practice they ended up having non-sensical rapidities so got thrown out anyway (i.e. results don't change); THIS BUG SHOULD BE FIXED EVERYWHERE ELSE TOO... 2006-06-06 Gavin Salam * Added vector FjClusterSequence::unique_history_order(), which returns a order in which to read the history such branchings are then independent of irrelevant degeneracies in the d_ij. This is basically a corrected version of the _extract_tree function added yesterday to FjClusterSequenceWithMeanArea (now removed from that class). * Arranged for FjClusterSequenceWithMeanArea to use the new unique_history_order to map jets between the plain clustering and that with the active area measurement. First tests suggests that it's behaving properly (i.e. giving same results as before for the kt algorithm, and sensible looking results for the cambridge algorithm). 2006-06-05 Gavin Salam * Added the _extract_tree private member function to FjClusterSequenceWithMeanArea, which extracts a tree that should have a unique ordering independently of degeneracies in the labelling of the clustering. It comes along with some helpers... Maybe it should be transferred into the main class? 2006-06-04 Gavin Salam * Added the jets(), history() and n_particles() member functions to FjClusterSequence so that the user can access this raw information if they want to (this was a solution to the problem of accessing things when transferring info between area classes -- somehow protected information of an object of a related class is not available to "this"). These functions provide a const ref (so hopefully the user can't do anything dangerous). * reworked transfer of information from the ...WithArea -> ...WithMeanArea classes, so that now all jets should have a mean area associated with them, and it might even work for the Cambridge algorithm [though one has to watch out for possible degeneracies there at the stage of jets -> inclusive jets]. 2006-06-02 Gavin Salam * FjClusterSequenceWithMeanArea.* -- split this into .cc and .hh files to make things a bit cleaner in future. * FjClusterSequenceWithArea.* added is_pure_ghost() function and modified calculation of areas so that it occurs in a post-processing stage; got areas-native to print out whether a jet is a true one or a ghost one... * FjClusterSequence.cc: made _fill_initial_history reserve space in _jets and _history. 2006-06-01 Gavin Salam * FjClusterSequence.cc: caused it to throw an error if the event is empty. (Should think about what happens if the event contains only one parton?) 2006-05-31 Gavin Salam * added -cone075 options for areas/subtraction-tests-mass.cc (overlap fraction of 0.75 with standard midpoint cone) 2006-05-29 Gavin Salam * added a few more options for areas/subtraction-tests-mass.cc (one of them allowing one to eliminate the temporary intermediate file in run-mass-tests.sh) 2006-05-27 Gavin Salam * added enum FjClusterSequence::FjJetFinder, which defines the kt_algorithm and the cambridge_algorithm; implemented FjClusterSequence::set_jet_finder which determines which of the two algorithms to use in the clustering. Added -cam option to fastjet_timing and subtraction-tests-mass. Note that the Cambridge impleemntation is extremely crude , that many functionalities are still missing, and that we will almost certain want to rethink the interface to it at some later point... * added areas/merge-hist.pl for merging histograms and added a -freq option to subtractes-tests-mass so as to allow output of intermediate results. 2006-05-26 Gavin Salam * in areas/subtraction-tests-mass.cc: changed outnormalisation of histograms so as to make it easy to compare histograms made with different bin widths and different numbers of events. * in areas/subtraction-tests-mass.cc introduced -cone and -searchcone options for running with the plain midpoint cone and CDF's IR nearly unsafe midpoint searchcone algo. * added areas/run-mass-test.pl which runs pythia and pipes its output into subtraction-tests-mass (via a named pipe, splitting up the options appropriately between the two programs). * copied areas/subtraction-tests.cc -> subtraction-tests-mass.cc and started organizing it a bit better, removing extraneous material etc.; added new option -bin (sets the bin width). * introduced -in and -out options for subtraction-tests.cc (naming the files makes it easier to figure out what's going on when we look at an output file later). 2006-05-25 Gavin SALAM & Matteo for conception * added examples/test-correctness.sh for testing that all the different algorithms are giving consistent results * in FjClusterSequence.hh, introduced jet_scale_for_algorithm, which given a jet returns the scale to be used in the clustering. Currently it is kt^2, but by replacing it with the 1, one gets the Cambridge/Aachen algorithm. Made modifications elsewhere so that everything should now be using the new form; still need to check that with the scale set to 1 it gives the same as the Cambridge algorithm code [and maybe want to examine timings?]. 2006-05-24 Gavin SALAM * In areas/, added basic histogramming class (CSHisto), and used it to look at mass distribution of a reconstructed Z (decayed to two jets). * In FjPseudoJet.* added m2() member function and one instance of a multiplication operator. * In DynamicNearestNeighbours.hh and DnnPlane.cc, renamed DNN_Error -> DnnError, and added a constructor for DnnError that prints out an error message. * Added the file include/FjError.hh which defines a class FjError that is used for throwing all exceptions (except those related to DnnError -- maybe need to catch things there?) 2006-05-23 Gavin SALAM + Matteo (part) * Added FjClusterSequenceWithMeanArea::play option when calling FjClusterSequenceWithMeanAreapt_per_unit_area, for printing out all sorts of bits and pieces; median was renamed old_median, and now median gives a median which takes into account also the average number of non-jets when calculating the median position. It is this new median that is now used also when determining cuts for averages. Mean pt/area ratios and overal pt/area ratios now also take into account the non-jet number and area (respectively). 2006-05-22 Gavin SALAM + Matteo * modified (areas|examples)/CmdLine.* so as to have the facility to find out if there are any unused/invalid options. * Added areas/subtraction-tests.cc for examining how subtraction of underlying events etc works * Added internal support for getting "non-jet" areas inside areas/FjClusterSequenceWithMeanArea.hh (but no external handles for time being). * modified a couple of comments in FjPseudoJet.hh to better reflect return values of plain_distance(). 2006-05-15 Gavin SALAM + Matteo * Added areas/areas-test-mean-class and areas/FjClusterSequenceWithMeanArea.hh to help automate the study of areas and relevant subtractions. Played with it a bit... * in FjClusterSequence.hh -> included cmath and switched abs -> std::abs (following compiler complaints with g++ 4.1.0, where we would have got int abs(int) rather than the double version). * in FjClusterSequence.hh: made the clustering history protected rather than private. 2006-05-12 Gavin SALAM + Matteo Cacciari * in areas/areas-histogramming.cc (not part of release) discovered that CGAL (probably) is playing with random numbers messing up our sequence for area studies via creation of ghosts; so currently set explicit new seed at each turn of loop. Also fixed Makefile dependencies in areas/. Also, writeout_combinations with FlClusterSequence_witharea now prints out the full list of particles (including ghosts) before clustering. * discovered problem with gcc-3.2.3 and certain events, specifically: ./fastjet_timing -combine 10 -incl 0.0 -strategy 2 < ../../Pythia-1PtMin50+nMinBias-mansorted.dat The problem manifests itself when erasing things from the tree, but hasn't been identified beyond that; running it with valgrind it miraculously works (and gives no valgrind errors). It works also with gcc-3.3 (Mac) and gcc-3.4.3 (zetes). Some commented code is in FjClusterSequence_Delaunay to try to uncover what's happening, but no conclusion has been reached yet. Non-Delaunay variants work fine (3pi,4pi variants have problems for different event sets, e.g. -combine 12). 2006-04-04 Gavin SALAM + Matteo Cacciari * src/FjClusterSequence_Delaunay.cc: in _add_ktdistance_to_map, changed if (kt2i < _jets[jj].kt2()) to if (kt2i <= _jets[jj].kt2()) so as catch the case when the two are equal. 2006-03-?? Gavin SALAM + Matteo Cacciari * some bug fixes to sanitization routines (appeared with different compiler version). 2006-02-28 Gavin SALAM * Replaced typedef std::pair EtaPhi with a class that allows one to conveniently sanitize phi into the correct range. * From FjClusterSequence::_delaunay_cluster, called the sanitization routine when inserting a new point... Should make thing a bit more robust in cases where arithmetic rounding tricks cause confusion bewteen 0 and 2pi. 2006-02-26 Gavin Salam * adapted timing scripts so as to get reasonable behaviour for very high N (including subtraction of read time and limiting nstat). 2006-02-17 Gavin SALAM & Matteo Cacciari This is release v1.0.0b3 * fixed huge memory leak in the N ln N CGAL-based strategies. * changes to internal structure of FjClusterSequence class to simplify future developments. 2006-02-13 Gavin Salam This is release v1.0.0b2 * added "#include " in places where it's needed (thanks to Thomas Kluge for pointing out the need for this). * Improved error message in case of request for N ln N strategy when CGAL has not been compiled in. * when creating package, main Makefile is automatically modified to have USE_CGAL=no (the original is put back after creating the tarfile). 2006-02-13 v1.0.0b1 * arranged for harmonisation of behaviour of the various example programs... 2006-02-04 v1.0.0b0 * added minimal standard files (ChangeLog, LICENSE) and headers for GNU dist and included cvs ID string in all code files. ---------------------------------------------------------------------- 2006/02/04 GPS -------------- FjClusterSequence.hh FjClusterSequence_TiledN2.cc fixed bug in tiling for R/=1 (assumptions about indices for wrapping in phi that were hard-coded for R=1). example/ktjet_timing.cc *** ADDED *** Makefile adapted too... ---------------------------------------------------------------------- 2006/02/03 GPS -------------- Various things done since copying across from previous directory in preparation for release: Name changes: Fj prefix added to public types FjStrategy: turned into enum and renamed from "clever" directory structure: src/, example/, lib/, include/ rather single dir documentation: added doc/fastjet-doc.tex as a manual fastjet-3.0.6+dfsg.orig/plugins/0000755000175000017500000000000012253303313014706 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/TrackJet/0000755000175000017500000000000012233507302016417 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/TrackJet/Makefile.in0000644000175000017500000006073112233506216020476 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/TrackJet DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) libTrackJetPlugin_la_LIBADD = am_libTrackJetPlugin_la_OBJECTS = \ libTrackJetPlugin_la-TrackJetPlugin.lo libTrackJetPlugin_la_OBJECTS = $(am_libTrackJetPlugin_la_OBJECTS) libTrackJetPlugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libTrackJetPlugin_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @MONOLITHIC_PLUGINS_FALSE@am_libTrackJetPlugin_la_rpath = -rpath \ @MONOLITHIC_PLUGINS_FALSE@ $(libdir) @MONOLITHIC_PLUGINS_TRUE@am_libTrackJetPlugin_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libTrackJetPlugin_la_SOURCES) DIST_SOURCES = $(libTrackJetPlugin_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = fastjet . @MONOLITHIC_PLUGINS_TRUE@noinst_LTLIBRARIES = libTrackJetPlugin.la @MONOLITHIC_PLUGINS_FALSE@lib_LTLIBRARIES = libTrackJetPlugin.la libTrackJetPlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libTrackJetPlugin_la_SOURCES = TrackJetPlugin.cc EXTRA_DIST = makefile.static all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/TrackJet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/TrackJet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libTrackJetPlugin.la: $(libTrackJetPlugin_la_OBJECTS) $(libTrackJetPlugin_la_DEPENDENCIES) $(libTrackJetPlugin_la_LINK) $(am_libTrackJetPlugin_la_rpath) $(libTrackJetPlugin_la_OBJECTS) $(libTrackJetPlugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libTrackJetPlugin_la-TrackJetPlugin.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libTrackJetPlugin_la-TrackJetPlugin.lo: TrackJetPlugin.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libTrackJetPlugin_la_CXXFLAGS) $(CXXFLAGS) -MT libTrackJetPlugin_la-TrackJetPlugin.lo -MD -MP -MF $(DEPDIR)/libTrackJetPlugin_la-TrackJetPlugin.Tpo -c -o libTrackJetPlugin_la-TrackJetPlugin.lo `test -f 'TrackJetPlugin.cc' || echo '$(srcdir)/'`TrackJetPlugin.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libTrackJetPlugin_la-TrackJetPlugin.Tpo $(DEPDIR)/libTrackJetPlugin_la-TrackJetPlugin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TrackJetPlugin.cc' object='libTrackJetPlugin_la-TrackJetPlugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libTrackJetPlugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libTrackJetPlugin_la-TrackJetPlugin.lo `test -f 'TrackJetPlugin.cc' || echo '$(srcdir)/'`TrackJetPlugin.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/TrackJet/TrackJetPlugin.cc0000644000175000017500000001717211766120134021630 0ustar sunsun//STARTHEADER // $Id: TrackJetPlugin.cc 2776 2011-11-25 14:59:58Z salam $ // // Copyright (c) 2007-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. It contains code that has been // obtained from the Rivet project by Leif Lonnblad, Andy Buckley and // Jon Butterworth. See http://www.hepforge.org/downloads/rivet. // Rivet is free software released under the terms of the GNU Public // License(v2). // Changes from the original file are listed below. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER // History of changes from the original TrackJet.cc file in Rivet <=1.1.2 // // 2011-01-28 Gregory Soyez // // * Replaced the use of sort by stable_sort (see BUGS in the top // FastJet dir) // // // 2009-01-17 Gregory Soyez // // * Aligned the var names with the previous conventions // // * Put the plugin in the fastjet::trackjet namespace // // // 2009-01-06 Gregory Soyez // // * Adapted the original code in a FastJet plugin class. // // * Allowed for arbitrary recombination schemes (one for the // recomstruction of the 'jet' --- i.e. summing the particles // into a jet --- and one for the accumulation of particles in // a 'track' --- i.e. the dynamics of the clustering) // fastjet stuff #include "fastjet/ClusterSequence.hh" #include "fastjet/TrackJetPlugin.hh" // other stuff #include #include #include #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //------------------------------------------------------------------ // helper class to sort the particles in pt //------------------------------------------------------------------ class TrackJetParticlePtr{ public: TrackJetParticlePtr(int i_index, double i_perp2) : index(i_index), perp2(i_perp2){} int index; double perp2; bool operator <(const TrackJetParticlePtr &other) const { return perp2>other.perp2; } }; //------------------------------------------------------------------ // implementation of the TrackJet plugin //------------------------------------------------------------------ bool TrackJetPlugin::_first_time = true; string TrackJetPlugin::description () const { ostringstream desc; desc << "TrackJet algorithm with R = " << R(); return desc.str(); } void TrackJetPlugin::run_clustering(ClusterSequence & clust_seq) const { // print a banner if we run this for the first time _print_banner(clust_seq.fastjet_banner_stream()); // we first need to sort the particles in pt vector particle_list; const vector & jets = clust_seq.jets(); int index=0; for (vector::const_iterator mom_it = jets.begin(); mom_it != jets.end(); mom_it++){ particle_list.push_back(TrackJetParticlePtr(index, mom_it->perp2())); index++; } // sort the particles into decreasing pt stable_sort(particle_list.begin(), particle_list.end()); // if we're using a recombination scheme different from the E scheme, // we first need to update the particles' energy so that they // are massless (and rapidity = pseudorapidity) vector tuned_particles = clust_seq.jets(); vector tuned_tracks = clust_seq.jets(); for (vector::iterator pit = tuned_particles.begin(); pit != tuned_particles.end(); pit++) _jet_recombiner.preprocess(*pit); for (vector::iterator pit = tuned_tracks.begin(); pit != tuned_tracks.end(); pit++) _track_recombiner.preprocess(*pit); // we'll just need the particle indices for what follows list sorted_pt_index; for (vector::iterator mom_it = particle_list.begin(); mom_it != particle_list.end(); mom_it++) sorted_pt_index.push_back(mom_it->index); // now start building the jets while (sorted_pt_index.size()){ // note that here 'track' refers to the direction we're using to test if a particle belongs to the jet // 'jet' refers to the momentum of the jet // the difference between the two is in the recombination scheme used to compute the sum of 4-vectors int current_jet_index = sorted_pt_index.front(); PseudoJet current_jet = tuned_particles[current_jet_index]; PseudoJet current_track = tuned_tracks[current_jet_index]; // remove the first particle from the available ones list::iterator index_it = sorted_pt_index.begin(); sorted_pt_index.erase(index_it); // start browsing the remaining ones index_it = sorted_pt_index.begin(); while (index_it != sorted_pt_index.end()){ const PseudoJet & current_particle = tuned_particles[*index_it]; const PseudoJet & current_particle_track = tuned_tracks[*index_it]; // check if the particle is within a distance R of the jet double distance2 = current_track.plain_distance(current_particle_track); if (distance2 <= _radius2){ // add the particle to the jet PseudoJet new_track; PseudoJet new_jet; _jet_recombiner.recombine(current_jet, current_particle, new_jet); _track_recombiner.recombine(current_track, current_particle_track, new_track); int new_jet_index; clust_seq.plugin_record_ij_recombination(current_jet_index, *index_it, distance2, new_jet, new_jet_index); current_jet = new_jet; current_track = new_track; current_jet_index = new_jet_index; // particle has been clustered so remove it from the list sorted_pt_index.erase(index_it); // and don't forget to start again from the beginning // as the jet axis may have changed index_it = sorted_pt_index.begin(); } else { index_it++; } } // now we have a final jet, so cluster it with the beam clust_seq.plugin_record_iB_recombination(current_jet_index, _radius2); } } // print a banner for reference to the 3rd-party code void TrackJetPlugin::_print_banner(ostream *ostr) const{ if (! _first_time) return; _first_time=false; // make sure the user has not set the banner stream to NULL if (!ostr) return; (*ostr) << "#-------------------------------------------------------------------------" << endl; (*ostr) << "# You are running the TrackJet plugin for FastJet. It is based on " << endl; (*ostr) << "# the implementation by Andy Buckley and Manuel Bahr that is to be " << endl; (*ostr) << "# found in Rivet 1.1.2. See http://www.hepforge.org/downloads/rivet. " << endl; (*ostr) << "#-------------------------------------------------------------------------" << endl; // make sure we really have the output done. ostr->flush(); } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/plugins/TrackJet/makefile.static0000644000175000017500000000114611766120134021413 0ustar sunsun# common fastjet definitions include ../../makefile.static CXXSRC = TrackJetPlugin.cc OBJS = $(patsubst %.cc,%.o,$(CXXSRC)) # fastjet includes FASTJET_INCLUDE = -I../../include INCLUDE += $(FASTJET_INCLUDE) all: libTrackJetPlugin.a libTrackJetPlugin.a: $(OBJS) ar cru libTrackJetPlugin.a $(OBJS) ranlib libTrackJetPlugin.a clean: rm -f $(OBJS) distclean: clean rm -f libTrackJetPlugin.a *~ # NB: only use "relative" includes here (others are too subject # to change according to the system one is on...) depend: makedepend -f makefile.static $(FASTJET_INCLUDE) -I. -I./fastjet -- -- $(CXXSRC) fastjet-3.0.6+dfsg.orig/plugins/TrackJet/fastjet/0000755000175000017500000000000012233507302020057 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/TrackJet/fastjet/Makefile.in0000644000175000017500000003425212233506216022135 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/TrackJet/fastjet DIST_COMMON = $(fastjetinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(fastjetincludedir)" HEADERS = $(fastjetinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fastjetincludedir = $(includedir)/fastjet fastjetinclude_HEADERS = TrackJetPlugin.hh all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/TrackJet/fastjet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/TrackJet/fastjet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fastjetincludeHEADERS: $(fastjetinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludedir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludedir)" @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludedir)" || exit $$?; \ done uninstall-fastjetincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(fastjetincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fastjetincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fastjetincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-fastjetincludeHEADERS install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-fastjetincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/TrackJet/fastjet/TrackJetPlugin.hh0000644000175000017500000000715511766120134023302 0ustar sunsun//STARTHEADER // $Id: TrackJetPlugin.hh 2758 2011-11-24 08:31:58Z soyez $ // // Copyright (c) 2007-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __TRACKJETPLUGIN_HH__ #define __TRACKJETPLUGIN_HH__ #include "fastjet/JetDefinition.hh" // questionable whether this should be in fastjet namespace or not... FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // another forward declaration to reduce includes class PseudoJet; //---------------------------------------------------------------------- /// @ingroup plugins /// \class TrackJetPlugin /// Implementation of the TrackJet algorithm (plugin for fastjet v2.4 upwards) // class TrackJetPlugin : public JetDefinition::Plugin { public: /// Main constructor for the TrackJet Plugin class. /// /// The argument is an initialised list of jet algorithms /// \param _radius the distance at which point a particle is no longer /// recombied into the jet /// \param jet_recombination_scheme the recombination scheme used to /// sum the 4-vecors inside the jet /// \param track_recombination_scheme the recombination scheme used to /// sum the 4-vecors when accumulating /// track into a the jet /// Both recombiners are defaulted to pt_scheme recomb as for the Rivet /// implementation. TrackJetPlugin (double radius, RecombinationScheme jet_recombination_scheme=pt_scheme, RecombinationScheme track_recombination_scheme=pt_scheme){ _radius = radius; _radius2 = radius*radius; _jet_recombiner = JetDefinition::DefaultRecombiner(jet_recombination_scheme); _track_recombiner = JetDefinition::DefaultRecombiner(track_recombination_scheme); } /// copy constructor TrackJetPlugin (const TrackJetPlugin & plugin) { *this = plugin; } // the things that are required by base class virtual std::string description () const; virtual void run_clustering(ClusterSequence &) const; /// the plugin mechanism's standard way of accessing the jet radius /// here we return the R of the last alg in the list virtual double R() const {return _radius;} private: double _radius, _radius2; JetDefinition::DefaultRecombiner _jet_recombiner; JetDefinition::DefaultRecombiner _track_recombiner; static bool _first_time; /// print a banner for reference to the 3rd-party code void _print_banner(std::ostream *ostr) const; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __TRACKJETPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/TrackJet/fastjet/Makefile.am0000644000175000017500000000012311766120134022113 0ustar sunsunfastjetincludedir=$(includedir)/fastjet fastjetinclude_HEADERS = TrackJetPlugin.hh fastjet-3.0.6+dfsg.orig/plugins/TrackJet/Makefile.am0000644000175000017500000000045311766120134020461 0ustar sunsunSUBDIRS = fastjet . if MONOLITHIC_PLUGINS noinst_LTLIBRARIES = libTrackJetPlugin.la else lib_LTLIBRARIES = libTrackJetPlugin.la endif libTrackJetPlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libTrackJetPlugin_la_SOURCES = TrackJetPlugin.cc EXTRA_DIST = makefile.static fastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/0000755000175000017500000000000012233507303016670 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/ConeSplitMerge.hpp0000644000175000017500000002515012233477116022274 0ustar sunsun#ifndef D0RunIIconeJets_CONESPLITMERGE #define D0RunIIconeJets_CONESPLITMERGE // --------------------------------------------------------------------------- // ConeSplitMerge.hpp // // Created: 28-JUL-2000 Francois Touze // // Purpose: Implements the pT ordered jet split/merge algorithm for the // Improved Legacy Cone Algorithm split/merge algo. // // Modified: // 31-JUL-2000 Laurent Duflot // + introduce support for additional informations (ConeJetInfo) // 1-AUG-2000 Laurent Duflot // + jet merge criteria was wrong, now calculate shared_ET and compare to // neighbour jet pT. // + split was incomplete: shared items not really removed from jets. // 4-Aug-2000 Laurent Duflot // + use item methods y() and phi() rather than p4vec() and then P2y and // P2phi // 7-Aug-2000 Laurent Duflot // + force the list to be organized by decreasing ET and, for identical ET, // by decreasing seedET. Identical protojets can be found by eg nearby // seeds. The seedET ordering is such that for identical jets, the one // with the highest seedET is kept, which is what we want for efficiency // calculations. // + avoid unecessary copies of lists by using reference when possible // 9-Aug-2000 Laurent Duflot // + save initial jet ET before split/merge // 1-May-2007 Lars Sonnenschein // extracted from D0 software framework and modified to remove subsequent dependencies // // // This file is distributed with FastJet under the terms of the GNU // General Public License (v2). Permission to do so has been granted // by Lars Sonnenschein and the D0 collaboration (see COPYING for // details) // // History of changes in FastJet compared tothe original version of // ConeSplitMerge.hpp // // 2011-12-13 Gregory Soyez // // * added license information // // 2009-01-17 Gregory Soyez // // * put the code in the fastjet::d0 namespace // // 2007-12-14 Gavin Salam // // * replaced make_pair by std::make_pair // // --------------------------------------------------------------------------- #include #include #include #include #include "ProtoJet.hpp" //using namespace D0RunIIconeJets_CONEJETINFO; #include FASTJET_BEGIN_NAMESPACE namespace d0{ // // this class is used to order ProtoJets by decreasing ET and seed ET template class ProtoJet_ET_seedET_order { public: bool operator()(const ProtoJet & first, const ProtoJet & second) const { if ( first.pT() > second.pT() ) return true; else if ( first.pT() < second.pT() ) return false; else return ( first.info().seedET() > second.info().seedET() ); } }; template class ConeSplitMerge { public : typedef std::multimap,float,ProtoJet_ET_seedET_order > PJMMAP; ConeSplitMerge(); ConeSplitMerge(const std::vector >& jvector); ConeSplitMerge(const std::list >& jlist); ~ConeSplitMerge() {;} void split_merge(std::vector >& ecv,float s, float pT_min_leading_protojet, float pT_min_second_protojet, int MergeMax, float pT_min_noMergeMax); private : PJMMAP _members; }; /////////////////////////////////////////////////////////////////////////////// template ConeSplitMerge::ConeSplitMerge():_members() {;} template ConeSplitMerge::ConeSplitMerge(const std::vector >& jvector) { // sort proto_jets in Et descending order typename std::vector >::const_iterator jt; for(jt = jvector.begin(); jt != jvector.end(); ++jt) { // this is supposed to be a stable cone, declare so ProtoJet jet(*jt); jet.NowStable(); _members.insert(std::make_pair(jet,jet.pT())); } } template ConeSplitMerge::ConeSplitMerge(const std::list >& jlist) { //_max_nb_items =-1; // sort proto_jets in Et descending order typename std::list >::const_iterator jt; for(jt = jlist.begin(); jt != jlist.end(); ++jt) { // this is supposed to be a stable cone, declare so ProtoJet jet(*jt); jet.NowStable(); _members.insert(std::make_pair(jet,jet.pT())); } } template void ConeSplitMerge::split_merge(std::vector >& jcv, float shared_ET_fraction, float pT_min_leading_protojet, float pT_min_second_protojet, int MergeMax, float pT_min_noMergeMax) { while(!_members.empty()) { /* { std::cout << std::endl; std::cout << " --------------- list of protojets ------------------ " < imax((*itmax).first); const std::list& ilist(imax.LItems()); _members.erase(itmax); // does jet share items? bool share= false; float shared_ET = 0.; typename PJMMAP::iterator jtmax; typename PJMMAP::iterator jt; for(jt = _members.begin(); jt != _members.end(); ++jt) { const std::list& jlist((*jt).first.LItems()); typename std::list::const_iterator tk; int count; for(tk = ilist.begin(), count = 0; tk != ilist.end(); ++tk, ++count) { typename std::list::const_iterator where= find(jlist.begin(),jlist.end(),*tk); if(where != jlist.end()) { share= true; shared_ET += (*tk)->pT(); } } if(share) { jtmax = jt; break; } } if(!share) { // add jet to the final jet list jcv.push_back(imax); //std::cout << " final jet " << imax.pT() << " "<< imax.info().nbMerge() << " " << imax.info().nbSplit() << std::endl; } else { // find highest Et neighbor ProtoJet jmax((*jtmax).first); // drop neighbor _members.erase(jtmax); //std::cout << " split or merge ? " << imax.pT() << " " << shared_ET << " " << jmax.pT() << " " << s << " " << (jmax.pT())*s << std::endl; // merge if( shared_ET > (jmax.pT())*shared_ET_fraction && (imax.pT() > pT_min_leading_protojet || jmax.pT() > pT_min_second_protojet) && (imax.info().nbMerge() < MergeMax || imax.pT() > pT_min_noMergeMax)) { // add neighbor's items to imax const std::list& jlist(jmax.LItems()); typename std::list::const_iterator tk; typename std::list::const_iterator iend= ilist.end(); bool same = true; // is jmax just the same as imax ? for(tk = jlist.begin(); tk != jlist.end(); ++tk) { typename std::list::const_iterator where= find(ilist.begin(),iend,*tk); if(where == iend) { imax.addItem(*tk); same = false; } } if ( ! same ) { // recalculate //float old_pT = imax.pT(); imax.updateJet(); imax.merged(); //std::cout << " jet merge :: " << old_pT << " " << jmax.pT() << " " << imax.pT() << " "<< imax.info().nbMerge() << " " << imax.info().nbSplit() << std::endl; } } //split and assign removed shared cells from lowest pT protojet else if(shared_ET > (jmax.pT())*shared_ET_fraction) { // here we need to pull the lists, because there are items to remove std::list ilist(imax.LItems()); std::list jlist(jmax.LItems()); typename std::list::iterator tk; for(tk = jlist.begin(); tk != jlist.end(); ) { typename std::list::iterator where= find(ilist.begin(),ilist.end(),*tk); if(where != ilist.end()) { tk = jlist.erase(tk); } else ++tk; } jmax.erase(); for ( typename std::list::const_iterator it = jlist.begin(); it != jlist.end(); ++it) jmax.addItem(*it); // recalculated jet quantities jmax.updateJet(); jmax.splitted(); //std::cout << " jet split 1 :: " << jmax.pT() << " "<< jmax.info().nbMerge() << " " << jmax.info().nbSplit() << std::endl; _members.insert(std::make_pair(jmax,jmax.pT())); } // split and assign shared cells to nearest protojet else { // here we need to pull the lists, because there are items to remove std::list ilist(imax.LItems()); std::list jlist(jmax.LItems()); typename std::list::iterator tk; for(tk = jlist.begin(); tk != jlist.end(); ) { typename std::list::iterator where= find(ilist.begin(),ilist.end(),*tk); if(where != ilist.end()) { float yk = (*tk)->y(); float phik = (*tk)->phi(); float di= RD2(imax.y(),imax.phi(),yk,phik); float dj= RD2(jmax.y(),jmax.phi(),yk,phik); if(dj > di) { tk = jlist.erase(tk); //std::cout << " shared item " << (*tk)->pT() << " removed from neighbour jet " << std::endl; } else { ilist.erase(where); ++tk; //std::cout << " shared item " << (*tk)->pT() << " removed from leading jet " << std::endl; } } else ++tk; } // recalculate jets imax and jmax // first erase all items imax.erase(); // put items that are left for ( typename std::list::const_iterator it = ilist.begin(); it != ilist.end(); ++it) imax.addItem(*it); // recalculated jet quantities imax.updateJet(); imax.splitted(); //std::cout << " jet split 2 :: " << imax.pT() << " "<< imax.info().nbMerge() << " " << imax.info().nbSplit() << std::endl; // first erase all items jmax.erase(); // put items that are left for ( typename std::list::const_iterator it = jlist.begin(); it != jlist.end(); ++it) jmax.addItem(*it); // recalculated jet quantities jmax.updateJet(); jmax.splitted(); //std::cout << " jet split " << jmax.pT() << " "<< jmax.info().nbMerge() << " " << jmax.info().nbSplit() << std::endl; _members.insert(std::make_pair(jmax,jmax.pT())); } _members.insert(std::make_pair(imax,imax.pT())); } } // while } /////////////////////////////////////////////////////////////////////////////// } // namespace d0 FASTJET_END_NAMESPACE #endif fastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/ProtoJet.hpp0000644000175000017500000001334611766120133021160 0ustar sunsun#ifndef D0RunIIconeJets_PROTOJET #define D0RunIIconeJets_PROTOJET // --------------------------------------------------------------------------- // ProtoJet.hpp // // Created: 28-JUL-2000 Francois Touze (+ Laurent Duflot) // // Purpose: Implements a proto-jet object that is used as input by the // Improved Legacy Cone Algorithm split/merge algo. // // Modified: // 9-Aug-2000 Laurent Duflot // + save the initial stable cone ET before split/merge // 1-May-2007 Lars Sonnenschein // extracted from D0 software framework and modified to remove subsequent dependencies // // // This file is distributed with FastJet under the terms of the GNU // General Public License (v2). Permission to do so has been granted // by Lars Sonnenschein and the D0 collaboration (see COPYING for // details) // // History of changes in FastJet compared tothe original version of // ProtoJet.hpp // // 2011-12-13 Gregory Soyez // // * added license information // // 2011-11-14 Gregory Soyez // // * changed the name of a few parameters to avoid a gcc // -Wshadow warning // // 2009-01-17 Gregory Soyez // // * put the code in the fastjet::d0 namespace // // 2007-12-14 Gavin Salam // // * replaced make_pair by std::make_pair // // --------------------------------------------------------------------------- //#include "kinem_util/AnglesUtil.hpp" //#include "energycluster/ConeJetInfo.hpp" #include "ConeJetInfo.hpp" #include #include #include "inline_maths.h" //ls #include FASTJET_BEGIN_NAMESPACE namespace d0{ using namespace inline_maths; using namespace D0RunIIconeJets_CONEJETINFO; inline float RD2(float y1,float phi1,float y2,float phi2) { float dphi= delta_phi(phi1,phi2); return (y1-y2)*(y1-y2)+dphi*dphi; } inline float RDelta(float y1,float phi1,float y2,float phi2) { float dphi= delta_phi(phi1,phi2); return sqrt((y1-y2)*(y1-y2)+dphi*dphi); } inline float P2y(float* p4vec) { return y(p4vec[3],p4vec[2]); } inline float P2phi(float* p4vec) { return phi(p4vec[0],p4vec[1]); } /////////////////////////////////////////////////////////////////////////////// template class ProtoJet { public : ProtoJet(float seedET); ProtoJet(float seedET,float y,float phi); ProtoJet(const ProtoJet& pj); ~ProtoJet() {;} void addItem(const Item* tw); void setJet(float y,float phi,float pT); void updateJet(); void erase(); float y() const; float phi() const; float pT() const; const ConeJetInfo & info() const; const std::list& LItems() const; void print(std::ostream &os) const; // actions to be taken when the jet is a stable cone void NowStable(); // declare the jet to have been splitted void splitted(){_info.splitted();}; // declare the jet to have been merged void merged(){_info.merged();}; protected : std::list _LItems; float _y; float _phi; float _pT; ConeJetInfo _info; }; /////////////////////////////////////////////////////////////////////////////// template ProtoJet::ProtoJet(float seedET) : _LItems(), _info(seedET) { _y = 0.0; _phi= 0.0; _pT = 0.0; } template ProtoJet::ProtoJet(float seedET,float y_in,float phi_in) : _LItems(), _info(seedET) { _y = y_in; _phi= phi_in; _pT = 0.0; } template ProtoJet::ProtoJet(const ProtoJet& pj): _y(pj._y), _phi(pj._phi), _pT(pj._pT), _info(pj._info) { typename std::list::const_iterator it; for(it = pj._LItems.begin(); it != pj._LItems.end(); ++it) { _LItems.push_back(*it); } } template void ProtoJet::addItem(const Item* tw) { _LItems.push_back(tw); } template void ProtoJet::setJet(float y_in,float phi_in,float pT_in) { _y = y_in; _phi= phi_in; _pT = pT_in; } template void ProtoJet::updateJet() { //float ETsum = 0.0; //float ysum = 0.0; //float PHIsum= 0.0; float p[4] = {0.,0.,0.,0.}; typename std::list::iterator it; for(it = _LItems.begin(); it != _LItems.end(); ++it) { float pk[4]; (*it)->p4vec(pk); //cout << "updateJet: px=" << pk[0] << " py=" << pk[1] << " pz=" << pk[2] << " E=" << pk[3] << endl; for ( int i = 0; i < 4 ; ++i) p[i] += pk[i]; } _y = P2y(p); _phi = P2phi(p); _pT = sqrt(p[0]*p[0] + p[1]*p[1]); if ( p[3] < 0. ) _pT = - _pT; } template void ProtoJet::erase() { _LItems.erase(_LItems.begin(),_LItems.end()); _y = 0.0; _phi= 0.0; _pT = 0.0; // _info is not modified in order to keep split/merge history } // actions to be taken when the jet is a stable cone template void ProtoJet::NowStable() { _info.initialET(_pT); } template void ProtoJet::print(std::ostream& os) const { os<<"y phi Et = ("<<_y<<", "<<_phi<<", "<_Et<<")"< // D0 stuff #include #include "ILConeAlgorithm.hpp" #include "HepEntity.h" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; using namespace d0; const double D0RunIIConePlugin::_DEFAULT_split_ratio = 0.5 ; // overlap threshold const double D0RunIIConePlugin::_DEFAULT_far_ratio = 0.5 ; const double D0RunIIConePlugin::_DEFAULT_Et_min_ratio = 0.5 ; const bool D0RunIIConePlugin::_DEFAULT_kill_duplicate = true ; const double D0RunIIConePlugin::_DEFAULT_duplicate_dR = 0.005; const double D0RunIIConePlugin::_DEFAULT_duplicate_dPT = 0.01 ; const double D0RunIIConePlugin::_DEFAULT_search_factor = 1.0 ; const double D0RunIIConePlugin::_DEFAULT_pT_min_leading_protojet = 0. ; const double D0RunIIConePlugin::_DEFAULT_pT_min_second_protojet = 0. ; const int D0RunIIConePlugin::_DEFAULT_merge_max = 10000; const double D0RunIIConePlugin::_DEFAULT_pT_min_nomerge = 0. ; bool D0RunIIConePlugin::_first_time = true; string D0RunIIConePlugin::description () const { ostringstream desc; desc << "D0 Run II Improved Legacy (midpoint) cone jet algorithm, with "; desc << "cone_radius = " << cone_radius () << ", " << "min_jet_Et = " << min_jet_Et () << ", " << "split_ratio = " << split_ratio (); return desc.str(); } void D0RunIIConePlugin::run_clustering(ClusterSequence & clust_seq) const { // print a banner if we run this for the first time _print_banner(clust_seq.fastjet_banner_stream()); // create the entities needed by the D0 code vector entities(clust_seq.jets().size()); list ensemble; for (unsigned i = 0; i < clust_seq.jets().size(); i++) { entities[i].Fill(clust_seq.jets()[i].E(), clust_seq.jets()[i].px(), clust_seq.jets()[i].py(), clust_seq.jets()[i].pz(), i); // use only the particles that do not have infinite rapidity if (abs(entities[i].pz) < entities[i].E) { ensemble.push_back(& (entities[i])); } } // prepare the D0 algorithm ILConeAlgorithm ilegac(cone_radius(), min_jet_Et(), split_ratio(), far_ratio(), Et_min_ratio(), kill_duplicate(), duplicate_dR(), duplicate_dPT(), search_factor(), pT_min_leading_protojet(), pT_min_second_protojet(), merge_max(), pT_min_nomerge()); // run the algorithm float Item_ET_Threshold = 0.; list jets; ilegac.makeClusters(jets, ensemble, Item_ET_Threshold); // now transfer the information about the jets into the // FastJet structure for(int i = ilegac.ilcv.size()-1; i >= 0; i--) { std::list tlist = ilegac.ilcv[i].LItems(); std::list::iterator tk; // get first particle in list tk = tlist.begin(); // if there is no particle, just discard it // Note: this unexpected behaviour has been observed when the // min_jet_Et parameter was set to 0 if (tk==tlist.end()) continue; int jet_k = (*tk)->index; // now merge with remaining particles in list tk++; for (; tk != tlist.end(); tk++) { int jet_i = jet_k; int jet_j = (*tk)->index; // do a fake recombination step with dij=0 double dij = 0.0; clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, jet_k); } // NB: put a sensible looking d_iB just to be nice... double d_iB = clust_seq.jets()[jet_k].perp2(); clust_seq.plugin_record_iB_recombination(jet_k, d_iB); } } // print a banner for reference to the 3rd-party code void D0RunIIConePlugin::_print_banner(ostream *ostr) const{ if (! _first_time) return; _first_time=false; // make sure the user has not set the banner stream to NULL if (!ostr) return; (*ostr) << "#--------------------------------------------------------------------------" << endl; (*ostr) << "# You are running the D0 Run II Cone plugin for FastJet " << endl; (*ostr) << "# Original code by the D0 collaboration, provided by Lars Sonnenschein; " << endl; (*ostr) << "# interface by FastJet authors " << endl; (*ostr) << "# If you use this plugin, please cite " << endl; (*ostr) << "# G. C. Blazey et al., hep-ex/0005012 " << endl; (*ostr) << "# V. M. Abazov et al. [D0 Collaboration], arXiv:1110.3771 [hep-ex] " << endl; (*ostr) << "# in addition to the usual FastJet reference. " << endl; (*ostr) << "#--------------------------------------------------------------------------" << endl; // make sure we really have the output done. ostr->flush(); } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/HepEntity.h0000644000175000017500000000427411766120133020763 0ustar sunsun#ifndef D0RunIIconeJets_HepEntity_class #define D0RunIIconeJets_HepEntity_class #include "inline_maths.h" #include FASTJET_BEGIN_NAMESPACE namespace d0{ //Author: Lars Sonnenschein 28/Mar/2007 //This is an example class fulfilling the minimal requirements needed by the //D0 RunII cone jet algorithm implementation, which is an inlined template class // // // This file is distributed with FastJet under the terms of the GNU // General Public License (v2). Permission to do so has been granted // by Lars Sonnenschein and the D0 collaboration (see COPYING for // details) // // History of changes in FastJet compared tothe original version of // HepEntity.h // // 2011-12-13 Gregory Soyez // // * added license information // // 2009-01-17 Gregory Soyez // // * put the code in the fastjet::d0 namespace // // 2007-12-14 Gavin Salam // // * added an index member class HepEntity { public: HepEntity() { E=0.; px=0.; py=0.; pz=0.; index = -1; return; } HepEntity(double E_in, double px_in, double py_in, double pz_in, int index_in = -1) : E(E_in), px(px_in), py(py_in), pz(pz_in), index(index_in) { return; } HepEntity(const HepEntity& in) : E(in.E), px(in.px), py(in.py), pz(in.pz), index(in.index) { return; } inline double y() const { return inline_maths::y(E,pz); } inline double phi() const { return inline_maths::phi(px,py); } inline double pT() const { return sqrt(inline_maths::sqr(px)+inline_maths::sqr(py)); } inline void p4vec(float* p) const { p[0] = px; p[1] = py; p[2] = pz; p[3] = E; return; } inline void Add(const HepEntity el) { E += el.E; px += el.px; py += el.py; pz += el.pz; return; } inline void Fill(double E_in, double px_in, double py_in, double pz_in, int index_in = -1) { E = E_in; px = px_in; py = py_in; pz = pz_in; index = index_in; return; } double E; double px; double py; double pz; int index; private: }; //end of class HepEntity; } // namespace d0 FASTJET_END_NAMESPACE #endif fastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/ILConeAlgorithm.hpp0000644000175000017500000004526211772065203022377 0ustar sunsun#ifndef D0RunIIconeJets_ILCONEALGORITHM #define D0RunIIconeJets_ILCONEALGORITHM // --------------------------------------------------------------------------- // ILConeAlgorithm.hpp // // Created: 28-JUL-2000 Francois Touze (+ Laurent Duflot) // // Purpose: Implements the Improved Legacy Cone Algorithm // // Modified: // 31-JUL-2000 Laurent Duflot // + introduce support for additional informations (ConeJetInfo) // 1-AUG-2000 Laurent Duflot // + seedET for midpoint jet is -999999., consistent with seedET ordering // in ConeSplitMerge: final jets with seedET=-999999. will be midpoint // jets which were actually different from stable cones. // 4-Aug-2000 Laurent Duflot // + remove unecessary copy in TemporaryJet::is_stable() // 11-Aug-2000 Laurent Duflot // + remove using namespace std // + add threshold on item. The input list to makeClusters() IS modified // 20-June-2002 John Krane // + remove bug in midpoint calculation based on pT weight // + started to add new midpoint calculation based on 4-vectors, // but not enough info held by this class // 24-June-2002 John Krane // + modify is_stable() to not iterate if desired // (to expand search cone w/out moving it) // + added search cone logic for initial jets but not midpoint jets as per // agreement with CDF // 19-July-2002 John Krane // + _SEARCH_CONE size factor now provided by calreco/CalClusterReco.cpp // + (default = 1.0 = like original ILCone behavior) // 10-Oct-2002 John Krane // + Check min Pt of cone with full size first, then iterate with search cone // 07-Dec-2002 John Krane // + speed up the midpoint phi-wrap solution // 01-May-2007 Lars Sonnenschein // extracted from D0 software framework and modified to remove subsequent dependencies // // // This file is distributed with FastJet under the terms of the GNU // General Public License (v2). Permission to do so has been granted // by Lars Sonnenschein and the D0 collaboration (see COPYING for // details) // // History of changes in FastJet compared tothe original version of // ProtoJet.hpp // // 2012-06-12 Gregory Soyez // // * Replaced addItem(...) by this->addItem(...) to allow // compilation with gcc 4.7 which no longer performs // unqualified template lookups. See // e.g. http://gcc.gnu.org/gcc-4.7/porting_to.html // // 2011-12-13 Gregory Soyez // // * added license information // // 2011-11-14 Gregory Soyez // // * changed the name of a few parameters to avoid a gcc // -Wshadow warning // // 2009-01-17 Gregory Soyez // // * put the code in the fastjet::d0 namespace // // 2007-12-14 Gavin Salam // // * moved the 'std::vector > ilcv' structure // containing the info about the final jets from a local // variable to a class variable (for integration in the // FastJet plugin core) // // --------------------------------------------------------------------------- #include #include #include // defines pair<,> #include #include #include //#include "energycluster/EnergyClusterReco.hpp" //#include "energycluster/ProtoJet.hpp" #include "ProtoJet.hpp" //#include "energycluster/ConeSplitMerge.hpp" #include "ConeSplitMerge.hpp" //#include "energycluster/ConeJetInfoChunk.hpp" #include "inline_maths.h" /////////////////////////////////////////////////////////////////////////////// #include FASTJET_BEGIN_NAMESPACE namespace d0{ using namespace inline_maths; /* NB: Some attempt at optimizing the code has been made by ordering the object along rapidity but this did not improve the speed. There are traces of these atemps in the code, that will be cleaned up in the future. */ // at most one of those ! // order the input list and use lower_bound() and upper_bound() to restrict the // on item to those that could possibly be in the cone. //#define ILCA_USE_ORDERED_LIST // idem but use an intermediate multimap in hope that lower_bound() and // upper_bound() are faster in this case. //#define ILCA_USE_MMAP #ifdef ILCA_USE_ORDERED_LIST // this class is used to order the item list along rapidity template class rapidity_order { public: bool operator()(const Item* first, const Item* second) { return (first->y() < second->y()); } bool operator()(float const & first, const Item* second) { return (first < second->y()); } bool operator()(const Item* first, float const& second) { return (first->y() < second); } }; #endif //template template class ILConeAlgorithm { public: // default constructor (default parameters are crazy: you should not use that // constructor !) ILConeAlgorithm(): _CONE_RADIUS(0.), _MIN_JET_ET(99999.), _ET_MIN_RATIO(0.5), _FAR_RATIO(0.5), _SPLIT_RATIO(0.5), _DUPLICATE_DR(0.005), _DUPLICATE_DPT(0.01), _SEARCH_CONE(0.5), _PT_MIN_LEADING_PROTOJET(0), _PT_MIN_SECOND_PROTOJET(0), _MERGE_MAX(10000), _PT_MIN_noMERGE_MAX(0) {;} // full constructor ILConeAlgorithm(float cone_radius, float min_jet_Et, float split_ratio, float far_ratio=0.5, float Et_min_ratio=0.5, bool kill_duplicate=true, float duplicate_dR=0.005, float duplicate_dPT=0.01, float search_factor=1.0, float pT_min_leading_protojet=0., float pT_min_second_protojet=0., int merge_max=10000, float pT_min_nomerge=0.) : // cone radius _CONE_RADIUS(cone_radius), // minimum jet ET _MIN_JET_ET(min_jet_Et), // stable cones must have ET > _ET_MIN_RATIO*_MIN_JET_ET at any iteration _ET_MIN_RATIO(Et_min_ratio), // precluster at least _FAR_RATIO*_CONE_RADIUS away from stable cones _FAR_RATIO(far_ratio), // split or merge criterium _SPLIT_RATIO(split_ratio), _DUPLICATE_DR(duplicate_dR), _DUPLICATE_DPT(duplicate_dPT), _SEARCH_CONE(cone_radius/search_factor), // kill stable cone if within _DUPLICATE_DR and delta(pT)<_DUPLICATE_DPT // of another stable cone. _KILL_DUPLICATE(kill_duplicate), _PT_MIN_LEADING_PROTOJET(pT_min_leading_protojet), _PT_MIN_SECOND_PROTOJET(pT_min_second_protojet), _MERGE_MAX(merge_max), _PT_MIN_noMERGE_MAX(pT_min_nomerge) {;} //destructor ~ILConeAlgorithm() {;} // make jet clusters using improved legacy cone algorithm //void makeClusters(const EnergyClusterReco* r, void makeClusters( // the input list modified (ordered) std::list &jets, std::list& itemlist, //float zvertex, ////std::list& itemlist); //const EnergyClusterCollection& preclu, //IChunk* chunkptr, ConeJetInfoChunk* infochunkptr, const float Item_ET_Threshold); // this will hold the final jets + contents std::vector > ilcv; private: float _CONE_RADIUS; float _MIN_JET_ET; float _ET_MIN_RATIO; float _FAR_RATIO; float _SPLIT_RATIO; float _DUPLICATE_DR; float _DUPLICATE_DPT; float _SEARCH_CONE; bool _KILL_DUPLICATE; float _PT_MIN_LEADING_PROTOJET; float _PT_MIN_SECOND_PROTOJET; int _MERGE_MAX; float _PT_MIN_noMERGE_MAX; // private class // This is a ProtoJet with additional methods dist(), midpoint() and // is_stable() class TemporaryJet : public ProtoJet { public : TemporaryJet(float seedET) : ProtoJet(seedET) {;} TemporaryJet(float seedET,float y_in,float phi_in) : ProtoJet(seedET,y_in,phi_in) {;} ~TemporaryJet() {;} float dist(TemporaryJet& jet) const { return RDelta(this->_y,this->_phi,jet.y(),jet.phi()); } void midpoint(const TemporaryJet& jet,float & y_out, float & phi_out) const { // Midpoint should probably be computed w/4-vectors but don't // have that info. Preserving Pt-weighted calculation - JPK float pTsum = this->_pT + jet.pT(); y_out = (this->_y*this->_pT + jet.y()*jet.pT())/pTsum; phi_out = (this->_phi*this->_pT + jet.phi()*jet.pT())/pTsum; // careful with phi-wrap area: convert from [0,2pi] to [-pi,pi] //ls: original D0 code, as of 23/Mar/2007 //if ( abs(phi-this->_phi)>2.0 ) { // assumes cones R=1.14 or smaller, merge within 2R only //ls: abs bug fixed 26/Mar/2007 if ( fabs(phi_out-this->_phi)>2.0 ) { // assumes cones R=1.14 or smaller, merge within 2R only phi_out = fmod( this->_phi+PI, TWOPI); if (phi_out < 0.0) phi_out += TWOPI; phi_out -= PI; float temp=fmod( jet.phi()+PI, TWOPI); if (temp < 0.0) temp += TWOPI; temp -= PI; phi_out = (phi_out*this->_pT + temp*jet.pT()) /pTsum; } if ( phi_out < 0. ) phi_out += TWOPI; } //////////////////////////////////////// #ifdef ILCA_USE_MMAP bool is_stable(const std::multimap& items, float radius, float min_ET, int max_iterations=50) #else bool is_stable(const std::list& itemlist, float radius, float min_ET, int max_iterations=50) #endif // Note: max_iterations = 0 will just recompute the jet using the specified cone { float radius2 = radius*radius; float Rcut= 1.E-06; // ?? if(_Increase_Delta_R) Rcut= 1.E-04; bool stable= true; int trial= 0; float Yst; float PHIst; do { trial++; //std::cout << " trial " << trial << " " << _y << " " << _phi << std::endl; Yst = this->_y; PHIst= this->_phi; //cout << "is_stable beginning do loop: this->_pT=" << this->_pT << " this->_y=" << this->_y << " this->_phi=" << this->_phi << endl; this->erase(); this->setJet(Yst,PHIst,0.0); #ifdef ILCA_USE_ORDERED_LIST std::list::const_iterator lower = lower_bound(itemlist.begin(),itemlist.end(),Yst-radius, rapidity_order()); std::list::const_iterator upper = upper_bound(itemlist.begin(),itemlist.end(),Yst+radius, rapidity_order()); for(std::list::const_iterator tk = lower; tk != upper; ++tk) { //std::cout << " is_stable: item y=" << (*tk)->y() << " phi=" << (*tk)->phi() << " RD2=" << RD2((*tk)->y(),(*tk)->phi(),Yst,PHIst) << " " << Yst-radius << " " << Yst+radius << endl; if(RD2((*tk)->y(),(*tk)->phi(),Yst,PHIst) <= radius2) { this->addItem(*tk); } } #else #ifdef ILCA_USE_MMAP // need to loop only on the subset with Yst-R < y < Yst+R for ( std::multimap::const_iterator tk = items.lower_bound(Yst-radius); tk != items.upper_bound(Yst+radius); ++tk ) { //std::cout << " item " << (*tk)->y() << " " << (*tk)->phi() << " " << RD2((*tk)->y(),(*tk)->phi(),Yst,PHIst) << " " << Yst-radius << " " << Yst+radius << endl; if(RD2(((*tk).second)->y(),((*tk).second)->phi(),Yst,PHIst) <= radius2) { this->addItem((*tk).second); } } #else //cout << " is_stable: itemlist.size()=" << itemlist.size() << endl; for(typename std::list::const_iterator tk = itemlist.begin(); tk != itemlist.end(); ++tk) { //std::cout << " is_stable: item (*tk)->y()=" << (*tk)->y() << " (*tk)->phi=" << (*tk)->phi() << " RD2=" << RD2((*tk)->y(),(*tk)->phi(),Yst,PHIst) << " Yst-rad=" << Yst-radius << " Yst+rad=" << Yst+radius << endl; if(RD2((*tk)->y(),(*tk)->phi(),Yst,PHIst) <= radius2) { //cout << "add item to *tk" << endl; this->addItem(*tk); } } #endif #endif //std::cout << "is_stable, before update: jet this->_y=" << this->_y << " _phi=" << this->_phi << " _pT=" << this->_pT << " min_ET=" << min_ET << std::endl; this->updateJet(); //std::cout << "is_stable, after update: jet this->_y=" << this->_y << " _phi=" << this->_phi << " _pT=" << this->_pT << " min_ET=" << min_ET << std::endl; if(this->_pT < min_ET ) { stable= false; break; } //cout << "is_stable end while loop: this->_pT=" << this->_pT << " this->_y=" << this->_y << " this->_phi=" << this->_phi << endl; } while(RD2(this->_y,this->_phi,Yst,PHIst) >= Rcut && trial <= max_iterations); //std::cout << " trial stable " << trial << " " << stable << std::endl; return stable; } private : }; }; /////////////////////////////////////////////////////////////////////////////// //template //void ILConeAlgorithm :: template void ILConeAlgorithm :: //makeClusters(const EnergyClusterReco* r, makeClusters( std::list &jets, std::list& ilist, //float Zvertex, ////std::list& ilist) //const EnergyClusterCollection& preclu, //IChunk* chunkptr, ConeJetInfoChunk* infochunkptr, const float Item_ET_Threshold) { // remove items below threshold for ( typename std::list::iterator it = ilist.begin(); it != ilist.end(); ) { if ( (*it)->pT() < Item_ET_Threshold ) { it = ilist.erase(it); } else ++it; } // create an energy cluster collection for jets //EnergyClusterCollection* ptrcol; //Item* ptrcol; //r->createClusterCollection(chunkptr,ptrcol); ////std::vector*> ecv; std::vector ecv; for ( typename std::list::iterator it = ilist.begin(); it != ilist.end(); it++) { ecv.push_back(*it); } //preclu.getClusters(ecv); //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% need to fill here vector ecv //std::cout << " number of seed clusters: " << ecv.size() << std::endl; // skip precluster close to jets float far_def = _FAR_RATIO*_CONE_RADIUS * _FAR_RATIO*_CONE_RADIUS; // skip if jet Et is below some value float ratio= _MIN_JET_ET*_ET_MIN_RATIO; #ifdef ILCA_USE_ORDERED_LIST // sort the list in rapidity order ilist.sort(rapidity_order()); #else #ifdef ILCA_USE_MMAP // create a y ordered list of items std::multimap items; std::list::const_iterator it; for(it = ilist.begin(); it != ilist.end(); ++it) { pair p((*it)->y(),*it); items.insert(p); } #endif #endif std::vector > mcoll; std::vector scoll; // find stable jets around seeds //typename std::vector* >::iterator jclu; typename std::vector::iterator jclu; for(jclu = ecv.begin(); jclu != ecv.end(); ++jclu) { //const EnergyCluster* ptr= *jclu; const Item* ptr= *jclu; float p[4]; ptr->p4vec(p); float Yst = P2y(p); float PHIst= P2phi(p); // don't keep preclusters close to jet bool is_far= true; // ?? if(_Kill_Far_Clusters) { for(unsigned int i = 0; i < scoll.size(); ++i) { float y = scoll[i].y(); float phi= scoll[i].phi(); if(RD2(Yst,PHIst,y,phi) < far_def) { is_far= false; break; } } // ?? } if(is_far) { TemporaryJet jet(ptr->pT(),Yst,PHIst); //cout << "temporary jet: pt=" << ptr->pT() << " y=" << Yst << " phi=" << PHIst << endl; // Search cones are smaller, so contain less jet Et // Don't throw out too many little jets during search phase! // Strategy: check Et first with full cone, then search with low-GeV min_et thresh #ifdef ILCA_USE_MMAP if(jet.is_stable(items,_CONE_RADIUS,ratio,0) && jet.is_stable(items,_SEARCH_CONE,3.0)) #else if(jet.is_stable(ilist,_CONE_RADIUS,ratio,0) && jet.is_stable(ilist,_SEARCH_CONE,3.0)) #endif { //cout << "temporary jet is stable" << endl; // jpk Resize the found jets #ifdef ILCA_USE_MMAP jet.is_stable(items,_CONE_RADIUS,ratio,0) ; #else jet.is_stable(ilist,_CONE_RADIUS,ratio,0) ; #endif //cout << "found jet has been resized if any" << endl; if ( _KILL_DUPLICATE ) { // check if we are not finding the same jet again float distmax = 999.; int imax = -1; for(unsigned int i = 0; i < scoll.size(); ++i) { float dist = jet.dist(scoll[i]); if ( dist < distmax ) { distmax = dist; imax = i; } } if ( distmax > _DUPLICATE_DR || fabs((jet.pT()-scoll[imax].pT())/scoll[imax].pT())>_DUPLICATE_DPT ) { scoll.push_back(jet); mcoll.push_back(jet); //std::cout << " stable cone " << jet.y() << " " << jet.phi() << " " << jet.pT() << std::endl; } /* else { std::cout << " jet too close to a found jet " << distmax << " " << fabs((jet.pT()-scoll[imax].pT())/scoll[imax].pT()) << std::endl; } */ } else { scoll.push_back(jet); mcoll.push_back(jet); //std::cout << " stable cone " << jet.y() << " " << jet.phi() << " " << jet.pT() << std::endl; } } } } // find stable jets around midpoints for(unsigned int i = 0; i < scoll.size(); ++i) { for(unsigned int k = i+1; k < scoll.size(); ++k) { float djet= scoll[i].dist(scoll[k]); if(djet > _CONE_RADIUS && djet < 2.*_CONE_RADIUS) { float y_mid,phi_mid; scoll[i].midpoint(scoll[k],y_mid,phi_mid); TemporaryJet jet(-999999.,y_mid,phi_mid); //std::cout << " midpoint: " << scoll[i].pT() << " " << scoll[i].info().seedET() << " " << scoll[k].pT() << " " << scoll[k].info().seedET() << " " << y_mid << " " << phi_mid << std::endl; // midpoint jets are full size #ifdef ILCA_USE_MMAP if(jet.is_stable(items,_CONE_RADIUS,ratio)) #else if(jet.is_stable(ilist,_CONE_RADIUS,ratio)) #endif { mcoll.push_back(jet); //std::cout << " stable midpoint cone " << jet.y() << " " << jet.phi() << " " << jet.pT() << std::endl; } } } } // do a pT ordered splitting/merging ConeSplitMerge pjets(mcoll); ilcv.clear(); pjets.split_merge(ilcv,_SPLIT_RATIO, _PT_MIN_LEADING_PROTOJET, _PT_MIN_SECOND_PROTOJET, _MERGE_MAX, _PT_MIN_noMERGE_MAX); for(unsigned int i = 0; i < ilcv.size(); ++i) { if ( ilcv[i].pT() > _MIN_JET_ET ) { //EnergyCluster* ptrclu; Item ptrclu; //r->createCluster(ptrcol,ptrclu); std::list tlist=ilcv[i].LItems(); typename std::list::iterator tk; for(tk = tlist.begin(); tk != tlist.end(); ++tk) { //ItemAddress addr= (*tk)->address(); float pk[4]; (*tk)->p4vec(pk); //std::cout << (*tk)->index <<" " << (*tk) << std::endl; //float emE= (*tk)->emE(); //r->addClusterItem(ptrclu,addr,pk,emE); //ptrclu->Add(*tk); ptrclu.Add(**tk); } // print out //ptrclu->print(cout); //infochunkptr->addInfo(ilcv[i].info()); jets.push_back(ptrclu); } } } } // namespace d0 FASTJET_END_NAMESPACE #endif fastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/Makefile.in0000644000175000017500000006136512233506214020750 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/D0RunIICone DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) libD0RunIIConePlugin_la_LIBADD = am_libD0RunIIConePlugin_la_OBJECTS = \ libD0RunIIConePlugin_la-D0RunIIConePlugin.lo libD0RunIIConePlugin_la_OBJECTS = \ $(am_libD0RunIIConePlugin_la_OBJECTS) libD0RunIIConePlugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libD0RunIIConePlugin_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @MONOLITHIC_PLUGINS_FALSE@am_libD0RunIIConePlugin_la_rpath = -rpath \ @MONOLITHIC_PLUGINS_FALSE@ $(libdir) @MONOLITHIC_PLUGINS_TRUE@am_libD0RunIIConePlugin_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libD0RunIIConePlugin_la_SOURCES) DIST_SOURCES = $(libD0RunIIConePlugin_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = fastjet @MONOLITHIC_PLUGINS_TRUE@noinst_LTLIBRARIES = libD0RunIIConePlugin.la @MONOLITHIC_PLUGINS_FALSE@lib_LTLIBRARIES = libD0RunIIConePlugin.la libD0RunIIConePlugin_la_CXXFLAGS = $(D0_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libD0RunIIConePlugin_la_SOURCES = D0RunIIConePlugin.cc #EXTRA_DIST = makefile.static pxcone.h EXTRA_DIST = ConeJetInfo.hpp ConeSplitMerge.hpp ILConeAlgorithm.hpp ProtoJet.hpp HepEntity.h inline_maths.h all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/D0RunIICone/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/D0RunIICone/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libD0RunIIConePlugin.la: $(libD0RunIIConePlugin_la_OBJECTS) $(libD0RunIIConePlugin_la_DEPENDENCIES) $(libD0RunIIConePlugin_la_LINK) $(am_libD0RunIIConePlugin_la_rpath) $(libD0RunIIConePlugin_la_OBJECTS) $(libD0RunIIConePlugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libD0RunIIConePlugin_la-D0RunIIConePlugin.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libD0RunIIConePlugin_la-D0RunIIConePlugin.lo: D0RunIIConePlugin.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libD0RunIIConePlugin_la_CXXFLAGS) $(CXXFLAGS) -MT libD0RunIIConePlugin_la-D0RunIIConePlugin.lo -MD -MP -MF $(DEPDIR)/libD0RunIIConePlugin_la-D0RunIIConePlugin.Tpo -c -o libD0RunIIConePlugin_la-D0RunIIConePlugin.lo `test -f 'D0RunIIConePlugin.cc' || echo '$(srcdir)/'`D0RunIIConePlugin.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libD0RunIIConePlugin_la-D0RunIIConePlugin.Tpo $(DEPDIR)/libD0RunIIConePlugin_la-D0RunIIConePlugin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='D0RunIIConePlugin.cc' object='libD0RunIIConePlugin_la-D0RunIIConePlugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libD0RunIIConePlugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libD0RunIIConePlugin_la-D0RunIIConePlugin.lo `test -f 'D0RunIIConePlugin.cc' || echo '$(srcdir)/'`D0RunIIConePlugin.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/ConeJetInfo.hpp0000644000175000017500000000475711766120133021563 0ustar sunsun#ifndef D0RunIIconeJets_CONEJETINFO_HPP #define D0RunIIconeJets_CONEJETINFO_HPP // -------------------------------------------------------------------------- // ConeJetInfo.hpp // Purpose: Hold informations about the cone jets that do not fit into // a CalTClusterChunk/IntEclusterChunk. // // Created: Laurent Duflot 31-JUL-2000 // // Modified: // 09-Aug-2000 Laurent Duflot // + add initial jet ET (i.e. before split/merge) // 1-May-2007 Lars Sonnenschein // extracted from D0 software framework and modified to remove subsequent dependencies // // // This file is distributed with FastJet under the terms of the GNU // General Public License (v2). Permission to do so has been granted // by Lars Sonnenschein and the D0 collaboration (see COPYING for // details) // // History of Changes in FastJet compared tothe original version of // ConeJetInfo.hpp // // 2011-12-13 Gregory Soyez // // * added license information // // 2011-11-14 Gregory Soyez // // * changed the name of a few parameters to avoid a gcc // -Wshadow warning // // 2009-01-17 Gregory Soyez // // * put the code in the fastjet::d0 namespace // // -------------------------------------------------------------------------- //#define CONEJET_SPLITMERGE_MOD 100 #include FASTJET_BEGIN_NAMESPACE namespace d0{ namespace D0RunIIconeJets_CONEJETINFO { const int CONEJET_SPLITMERGE_MOD = 100; class ConeJetInfo { public: ConeJetInfo(): _seedET(0.), _initial_jet_ET(0.), _nb_split_merge(0) {}; ConeJetInfo( float seedET_in): _seedET(seedET_in), _nb_split_merge(0) {}; ConeJetInfo( float seedET_in, float initialET_in, int nb_split, int nb_merge): _seedET(seedET_in), _initial_jet_ET(initialET_in), _nb_split_merge(nb_merge + CONEJET_SPLITMERGE_MOD*nb_split) {}; ~ConeJetInfo() {}; float seedET() const {return _seedET;}; float initialET() const { return _initial_jet_ET; }; int nbSplit() const {return _nb_split_merge/CONEJET_SPLITMERGE_MOD;}; int nbMerge() const {return _nb_split_merge%CONEJET_SPLITMERGE_MOD;}; int SplitMergeWord() const {return _nb_split_merge;}; void initialET(float ET) { _initial_jet_ET = ET;}; void splitted() { _nb_split_merge += CONEJET_SPLITMERGE_MOD;}; void merged() { _nb_split_merge += 1;}; private: float _seedET; float _initial_jet_ET; // stable cone ET before split/merge int _nb_split_merge; }; } } // namespace d0 FASTJET_END_NAMESPACE #endif fastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/inline_maths.h0000644000175000017500000000301711766120133021516 0ustar sunsun#ifndef INLINE_MATHS #define INLINE_MATHS // This file is distributed with FastJet under the terms of the GNU // General Public License (v2). Permission to do so has been granted // by Lars Sonnenschein and the D0 collaboration (see COPYING for // details) // // History of changes in FastJet compared tothe original version of // inline_math.h // // 2011-12-13 Gregory Soyez // // * added license information // // 2009-01-17 Gregory Soyez // // * put the code in the fastjet::d0 namespace #include #include FASTJET_BEGIN_NAMESPACE namespace d0{ namespace inline_maths { const double PI = fabs(acos(-1.)); const double TWOPI = 2*PI; inline double sqr(double a) { return a*a; } inline double min(double a, double b) { return (a < b) ? a : b; } inline double delta_phi(double phi1, double phi2) { return min( double(fabs(phi1-phi2)), double(2.*PI-fabs(phi1-phi2)) ); } inline double phi(double px, double py) { return atan2(py, px); } inline double y(double E, double pz) { errno=0; double y; //cout << "inline_maths: "; if (fabs(E-pz) == 0.) { // cout << "Error in header mathe.h: division by 0 in function eta!" << " p=" << p << " pz=" << pz << endl; // exit(721); errno=721; y = 99999.; } else { y = 0.5*log((E+pz)/(E-pz)); } //cout << "y: E=" << E << " pz=" << pz << " y=" << y << endl; return y; } } //end usename inline_maths } // namespace d0 FASTJET_END_NAMESPACE #endif fastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/fastjet/0000755000175000017500000000000012233507303020330 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/fastjet/D0RunIIConePlugin.hh0000644000175000017500000001702211766120133024013 0ustar sunsun#ifndef __D0RUNIICONEPLUGIN_HH__ #define __D0RUNIICONEPLUGIN_HH__ //STARTHEADER // $Id: D0RunIIConePlugin.hh 2761 2011-11-24 13:54:05Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/JetDefinition.hh" // questionable whether this should be in fastjet namespace or not... FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // /// @ingroup plugins /// \class D0RunIIConePlugin /// Implementation of the D0 Run II Cone (plugin for fastjet v2.1 upwards) /// /// D0RunIIConePlugin is a plugin for fastjet (v2.1 upwards) that /// provides an interface to the D0 version of Run-II iterative cone /// algorithm with midpoint seeds (also known as the Iterative Legacy /// Cone Algorithm, ILCA). /// /// The D0 code has been taken from Lars Sonnenschein's web-space /// http://www-d0.fnal.gov/~sonne/D0RunIIcone.tgz /// /// The version of the D0 Run II code distributed /// here has been modified by the FastJet authors, so as to provide /// access to the contents of the jets (as is necessary for the /// plugin). This does not modify the results of the clustering. // //---------------------------------------------------------------------- class D0RunIIConePlugin : public JetDefinition::Plugin { public: // /// A D0RunIIConePlugin constructor which sets the "free" parameters of the /// algorithm: /// /// - the cone_radius has the usual meaning /// /// - the min_jet_Et causes cones to be discarded at if at any /// iteration they have pt < Et_min_ratio * min_jet_Et. Two /// values have been used by D0 for min_jet_Et: 8 GeV in earlier /// Run II publicatinos, 6 GeV in later publications /// /// - split_ratio is equivalent to the overlap threshold during the split/merge step. /// Default: 0.5. /// /// The remaining parameters of the algorithm are not to be modified if the algorithm /// is to correspond to the one actually used by D0. // D0RunIIConePlugin (double cone_radius_in, double min_jet_Et_in , double split_ratio_in = _DEFAULT_split_ratio) : _cone_radius (cone_radius_in ), _min_jet_Et (min_jet_Et_in ), _split_ratio (split_ratio_in ), _far_ratio (_DEFAULT_far_ratio ), _Et_min_ratio (_DEFAULT_Et_min_ratio ), _kill_duplicate (_DEFAULT_kill_duplicate ), _duplicate_dR (_DEFAULT_duplicate_dR ), _duplicate_dPT (_DEFAULT_duplicate_dPT ), _search_factor (_DEFAULT_search_factor ), _pT_min_leading_protojet(_DEFAULT_pT_min_leading_protojet), _pT_min_second_protojet (_DEFAULT_pT_min_second_protojet ), _merge_max (_DEFAULT_merge_max ), _pT_min_nomerge (_DEFAULT_pT_min_nomerge ) { // nothing to be done here! } // some functions to return info about parameters inline double cone_radius () const { return _cone_radius ;} //= 0.5; inline double min_jet_Et () const { return _min_jet_Et ;} //= 8.0; inline double split_ratio () const { return _split_ratio ;} //= 0.5; inline double far_ratio () const { return _far_ratio ;} // =0.5; inline double Et_min_ratio () const { return _Et_min_ratio ;} // =0.5; inline bool kill_duplicate () const { return _kill_duplicate ;} // =true; inline double duplicate_dR () const { return _duplicate_dR ;} // =0.005; inline double duplicate_dPT () const { return _duplicate_dPT ;} // =0.01; inline double search_factor () const { return _search_factor ;} // =1.0; inline double pT_min_leading_protojet() const { return _pT_min_leading_protojet;} // =0.; inline double pT_min_second_protojet () const { return _pT_min_second_protojet ;} // =0.; inline int merge_max () const { return _merge_max ;} // =10000; inline double pT_min_nomerge () const { return _pT_min_nomerge ;} // =0.; /// access the split_ratio() also by the name overlap_threshold() inline double overlap_threshold() const {return split_ratio();} // the things that are required by base class virtual std::string description () const; virtual void run_clustering(ClusterSequence &) const; /// the plugin mechanism's standard way of accessing the jet radius virtual double R() const {return cone_radius();} private: double _cone_radius ;//= 0.5; double _min_jet_Et ;//= 8.0; double _split_ratio ;//= 0.5; // overlap threshold //the parameters below have been found to be set to the values given below //in the original implementation, shouldn't be altered double _far_ratio ; // =0.5; double _Et_min_ratio ; // =0.5; bool _kill_duplicate ; // =true; double _duplicate_dR ; // =0.005; double _duplicate_dPT ; // =0.01; double _search_factor ; // =1.0; double _pT_min_leading_protojet; // =0.; double _pT_min_second_protojet ; // =0.; int _merge_max ; // =10000; double _pT_min_nomerge ; // =0.; // here are the variables for the default parameters of the D0 Run II Cone algorithm. // They are set in the .cc file const static double _DEFAULT_split_ratio ;// = 0.5 ; // overlap threshold const static double _DEFAULT_far_ratio ;// = 0.5 ; const static double _DEFAULT_Et_min_ratio ;// = 0.5 ; const static bool _DEFAULT_kill_duplicate ;// = true ; const static double _DEFAULT_duplicate_dR ;// = 0.005; const static double _DEFAULT_duplicate_dPT ;// = 0.01 ; const static double _DEFAULT_search_factor ;// = 1.0 ; const static double _DEFAULT_pT_min_leading_protojet ;// = 0. ; const static double _DEFAULT_pT_min_second_protojet ;// = 0. ; const static int _DEFAULT_merge_max ;// = 10000; const static double _DEFAULT_pT_min_nomerge ;// = 0. ; static bool _first_time; /// print a banner for reference to the 3rd-party code void _print_banner(std::ostream *ostr) const; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __D0RUNIICONEPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/fastjet/Makefile.in0000644000175000017500000003426612233506214022410 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/D0RunIICone/fastjet DIST_COMMON = $(fastjetinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(fastjetincludedir)" HEADERS = $(fastjetinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fastjetincludedir = $(includedir)/fastjet fastjetinclude_HEADERS = D0RunIIConePlugin.hh all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/D0RunIICone/fastjet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/D0RunIICone/fastjet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fastjetincludeHEADERS: $(fastjetinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludedir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludedir)" @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludedir)" || exit $$?; \ done uninstall-fastjetincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(fastjetincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fastjetincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fastjetincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-fastjetincludeHEADERS install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-fastjetincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/fastjet/Makefile.am0000644000175000017500000000012411766120133022363 0ustar sunsunfastjetincludedir=$(includedir)/fastjet fastjetinclude_HEADERS=D0RunIIConePlugin.hh fastjet-3.0.6+dfsg.orig/plugins/D0RunIICone/Makefile.am0000644000175000017500000000066411766120133020734 0ustar sunsunSUBDIRS = fastjet if MONOLITHIC_PLUGINS noinst_LTLIBRARIES = libD0RunIIConePlugin.la else lib_LTLIBRARIES = libD0RunIIConePlugin.la endif libD0RunIIConePlugin_la_CXXFLAGS = $(D0_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libD0RunIIConePlugin_la_SOURCES = D0RunIIConePlugin.cc #EXTRA_DIST = makefile.static pxcone.h EXTRA_DIST = ConeJetInfo.hpp ConeSplitMerge.hpp ILConeAlgorithm.hpp ProtoJet.hpp HepEntity.h inline_maths.h fastjet-3.0.6+dfsg.orig/plugins/CMSIterativeCone/0000755000175000017500000000000012233507301020013 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/CMSIterativeCone/Makefile.in0000644000175000017500000006174612233506214022100 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/CMSIterativeCone DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) libCMSIterativeConePlugin_la_LIBADD = am_libCMSIterativeConePlugin_la_OBJECTS = \ libCMSIterativeConePlugin_la-CMSIterativeConePlugin.lo libCMSIterativeConePlugin_la_OBJECTS = \ $(am_libCMSIterativeConePlugin_la_OBJECTS) libCMSIterativeConePlugin_la_LINK = $(LIBTOOL) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libCMSIterativeConePlugin_la_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ @MONOLITHIC_PLUGINS_FALSE@am_libCMSIterativeConePlugin_la_rpath = \ @MONOLITHIC_PLUGINS_FALSE@ -rpath $(libdir) @MONOLITHIC_PLUGINS_TRUE@am_libCMSIterativeConePlugin_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libCMSIterativeConePlugin_la_SOURCES) DIST_SOURCES = $(libCMSIterativeConePlugin_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = fastjet . @MONOLITHIC_PLUGINS_TRUE@noinst_LTLIBRARIES = libCMSIterativeConePlugin.la @MONOLITHIC_PLUGINS_FALSE@lib_LTLIBRARIES = libCMSIterativeConePlugin.la libCMSIterativeConePlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libCMSIterativeConePlugin_la_SOURCES = CMSIterativeConePlugin.cc noinst_HEADERS = SortByEt.h EXTRA_DIST = makefile.static all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/CMSIterativeCone/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/CMSIterativeCone/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libCMSIterativeConePlugin.la: $(libCMSIterativeConePlugin_la_OBJECTS) $(libCMSIterativeConePlugin_la_DEPENDENCIES) $(libCMSIterativeConePlugin_la_LINK) $(am_libCMSIterativeConePlugin_la_rpath) $(libCMSIterativeConePlugin_la_OBJECTS) $(libCMSIterativeConePlugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libCMSIterativeConePlugin_la-CMSIterativeConePlugin.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libCMSIterativeConePlugin_la-CMSIterativeConePlugin.lo: CMSIterativeConePlugin.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libCMSIterativeConePlugin_la_CXXFLAGS) $(CXXFLAGS) -MT libCMSIterativeConePlugin_la-CMSIterativeConePlugin.lo -MD -MP -MF $(DEPDIR)/libCMSIterativeConePlugin_la-CMSIterativeConePlugin.Tpo -c -o libCMSIterativeConePlugin_la-CMSIterativeConePlugin.lo `test -f 'CMSIterativeConePlugin.cc' || echo '$(srcdir)/'`CMSIterativeConePlugin.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libCMSIterativeConePlugin_la-CMSIterativeConePlugin.Tpo $(DEPDIR)/libCMSIterativeConePlugin_la-CMSIterativeConePlugin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CMSIterativeConePlugin.cc' object='libCMSIterativeConePlugin_la-CMSIterativeConePlugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libCMSIterativeConePlugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libCMSIterativeConePlugin_la-CMSIterativeConePlugin.lo `test -f 'CMSIterativeConePlugin.cc' || echo '$(srcdir)/'`CMSIterativeConePlugin.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/CMSIterativeCone/CMSIterativeConePlugin.cc0000644000175000017500000002165011766120134024616 0ustar sunsun//STARTHEADER // $Id: CMSIterativeConePlugin.cc 1504 2009-04-10 13:39:48Z salam $ // // Copyright (c) 2007-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // Copyright (c) ????-????, CMS [for the iterative-cone code itself] // //---------------------------------------------------------------------- // This file is part of FastJet. It contains code that has been // obtained from the CMS collaboration, revision 1.14 of the // CMSIterativeConeAlgorithm.cc file in CMSSW, see // http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/RecoJets/JetAlgorithms/src/CMSIterativeConeAlgorithm.cc?hideattic=0&revision=1.14&view=markup // // Permission has been granted by the CMS collaboration to release it // in FastJet under the terms of the GNU Public License(v2) (see the // COPYING file in the main FastJet directory for details). // Changes from the original file are listed below. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER // List of changes compared to the original CMS code (revision 1.14 of // CMSIterativeConeAlgorithm.cc) // // 2009-05-10 Gavin Salam // // * added radius and seed threshold information in the plugin // description // // 2009-01-06 Gregory Soyez // // * Encapsulated the CMS code into a plugin for FastJet // * inserted the deltaPhi and deltaR2 codes from // DataFormats/Math/interface/deltaPhi.h (rev 1.1) // DataFormats/Math/interface/deltaR.h (rev 1.2) // * Adapted the code to use PseusoJet rather than 'InputItem' // and 'InputCollection' // * use the FastJet clustering history structures instead of // the ProtoJet one used by CMS. // fastjet stuff #include "fastjet/ClusterSequence.hh" #include "fastjet/CMSIterativeConePlugin.hh" // other stuff #include #include #include #include "SortByEt.h" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; using namespace cms; //------------------------------------------------------ // some tools //------------------------------------------------------ template T deltaPhi (T phi1, T phi2) { T result = phi1 - phi2; while (result > M_PI) result -= 2*M_PI; while (result <= -M_PI) result += 2*M_PI; return result; } template T deltaR2 (T eta1, T phi1, T eta2, T phi2) { T deta = eta1 - eta2; T dphi = deltaPhi (phi1, phi2); return deta*deta + dphi*dphi; } //------------------------------------------------------ bool CMSIterativeConePlugin::_first_time = true; string CMSIterativeConePlugin::description () const { ostringstream desc; desc << "CMSIterativeCone plugin with R = " << theConeRadius << " and seed threshold = " << theSeedThreshold; return desc.str(); } void CMSIterativeConePlugin::run_clustering(ClusterSequence & clust_seq) const { // print a banner if we run this for the first time _print_banner(clust_seq.fastjet_banner_stream()); //make a list of input objects ordered by ET //cout << "copying the list of particles" << endl; list input; for (unsigned int i=0 ; i compCandidate; //cout << "sorting" << endl; input.sort(compCandidate); //find jets //cout << "launching the main loop" << endl; while( !input.empty() && (input.front().Et() > theSeedThreshold )) { //cone centre double eta0=input.front().eta(); double phi0=input.front().phi(); //protojet properties double eta=0; double phi=0; double et=0; //list of towers in cone list< list::iterator> cone; for(int iteration=0;iteration<100;iteration++){ //cout << "iterating" << endl; cone.clear(); eta=0; phi=0; et=0; for(list::iterator inp=input.begin(); inp!=input.end();inp++){ const PseudoJet tower = *inp; if( deltaR2(eta0,phi0,tower.eta(),tower.phi()) < theConeRadius*theConeRadius) { double tower_et = tower.Et(); cone.push_back(inp); eta+= tower_et*tower.eta(); double dphi=tower.phi()-phi0; if(dphi>M_PI) dphi-=2*M_PI; else if(dphi<=-M_PI) dphi+=2*M_PI; phi+=tower_et*dphi; et +=tower_et; } } eta=eta/et; phi=phi0+phi/et; if(phi>M_PI)phi-=2*M_PI; else if(phi<=-M_PI)phi+=2*M_PI; if(fabs(eta-eta0)<.001 && fabs(phi-phi0)<.001) break;//stable cone found eta0=eta; phi0=phi; } //cout << "make the jet final" << endl; //make a final jet and remove the jet constituents from the input list // InputCollection jetConstituents; // list< list::iterator>::const_iterator inp; // for(inp=cone.begin();inp!=cone.end();inp++) { // jetConstituents.push_back(**inp); // input.erase(*inp); // } // fOutput->push_back (ProtoJet (jetConstituents)); // // IMPORTANT NOTE: // while the stability of the stable cone is tested using the Et // scheme recombination, the final jet uses E-scheme // recombination. // // The technique used here is the same as what we already used for // SISCone except that we act on the 'cone' list. // We successively merge the particles that make up the cone jet // until we have all particles in it. We start off with the zeroth // particle. list< list::iterator>::const_iterator inp; inp = cone.begin(); int jet_k = (*inp)->cluster_hist_index(); // gps tmp //float px=(*inp)->px(), py=(*inp)->py(), pz=(*inp)->pz(), E = (*inp)->E(); // remove the particle from the list and jump to the next one input.erase(*inp); inp++; // now loop over the remaining particles while (inp != cone.end()){ // take the last result of the merge int jet_i = jet_k; // and the next element of the jet int jet_j = (*inp)->cluster_hist_index(); // and merge them (with a fake dij) double dij = 0.0; // create the new jet by hand so that we can adjust its user index // Note again the use of the E-scheme recombination here! PseudoJet newjet = clust_seq.jets()[jet_i] + clust_seq.jets()[jet_j]; // gps tmp to try out floating issues //px+=(*inp)->px(), py+=(*inp)->py(), pz+=(*inp)->pz(), E += (*inp)->E(); //PseudoJet newjet(px,py,pz,E); clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, newjet, jet_k); // remove the particle from the list and jump to the next one input.erase(*inp); inp++; } // we have merged all the jet's particles into a single object, so now // "declare" it to be a beam (inclusive) jet. // [NB: put a sensible looking d_iB just to be nice...] double d_iB = clust_seq.jets()[jet_k].perp2(); clust_seq.plugin_record_iB_recombination(jet_k, d_iB); } //loop over seeds ended } // print a banner for reference to the 3rd-party code void CMSIterativeConePlugin::_print_banner(ostream *ostr) const{ if (! _first_time) return; _first_time=false; // make sure the user has not set the banner stream to NULL if (!ostr) return; (*ostr) << "#-------------------------------------------------------------------------" << endl; (*ostr) << "# You are running the CMS Iterative Cone plugin for FastJet " << endl; (*ostr) << "# Original code by the CMS collaboration adapted by the FastJet authors " << endl; (*ostr) << "# If you use this plugin, please cite " << endl; (*ostr) << "# G. L. Bayatian et al. [CMS Collaboration], " << endl; (*ostr) << "# CMS physics: Technical design report. " << endl; (*ostr) << "# in addition to the usual FastJet reference. " << endl; (*ostr) << "#-------------------------------------------------------------------------" << endl; // make sure we really have the output done. ostr->flush(); } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/plugins/CMSIterativeCone/makefile.static0000644000175000017500000000123211766120134023004 0ustar sunsun# common fastjet definitions include ../../makefile.static CXXSRC = CMSIterativeConePlugin.cc OBJS = $(patsubst %.cc,%.o,$(CXXSRC)) # fastjet includes FASTJET_INCLUDE = -I../../include INCLUDE += $(FASTJET_INCLUDE) -I. all: libCMSIterativeConePlugin.a libCMSIterativeConePlugin.a: $(OBJS) ar cru libCMSIterativeConePlugin.a $(OBJS) ranlib libCMSIterativeConePlugin.a clean: rm -f $(OBJS) distclean: clean rm -f libCMSIterativeConePlugin.a *~ # NB: only use "relative" includes here (others are too subject # to change according to the system one is on...) depend: makedepend -f makefile.static $(FASTJET_INCLUDE) -I. -I./fastjet -- -- $(CXXSRC) fastjet-3.0.6+dfsg.orig/plugins/CMSIterativeCone/README0000644000175000017500000000255711766120134020711 0ustar sunsunNote on the implementation of the CMS Iterative Plugin The code is initially the CMSSW implementation in CMSIterativeConeAlgorithm.cc in /CMSSW/RecoJets/JetAlgorithms (more precisely, Revision 14 of the cc file) To avoid importing too many files from CMSSW, we did a couple of modifications starting from the CMSIterativeConeAlgorithm file: - directly used the FastJet PseudoJet instead of the InputItem present initially. Note that access to the info then has to be done using . instead of -> which implies a few small modifications here and there. - added a small piece of code to compute Et. That peice of code is the same as tracked down in the CMS code. It comes from the Root Lorentzvector, more precisely, the PxPyPzE4D implementation. - The ordering in Et, NumericSafeGreaterByEt, is imported from EtComparator.h in PhysicsTools/Utilities/ - The DeltaR2 computation is imported from DeltaR.cc and DeltaPhi.cc in CMSSW/DataFormats/Math - finally, instead of the ProtoJet construction, we use the ClusterSequence-compatible clustering. That one follows the line of what is done in the SISCone plugin. Note that ve've checked in the CMSSZ code that the protojet is indeed reconstructed using E-scheme recombination (while the stability test is done using Et-scheme) Finally, we want to thank Andreas Oehler for pointing us to the CMS code. fastjet-3.0.6+dfsg.orig/plugins/CMSIterativeCone/fastjet/0000755000175000017500000000000012233507301021453 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/CMSIterativeCone/fastjet/Makefile.in0000644000175000017500000003431212233506214023525 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/CMSIterativeCone/fastjet DIST_COMMON = $(fastjetinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(fastjetincludedir)" HEADERS = $(fastjetinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fastjetincludedir = $(includedir)/fastjet fastjetinclude_HEADERS = CMSIterativeConePlugin.hh all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/CMSIterativeCone/fastjet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/CMSIterativeCone/fastjet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fastjetincludeHEADERS: $(fastjetinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludedir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludedir)" @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludedir)" || exit $$?; \ done uninstall-fastjetincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(fastjetincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fastjetincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fastjetincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-fastjetincludeHEADERS install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-fastjetincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/CMSIterativeCone/fastjet/CMSIterativeConePlugin.hh0000644000175000017500000000641311766120134026270 0ustar sunsun//STARTHEADER // $Id: CMSIterativeConePlugin.hh 1508 2009-04-10 22:46:49Z soyez $ // // Copyright (c) 2007-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __CMSITERATIVECONEPLUGIN_HH__ #define __CMSITERATIVECONEPLUGIN_HH__ #include "fastjet/JetDefinition.hh" // questionable whether this should be in fastjet namespace or not... FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // forward declaration to reduce includes class PseudoJet; //---------------------------------------------------------------------- // /// @ingroup plugins /// \class CMSIterativeConePlugin /// Implementation of the CMS Iterative Cone (plugin for fastjet v2.4 upwards) class CMSIterativeConePlugin : public JetDefinition::Plugin { public: /// Main constructor for the CMSIterativeCone Plugin class. /// /// The arguments are /// ConeRadius the radius of the cone /// SeedThreshold a threshold for the seeds to iterate from /// /// NOTE: to be more coherent with all other fastjet plugins, /// we've put the radius before the seed threshold. /// CMS does the opposite. /// In this way, we also put a default value of 0 for the /// seed threshold. CMSIterativeConePlugin (double ConeRadius, double SeedThreshold=1.0) : theConeRadius(ConeRadius), theSeedThreshold(SeedThreshold){} /// copy constructor CMSIterativeConePlugin (const CMSIterativeConePlugin & plugin) { *this = plugin; } // the things that are required by base class virtual std::string description () const; virtual void run_clustering(ClusterSequence &) const; /// the plugin mechanism's standard way of accessing the jet radius /// here we return the R of the last alg in the list virtual double R() const {return theConeRadius;} /// get the seed threshold virtual double seed_threshold() const {return theSeedThreshold;} private: double theConeRadius; ///< cone radius double theSeedThreshold; ///< seed threshold static bool _first_time; /// print a banner for reference to the 3rd-party code void _print_banner(std::ostream *ostr) const; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __CMSITERATIVECONEPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/CMSIterativeCone/fastjet/Makefile.am0000644000175000017500000000013311766120134023511 0ustar sunsunfastjetincludedir=$(includedir)/fastjet fastjetinclude_HEADERS = CMSIterativeConePlugin.hh fastjet-3.0.6+dfsg.orig/plugins/CMSIterativeCone/SortByEt.h0000644000175000017500000000577211766120134021717 0ustar sunsun#ifndef __CMS_ITERATIVE_CONE__SORT_BY_ET_H__ #define __CMS_ITERATIVE_CONE__SORT_BY_ET_H__ //STARTHEADER // $Id$ // // Copyright (c) ????-????, CMS collaboration // Copyright (c) 2009-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez [for the changes listed below] // //---------------------------------------------------------------------- // This file distributed with FastJet has been obtained from the CMS // collaboration, revision 1.2 of the EtComparator.h file in CMSSW, // see // http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/PhysicsTools/Utilities/interface/EtComparator.h?hideattic=0&revision=1.2&view=markup // // Permission has been granted by the CMS collaboration to release it // in FastJet under the terms of the GNU Public License(v2) (see the // COPYING file in the main FastJet directory for details). // Changes from the original file are listed below. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER // List of changes compared to the original CMS code (revision 1.2 of // EtComparator.h) // // 2009-01-06 Gregory Soyez // // * Extracted (only) NumericSafeGreaterByEt from the CMS code // and adapted it to act on PseudoJet rather than CMS types // for 4-momenta // * Put the code in a fastjet::cms namespace #include #include FASTJET_BEGIN_NAMESPACE namespace cms{ template struct NumericSafeGreaterByEt { typedef T first_argument_type; typedef T second_argument_type; bool operator()(const T& a1, const T& a2) { // FastJet::PseudoJet does not provide a direct access to Et2 // Plus, we want it to be computed in the same way as in the CMS // code (actually the Root code that is used by CMS) double et1 = a1.Et(); double et2 = a2.Et(); // now we can come back to the CMS code return fabs (et1-et2) > std::numeric_limits::epsilon() ? et1 > et2 : fabs (a1.px()-a2.px()) > std::numeric_limits::epsilon() ? a1.px() > a2.px() : a1.pz() > a2.pz(); } }; } // namespace cms FASTJET_END_NAMESPACE #endif // __CMS_ITERATIVE_CONE__SORT_BY_ET_H__ fastjet-3.0.6+dfsg.orig/plugins/CMSIterativeCone/Makefile.am0000644000175000017500000000055711766120134022063 0ustar sunsunSUBDIRS = fastjet . if MONOLITHIC_PLUGINS noinst_LTLIBRARIES = libCMSIterativeConePlugin.la else lib_LTLIBRARIES = libCMSIterativeConePlugin.la endif libCMSIterativeConePlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libCMSIterativeConePlugin_la_SOURCES = CMSIterativeConePlugin.cc noinst_HEADERS = SortByEt.h EXTRA_DIST = makefile.static fastjet-3.0.6+dfsg.orig/plugins/Jade/0000755000175000017500000000000012233507301015552 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/Jade/Makefile.in0000644000175000017500000006034412233506215017631 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/Jade DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) libJadePlugin_la_LIBADD = am_libJadePlugin_la_OBJECTS = libJadePlugin_la-JadePlugin.lo libJadePlugin_la_OBJECTS = $(am_libJadePlugin_la_OBJECTS) libJadePlugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libJadePlugin_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @MONOLITHIC_PLUGINS_FALSE@am_libJadePlugin_la_rpath = -rpath $(libdir) @MONOLITHIC_PLUGINS_TRUE@am_libJadePlugin_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libJadePlugin_la_SOURCES) DIST_SOURCES = $(libJadePlugin_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = fastjet . @MONOLITHIC_PLUGINS_TRUE@noinst_LTLIBRARIES = libJadePlugin.la @MONOLITHIC_PLUGINS_FALSE@lib_LTLIBRARIES = libJadePlugin.la libJadePlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libJadePlugin_la_SOURCES = JadePlugin.cc EXTRA_DIST = makefile.static all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/Jade/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/Jade/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libJadePlugin.la: $(libJadePlugin_la_OBJECTS) $(libJadePlugin_la_DEPENDENCIES) $(libJadePlugin_la_LINK) $(am_libJadePlugin_la_rpath) $(libJadePlugin_la_OBJECTS) $(libJadePlugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libJadePlugin_la-JadePlugin.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libJadePlugin_la-JadePlugin.lo: JadePlugin.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libJadePlugin_la_CXXFLAGS) $(CXXFLAGS) -MT libJadePlugin_la-JadePlugin.lo -MD -MP -MF $(DEPDIR)/libJadePlugin_la-JadePlugin.Tpo -c -o libJadePlugin_la-JadePlugin.lo `test -f 'JadePlugin.cc' || echo '$(srcdir)/'`JadePlugin.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libJadePlugin_la-JadePlugin.Tpo $(DEPDIR)/libJadePlugin_la-JadePlugin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='JadePlugin.cc' object='libJadePlugin_la-JadePlugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libJadePlugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libJadePlugin_la-JadePlugin.lo `test -f 'JadePlugin.cc' || echo '$(srcdir)/'`JadePlugin.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/Jade/makefile.static0000644000175000017500000000176011766120133020550 0ustar sunsun# common fastjet definitions include ../../makefile.static CXXSRC = JadePlugin.cc OBJS = $(patsubst %.cc,%.o,$(CXXSRC)) # fastjet includes FASTJET_INCLUDE = -I../../include INCLUDE += $(FASTJET_INCLUDE) all: libJadePlugin.a libJadePlugin.a: $(OBJS) ar cru libJadePlugin.a $(OBJS) ranlib libJadePlugin.a clean: rm -f $(OBJS) distclean: clean rm -f libJadePlugin.a *~ # NB: only use "relative" includes here (others are too subject # to change according to the system one is on...) depend: makedepend -f Makefile $(FASTJET_INCLUDE) -I. -I./fastjet -- -- $(CXXSRC) # DO NOT DELETE JadePlugin.o: ../../include/fastjet/ClusterSequence.hh JadePlugin.o: ../../include/fastjet/internal/DynamicNearestNeighbours.hh JadePlugin.o: ../../include/fastjet/internal/numconsts.hh JadePlugin.o: ../../include/fastjet/internal/base.hh JadePlugin.o: ../../include/fastjet/PseudoJet.hh JadePlugin.o: ../../include/fastjet/Error.hh JadePlugin.o: ../../include/fastjet/JetDefinition.hh fastjet/JadePlugin.hh fastjet-3.0.6+dfsg.orig/plugins/Jade/fastjet/0000755000175000017500000000000012233507301017212 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/Jade/fastjet/Makefile.in0000644000175000017500000003423212233506215021266 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/Jade/fastjet DIST_COMMON = $(fastjetinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(fastjetincludedir)" HEADERS = $(fastjetinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fastjetincludedir = $(includedir)/fastjet fastjetinclude_HEADERS = JadePlugin.hh all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/Jade/fastjet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/Jade/fastjet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fastjetincludeHEADERS: $(fastjetinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludedir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludedir)" @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludedir)" || exit $$?; \ done uninstall-fastjetincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(fastjetincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fastjetincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fastjetincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-fastjetincludeHEADERS install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-fastjetincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/Jade/fastjet/JadePlugin.hh0000644000175000017500000000705711766120133021572 0ustar sunsun#ifndef __JADEPLUGIN_HH__ #define __JADEPLUGIN_HH__ //STARTHEADER // $Id: JadePlugin.hh 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2009, Matteo Cacciari, Gavin Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/JetDefinition.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // forward declaration to reduce includes class ClusterSequence; //---------------------------------------------------------------------- // /// @ingroup plugins /// \class JadePlugin /// Implementation of the e+e- Jade algorithm (plugin for fastjet v2.4 upwards) /// /// JadePlugin is a plugin for fastjet (v2.4 upwards) /// It implements the JADE algorithm, which is an e+e- sequential /// recombination algorithm with interparticle distance /// /// dij = 2 E_i E_j (1 - cos theta_ij) /// /// or equivalently /// /// yij = dij/E_{vis}^2 /// /// This corresponds to the distance measured used in /// /// "Experimental Investigation of the Energy Dependence of the Strong Coupling Strength." /// JADE Collaboration (S. Bethke et al.) /// Phys.Lett.B213:235,1988 /// /// The JADE article carries out particle recombinations in the /// E-scheme (4-vector recombination), which is the default procedure for this /// plugin. /// /// NOTE: other widely used schemes include E0, P, P0; however they also /// involve modifications to the distance measure. Be sure of /// what you're doing before running a JADE type algorithm. /// /// To access the jets with a given ycut value (clustering stops once /// all yij > ycut), use /// /// vector jets = cluster_sequence.exclusive_jets_ycut(ycut); /// /// and related routines. class JadePlugin : public JetDefinition::Plugin { public: /// Main constructor for the Jade Plugin class. JadePlugin (){} /// copy constructor JadePlugin (const JadePlugin & plugin) { *this = plugin; } // the things that are required by base class virtual std::string description () const; virtual void run_clustering(ClusterSequence &) const; /// the plugin mechanism's standard way of accessing the jet radius. /// This must be set to return something sensible, even if R /// does not make sense for this algorithm! virtual double R() const {return 1.0;} /// avoid the warning whenever the user requests "exclusive" jets /// from the cluster sequence virtual bool exclusive_sequence_meaningful() const {return true;} private: }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __JADEPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/Jade/fastjet/Makefile.am0000644000175000017500000000011711766120133021251 0ustar sunsunfastjetincludedir=$(includedir)/fastjet fastjetinclude_HEADERS = JadePlugin.hh fastjet-3.0.6+dfsg.orig/plugins/Jade/JadePlugin.cc0000644000175000017500000000620111766120133020106 0ustar sunsun//STARTHEADER // $Id: JadePlugin.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2007-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER // fastjet stuff #include "fastjet/ClusterSequence.hh" #include "fastjet/JadePlugin.hh" #include //#include "fastjet/internal/ClusterSequence_N2.icc" #include "fastjet/NNH.hh" // other stuff #include #include #include using namespace std; FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- /// class to help run a JADE algorithm class JadeBriefJet { public: void init(const PseudoJet & jet) { double norm = 1.0/sqrt(jet.modp2()); nx = jet.px() * norm; ny = jet.py() * norm; nz = jet.pz() * norm; rt2E = sqrt(2.0)*jet.E(); } double distance(const JadeBriefJet * jet) const { double dij = 1 - nx*jet->nx - ny*jet->ny - nz*jet->nz; dij *= rt2E*jet->rt2E; return dij; } double beam_distance() const { return numeric_limits::max(); } private: double rt2E, nx, ny, nz; }; //---------------------------------------------------------------------- string JadePlugin::description () const { ostringstream desc; desc << "e+e- JADE algorithm plugin"; return desc.str(); } //---------------------------------------------------------------------- void JadePlugin::run_clustering(ClusterSequence & cs) const { int njets = cs.jets().size(); NNH nnh(cs.jets()); // if testing against Hoeth's implementation, need to rescale the // dij by Q^2. //double Q2 = cs.Q2(); while (njets > 0) { int i, j, k; double dij = nnh.dij_min(i, j); if (j >= 0) { cs.plugin_record_ij_recombination(i, j, dij, k); nnh.merge_jets(i, j, cs.jets()[k], k); } else { double diB = cs.jets()[i].E()*cs.jets()[i].E(); // get new diB cs.plugin_record_iB_recombination(i, diB); nnh.remove_jet(i); } njets--; } } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/plugins/Jade/Makefile.am0000644000175000017500000000042711766120133017615 0ustar sunsunSUBDIRS = fastjet . if MONOLITHIC_PLUGINS noinst_LTLIBRARIES = libJadePlugin.la else lib_LTLIBRARIES = libJadePlugin.la endif libJadePlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libJadePlugin_la_SOURCES = JadePlugin.cc EXTRA_DIST = makefile.static fastjet-3.0.6+dfsg.orig/plugins/SISCone/0000755000175000017500000000000012233507302016153 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/0000755000175000017500000000000012233507302017616 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/config.h.in0000644000175000017500000000323012233507177021651 0ustar sunsun/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `m' library (-lm). */ #undef HAVE_LIBM /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/AUTHORS0000644000175000017500000000063012140755776020706 0ustar sunsunThis program was written by Gregory Soyez(1) and Gavin Salam(2) Address: (1) IPhT, CEA Saclay Orme des Merisiers, Bat 774 F-91191 Gif-sur-Yvette Cedex France (2) PH-TH, CERN, CH-1211 Geneva 23, Switzerland; LPTHE, UPMC (Univ. Paris 6), 75252 Paris cedex 05, France. phone : +33 69 08 40 11 +41 22 767 2462 email : soyez@fastjet.fr gavin.salam@cern.ch fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/aclocal.m40000644000175000017500000115155212233506726021501 0ustar sunsun# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, [m4_warning([this file was generated for autoconf 2.63. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. if test "$no_create" != yes; then lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF [$]* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) # ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3017 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6b]) m4_define([LT_PACKAGE_REVISION], [1.3017]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b' macro_revision='1.3017' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/0000755000175000017500000000000012233507302021261 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/geom_2d.cpp0000644000175000017500000001277011766120144023315 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: geom_2d.cpp // // Description: source file for two-dimensional geometry tools // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 171 $// // $Date:: 2007-06-19 16:26:05 +0200 (Tue, 19 Jun 2007) $// /////////////////////////////////////////////////////////////////////////////// #include "geom_2d.h" #include namespace siscone{ #define PHI_RANGE_MASK 0xFFFFFFFF /********************************************************* * class Ceta_phi_range implementation * * class for holding a covering range in eta-phi * * * * This class deals with ranges in the eta-phi plane. It * * implements methods to test if two ranges overlap and * * to take the union of two overlapping intervals. * *********************************************************/ using namespace std; // static member default init //---------------------------- double Ceta_phi_range::eta_min = -100.0; double Ceta_phi_range::eta_max = 100.0; // default ctor //-------------- Ceta_phi_range::Ceta_phi_range(){ eta_range = 0; phi_range = 0; } // ctor with initialisation // we initialise with a centre (in eta,phi) and a radius // - c_eta eta coordinate of the centre // - c_phi phi coordinate of the centre // - R radius //------------------------------------------------------- Ceta_phi_range::Ceta_phi_range(double c_eta, double c_phi, double R){ // determination of the eta range //------------------------------- double xmin = max(c_eta-R,eta_min+0.0001); double xmax = min(c_eta+R,eta_max-0.0001); unsigned int cell_min = get_eta_cell(xmin); unsigned int cell_max = get_eta_cell(xmax); // warning: if cell_max==2^31, 2*cell_max==0 hence, // even if the next formula is formally (2*cell_max-cell_min), // expressing it as (cell_max-cell_min)+cell_max is safe. eta_range = (cell_max-cell_min)+cell_max; // determination of the phi range // !! taking care of periodicity !! //--------------------------------- xmin = phi_in_range(c_phi-R); xmax = phi_in_range(c_phi+R); cell_min = get_phi_cell(xmin); cell_max = get_phi_cell(xmax); // Also, if the interval goes through pi, inversion is needed if (xmax>xmin) phi_range = (cell_max-cell_min)+cell_max; else { phi_range = (cell_min==cell_max) ? PHI_RANGE_MASK : ((PHI_RANGE_MASK^(cell_min-cell_max)) + cell_max); } } // assignment of range // - r range to assign to current one //--------------------------------------- Ceta_phi_range& Ceta_phi_range::operator = (const Ceta_phi_range &r){ eta_range = r.eta_range; phi_range = r.phi_range; return *this; } // add a particle to the range // - eta eta coordinate of the particle // - phi phi coordinate of the particle // \return 0 on success, 1 on error //---------------------------------------- int Ceta_phi_range::add_particle(const double eta, const double phi){ // deal with the eta coordinate eta_range |= get_eta_cell(eta); // deal with the phi coordinate phi_range |= get_phi_cell(phi); return 0; } // test overlap // - r1 first range // - r2 second range // return true if overlap, false otherwise. //------------------------------------------ bool is_range_overlap(const Ceta_phi_range &r1, const Ceta_phi_range &r2){ // check overlap in eta AND phi return ((r1.eta_range & r2.eta_range) && (r1.phi_range & r2.phi_range)); } // compute union // Note: we assume that the two intervals overlap // - r1 first range // - r2 second range // \return union of the two ranges //------------------------------------------ const Ceta_phi_range range_union (const Ceta_phi_range &r1, const Ceta_phi_range &r2){ Ceta_phi_range tmp; // compute union in eta tmp.eta_range = r1.eta_range | r2.eta_range; // compute union in phi tmp.phi_range = r1.phi_range | r2.phi_range; return tmp; } } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/protocones.h0000644000175000017500000002153211766120144023635 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: protocones.h // // Description: header file for stable cones determination (Cstable_cones) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 224 $// // $Date:: 2008-05-16 19:58:30 +0200 (Fri, 16 May 2008) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __PROTOCONES_H__ #define __PROTOCONES_H__ #include "momentum.h" #include "vicinity.h" #include #include #include #include "hash.h" #include "defines.h" namespace siscone{ /** * \class Cborder_store * * class for storing a border momentum (in context of co-circularity * checks). * This class essentially calculates angle of border point w.r.t. * circle center (eta & phi), and provides a store of information * about whether we are currently including this point in the * candidate */ class Cborder_store{ public: /// default ctor Cborder_store(Cmomentum * momentum, double centre_eta, double centre_phi) : mom(momentum), is_in(false) { angle = atan2(mom->phi - centre_phi, mom->eta - centre_eta); } Cmomentum * mom; ///< particle momentum double angle; ///< angle w.r.t. circle centre bool is_in; ///< inclusion status of the particle }; /// allows easy sorting of Cborder_store objects (which need to be /// ordered in angle). inline bool operator<(const Cborder_store & a, const Cborder_store & b) { return a.angle < b.angle; } /** * \class Cstable_cones * \brief Computes the list of stable comes from a particle list. * * This class does the first fundamental task of te cone algorithm: * it is used to compute the list of stable cones given a list * of particles. */ class Cstable_cones : public Cvicinity{ public: /// default ctor Cstable_cones(); /// ctor with initialisation (sse init for details) Cstable_cones(std::vector &_particle_list); /// default dtor ~Cstable_cones(); /** * initialisation * \param _particle_list list of particles */ void init(std::vector &_particle_list); /** * compute stable cones. * This function really does the job i.e. computes * the list of stable cones (in a seedless way) * \param _radius radius of the cones * \return The number of stable cones found is returned */ int get_stable_cones(double _radius); /// list of stable cones std::vector protocones; /// list of candidates hash_cones *hc; /// total number of tested cones int nb_tot; #ifdef DEBUG_STABLE_CONES int nb_hash_cones, nb_hash_occupied; #endif protected: /// cone radius double R; /// cone radius SQUARED double R2; private: /// cone with a given particle as parent /// this reduction to a single vector assumes we trust the checksums Cmomentum cone; /// child particle, taken in the 'vicinity' list Cmomentum *child; /// centre of the tested cone Cvicinity_elm *centre; /// index in the particle list; unsigned int centre_idx; /// first cone used in the vicinity list unsigned int first_cone; /** * initialise the cone. * We take the first particle in the angular ordering to compute this one * \return 0 on success, 1 on error */ int init_cone(); /** * test cones. * We check if the cone(s) build with the present parent and child * are stable * \return 0 on success 1 on error */ int test_cone(); /** * update the cone * go to the next child for that parent and update 'cone' appropriately * \return 0 if update candidate found, 1 otherwise */ int update_cone(); /* * run through the vicinity of the current parent and for each child * indicate which members are cocircular... */ void prepare_cocircular_lists(); /** * check if we are in a situation of cocircularity. * if it is the case, update and test in the corresponding way * \return 'false' if no cocircularity detected, 'true' otherwise * Note that if cocircularity is detected, we need to * recall 'update' from 'update' !!! */ bool cocircular_check(); /** * Routine for testing cocircular configurations in p^3 time, * rather than 2^p time; */ void test_cone_cocircular(Cmomentum & borderless_cone, std::list & border_list); /** * carry out the computations needed for the stability check of the * candidate, using the border_vect to indicate which particles * should / should not be in the stable cone; if the cone is stable * insert it into the hash. */ void test_stability(Cmomentum & candidate, const std::vector & border_vect); /** * compute the cone contents by going once around the full set of * circles and tracking the entry/exit status each time -- this sets * up the inclusion information, which can then be directly used to * calculate the cone momentum. */ void compute_cone_contents(); /** * compute the cone momentum from particle list. * in this version, we use the 'pincluded' information * from the Cviinity class */ void recompute_cone_contents(); /* * if we have gone beyond the acceptable threshold of change, compute * the cone momentum from particle list. in this version, we use the * 'pincluded' information from the Cvicinity class, but we don't * change the member cone, only the locally supplied one */ void recompute_cone_contents_if_needed(Cmomentum & this_cone, double & this_dpt); /** * compute stability of all enumerated candidates. * For all candidate cones which are stable w.r.t. their border particles, * pass the last test: stability with quadtree intersection */ int proceed_with_stability(); /* * circle intersection. * computes the intersection with a circle of given centre and radius. * The output takes the form of a checkxor of the intersection's particles * - cx circle centre x coordinate * - cy circle centre y coordinate * return the checkxor for the intersection ******************************************************************/ Creference circle_intersect(double cx, double cy); /// present candidate cone Cmomentum cone_candidate; /// in case of co-circular points, vector for them std::vector child_list; /// list of cocircular enclusures already studied /// first element if cone contents, second is cone border std::vector< std::pair > multiple_centre_done; // information for updating cone contents to avoid rounding errors double dpt; ///< sums of Delta P_t /** * test if a particle is inside a cone of given centre. * check if the particle of coordinates 'v' is inside the circle of radius R * centered at 'centre'. * \param centre centre of the circle * \param v particle to test * \return true if inside, false if outside */ inline bool is_inside(Cmomentum *centre, Cmomentum *v); }; /* * compute the absolute value of the difference between 2 angles. * We take care of the 2pi periodicity * \param angle1 first angle * \param angle2 second angle * \return the absolute value of the difference between the angles *****************************************************************/ inline double abs_dangle(double &angle1, double &angle2); } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/0000755000175000017500000000000012233507302023233 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/geom_2d.cpp0000644000175000017500000001435711766120144025272 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: geom_2d.cpp // // Description: source file for two-dimensional geometry tools // // This file is part of the SISCone project. // // WARNING: this is not the main SISCone trunk but // // an adaptation to spherical coordinates // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006-2008 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 255 $// // $Date:: 2008-07-12 17:40:35 +0200 (Sat, 12 Jul 2008) $// /////////////////////////////////////////////////////////////////////////////// #include "geom_2d.h" #include namespace siscone_spherical{ #define PHI_RANGE_MASK 0xFFFFFFFF /********************************************************* * class CSphtheta_phi_range implementation * * class for holding a covering range in eta-phi * * * * This class deals with ranges in the eta-phi plane. It * * implements methods to test if two ranges overlap and * * to take the union of two overlapping intervals. * *********************************************************/ using namespace std; // static member default init //---------------------------- double CSphtheta_phi_range::theta_min = 0.0; double CSphtheta_phi_range::theta_max = M_PI; // default ctor //-------------- CSphtheta_phi_range::CSphtheta_phi_range(){ theta_range = 0; phi_range = 0; } // ctor with initialisation // we initialise with a centre (in eta,phi) and a radius // - c_theta theta coordinate of the centre // - c_phi phi coordinate of the centre // - R radius //------------------------------------------------------- CSphtheta_phi_range::CSphtheta_phi_range(double c_theta, double c_phi, double R){ // determination of the eta range //------------------------------- double xmin = max(c_theta-R,theta_min+0.00001); double xmax = min(c_theta+R,theta_max-0.00001); unsigned int cell_min = get_theta_cell(xmin); unsigned int cell_max = get_theta_cell(xmax); // warning: if cell_max==2^31, 2*cell_max==0 hence, // even if the next formula is formally (2*cell_max-cell_min), // expressing it as (cell_max-cell_min)+cell_max is safe. theta_range = (cell_max-cell_min)+cell_max; // determination of the phi range // !! taking care of periodicity !! // !! and the theta dependence !! //--------------------------------- double ymin,ymax; double extra = asin(R/M_PI); if (xmin<=theta_min+extra){ ymin = -M_PI+0.00001; ymax = M_PI-0.00001; } else if (xmax>=theta_max-extra){ ymin = -M_PI+0.00001; ymax = M_PI-0.00001; } else { extra = max(1.0/sin(xmin), 1.0/sin(xmax)); ymin = (c_phi-R)*extra; while (ymin<-M_PI) ymin+=twopi; while (ymin> M_PI) ymin-=twopi; ymax = (c_phi-R)*extra; while (ymax<-M_PI) ymax+=twopi; while (ymax> M_PI) ymax-=twopi; } cell_min = get_phi_cell(ymin); cell_max = get_phi_cell(ymax); // Also, if the interval goes through pi, inversion is needed if (ymax>ymin) phi_range = (cell_max-cell_min)+cell_max; else { phi_range = (cell_min==cell_max) ? PHI_RANGE_MASK : ((PHI_RANGE_MASK^(cell_min-cell_max)) + cell_max); } } // assignment of range // - r range to assign to current one //--------------------------------------- CSphtheta_phi_range& CSphtheta_phi_range::operator = (const CSphtheta_phi_range &r){ theta_range = r.theta_range; phi_range = r.phi_range; return *this; } // add a particle to the range // - eta eta coordinate of the particle // - phi phi coordinate of the particle // \return 0 on success, 1 on error //---------------------------------------- int CSphtheta_phi_range::add_particle(const double theta, const double phi){ // deal with the eta coordinate theta_range |= get_theta_cell(theta); // deal with the phi coordinate phi_range |= get_phi_cell(phi); return 0; } // test overlap // - r1 first range // - r2 second range // return true if overlap, false otherwise. //------------------------------------------ bool is_range_overlap(const CSphtheta_phi_range &r1, const CSphtheta_phi_range &r2){ // check overlap in eta AND phi return ((r1.theta_range & r2.theta_range) && (r1.phi_range & r2.phi_range)); } // compute union // Note: we assume that the two intervals overlap // - r1 first range // - r2 second range // \return union of the two ranges //------------------------------------------ const CSphtheta_phi_range range_union (const CSphtheta_phi_range &r1, const CSphtheta_phi_range &r2){ CSphtheta_phi_range tmp; // compute union in eta tmp.theta_range = r1.theta_range | r2.theta_range; // compute union in phi tmp.phi_range = r1.phi_range | r2.phi_range; return tmp; } } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/protocones.h0000644000175000017500000002137111766120144025610 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: protocones.h // // Description: header file for stable cones determination (Cstable_cones) // // This file is part of the SISCone project. // // WARNING: this is not the main SISCone trunk but // // an adaptation to spherical coordinates // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006-2008 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 255 $// // $Date:: 2008-07-12 17:40:35 +0200 (Sat, 12 Jul 2008) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __SPH_PROTOCONES_H__ #define __SPH_PROTOCONES_H__ #include "momentum.h" #include "vicinity.h" #include #include #include #include "hash.h" #include namespace siscone_spherical{ /** * \class CSphborder_store * * class for storing a border momentum (in context of co-circularity * checks). * This class essentially calculates angle of border point w.r.t. * circle center (eta & phi), and provides a store of information * about whether we are currently including this point in the * candidate */ class CSphborder_store{ public: /// default ctor CSphborder_store(CSphmomentum * momentum, CSph3vector ¢re, CSph3vector &angl_dir1, CSph3vector &angl_dir2) : mom(momentum), is_in(false) { CSph3vector diff = (*momentum) - centre; angle = atan2(dot_product3(diff, angl_dir2), dot_product3(diff, angl_dir1)); #ifdef DEBUG_STABLE_CONES std::cout << " adding point " << momentum->_theta << ", " << momentum->_phi << " at an angle of " << angle << std::endl; #endif } CSphmomentum * mom; ///< particle momentum double angle; ///< angle w.r.t. circle centre bool is_in; ///< inclusion status of the particle }; /// allows easy sorting of CSphborder_store objects (which need to be /// ordered in angle). inline bool operator<(const CSphborder_store & a, const CSphborder_store & b) { return a.angle < b.angle; } /** * \class CSphstable_cones * \brief Computes the list of stable comes from a particle list. * * This class does the first fundamental task of te cone algorithm: * it is used to compute the list of stable cones given a list * of particles. */ class CSphstable_cones : public CSphvicinity{ public: /// default ctor CSphstable_cones(); /// ctor with initialisation (sse init for details) CSphstable_cones(std::vector &_particle_list); /// default dtor ~CSphstable_cones(); /** * initialisation * \param _particle_list list of particles */ void init(std::vector &_particle_list); /** * compute stable cones. * This function really does the job i.e. computes * the list of stable cones (in a seedless way) * \param _radius radius of the cones * \return The number of stable cones found is returned */ int get_stable_cones(double _radius); /// list of stable cones std::vector protocones; /// list of candidates sph_hash_cones *hc; /// total number of tested cones int nb_tot; #ifdef DEBUG_STABLE_CONES int nb_hash_cones, nb_hash_occupied; #endif protected: /// cone radius double R; /// cone radius SQUARED double R2; /// squared tangent of the cone radius double tan2R; private: /// cone with a given particle as parent /// this reduction to a single vector assumes we trust the checksums CSphmomentum cone; /// child particle, taken in the 'vicinity' list CSphmomentum *child; /// centre of the tested cone CSphvicinity_elm *centre; /// index in the particle list; unsigned int centre_idx; /// first cone used in the vicinity list unsigned int first_cone; /** * initialise the cone. * We take the first particle in the angular ordering to compute this one * \return 0 on success, 1 on error */ int init_cone(); /** * test cones. * We check if the cone(s) build with the present parent and child * are stable * \return 0 on success 1 on error */ int test_cone(); /** * update the cone * go to the next child for that parent and update 'cone' appropriately * \return 0 if update candidate found, 1 otherwise */ int update_cone(); /* * run through the vicinity of the current parent and for each child * indicate which members are cocircular... */ void prepare_cocircular_lists(); /** * check if we are in a situation of cocircularity. * if it is the case, update and test in the corresponding way * \return 'false' if no cocircularity detected, 'true' otherwise * Note that if cocircularity is detected, we need to * recall 'update' from 'update' !!! */ bool cocircular_check(); /** * Routine for testing cocircular configurations in p^3 time, * rather than 2^p time; */ void test_cone_cocircular(CSphmomentum & borderless_cone, std::list & border_list); /** * carry out the computations needed for the stability check of the * candidate, using the border_vect to indicate which particles * should / should not be in the stable cone; if the cone is stable * insert it into the hash. */ void test_stability(CSphmomentum & candidate, const std::vector & border_vect); /** * compute the cone contents by going once around the full set of * circles and tracking the entry/exit status each time -- this sets * up the inclusion information, which can then be directly used to * calculate the cone momentum. */ void compute_cone_contents(); /** * compute the cone momentum from particle list. * in this version, we use the 'pincluded' information * from the CSphvicinity class */ void recompute_cone_contents(); /* * if we have gone beyond the acceptable threshold of change, compute * the cone momentum from particle list. in this version, we use the * 'pincluded' information from the CSphvicinity class, but we don't * change the member cone, only the locally supplied one */ void recompute_cone_contents_if_needed(CSphmomentum & this_cone, double & this_dpt); /** * compute stability of all enumerated candidates. * For all candidate cones which are stable w.r.t. their border particles, * pass the last test: stability with quadtree intersection */ int proceed_with_stability(); /* * circle intersection. * computes the intersection with a circle of given centre and radius. * The output takes the form of a checkxor of the intersection's particles * - cx circle centre x coordinate * - cy circle centre y coordinate * return the checkxor for the intersection ******************************************************************/ siscone::Creference circle_intersect(CSph3vector &cone_centre); /// present candidate cone CSphmomentum cone_candidate; /// in case of co-circular points, vector for them std::vector child_list; /// list of cocircular enclusures already studied /// first element if cone contents, second is cone border std::vector< std::pair > multiple_centre_done; // information for updating cone contents to avoid rounding errors double dpt; ///< sums of Delta P_t }; } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/hash.h0000644000175000017500000001031411766120144024333 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: hash.h // // Description: header file for classes hash_element and hash_cones // // This file is part of the SISCone project. // // WARNING: this is not the main SISCone trunk but // // an adaptation to spherical coordinates // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006-2008 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 294 $// // $Date:: 2009-05-01 17:15:04 +0200 (Fri, 01 May 2009) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __SPH_HASH_H__ #define __SPH_HASH_H__ #include "momentum.h" namespace siscone_spherical{ /** * \class sph_hash_element * information on store cones candidates. * * We store in this class the information used to count all * protocones in a first pass. This first pass only count * cones with different references and test their stbility * with the parent-child particles (border particles). */ class sph_hash_element{ public: CSph3vector centre; ///< centre of the cone bool is_stable; ///< true if stable w.r.t. "border particles" sph_hash_element *next; ///< pointer to the next element }; /** * \class sph_hash_cones * list of cones candidates. * * We store in this class all the hash_elements and give * functions to manipulate them. */ class sph_hash_cones{ public: /// \param _Np number of particles /// \param _radius cone radius sph_hash_cones(int _Np, double _radius); /// destructor ~sph_hash_cones(); /** * insert a new candidate into the hash. * \param v 4-momentum of te cone to add * \param parent parent particle defining the cone * \param child child particle defining the cone * \param p_io whether the parent has to belong to the cone or not * \param c_io whether the child has to belong to the cone or not * \return 0 on success, 1 on error */ int insert(CSphmomentum *v, CSphmomentum *parent, CSphmomentum *child, bool p_io, bool c_io); /** * insert a new candidate into the hash. * \param v 4-momentum of te cone to add * Note, in this case, we assume stability. We also assume * that eta and phi are computed for v * \return 0 on success, 1 on error */ int insert(CSphmomentum *v); /// the cone data itself sph_hash_element **hash_array; /// number of elements int n_cones; /// number of occupied cells #ifdef DEBUG_STABLE_CONES int n_occupied_cells; #endif /// number of cells-1 int mask; /// circle radius (squared) /// NOTE: need to be set before any call to 'insert' double R2; /// its squreed tangent double tan2R; }; } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/momentum.h0000644000175000017500000002730411766120144025260 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: momentum.h // // Description: header file for 4-momentum class Cmomentum // // This file is part of the SISCone project. // // WARNING: this is not the main SISCone trunk but // // an adaptation to spherical coordinates // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006-2008 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 256 $// // $Date:: 2008-07-14 13:52:16 +0200 (Mon, 14 Jul 2008) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __SPH_VECTOR_H__ #define __SPH_VECTOR_H__ #include #include #include #include "geom_2d.h" #include namespace siscone_spherical{ /** * \class CSph3vector * \brief base class for managing the spatial part of Cmomentum (defined after) * * This class contains the information for particle or group of * particles management. * It is adapted to use spherical geometry, where, for our purposes, * the only time-consuming operation we need is the computation of * the norm. To compute it once-and-for-all and store it in a local * variable, you should call the 'build_norm' method. * On top of that, the angle phi is computed from the x-axis * and theta from the "north pole". */ class CSph3vector{ public: /// default ctor CSph3vector(); /// ctor with initialisation CSph3vector(double _px, double _py, double _pz); /// default dtor ~CSph3vector(); /// assignment of vectors CSph3vector& operator = (const CSph3vector &v); /// addition of vectors /// WARNING= norm is not updated const CSph3vector operator + (const CSph3vector &v); /// subtraction of vectors /// WARNING= norm is not updated const CSph3vector operator - (const CSph3vector &v); /// division by a constant /// WARNING= norm is not updated const CSph3vector operator / (const double &r); /// incrementation of vectors /// WARNING= norm is not updated CSph3vector& operator += (const CSph3vector &v); /// decrementation of vectors /// WARNING= norm is not updated CSph3vector& operator -= (const CSph3vector &v); /// multiplication by a constant /// WARNING= norm is not updated CSph3vector& operator *= (const double &r); /// division by a constant /// WARNING= norm is not updated CSph3vector& operator /= (const double &r); /// computes pT inline double perp() const {return sqrt(perp2());} /// computes pT^2 inline double perp2() const {return px*px+py*py;} /// 3-vect norm inline double norm() const {return sqrt(px*px+py*py+pz*pz);} /// 3-vect norm squared inline double norm2() const {return px*px+py*py+pz*pz;} /// 3-vect azimuthal angle inline double phi() const {return atan2(py, px);} /// 3-vect polar angle inline double theta() const {return atan2(perp(),pz);} /// build the spatial normfrom 4-momentum info /// !!! WARNING !!! /// !!! computing the norm is the only time-consuming !!! /// !!! information we need in all computations. !!! /// !!! use this whenever you need repeated access !!! /// !!! to the norm to store it in the local variable !!! void build_norm(); /// just a useful tool to store theta and phi /// locally (in _theta and _phi) in case you need /// repeated access void build_thetaphi(); /// for this direction, compute the two reference directions /// used to measure angles void get_angular_directions(CSph3vector &angular_dir1, CSph3vector &angular_dir2); double px; ///< x-momentum double py; ///< y-momentum double pz; ///< z-momentum double _norm; ///< particle spatial norm (available ONLY after a call to build_norm) double _theta; ///< particle theta angle (available ONLY after a call to build_thetaphi) double _phi; ///< particle phi angle (available ONLY after a call to build_thetaphi) ////////////////////////////////////////////// // the following part is used for checksums // ////////////////////////////////////////////// siscone::Creference ref; ///< reference number for the vector }; /** * \class CSphmomentum * \brief base class for dynamic coordinates management * * This class contains the information for particle or group of * particles management. * It is adapted to use spherical geometry, where, for our purposes, * the only time-consuming operation we need is the computation of * the norm. To compute it once-and-for-all and store it in a local * variable, you should call the 'build_norm' method. * On top of that, the angle phi is computed from the x-axis * and theta from the "north pole". */ class CSphmomentum : public CSph3vector{ public: /// default ctor CSphmomentum(); /// init from a 3-vect CSphmomentum(CSph3vector &init, double E=0.0); /// ctor with initialisation CSphmomentum(double _px, double _py, double _pz, double _E); /// ctor with detailed initialisation //CSphmomentum(double _eta, double _phi, siscone::Creference _ref); /// default dtor ~CSphmomentum(); /// computes m inline double mass() const {return sqrt(mass2());} /// computes m^2 inline double mass2() const {return perpmass2()-perp2();} /// transverse mass, mt = sqrt(pt^2+m^2) = sqrt(E^2 - pz^2) inline double perpmass() const {return sqrt((E-pz)*(E+pz));} /// transverse mass squared, mt^2 = pt^2+m^2 = E^2 - pz^2 inline double perpmass2() const {return (E-pz)*(E+pz);} /// computes transverse energy inline double Et() const {return E/sqrt(1.0+pz*pz/perp2());} /// computes transverse energy (squared) inline double Et2() const {return E*E/(1.0+pz*pz/perp2());} /// assignment of vectors CSphmomentum& operator = (const CSphmomentum &v); /// addition of vectors /// !!! WARNING !!! no updating of eta and phi !!! const CSphmomentum operator + (const CSphmomentum &v); /// incrementation of vectors /// !!! WARNING !!! no updating of eta and phi !!! CSphmomentum& operator += (const CSphmomentum &v); /// decrementation of vectors /// !!! WARNING !!! no updating of eta and phi !!! CSphmomentum& operator -= (const CSphmomentum &v); double E; ///< energy int parent_index; ///< particle number in the parent list int index; ///< internal particle number }; /// ordering of two vectors /// this is by default done w.r.t. their references bool operator < (const CSphmomentum &v1, const CSphmomentum &v2); /// ordering of vectors in eta (e.g. used in collinear tests) bool momentum_theta_less(const CSphmomentum &v1, const CSphmomentum &v2); /// ordering of vectors in pt bool momentum_pt_less(const CSphmomentum &v1, const CSphmomentum &v2); ////////////////////////// // some handy utilities // ////////////////////////// /// square inline double sqr(double x){return x*x;} /// dot product for te spatial 3-vect /// \param v1 first 4-vect /// \param v2 second 4-vect inline double dot_product3(const CSph3vector &v1, const CSph3vector &v2){ //double tmp = v1.px*v2.px + v1.py*v2.py + v1.pz*v2.pz; //if (!isfinite(tmp)){ // std::cout << "dot_product inf: " << std::endl; // std::cout << " angles: " << v1._theta << " " << v1._phi << " and " << v2._theta << " " << v2._phi << std::endl; // std::cout << " moms : " << v1.px << " " << v1.py << " " << v1.pz // << " and " << v2.px << " " << v2.py << " " << v2.pz << std::endl; //} return v1.px*v2.px + v1.py*v2.py + v1.pz*v2.pz; } /// cross product for the spatial 3-vect /// \param v1 first 4-vect /// \param v2 second 4-vect inline CSph3vector cross_product3(const CSph3vector &v1, const CSph3vector &v2){ //CSph3vector tmp; //tmp.px = v1.py*v2.pz-v1.pz*v2.py; //tmp.py = v1.pz*v2.px-v1.px*v2.pz; //tmp.pz = v1.px*v2.py-v1.py*v2.px; //return tmp; return CSph3vector(v1.py*v2.pz-v1.pz*v2.py, v1.pz*v2.px-v1.px*v2.pz, v1.px*v2.py-v1.py*v2.px); } /// squared norm of the cross product for the spatial 3-vect (energy is set to 0) /// \param v1 first 4-vect /// \param v2 second 4-vect inline double norm2_cross_product3(const CSph3vector &v1, const CSph3vector &v2){ return sqr(v1.py*v2.pz-v1.pz*v2.py) + sqr(v1.pz*v2.px-v1.px*v2.pz) + sqr(v1.px*v2.py-v1.py*v2.px); } /// get tangent squared of the spherical distance between two vectors /// \param v1 vector defining the first point /// \param v2 vector defining the second point inline double get_tan2_distance(const CSphmomentum &v1, const CSphmomentum &v2){ return norm2_cross_product3(v1,v2)/sqr(dot_product3(v1,v2)); } /// get spherical distance between to vectors /// \param v1 vector defining the first point /// \param v2 vector defining the second point inline double get_distance(const CSph3vector *v1, const CSph3vector *v2){ return atan2(sqrt(norm2_cross_product3(*v1,*v2)), dot_product3(*v1,*v2)); } /// return true if the two points are distant by less than get spherical distance between two vectors /// \param v1 vector defining the first point /// \param v2 vector defining the second point /// \param tan2R tangent squared of the max distance /// WARNING: using the tangent here is dangerous for R>pi/2. /// this never happens per se for "regular R" but /// it may in the vicinity computation as we're using /// 2R there. inline bool is_closer(const CSph3vector *v1, const CSph3vector *v2, const double tan2R){ double dot = dot_product3(*v1,*v2); return (dot>=0) && (norm2_cross_product3(*v1,*v2)<=tan2R*dot*dot); } /// return true if the two points are distant by less than get spherical distance between to vectors /// \param v1 vector defining the first point /// \param v2 vector defining the second point /// \param tan2R tangent squared of the max distance /// safer version but computes the norm inline bool is_closer_safer(const CSph3vector *v1, const CSph3vector *v2, const double cosR){ return dot_product3(*v1,*v2)>=cosR*sqrt(v1->norm2()*v2->norm2()); //double dot = dot_product3(*v1,*v2); //return (dot>=0) && (norm2_cross_product3(*v1,*v2) #include "split_merge.h" #include "momentum.h" #include #include // for max #include #include #include #include namespace siscone_spherical{ using namespace std; /******************************************************** * class CSphjet implementation * * real Jet information. * * This class contains information for one single jet. * * That is, first, its momentum carrying information * * about its centre and pT, and second, its particle * * contents * ********************************************************/ // default ctor //-------------- CSphjet::CSphjet(){ n = 0; v = CSphmomentum(); E_tilde = 0.0; sm_var2 = 0.0; } // default dtor //-------------- CSphjet::~CSphjet(){ } // ordering of jets in E (e.g. used in final jets ordering) //---------------------------------------------------------- bool jets_E_less(const CSphjet &j1, const CSphjet &j2){ return j1.v.E > j2.v.E; } /******************************************************** * CSphsplit_merge_ptcomparison implementation * * This deals with the ordering of the jets candidates * ********************************************************/ // odering of two jets // The variable of the ordering is pt or mt // depending on 'split_merge_scale' choice // // with EPSILON_SPLITMERGE defined, this attempts to identify // delicate cases where two jets have identical momenta except for // softish particles -- the difference of pt's may not be correctly // identified normally and so lead to problems for the fate of the // softish particle. // // NB: there is a potential issue in momentum-conserving events, // whereby the harder of two jets becomes ill-defined when a soft // particle is emitted --- this may have a knock-on effect on // subsequent split-merge steps in cases with sufficiently large R // (but we don't know what the limit is...) //------------------------------------------------------------------ bool CSphsplit_merge_ptcomparison::operator ()(const CSphjet &jet1, const CSphjet &jet2) const{ double q1, q2; // compute the value for comparison for both jets // This depends on the choice of variable (mt is the default) q1 = jet1.sm_var2; q2 = jet2.sm_var2; bool res = q1 > q2; // if we enable the refined version of the comparison (see defines.h), // we compute the difference more precisely when the two jets are very // close in the ordering variable. #ifdef EPSILON_SPLITMERGE if ( (fabs(q1-q2) < EPSILON_SPLITMERGE*max(q1,q2)) && (jet1.v.ref != jet2.v.ref) ) { #ifdef DEBUG_SPLIT_MERGE cout << "Using high-precision ordering tests" << endl; #endif // get the momentum of the difference CSphmomentum difference; double E_tilde_difference; get_difference(jet1,jet2,&difference,&E_tilde_difference); // use the following relation: pt1^2 - pt2^2 = (pt1+pt2)*(pt1-pt2) double qdiff; CSphmomentum sum = jet1.v ; sum += jet2.v; double E_tilde_sum = jet1.E_tilde + jet2.E_tilde; // depending on the choice of ordering variable, set the result switch (split_merge_scale){ case SM_Etilde: qdiff = E_tilde_sum*E_tilde_difference; break; case SM_E: qdiff = sum.E*difference.E; break; default: throw siscone::Csiscone_error("Unsupported split-merge scale choice: " + SM_scale_name()); } res = qdiff > 0; } #endif // EPSILON_SPLITMERGE return res; } /// return a name for the sm scale choice /// NB: used internally and also by fastjet std::string split_merge_scale_name(Esplit_merge_scale sms) { switch(sms) { case SM_E: return "E (IR unsafe for pairs of identical decayed heavy particles)"; case SM_Etilde: return "Etilde (sum of E.[1+sin^2(theta_{i,jet})])"; default: return "[SM scale without a name]"; } } // get the difference between 2 jets // - j1 first jet // - j2 second jet // - v jet1-jet2 // - pt_tilde jet1-jet2 pt_tilde // return true if overlapping, false if disjoint //----------------------------------------------- void CSphsplit_merge_ptcomparison::get_difference(const CSphjet &j1, const CSphjet &j2, CSphmomentum *v, double *E_tilde) const { int i1,i2; // initialise i1=i2=0; *v = CSphmomentum(); *E_tilde = 0.0; CSph3vector jet1_axis = j1.v; //jet1_axis /= j1.v._norm; jet1_axis /= j1.v.E; CSph3vector jet2_axis = j2.v; //jet2_axis /= j2.v._norm; jet2_axis /= j2.v.E; // compute overlap // at the same time, we store union in indices // note tat for Etilde, we'll add the direct energy contributino at the end do{ if (j1.contents[i1]==j2.contents[i2]) { const CSphmomentum & p = (*particles)[j1.contents[i1]]; (*E_tilde) += p.E*((norm2_cross_product3(p,jet1_axis)-norm2_cross_product3(p,jet2_axis))/(*particles_norm2)[j1.contents[i1]]); i1++; i2++; } else if (j1.contents[i1]j2.contents[i2]){ const CSphmomentum &p = (*particles)[j2.contents[i2]]; (*v) -= p; (*E_tilde) -= p.E*norm2_cross_product3(p,jet2_axis)/(*particles_norm2)[j2.contents[i2]]; i2++; } else { throw siscone::Csiscone_error("get_non_overlap reached part it should never have seen..."); } } while ((i1E; } /******************************************************** * class CSphsplit_merge implementation * * Class used to split and merge jets. * ********************************************************/ // default ctor //-------------- CSphsplit_merge::CSphsplit_merge(){ merge_identical_protocones = false; #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES #ifdef MERGE_IDENTICAL_PROTOCONES_DEFAULT_TRUE merge_identical_protocones = true; #endif #endif indices = NULL; // ensure that ptcomparison points to our set of particles (though params not correct) ptcomparison.particles = &particles; ptcomparison.particles_norm2 = &particles_norm2; candidates.reset(new multiset(ptcomparison)); // no hardest cut (col-unsafe) SM_var2_hardest_cut_off = -1.0; // no energy cutoff for the particles to put in p_uncol_hard stable_cone_soft_E2_cutoff = -1.0; // no pt-weighted splitting use_E_weighted_splitting = false; } // default dtor //-------------- CSphsplit_merge::~CSphsplit_merge(){ full_clear(); } // initialisation function // - _particles list of particles // - protocones list of protocones (initial jet candidates) // - R2 cone radius (squared) // - Emin minimal energy allowed for jets //------------------------------------------------------------- int CSphsplit_merge::init(vector & /*_particles*/, vector *protocones, double R2, double Emin){ // browse protocones return add_protocones(protocones, R2, Emin); } // initialisation function for particle list // - _particles list of particles //------------------------------------------------------------- int CSphsplit_merge::init_particles(vector &_particles){ full_clear(); // compute the list of particles // here, we do not need to throw away particles // with infinite rapidity (colinear with the beam) particles = _particles; n = particles.size(); // store the particle norm^2 particles_norm2.resize(n); for (int i=0;i(ptcomparison)); // start off with huge number most_ambiguous_split = numeric_limits::max(); jets.clear(); #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES if (merge_identical_protocones) cand_refs.clear(); #endif p_remain.clear(); return 0; } // full clearance //---------------- int CSphsplit_merge::full_clear(){ partial_clear(); // clear previously allocated memory if (indices != NULL){ delete[] indices; } particles.clear(); return 0; } // build the list 'p_uncol_hard' from p_remain by clustering collinear particles // note that thins in only used for stable-cone detection // so the parent_index field is unnecessary //------------------------------------------------------------------------- int CSphsplit_merge::merge_collinear_and_remove_soft(){ int i,j; vector p_sorted; bool collinear; double dphi; p_uncol_hard.clear(); // we first sort the particles according to their theta angle for (i=0;iM_PI) dphi = twopi-dphi; if (dphi *protocones, double R2, double Emin){ int i; CSphmomentum *c; CSphmomentum *v; double tan2R; CSphjet jet; if (protocones->size()==0) return 1; E_min = Emin; double R = sqrt(R2); tan2R = tan(R); tan2R *= tan2R; #ifdef DEBUG_SPLIT_MERGE cout << "particle list: "; for (int i2=0;i2::iterator p_it = protocones->begin();p_it != protocones->end();p_it++){ // initialise variables c = &(*p_it); // browse particles to create cone contents // note that jet is always initialised with default values at this level jet.v = CSphmomentum(); jet.contents.clear(); for (i=0;iparent_index); jet.v+= *v; v->index=0; } } jet.n=jet.contents.size(); // compute Etilde for that jet. // we can't do that before as it requires knowledge of the jet axis // which has just been computed. compute_Etilde(jet); // set the momentum in protocones // (it was only known through its spatial coordinates up to now) *c = jet.v; c->build_thetaphi(); // set the jet range jet.range=CSphtheta_phi_range(c->_theta,c->_phi,R); #ifdef DEBUG_SPLIT_MERGE cout << "adding protojet: "; for (int i2=0;i2size()==0) return 0; if (overlap_tshold>=1.0 || overlap_tshold <= 0) { ostringstream message; message << "Illegal value for overlap_tshold, f = " << overlap_tshold; message << " (legal values are 0size()>0){ // browse for the first jet j1 = candidates->begin(); // if hardest jet does not pass threshold then nothing else will // either so one stops the split merge. //if (j1->sm_var2sm_var2end()){ #ifdef DEBUG_SPLIT_MERGE show(); #endif // check overlapping if (get_overlap(*j1, *j2, &overlap2)){ // check if overlapping energy passes threshold // Note that this depends on the ordering variable #ifdef DEBUG_SPLIT_MERGE cout << "overlap between cdt 1 and cdt " << j2_relindex+1 << " with overlap " << sqrt(overlap2)/j2->v.E << endl<v.E)){ // split jets split(j1, j2); // update iterators j2 = j1 = candidates->begin(); j2_relindex = 0; } else { // merge jets merge(j1, j2); // update iterators j2 = j1 = candidates->begin(); j2_relindex = 0; } } // watch out: split/merge might have caused new jets with E < // Emin to disappear, so the total number of jets may // have changed by more than expected and j2 might already by // the end of the candidates list... j2_relindex++; if (j2 != candidates->end()) j2++; } // end of loop on the second jet if (j1 != candidates->end()) { // all "second jet" passed without overlapping // (otherwise we won't leave the j2 loop) // => store jet 1 as real jet jets.push_back(*j1); jets[jets.size()-1].v.build_thetaphi(); jets[jets.size()-1].v.build_norm(); // a bug where the contents has non-zero size has been cropping // up in many contexts -- so catch it! assert(j1->contents.size() > 0); jets[jets.size()-1].pass = particles[j1->contents[0]].index; #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES cand_refs.erase(j1->v.ref); #endif candidates->erase(j1); } } } while (candidates->size()>0); // sort jets by Energy sort(jets.begin(), jets.end(), jets_E_less); #ifdef DEBUG_SPLIT_MERGE show(); #endif return jets.size(); } // save the event on disk // - flux stream used to save jet contents //-------------------------------------------- int CSphsplit_merge::save_contents(FILE *flux){ jet_iterator it_j; CSphjet *j1; int i1, i2; fprintf(flux, "# %d jets found\n", (int) jets.size()); fprintf(flux, "# columns are: px, py, pz, E and number of particles for each jet\n"); for (it_j = jets.begin(), i1=0 ; it_j != jets.end() ; it_j++, i1++){ j1 = &(*it_j); fprintf(flux, "%e\t%e\t%e\t%e\t%d\n", j1->v.px, j1->v.py, j1->v.pz, j1->v.E, j1->n); } fprintf(flux, "# jet contents\n"); fprintf(flux, "# columns are: px, py, pz, E, particle index and jet number\n"); for (it_j = jets.begin(), i1=0 ; it_j != jets.end() ; it_j++, i1++){ j1 = &(*it_j); for (i2=0;i2n;i2++) fprintf(flux, "%e\t%e\t%e\t%e\t%d\t%d\n", particles[j1->contents[i2]].px, particles[j1->contents[i2]].py, particles[j1->contents[i2]].pz, particles[j1->contents[i2]].E, j1->contents[i2], i1); } return 0; } // show current jets/candidate status //------------------------------------ int CSphsplit_merge::show(){ jet_iterator it_j; cjet_iterator it_c; CSphjet *j; const CSphjet *c; int i1, i2; for (it_j = jets.begin(), i1=0 ; it_j != jets.end() ; it_j++, i1++){ j = &(*it_j); fprintf(stdout, "jet %2d: %e\t%e\t%e\t%e\t", i1+1, j->v.px, j->v.py, j->v.pz, j->v.E); for (i2=0;i2n;i2++) fprintf(stdout, "%d ", j->contents[i2]); fprintf(stdout, "\n"); } for (it_c = candidates->begin(), i1=0 ; it_c != candidates->end() ; it_c++, i1++){ c = &(*it_c); fprintf(stdout, "cdt %2d: %e\t%e\t%e\t%e\t%e\t", i1+1, c->v.px, c->v.py, c->v.pz, c->v.E, sqrt(c->sm_var2)); for (i2=0;i2n;i2++) fprintf(stdout, "%d ", c->contents[i2]); fprintf(stdout, "\n"); } fprintf(stdout, "\n"); return 0; } // get the overlap between 2 jets // - j1 first jet // - j2 second jet // - overlap2 returned overlap^2 (determined by the choice of SM variable) // return true if overlapping, false if disjoint //--------------------------------------------------------------------- bool CSphsplit_merge::get_overlap(const CSphjet &j1, const CSphjet &j2, double *overlap2){ // check if ranges overlap if (!is_range_overlap(j1.range,j2.range)) return false; int i1,i2; bool is_overlap; // initialise i1=i2=idx_size=0; is_overlap = false; CSphmomentum v; // compute overlap // at the same time, we store union in indices do{ if (j1.contents[i1]j2.contents[i2]){ indices[idx_size] = j2.contents[i2]; i2++; } else { // (j1.contents[i1]==j2.contents[i2]) v += particles[j2.contents[i2]]; indices[idx_size] = j2.contents[i2]; i1++; i2++; is_overlap = true; } idx_size++; } while ((i1" all over the place const CSphjet & j1 = * it_j1; const CSphjet & j2 = * it_j2; i1=i2=0; jet2.v = jet1.v = CSphmomentum(); // compute centroids // When use_E_weighted_splitting is activated, the // "geometrical" distance is weighted by the inverse // of the E of the protojet // This is stored in E{1,2}_weight E1_weight = (use_E_weighted_splitting) ? 1.0/j1.v.E/j1.v.E : 1.0; E2_weight = (use_E_weighted_splitting) ? 1.0/j2.v.E/j2.v.E : 1.0; // compute jet splitting do{ if (j1.contents[i1]_theta,v->_phi); } else if (j1.contents[i1]>j2.contents[i2]){ // particle i2 belong only to jet 2 v = &(particles[j2.contents[i2]]); jet2.contents.push_back(j2.contents[i2]); jet2.v += *v; //jet2.pt_tilde += pt[j2.contents[i2]]; i2++; jet2.range.add_particle(v->_theta,v->_phi); } else { // (j1.contents[i1]==j2.contents[i2]) // common particle, decide which is the closest centre v = &(particles[j1.contents[i1]]); //TODO: improve this brutal use of atan2 and sqrt !!!! //? what when == ? // When use_E_weighted_splitting is activated, the // "geometrical" distance is weighted by the inverse // of the E of the protojet double d1 = get_distance(&(j1.v), v)*E1_weight; double d2 = get_distance(&(j2.v), v)*E2_weight; // do bookkeeping on most ambiguous split if (fabs(d1-d2) < most_ambiguous_split) most_ambiguous_split = fabs(d1-d2); if (d1_theta,v->_phi); } else { // particle i2 belong only to jet 2 jet2.contents.push_back(j2.contents[i2]); jet2.v += *v; //jet2.pt_tilde += pt[j2.contents[i2]]; jet2.range.add_particle(v->_theta,v->_phi); } i1++; i2++; } } while ((i1_theta,v->_phi); } while (i2_theta,v->_phi); } // finalise jets jet1.n = jet1.contents.size(); jet2.n = jet2.contents.size(); // now the jet axis is known, we can compute Etilde compute_Etilde(jet1); compute_Etilde(jet2); // remove previous jets #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES cand_refs.erase(j1.v.ref); cand_refs.erase(j2.v.ref); #endif candidates->erase(it_j1); candidates->erase(it_j2); // reinsert new ones insert(jet1); insert(jet2); return true; } // merge the two given jet. // during this procedure, the jets j1 & j2 are replaced // by 1 single jets containing both of them. // - it_j1 iterator of the first jet in 'candidates' // - it_j2 iterator of the second jet in 'candidates' // return true on success, false on error //////////////////////////////////////////////////////////////// bool CSphsplit_merge::merge(cjet_iterator &it_j1, cjet_iterator &it_j2){ CSphjet jet; int i; // build new jet // note: particles within j1 & j2 have already been stored in indices for (i=0;irange, it_j2->range); // remove old candidates #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES if (merge_identical_protocones){ cand_refs.erase(it_j1->v.ref); cand_refs.erase(it_j2->v.ref); } #endif candidates->erase(it_j1); candidates->erase(it_j2); // reinsert new candidate insert(jet); return true; } /** * Check whether or not a jet has to be inserted in the * list of protojets. If it has, set its sm_variable and * insert it to the list of protojets. */ bool CSphsplit_merge::insert(CSphjet &jet){ // eventually check that no other candidate are present with the // same cone contents. We recall that this automatic merging of // identical protocones can lead to infrared-unsafe situations. #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES if ((merge_identical_protocones) && (!cand_refs.insert(jet.v.ref).second)) return false; #endif // check that the protojet has large enough energy if (jet.v.Einsert(jet); return true; } /** * given a 4-momentum and its associated pT, return the * variable that has to be used for SM * \param v 4 momentum of the protojet * \param pt_tilde pt_tilde of the protojet */ double CSphsplit_merge::get_sm_var2(CSphmomentum &v, double &E_tilde){ switch(ptcomparison.split_merge_scale) { case SM_E: return v.E*v.E; case SM_Etilde: return E_tilde*E_tilde; default: throw siscone::Csiscone_error("Unsupported split-merge scale choice: " + ptcomparison.SM_scale_name()); } return 0.0; } /// compute Etilde for a given jet void CSphsplit_merge::compute_Etilde(CSphjet &jet){ jet.v.build_norm(); jet.E_tilde=0.0; CSph3vector jet_axis = jet.v; //if (jet.v._norm==0){ // jet_axis = CSph3vector(0.0,0.0,0.0); //} else { jet_axis/=jet.v.E; //} //cout << "~~~ Axis: " << jet.v.px << " " << jet.v.py << " " << jet.v.pz << " " << jet.v._norm << endl; //cout << "~~~ Axis: " << jet_axis.px << " " << jet_axis.py << " " << jet_axis.pz << endl; for (vector::iterator cont_it=jet.contents.begin(); cont_it!=jet.contents.end(); cont_it++){ const CSphmomentum &p = particles[*cont_it]; jet.E_tilde+=p.E*(1.0+norm2_cross_product3(p,jet_axis)/particles_norm2[*cont_it]); } } } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/hash.cpp0000644000175000017500000001610511766120144024672 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: hash.cpp // // Description: source file for classes sph_hash_element and sph_hash_cones // // This file is part of the SISCone project. // // WARNING: this is not the main SISCone trunk but // // an adaptation to spherical coordinates // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006-2008 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 294 $// // $Date:: 2009-05-01 17:15:04 +0200 (Fri, 01 May 2009) $// /////////////////////////////////////////////////////////////////////////////// #include #include #include "hash.h" #include namespace siscone_spherical{ using namespace std; /************************************************************** * implementation of sph_hash_cones * * list of cones candidates. * * We store in this class all the sph_hash_element and give * * functions to manipulate them. * **************************************************************/ // constructor with initialisation // - _Np number of particles // - _radius cone radius //----------------------------------- sph_hash_cones::sph_hash_cones(int _Np, double _radius){ int i; n_cones = 0; #ifdef DEBUG_STABLE_CONES n_occupied_cells = 0; #endif // determine hash size // for a ymax=5 and R=0.7, we observed an occupancy around 1/8 N^2 ~ N2 R2/4 //mask = 1 << (int) (2*log(double(_Np))/log(2.0)); //if (mask<=1) mask=2; int nbits = (int) (log(_Np*_radius*_radius*_Np/4.0)/log(2.0)); if (nbits<1) nbits=1; mask = 1 << nbits; // create hash hash_array = new sph_hash_element*[mask]; mask--; // set the array to 0 //? needed ? for (i=0;inext; delete elm; } } delete[] hash_array; } /* * insert a new candidate into the hash. * - v 4-momentum of the cone to add * - parent parent particle defining the cone * - child child particle defining the cone * - p_io whether the parent has to belong to the cone or not * - c_io whether the child has to belong to the cone or not * return 0 on success, 1 on error ***********************************************************************/ int sph_hash_cones::insert(CSphmomentum *v, CSphmomentum *parent, CSphmomentum *child, bool p_io, bool c_io){ sph_hash_element *elm; int index = (v->ref.ref[0]) & mask; // check the array cell corresponding to our reference elm = hash_array[index]; #ifdef DEBUG_STABLE_CONES if (elm==NULL) n_occupied_cells++; #endif do{ // if it is not present, add it if (elm==NULL){ // create element elm = new sph_hash_element; // set its varibles // Note: at this level, eta and phi have already been computed // through CSphmomentum::build_thetaphi. elm->centre = *v; // if at least one of the two is_closer tests gives a result != from the expected, // the || will be true hence !(...) false as wanted elm->is_stable = !((is_closer(v, parent, tan2R)^p_io)||(is_closer(v, child, tan2R)^c_io)); //cout << "-- new status of " << v->ref[0] << ":" << elm->is_stable << endl; // update hash elm->next = hash_array[index]; hash_array[index] = elm; n_cones++; return 0; } // if the cone is already there, simply update stability status if (v->ref == elm->centre.ref){ // there is only an update to perform to see if the cone is still stable if (elm->is_stable){ elm->is_stable = !((is_closer(v, parent, tan2R)^p_io)||(is_closer(v, child, tan2R)^c_io)); //cout << " parent/child: " // << parent->ref[0] << ":" << is_closer(v, parent) << ":" << p_io << " " // << child->ref[0] << ":" << is_closer(v, child) << ":" << c_io << endl; //cout << "-- rep status of " << v->ref[0] << ":" << elm->is_stable << endl; //cout << v->eta << " " << v->phi << endl; //cout << (child->eta) << " " << child->phi << endl; } return 0; } elm = elm->next; } while (1); return 1; } /* * insert a new candidate into the hash. * - v 4-momentum of te cone to add * Note, in this case, we assume stability. We also assume * that eta and phi are computed for v * return 0 on success, 1 on error ***********************************************************************/ int sph_hash_cones::insert(CSphmomentum *v){ sph_hash_element *elm; int index = (v->ref.ref[0]) & mask; //cout << "-- stable candidate: " << v->ref[0] << ":" << endl; // check the array cell corresponding to our reference elm = hash_array[index]; do{ // if it is not present, add it if (elm==NULL){ // create element elm = new sph_hash_element; // set its varibles // Note: at this level, eta and phi have already been computed // through CSphmomentum::build_thetaphi. elm->centre = *v; elm->is_stable = true; // update hash elm->next = hash_array[index]; hash_array[index] = elm; n_cones++; return 0; } // if the cone is already there, we have nothing to do if (v->ref == elm->centre.ref){ return 0; } elm = elm->next; } while (1); return 1; } } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/geom_2d.h0000644000175000017500000001105511766120144024727 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: geom_2d.h // // Description: header file for two-dimensional geometry tools // // This file is part of the SISCone project. // // WARNING: this is not the main SISCone trunk but // // an adaptation to spherical coordinates // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006-2008 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 268 $// // $Date:: 2009-03-12 21:24:16 +0100 (Thu, 12 Mar 2009) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __SPH_GEOM_2D_H__ #define __SPH_GEOM_2D_H__ #include #include #include #include #ifndef M_PI #define M_PI 3.141592653589793238462643383279502884197 #endif namespace siscone_spherical{ /** * \class CSphtheta_phi_range * \brief class for holding a covering range in eta-phi * * This class deals with ranges in the eta-phi plane. It * implements methods to test if two ranges overlap and * to take the union of two overlapping intervals. */ class CSphtheta_phi_range{ public: /// default ctor CSphtheta_phi_range(); /// ctor with initialisation /// we initialise with a centre (in theta,phi) and a radius /// \param c_theta theta coordinate of the centre /// \param c_phi phi coordinate of the centre /// \param R radius CSphtheta_phi_range(double c_theta, double c_phi, double R); /// assignment of range /// \param r range to assign to current one CSphtheta_phi_range& operator = (const CSphtheta_phi_range &r); /// add a particle to the range /// \param theta theta coordinate of the particle /// \param phi phi coordinate of the particle /// \return 0 on success, 1 on error int add_particle(const double theta, const double phi); /// theta range as a binary coding of covered cells unsigned int theta_range; /// phi range as a binary coding of covered cells unsigned int phi_range; /// extremal value for theta static double theta_min; ///< minimal value for theta (set to 0) static double theta_max; ///< maximal value for theta (set to pi) private: /// return the cell index corrsponding to an theta value inline unsigned int get_theta_cell(double theta){ return (unsigned int) (1 << ((int) (32*((theta-theta_min)/(theta_max-theta_min))))); } /// return the cell index corrsponding to a phi value inline unsigned int get_phi_cell(double phi){ return (unsigned int) (1 << ((int) (32*phi/twopi+16)%32)); } }; /// test overlap /// \param r1 first range /// \param r2 second range /// \return true if overlap, false otherwise. bool is_range_overlap(const CSphtheta_phi_range &r1, const CSphtheta_phi_range &r2); /// compute union /// Note: we assume that the two intervals overlap /// \param r1 first range /// \param r2 second range /// \return union of the two ranges const CSphtheta_phi_range range_union(const CSphtheta_phi_range &r1, const CSphtheta_phi_range &r2); } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/momentum.cpp0000644000175000017500000002015511766120144025610 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: momentum.cpp // // Description: source file for 4-momentum class Cmomentum // // This file is part of the SISCone project. // // WARNING: this is not the main SISCone trunk but // // an adaptation to spherical coordinates // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006-2008 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 255 $// // $Date:: 2008-07-12 17:40:35 +0200 (Sat, 12 Jul 2008) $// /////////////////////////////////////////////////////////////////////////////// #include "momentum.h" #include #include namespace siscone_spherical{ /************************************************************************* * class CSph3vector * * This class contains the information for particle or group of * * particles management. * *************************************************************************/ // default ctor //-------------- CSph3vector::CSph3vector(){ _theta = _phi = _norm = 0.0; px = py = pz = 0.0; ref = siscone::Creference(); } // ctor with initialisation //-------------------------- CSph3vector::CSph3vector(double _px, double _py, double _pz){ px = _px; py = _py; pz = _pz; // compute the norm build_norm(); ref = siscone::Creference(); } // default dtor //-------------- CSph3vector::~CSph3vector(){ } // assignment of vectors //----------------------- CSph3vector& CSph3vector::operator = (const CSph3vector &v){ px = v.px; py = v.py; pz = v.pz; _norm = v._norm; _theta = v._theta; _phi = v._phi; ref = v.ref; return *this; } // addition of vectors //------------------------------------------------ const CSph3vector CSph3vector::operator + (const CSph3vector &v){ CSph3vector tmp = *this; return tmp+=v; } // subtraction of vectors //------------------------------------------------ const CSph3vector CSph3vector::operator - (const CSph3vector &v){ CSph3vector tmp = *this; return tmp-=v; } // division by constant //------------------------------------------------ const CSph3vector CSph3vector::operator / (const double &r){ CSph3vector tmp = *this; return tmp/=r; } // incrementation //------------------------------------------------ CSph3vector& CSph3vector::operator += (const CSph3vector &v){ px+=v.px; py+=v.py; pz+=v.pz; return *this; } // decrementation //------------------------------------------------ CSph3vector& CSph3vector::operator -= (const CSph3vector &v){ px-=v.px; py-=v.py; pz-=v.pz; return *this; } // multiplication by a constant //------------------------------------------------ CSph3vector& CSph3vector::operator *= (const double &r){ px*=r; py*=r; pz*=r; return *this; } // division by a constant //------------------------------------------------ CSph3vector& CSph3vector::operator /= (const double &r){ px/=r; py/=r; pz/=r; _norm/=r; return *this; } // build norm from 3-momentum info void CSph3vector::build_norm(){ _norm = norm(); } // build norm from 3-momentum info void CSph3vector::build_thetaphi(){ _theta = theta(); _phi = phi(); } // for this direction, compute the two reference directions // used to measure angles void CSph3vector::get_angular_directions(CSph3vector &angular_dir1, CSph3vector &angular_dir2){ if (px < py){ if (pz < px){ // z smallest angular_dir1 = CSph3vector(-py, px, 0.0); } else { // x smallest angular_dir1 = CSph3vector(0.0, -pz, py); } } else { if (pz < py){ // z smallest angular_dir1 = CSph3vector(-py, px, 0.0); } else { // y smallest angular_dir1 = CSph3vector(-pz, 0.0, px); } } angular_dir2 = cross_product3(*this, angular_dir1); // We'll simply take x & y so the reflection symmetry is not broken //angular_dir1 = CSph3vector(0.0, -pz, py); //angular_dir2 = CSph3vector(-pz, 0.0, -px); } /************************************************************************* * class CSphmomentum * * This class contains the information for particle or group of * * particles management. * * It includes all Lorentz properties as well as tools for summing them. * *************************************************************************/ // default ctor //-------------- CSphmomentum::CSphmomentum(){ E=0.0; index = -1; } // ctor with initialisation //-------------------------- CSphmomentum::CSphmomentum(double _px, double _py, double _pz, double _E) : CSph3vector(_px, _py, _pz) { E = _E; // compute the angles build_thetaphi(); } // ctor with initialisation //-------------------------- CSphmomentum::CSphmomentum(CSph3vector &_v, double _E) : CSph3vector(_v.px, _v.py, _v.pz) { E = _E; } // default dtor //-------------- CSphmomentum::~CSphmomentum(){ } // assignment of vectors //----------------------- CSphmomentum& CSphmomentum::operator = (const CSphmomentum &v){ px = v.px; py = v.py; pz = v.pz; E = v.E; _norm = v._norm; _theta = v._theta; _phi = v._phi; ref = v.ref; return *this; } // addition of vectors // !!! WARNING !!! no updating of eta and phi !!! //------------------------------------------------ const CSphmomentum CSphmomentum::operator + (const CSphmomentum &v){ CSphmomentum tmp = *this; return tmp+=v; } // incrementation of vectors // !!! WARNING !!! no updating of eta and phi !!! //------------------------------------------------ CSphmomentum& CSphmomentum::operator += (const CSphmomentum &v){ px+=v.px; py+=v.py; pz+=v.pz; E +=v.E; ref+=v.ref; return *this; } // decrementation of vectors // !!! WARNING !!! no updating of eta and phi !!! //------------------------------------------------ CSphmomentum& CSphmomentum::operator -= (const CSphmomentum &v){ px-=v.px; py-=v.py; pz-=v.pz; E -=v.E; ref-=v.ref; return *this; } // ordering of two vectors // the default ordering is w.r.t. their references //------------------------------------------------- bool operator < (const CSphmomentum &v1, const CSphmomentum &v2){ return v1.ref < v2.ref; } // ordering of vectors in eta (e.g. used in collinear tests) //----------------------------------------------------------- bool momentum_theta_less(const CSphmomentum &v1, const CSphmomentum &v2){ return v1._theta < v2._theta; } // ordering of vectors in pt //--------------------------- bool momentum_pt_less(const CSphmomentum &v1, const CSphmomentum &v2){ return v1.perp2() < v2.perp2(); } } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/Makefile.in0000644000175000017500000006527212233506730025320 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = siscone/spherical DIST_COMMON = README $(sisconeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/siscone/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(sisconeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libsiscone_spherical_la_LIBADD = am_libsiscone_spherical_la_OBJECTS = \ libsiscone_spherical_la-geom_2d.lo \ libsiscone_spherical_la-momentum.lo \ libsiscone_spherical_la-hash.lo \ libsiscone_spherical_la-vicinity.lo \ libsiscone_spherical_la-protocones.lo \ libsiscone_spherical_la-split_merge.lo \ libsiscone_spherical_la-siscone.lo libsiscone_spherical_la_OBJECTS = \ $(am_libsiscone_spherical_la_OBJECTS) libsiscone_spherical_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/siscone depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsiscone_spherical_la_SOURCES) DIST_SOURCES = $(libsiscone_spherical_la_SOURCES) HEADERS = $(sisconeinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # build information for the SISCone library # this is built as a libtool lib. lib_LTLIBRARIES = libsiscone_spherical.la # On top of the configured flags, we need to access the the # top dir for includes of the form to work # Note that we use "siscone/..." for clarity. # Then we need to access the config.h file which is one step away # since we use (for consistency), this means ../.. libsiscone_spherical_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/../.. -I../.. libsiscone_spherical_la_SOURCES = geom_2d.cpp momentum.cpp hash.cpp\ vicinity.cpp protocones.cpp split_merge.cpp siscone.cpp EXTRA_DIST = makefile.static # install the SISCone headers sisconeincludedir = $(includedir)/siscone/spherical sisconeinclude_HEADERS = geom_2d.h\ hash.h\ momentum.h\ protocones.h\ siscone.h\ split_merge.h\ vicinity.h all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu siscone/spherical/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu siscone/spherical/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsiscone_spherical.la: $(libsiscone_spherical_la_OBJECTS) $(libsiscone_spherical_la_DEPENDENCIES) $(libsiscone_spherical_la_LINK) -rpath $(libdir) $(libsiscone_spherical_la_OBJECTS) $(libsiscone_spherical_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsiscone_spherical_la-geom_2d.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsiscone_spherical_la-hash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsiscone_spherical_la-momentum.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsiscone_spherical_la-protocones.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsiscone_spherical_la-siscone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsiscone_spherical_la-split_merge.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsiscone_spherical_la-vicinity.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libsiscone_spherical_la-geom_2d.lo: geom_2d.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -MT libsiscone_spherical_la-geom_2d.lo -MD -MP -MF $(DEPDIR)/libsiscone_spherical_la-geom_2d.Tpo -c -o libsiscone_spherical_la-geom_2d.lo `test -f 'geom_2d.cpp' || echo '$(srcdir)/'`geom_2d.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsiscone_spherical_la-geom_2d.Tpo $(DEPDIR)/libsiscone_spherical_la-geom_2d.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='geom_2d.cpp' object='libsiscone_spherical_la-geom_2d.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -c -o libsiscone_spherical_la-geom_2d.lo `test -f 'geom_2d.cpp' || echo '$(srcdir)/'`geom_2d.cpp libsiscone_spherical_la-momentum.lo: momentum.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -MT libsiscone_spherical_la-momentum.lo -MD -MP -MF $(DEPDIR)/libsiscone_spherical_la-momentum.Tpo -c -o libsiscone_spherical_la-momentum.lo `test -f 'momentum.cpp' || echo '$(srcdir)/'`momentum.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsiscone_spherical_la-momentum.Tpo $(DEPDIR)/libsiscone_spherical_la-momentum.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='momentum.cpp' object='libsiscone_spherical_la-momentum.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -c -o libsiscone_spherical_la-momentum.lo `test -f 'momentum.cpp' || echo '$(srcdir)/'`momentum.cpp libsiscone_spherical_la-hash.lo: hash.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -MT libsiscone_spherical_la-hash.lo -MD -MP -MF $(DEPDIR)/libsiscone_spherical_la-hash.Tpo -c -o libsiscone_spherical_la-hash.lo `test -f 'hash.cpp' || echo '$(srcdir)/'`hash.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsiscone_spherical_la-hash.Tpo $(DEPDIR)/libsiscone_spherical_la-hash.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='hash.cpp' object='libsiscone_spherical_la-hash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -c -o libsiscone_spherical_la-hash.lo `test -f 'hash.cpp' || echo '$(srcdir)/'`hash.cpp libsiscone_spherical_la-vicinity.lo: vicinity.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -MT libsiscone_spherical_la-vicinity.lo -MD -MP -MF $(DEPDIR)/libsiscone_spherical_la-vicinity.Tpo -c -o libsiscone_spherical_la-vicinity.lo `test -f 'vicinity.cpp' || echo '$(srcdir)/'`vicinity.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsiscone_spherical_la-vicinity.Tpo $(DEPDIR)/libsiscone_spherical_la-vicinity.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='vicinity.cpp' object='libsiscone_spherical_la-vicinity.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -c -o libsiscone_spherical_la-vicinity.lo `test -f 'vicinity.cpp' || echo '$(srcdir)/'`vicinity.cpp libsiscone_spherical_la-protocones.lo: protocones.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -MT libsiscone_spherical_la-protocones.lo -MD -MP -MF $(DEPDIR)/libsiscone_spherical_la-protocones.Tpo -c -o libsiscone_spherical_la-protocones.lo `test -f 'protocones.cpp' || echo '$(srcdir)/'`protocones.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsiscone_spherical_la-protocones.Tpo $(DEPDIR)/libsiscone_spherical_la-protocones.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='protocones.cpp' object='libsiscone_spherical_la-protocones.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -c -o libsiscone_spherical_la-protocones.lo `test -f 'protocones.cpp' || echo '$(srcdir)/'`protocones.cpp libsiscone_spherical_la-split_merge.lo: split_merge.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -MT libsiscone_spherical_la-split_merge.lo -MD -MP -MF $(DEPDIR)/libsiscone_spherical_la-split_merge.Tpo -c -o libsiscone_spherical_la-split_merge.lo `test -f 'split_merge.cpp' || echo '$(srcdir)/'`split_merge.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsiscone_spherical_la-split_merge.Tpo $(DEPDIR)/libsiscone_spherical_la-split_merge.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='split_merge.cpp' object='libsiscone_spherical_la-split_merge.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -c -o libsiscone_spherical_la-split_merge.lo `test -f 'split_merge.cpp' || echo '$(srcdir)/'`split_merge.cpp libsiscone_spherical_la-siscone.lo: siscone.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -MT libsiscone_spherical_la-siscone.lo -MD -MP -MF $(DEPDIR)/libsiscone_spherical_la-siscone.Tpo -c -o libsiscone_spherical_la-siscone.lo `test -f 'siscone.cpp' || echo '$(srcdir)/'`siscone.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libsiscone_spherical_la-siscone.Tpo $(DEPDIR)/libsiscone_spherical_la-siscone.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='siscone.cpp' object='libsiscone_spherical_la-siscone.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsiscone_spherical_la_CXXFLAGS) $(CXXFLAGS) -c -o libsiscone_spherical_la-siscone.lo `test -f 'siscone.cpp' || echo '$(srcdir)/'`siscone.cpp mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-sisconeincludeHEADERS: $(sisconeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(sisconeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(sisconeincludedir)" @list='$(sisconeinclude_HEADERS)'; test -n "$(sisconeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(sisconeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(sisconeincludedir)" || exit $$?; \ done uninstall-sisconeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(sisconeinclude_HEADERS)'; test -n "$(sisconeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(sisconeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(sisconeincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(sisconeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-sisconeincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-sisconeincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-sisconeincludeHEADERS \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-sisconeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/split_merge.h0000644000175000017500000003412411766120144025727 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: split_merge.h // // Description: header file for splitting/merging (contains the CJet class) // // This file is part of the SISCone project. // // WARNING: this is not the main SISCone trunk but // // an adaptation to spherical coordinates // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006-2008 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 309 $// // $Date:: 2011-08-09 12:33:15 +0200 (Tue, 09 Aug 2011) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __SPH_SPLIT_MERGE_H__ #define __SPH_SPLIT_MERGE_H__ #include #include "geom_2d.h" #include "momentum.h" #include #include #include #include #include namespace siscone_spherical{ /** * \class CSphjet * real Jet information. * * This class contains information for one single jet. * That is, first, its momentum carrying information * about its centre and pT, and second, its particle * contents */ class CSphjet{ public: /// default ctor CSphjet(); /// default dtor ~CSphjet(); CSphmomentum v; ///< jet momentum double E_tilde; ///< sum of E_i [ 1 +|p_i x p_J|^2/(|p_i|^2 E_J^2)] int n; ///< number of particles inside std::vector contents; ///< particle contents (list of indices) /// ordering variable used for ordering and overlap in the /// split--merge. This variable is automatically set either to /// E_tilde or E depending on the siscone parameter. /// /// Note that the default behaviour is E_tilde and that other /// choices may lead to infrared unsafe situations. /// /// Note: we use the square of the varible rather than the variable /// itself /// /// Note 2: for the overlap computation, we shall use the jet energy! double sm_var2; /// covered range in eta-phi CSphtheta_phi_range range; /// pass at which the jet has been found /// It starts at 0 (first pass), -1 means infinite rapidity int pass; }; /// ordering of jets in pt ///bool jets_pt_less(const CSphjet &j1, const CSphjet &j2); /// ordering of jets in energy (e.g. used in final jets ordering) bool jets_E_less(const CSphjet &j1, const CSphjet &j2); /// the choices of scale variable that can be used in the split-merge /// step, both for ordering the protojets and for measuing their /// overlap; E is defined in E-scheme (4-momentum) recombination; /// Etilde = \sum_{i\in jet} E_i [1+sin^2(theta_{i,jet})] /// /// NB: if one changes the order here, one _MUST_ also change the order /// in the SISCone plugin enum Esplit_merge_scale { SM_E, ///< Energy (IR unsafe with momentum conservation) SM_Etilde ///< sum_{i \in jet} E_i [1+sin^2(theta_iJ)] }; /// return the name of the split-merge scale choice std::string split_merge_scale_name(Esplit_merge_scale sms); /** * \class CSphsplit_merge_ptcomparison * a class that allows us to carry out comparisons of pt of jets, using * information from exact particle contents where necessary. */ class CSphsplit_merge_ptcomparison{ public: /// default ctor CSphsplit_merge_ptcomparison() : particles(0), split_merge_scale(SM_Etilde){}; /// return the name corresponding to the SM scale variable std::string SM_scale_name() const { return split_merge_scale_name(split_merge_scale);} std::vector * particles; ///< pointer to the list of particles std::vector * particles_norm2; ///< pointer to the particles's norm^2 /// comparison of 2 CSphjet bool operator()(const CSphjet &jet1, const CSphjet &jet2) const; /** * get the difference between 2 jets, calculated such that rounding * errors will not affect the result even if the two jets have * almost the same content (so that the difference is below the * rounding errors) * * \param j1 first jet * \param j2 second jet * \param v jet1-jet2 * \param E_tilde jet1-jet2 E_tilde */ void get_difference(const CSphjet &j1, const CSphjet &j2, CSphmomentum *v, double *E_tilde) const; /// the following parameter controls the variable we're using for /// the split-merge process i.e. the variable we use for /// 1. ordering jet candidates; /// 2. computing the overlap fraction of two candidates. /// The default value uses Etilde. The other alternative is E /// NOTE: Modifying the default choice can have nasty effects: /// - using E is IR-safe for QCD jets but the IR unsafety remains /// for back-to-back jets of unstable narrow-width particles /// (e.g. Higgs). /// Therefore, keeping the default value is strongly advised. Esplit_merge_scale split_merge_scale; }; // iterator types /// iterator definition for the jet candidates structure typedef std::multiset::iterator cjet_iterator; /// iterator definition for the jet structure typedef std::vector::iterator jet_iterator; /** * \class CSphsplit_merge * Class used to split and merge jets. */ class CSphsplit_merge{ public: /// default ctor CSphsplit_merge(); /// default dtor ~CSphsplit_merge(); ////////////////////////////// // initialisation functions // ////////////////////////////// /** * initialisation function * \param _particles list of particles * \param protocones list of protocones (initial jet candidates) * \param R2 cone radius (squared) * \param Emin minimal energy allowed for jets * \return 0 on success, 1 on error */ int init(std::vector &_particles, std::vector *protocones, double R2, double Emin=0.0); /** * initialisation function for particle list * \param _particles list of particles * \return 0 on success, 1 on error */ int init_particles(std::vector &_particles); /** * build initial list of left particles */ int init_pleft(); /** * use an energy-dependent boundary for splitting * When called with true, the criterium for splitting two protojets * will be to compare D1^2/kt1^2 vs. D2^2/kt2^2, the (anti-)kt-weighted * distance instead of the plain distance D1^2 vs. D2^2. * This can be set in order to produce more circular hard jets, * with the same underlying philosophy as for the anti-kt algorithm. * We thus expect a behaviour closer to the IterativeCone one. * By default, we use the standard D1^2 vs. D2^2 comparison and this * function is not called. */ inline int set_E_weighted_splitting(bool _use_E_weighted_splitting){ use_E_weighted_splitting = _use_E_weighted_splitting; return 0; } //////////////////////// // cleaning functions // //////////////////////// /// partial clearance int partial_clear(); /// full clearance int full_clear(); ///////////////////////////////// // main parts of the algorithm // ///////////////////////////////// /** * build the list 'p_uncol_hard' from p_remain by clustering * collinear particles * note that thins in only used for stable-cone detection * so the parent_index field is unnecessary * * Note that soft particles are not removed here * This is just a remnant from the trunk version */ int merge_collinear_and_remove_soft(); /** * add a list of protocones * \param protocones list of protocones (initial jet candidates) * \param R2 cone radius (squared) * \param Emin minimal emergy allowed for jets * \return 0 on success, 1 on error */ int add_protocones(std::vector *protocones, double R2, double Emin=0.0); /** * really do the splitting and merging * At the end, the vector jets is filled with the jets found. * the 'contents' field of each jets contains the indices * of the particles included in that jet. * \param overlap_tshold threshold for splitting/merging transition * \param Emin minimal energy allowed for jets * \return the number of jets is returned */ int perform(double overlap_tshold, double Emin=0.0); ////////////////////////////// // save and debug functions // ////////////////////////////// /// save final jets /// \param flux stream to save the jet contentss int save_contents(FILE *flux); /// show jets/candidates status int show(); // particle information int n; ///< number of particles std::vector particles; ///< list of particles std::vector particles_norm2; ///< norm^2 of the particle (3-vect part) int n_left; ///< numer of particles that does not belong to any jet std::vector p_remain; ///< list of particles remaining to deal with std::vector p_uncol_hard; ///< list of particles remaining with collinear clustering int n_pass; ///< index of the run /// minimal difference in squared distance between a particle and /// two overlapping protojets when doing a split (useful when /// testing approx. collinear safety) double most_ambiguous_split; // jets information std::vector jets; ///< list of jets // working entries int *indices; ///< maximal size array for indices works int idx_size; ///< number of elements in indices1 /// The following flag indicates that identical protocones /// are to be merged automatically each time around the split-merge /// loop and before anything else happens. /// /// This flag is only effective if ALLOW_MERGE_IDENTICAL_PROTOCONES /// is set in 'defines.h' /// Note that this lead to infrared-unsafety so it is disabled /// by default bool merge_identical_protocones; /// member used for detailed comparisons of pt's CSphsplit_merge_ptcomparison ptcomparison; /// stop split--merge when the SM_var of the hardest protojet /// is below this cut-off. /// This is not collinear-safe so you should not use this /// variable unless you really know what you are doing /// Note that the cut-off is set on the variable squared. double SM_var2_hardest_cut_off; /// Energy cutoff for the particles to put in p_uncol_hard /// this is meant to allow removing soft particles in the /// stable-cone search. double stable_cone_soft_E2_cutoff; private: /** * get the overlap between 2 jets * \param j1 first jet * \param j2 second jet * \param v returned overlap^2 (determined by the choice of SM variable) * \return true if overlapping, false if disjoint */ bool get_overlap(const CSphjet &j1, const CSphjet &j2, double *v); /** * split the two given jets. * during this procedure, the jets j1 & j2 are replaced * by 2 new jets. Common particles are associted to the * closest initial jet. * \param it_j1 iterator of the first jet in 'candidates' * \param it_j2 iterator of the second jet in 'candidates' * \param j1 first jet (CSphjet instance) * \param j2 second jet (CSphjet instance) * \return true on success, false on error */ bool split(cjet_iterator &it_j1, cjet_iterator &it_j2); /** * merge the two given jet. * during this procedure, the jets j1 & j2 are replaced * by 1 single jets containing both of them. * \param it_j1 iterator of the first jet in 'candidates' * \param it_j2 iterator of the second jet in 'candidates' * \return true on success, false on error */ bool merge(cjet_iterator &it_j1, cjet_iterator &it_j2); /** * Check whether or not a jet has to be inserted in the * list of protojets. If it has, set its sm_variable and * insert it to the list of protojets. * \param jet jet to insert */ bool insert(CSphjet &jet); /** * given a 4-momentum and its associated pT, return the * variable tht has to be used for SM * \param v 4 momentum of the protojet * \param E_tilde E_tilde of the protojet */ double get_sm_var2(CSphmomentum &v, double &E_tilde); /// compute Etilde for a given jet void compute_Etilde(CSphjet &j); // jet information /// list of jet candidates std::auto_ptr > candidates; /// minimal E double E_min; /** * do we have or not to use the energy-weighted splitting * (see description for set_E_weighted_splitting) * This will be false by default */ bool use_E_weighted_splitting; #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES /// checkxor for the candidates (to avoid having twice the same contents) std::set cand_refs; #endif }; } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/siscone.h0000644000175000017500000001441011766120144025054 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: siscone.h // // Description: header file for the main SISCone class // // This file is part of the SISCone project. // // WARNING: this is not the main SISCone trunk but // // an adaptation to spherical coordinates // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006-2008 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 325 $// // $Date:: 2011-11-25 12:41:17 +0100 (Fri, 25 Nov 2011) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __SPH_SISCONE_H__ #define __SPH_SISCONE_H__ #include "protocones.h" #include "split_merge.h" namespace siscone_spherical{ /** * \class CSphsiscone * final class: gather everything to compute the jet contents. * * This is the class user should use. * It computes the jet contents of a list of particles * given a cone radius and a threshold for splitting/merging. * * After the call to 'perform', the vector jets is filled with * the jets found. the 'contents' field of each jets contains * the indices of the particles included in that jet. */ class CSphsiscone : public CSphstable_cones, public CSphsplit_merge{ public: /// default ctor CSphsiscone(); /// default dtor ~CSphsiscone(); /** * compute the jets from a given particle set. * We are doing multiple passes such pass n_pass looks for jets among * all particles not put into jets during previous passes. * By default the number of passes is infinite (0). * \param _particles list of particles * \param _radius cone radius * \param _f shared energy threshold for splitting&merging * \param _n_pass_max maximum number of passes (0=full search) * \param _Emin minimum energy of the protojets * \param _split_merge_scale the scale choice for the split-merge procedure * NOTE: SM_Etilde * is always IR safe * SM_E * is IR unsafe for events with mom. conservation * * \return the number of jets found. */ int compute_jets(std::vector &_particles, double _radius, double _f, int _n_pass_max=0, double _Emin=0.0, Esplit_merge_scale _split_merge_scale=SM_Etilde); /** * recompute the jets with a different overlap parameter. * we use the same particles and R as in the preceeding call. * \param _f shared energy threshold for splitting&merging * \param _Emin minimum energy of the protojets * \param _split_merge_scale the scale choice for the split-merge procedure * split--merge variable * NOTE: using pt leads to IR unsafety for some events with momentum * conservation. So we strongly advise not to change the default * value. * \return the number of jets found, -1 if recomputation not allowed. */ int recompute_jets(double _f, double _Emin = 0.0, Esplit_merge_scale _split_merge_scale=SM_Etilde); /// list of protocones found pass-by-pass std::vector > protocones_list; // random number initialisation static bool init_done; ///< check random generator initialisation #ifdef DEBUG_STABLE_CONES int nb_hash_cones_total, nb_hash_occupied_total; #endif /** * A call to this function modifies the stream * used to print banners (by default cout). * * Please note that if you distribute 3rd party code * that links with SISCone, that 3rd party code must not * use this call turn off the printing of thw banner * by default. This requirement reflects the spirit of * clause 2c of the GNU Public License (v2), under which * SISCone is distributed. */ static void set_banner_stream(std::ostream * ostr) {_banner_ostr = ostr;} /** * returns a pointer to the stream to be used to print banners * (cout by default) */ static std::ostream * banner_stream() {return _banner_ostr;} private: bool rerun_allowed; ///< is recompute_jets allowed ? static std::ostream * _banner_ostr; ///< stream to use for banners }; // finally, a bunch of functions to access to // basic information (package name, version) //--------------------------------------------- /** * return SISCone package name. * This is nothing but "SISCone", it is a replacement to the * PACKAGE_NAME string defined in config.h and which is not * public by default. * \return the SISCone name as a string */ std::string siscone_package_name(); /** * return SISCone version number. * \return a string of the form "X.Y.Z" with possible additional tag * (alpha, beta, devel) to mention stability status */ std::string siscone_version(); } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/siscone.cpp0000644000175000017500000002237212233506640025414 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: siscone.cpp // // Description: source file for the main SISCone class // // This file is part of the SISCone project. // // WARNING: this is not the main SISCone trunk but // // an adaptation to spherical coordinates // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006-2008 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 341 $// // $Date:: 2013-04-08 12:21:06 +0200 (Mon, 08 Apr 2013) $// /////////////////////////////////////////////////////////////////////////////// //#ifdef HAVE_CONFIG_H #include //#else //#define PACKAGE_NAME "SISCone" //#define VERSION "2.0.6" //#warning "No config.h file available, using preset values" //#endif #include #include #include #include "momentum.h" #include "siscone.h" #include #include #include namespace siscone_spherical{ using namespace std; /*************************************************************** * CSphsiscone implementation * * final class: gather everything to compute the jet contents. * * * * This is the class user should use. * * It computes the jet contents of a list of particles * * given a cone radius and a threshold for splitting/merging. * ***************************************************************/ // default ctor //-------------- CSphsiscone::CSphsiscone(){ rerun_allowed = false; } // default dtor //-------------- CSphsiscone::~CSphsiscone(){ rerun_allowed = false; } bool CSphsiscone::init_done=false; std::ostream* CSphsiscone::_banner_ostr=&cout; /* * compute the jets from a given particle set doing multiple passes * such pass N looks for jets among all particles not put into jets * during previous passes. * - _particles list of particles * - _radius cone radius * - _f shared energy threshold for splitting&merging * - _n_pass_max maximum number of runs * - _Emin minimum energy of the protojets * - _split_merge_scale the scale choice for the split-merge procedure * NOTE: using pt leads to IR unsafety for some events with momentum * conservation. So we strongly advise not to change the default * value. * return the number of jets found. **********************************************************************/ int CSphsiscone::compute_jets(vector &_particles, double _radius, double _f, int _n_pass_max, double _Emin, Esplit_merge_scale _split_merge_scale){ // initialise random number generator if (!init_done){ // initialise random number generator siscone::ranlux_init(); // do not do this again init_done=true; // print the banner if (_banner_ostr != 0){ (*_banner_ostr) << "#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" << endl; (*_banner_ostr) << "# SISCone version " << setw(28) << left << siscone_version() << "o" << endl; (*_banner_ostr) << "# http://projects.hepforge.org/siscone o" << endl; (*_banner_ostr) << "# o" << endl; (*_banner_ostr) << "# This is SISCone: the Seedless Infrared Safe Cone Jet Algorithm o" << endl; (*_banner_ostr) << "# SISCone was written by Gavin Salam and Gregory Soyez o" << endl; (*_banner_ostr) << "# It is released under the terms of the GNU General Public License o" << endl; (*_banner_ostr) << "# o" << endl; (*_banner_ostr) << "# !!! WARNING !!! o" << endl; (*_banner_ostr) << "# This is the version of SISCone using spherical coordinates o" << endl; (*_banner_ostr) << "# o" << endl; (*_banner_ostr) << "# A description of the algorithm is available in the publication o" << endl; (*_banner_ostr) << "# JHEP 05 (2007) 086 [arXiv:0704.0292 (hep-ph)]. o" << endl; (*_banner_ostr) << "# Please cite it if you use SISCone. o" << endl; (*_banner_ostr) << "#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" << endl; (*_banner_ostr) << endl; _banner_ostr->flush(); } } // run some general safety tests (NB: f will be checked in split-merge) if (_radius <= 0.0 || _radius >= 0.5*M_PI) { ostringstream message; message << "Illegal value for cone radius, R = " << _radius << " (legal values are 00) && (_n_pass_max!=0)); rerun_allowed = true; // split & merge return perform(_f, _Emin); } /* * recompute the jets with a different overlap parameter. * we use the same particles and R as in the preceeding call. * - _f shared energy threshold for splitting&merging * - _Emin minimum Energy of the protojets * - _split_merge_scale the scale choice for the split-merge procedure * NOTE: using pt leads to IR unsafety for some events with momentum * conservation. So we strongly advise not to change the default * value. * return the number of jets found, -1 if recomputation not allowed. ********************************************************************/ int CSphsiscone::recompute_jets(double _f, double _Emin, Esplit_merge_scale _split_merge_scale){ if (!rerun_allowed) return -1; ptcomparison.split_merge_scale = _split_merge_scale; // restore particle list partial_clear(); init_pleft(); // initialise split/merge algorithm unsigned int i; for (i=0;i #include #include namespace siscone_spherical{ using namespace std; /************************************************************* * CSphvicinity_elm implementation * * element in the vicinity of a parent. * * class used to manage one points in the vicinity * * of a parent point. * *************************************************************/ // ordering pointers to CSphvicinity_elm //--------------------------------------- bool ve_less(CSphvicinity_elm *ve1, CSphvicinity_elm *ve2){ return ve1->angle < ve2->angle; } /************************************************************* * CSphvicinity implementation * * list of element in the vicinity of a parent. * * class used to manage the points which are in the vicinity * * of a parent point. The construction of the list can be * * made from a list of points or from a quadtree. * *************************************************************/ // default constructor //--------------------- CSphvicinity::CSphvicinity(){ n_part = 0; ve_list = NULL; #ifdef USE_QUADTREE_FOR_STABILITY_TEST quadtree = NULL; #endif parent = NULL; VR2 = VR = 0.0; } // constructor with initialisation //--------------------------------- CSphvicinity::CSphvicinity(vector &_particle_list){ parent = NULL; ve_list = NULL; #ifdef USE_QUADTREE_FOR_STABILITY_TEST quadtree = NULL; #endif cosVR = VR2 = tan2R = VR = 0.0; set_particle_list(_particle_list); } // default destructor //-------------------- CSphvicinity::~CSphvicinity(){ if (ve_list!=NULL) delete[] ve_list; #ifdef USE_QUADTREE_FOR_STABILITY_TEST if (quadtree!=NULL) delete quadtree; #endif } /* * set the particle_list * - particle_list list of particles (type CSphmomentum) * - n number of particles in the list ************************************************************/ void CSphvicinity::set_particle_list(vector &_particle_list){ int i,j; #ifdef USE_QUADTREE_FOR_STABILITY_TEST double eta_max=0.0; #endif // if the particle list is not empty, destroy it ! if (ve_list!=NULL){ delete[] ve_list; } vicinity.clear(); #ifdef USE_QUADTREE_FOR_STABILITY_TEST if (quadtree!=NULL) delete quadtree; #endif // allocate memory array for particles // Note: - we compute max for |eta| // - we allocate indices to particles n_part = 0; plist.clear(); pincluded.clear(); for (i=0;i<(int) _particle_list.size();i++){ // if a particle is colinear with the beam (infinite rapidity) // we do not take it into account //if (fabs(_particle_list[i].pz)!=_particle_list[i].E){ plist.push_back(_particle_list[i]); pincluded.push_back(siscone::Cvicinity_inclusion()); // zero inclusion status // the parent_index is handled in the split_merge because // of our multiple-pass procedure. // Hence, it is not required here any longer. // plist[n_part].parent_index = i; plist[n_part].index = n_part; // make sure the reference is randomly created plist[n_part].ref.randomize(); #ifdef USE_QUADTREE_FOR_STABILITY_TEST if (fabs(plist[n_part].eta)>eta_max) eta_max=fabs(plist[n_part].eta); #endif n_part++; //} } // allocate quadtree and vicinity_elm list // note: we set phi in [-pi:pi] as it is the natural range for atan2! ve_list = new CSphvicinity_elm[2*n_part]; #ifdef USE_QUADTREE_FOR_STABILITY_TEST eta_max+=0.1; quadtree = new siscone::Cquadtree(0.0, 0.0, eta_max, M_PI); #endif // append particle to the vicinity_elm list j = 0; for (i=0;iadd(&plist[i]); #endif ve_list[j].v = ve_list[j+1].v = &plist[i]; ve_list[j].is_inside = ve_list[j+1].is_inside = &(pincluded[i]); j+=2; } } /* * build the vicinity list from a list of points. * - _parent reference particle * - _VR vicinity radius ************************************************************/ void CSphvicinity::build(CSphmomentum *_parent, double _VR){ int i; // set parent and radius parent = _parent; VR = _VR; VR2 = VR*VR; cosVR = cos(VR); R2 = 0.25*VR2; R = 0.5*VR; double tmp = tan(R); tan2R = tmp*tmp; D2_R = 2.0*(1-cos(R)); //tmp = sqrt(D2_R); inv_R_EPS_COCIRC = 1.0 / R / EPSILON_COCIRCULAR; inv_R_2EPS_COCIRC = 0.5 / R / EPSILON_COCIRCULAR; // clear vicinity vicinity.clear(); // init parent variables // we cpte the direction of the centre and two orthogonal ones // to measure the angles. Those are taken orthogonal to the // axis of smallest components (of the centre) to increase precision parent_centre = (*parent)/parent->_norm; parent_centre.get_angular_directions(angular_dir1, angular_dir2); angular_dir1 /= angular_dir1._norm; angular_dir2 /= angular_dir2._norm; // really browse the particle list for (i=0;i0) ? 0.0 : 2.0; double t=c/s; return (s>0) ? 1-t/(1+fabs(t)) : 3-t/(1+fabs(t)); } /* * append a particle to the 'vicinity' list after * having computed the angular-ordering quantities * - v vector to test **********************************************************/ void CSphvicinity::append_to_vicinity(CSphmomentum *v){ // skip the particle itself) if (v==parent) return; int i=2*(v->index); // compute the distance of the i-th particle with the parent double dot = dot_product3(parent_centre,*v); CSph3vector vnormal = *v; vnormal/=v->_norm; dot/=v->_norm; // really check if the distance is less than VR if (dot>cosVR){ CSph3vector cross = cross_product3(parent_centre,vnormal); // for the centres CSph3vector median = (parent_centre+vnormal); double amplT = sqrt((tan2R*(1+dot)+(dot-1))*(1+dot)); CSph3vector transverse = amplT*cross/cross._norm; // first angle (+) ve_list[i].centre = median + transverse; ve_list[i].centre.build_norm(); ve_list[i].centre/=ve_list[i].centre._norm; CSph3vector diff = ve_list[i].centre - parent_centre; //ve_list[i].angle = atan2(dot_product3(angular_dir2, diff),dot_product3(angular_dir1, diff)); ve_list[i].angle = sort_angle(dot_product3(angular_dir2, diff),dot_product3(angular_dir1, diff)); ve_list[i].side = true; ve_list[i].cocircular.clear(); vicinity.push_back(&(ve_list[i])); // second angle (-) ve_list[i+1].centre = median - transverse; ve_list[i+1].centre.build_norm(); ve_list[i+1].centre/=ve_list[i+1].centre._norm; diff = ve_list[i+1].centre - parent_centre; ve_list[i+1].angle = sort_angle(dot_product3(angular_dir2, diff),dot_product3(angular_dir1, diff)); ve_list[i+1].side = false; ve_list[i+1].cocircular.clear(); vicinity.push_back(&(ve_list[i+1])); // now work out the cocircularity range for the two points (range // of angle within which the points stay within a distance // EPSILON_COCIRCULAR of circule // P = parent; C = child; O = Origin (center of circle) CSph3vector OP = parent_centre - ve_list[i+1].centre; CSph3vector OC = vnormal - ve_list[i+1].centre; // two sources of error are (GPS CCN29-19) epsilon/(R sin theta) // and sqrt(2*epsilon/(R (1-cos theta))) and the way things work // out, it is the _smaller_ of the two that is relevant [NB have // changed definition of theta here relative to that used in // CCN29] [NB2: write things so as to avoid zero denominators and // to minimize the multiplications, divisions and above all sqrts // -- that means that c & s are defined including a factor of VR2] double inv_err1 = cross_product3(OP,OC)._norm * inv_R_EPS_COCIRC; double inv_err2_sq = (D2_R-dot_product3(OP,OC)) * inv_R_2EPS_COCIRC; ve_list[i].cocircular_range = siscone::pow2(inv_err1) > inv_err2_sq ? 1.0/inv_err1 : sqrt(1.0/inv_err2_sq); ve_list[i+1].cocircular_range = ve_list[i].cocircular_range; } } } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/makefile.static0000644000175000017500000000442011766120144026226 0ustar sunsunCC = g++ LIBOUT = libsiscone_spherical.a CFLAGS = -Wall -g -O3 -ffast-math -I../.. LDFLAGS = -lm #-lprofiler -lpthread -ltcmalloc ifeq ($(shell whoami),salam) # needed for Gavin to include tcmalloc LDFLAGS += -L/ada1/lpthe/salam/software/local/lib endif OBJS = geom_2d.o momentum.o hash.o\ vicinity.o protocones.o split_merge.o siscone.o SRCS = $(patsubst %.o,%.cpp,$(OBJS)) %.o: %.cpp %.h $(CC) -c $(CFLAGS) $< %.o: %.cpp $(CC) -c $(CFLAGS) $< all: $(OBJS) ar cru $(LIBOUT) $(OBJS) ranlib $(LIBOUT) .PHONY: clean clean: rm -f *.o *~ # note the -Y option below avoids including all the standard # include directories (which change from one system to another) depend: makedepend -I../.. -f makefile.static -- -Y -- $(SRCS) # DO NOT DELETE geom_2d.o: geom_2d.h ../../siscone/defines.h ../../siscone/geom_2d.h geom_2d.o: ../../siscone/defines.h momentum.o: momentum.h ../../siscone/reference.h geom_2d.h momentum.o: ../../siscone/defines.h ../../siscone/geom_2d.h momentum.o: ../../siscone/defines.h hash.o: hash.h momentum.h ../../siscone/reference.h geom_2d.h hash.o: ../../siscone/defines.h ../../siscone/geom_2d.h hash.o: ../../siscone/defines.h vicinity.o: vicinity.h ../../siscone/vicinity.h momentum.h vicinity.o: ../../siscone/reference.h geom_2d.h ../../siscone/defines.h vicinity.o: ../../siscone/geom_2d.h ../../siscone/defines.h vicinity.o: ../../siscone/quadtree.h protocones.o: ../../siscone/defines.h ../../siscone/siscone_error.h protocones.o: ../../siscone/circulator.h protocones.h momentum.h protocones.o: ../../siscone/reference.h geom_2d.h ../../siscone/geom_2d.h protocones.o: ../../siscone/defines.h vicinity.h ../../siscone/vicinity.h protocones.o: ../../siscone/quadtree.h hash.h split_merge.o: ../../siscone/siscone_error.h split_merge.h split_merge.o: ../../siscone/defines.h geom_2d.h ../../siscone/geom_2d.h split_merge.o: ../../siscone/defines.h momentum.h ../../siscone/reference.h siscone.o: ../../siscone/config.h ../../siscone/ranlux.h siscone.o: ../../siscone/siscone_error.h ../../siscone/defines.h momentum.h siscone.o: ../../siscone/reference.h geom_2d.h ../../siscone/geom_2d.h siscone.o: ../../siscone/defines.h siscone.h protocones.h vicinity.h siscone.o: ../../siscone/vicinity.h ../../siscone/quadtree.h hash.h siscone.o: split_merge.h fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/protocones.cpp0000644000175000017500000007430011766120144026143 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: protocones.cpp // // Description: source file for stable cones determination (Cstable_cones) // // This file is part of the SISCone project. // // WARNING: this is not the main SISCone trunk but // // an adaptation to spherical coordinates // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006-2008 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 311 $// // $Date:: 2011-10-05 23:27:09 +0200 (Wed, 05 Oct 2011) $// /////////////////////////////////////////////////////////////////////////////// /******************************************************* * Introductory note: * * Since this file has many member functions, we have * * structured them in categories: * * INITIALISATION FUNCTIONS * * - ctor() * * - ctor(particle_list) * * - dtor() * * - init(particle_list) * * ALGORITHM MAIN ENTRY * * - get_stable_cone(radius) * * ALGORITHM MAIN STEPS * * - init_cone() * * - test_cone() * * - update_cone() * * - proceed_with_stability() * * ALGORITHM MAIN STEPS FOR COCIRCULAR SITUATIONS * * - cocircular_pt_less(v1, v2) * * - prepare_cocircular_list() * * - test_cone_cocircular() * * - test_stability(candidate, border_list) * * - updat_cone_cocircular() * * RECOMPUTATION OF CONE CONTENTS * * - compute_cone_contents() * * - recompute_cone_contents() * * - recompute_cone_contents_if_needed() * * VARIOUS TOOLS * * - circle_intersect() * * - is_inside() * * - abs_dangle() * *******************************************************/ #include #include #include #include "protocones.h" #include #include #include namespace siscone_spherical{ using namespace std; /********************************************************************** * CSphstable_cones implementation * * Computes the list of stable comes from a particle list. * * This class does the first fundamental task of te cone algorithm: * * it is used to compute the list of stable cones given a list * * of particles. * **********************************************************************/ //////////////////////////////////////////////////////// // INITIALISATION FUNCTIONS // // - ctor() // // - ctor(particle_list) // // - dtor() // // - init(particle_list) // //////////////////////////////////////////////////////// // default ctor //-------------- CSphstable_cones::CSphstable_cones(){ nb_tot = 0; hc = NULL; } // ctor with initialisation //-------------------------- CSphstable_cones::CSphstable_cones(vector &_particle_list) : CSphvicinity(_particle_list){ nb_tot = 0; hc = NULL; } // default dtor //-------------- CSphstable_cones::~CSphstable_cones(){ if (hc!=NULL) delete hc; } /* * initialisation * - _particle_list list of particles * - _n number of particles *********************************************************************/ void CSphstable_cones::init(vector &_particle_list){ // check already allocated mem if (hc!=NULL){ delete hc; } if (protocones.size()!=0) protocones.clear(); multiple_centre_done.clear(); // initialisation set_particle_list(_particle_list); } //////////////////////////////////////////////////////// // ALGORITHM MAIN ENTRY // // - get_stable_cone(radius) // //////////////////////////////////////////////////////// /* * compute stable cones. * This function really does the job i.e. computes * the list of stable cones (in a seedless way) * - _radius: radius of the cones * The number of stable cones found is returned *********************************************************************/ int CSphstable_cones::get_stable_cones(double _radius){ int p_idx; // check if everything is correctly initialised if (n_part==0){ return 0; } R = _radius; R2 = R*R; tan2R = tan(R); tan2R *= tan2R; // allow hash for cones candidates hc = new sph_hash_cones(n_part, R); // browse all particles for (p_idx=0;p_idx_phi << ", " << parent->_theta << endl; #endif // step 1: initialise with the first cone candidate init_cone(); do{ // step 2: test cone stability for that pair (P,C) test_cone(); // step 3: go to the next cone child candidate C } while (!update_cone()); } return proceed_with_stability(); } //////////////////////////////////////////////////////// // ALGORITHM MAIN STEPS // // - init_cone() // // - test_cone() // // - update_cone() // // - proceed_with_stability() // //////////////////////////////////////////////////////// /* * initialise the cone. * We take the first particle in the angular ordering to compute * this one * return 0 on success, 1 on error *********************************************************************/ int CSphstable_cones::init_cone(){ // The previous version of the algorithm was starting the // loop around vicinity elements with the "most isolated" child. // given the nodist method to calculate the cone contents, we no // longer need to worry about which cone comes first... first_cone=0; // now make sure we have lists of the cocircular particles prepare_cocircular_lists(); //TODO? deal with a configuration with only degeneracies ? // The only possibility seems a regular hexagon with a parent point // in the centre. And this situation is by itself unclear. // Hence, we do nothing here ! // init set child C centre = vicinity[first_cone]; child = centre->v; centre_idx = first_cone; // build the initial cone (nodist: avoids calculating distances -- // just deduces contents by circulating around all in/out operations) // this function also sets the list of included particles compute_cone_contents(); return 0; } /* * test cones. * We check if the cone(s) built with the present parent and child * are stable * return 0 on success 1 on error *********************************************************************/ int CSphstable_cones::test_cone(){ siscone::Creference weighted_cone_ref; // depending on the side we are taking the child particle, // we test different configuration. // Each time, two configurations are tested in such a way that // all 4 possible cases (parent or child in or out the cone) // are tested when taking the pair of particle parent+child // and child+parent. // here are the tests entering the first series: // 1. check if the cone is already inserted // 2. check cone stability for the parent and child particles //UPDATED(see below): if (centre->side){ //UPDATED(see below): // test when both particles are not in the cone //UPDATED(see below): // or when both are in. //UPDATED(see below): // Note: for the totally exclusive case, test emptyness before //UPDATED(see below): cone_candidate = cone; //UPDATED(see below): if (cone.ref.not_empty()){ //UPDATED(see below): hc->insert(&cone_candidate, parent, child, false, false); //UPDATED(see below): } //UPDATED(see below): //UPDATED(see below): cone_candidate = cone; //UPDATED(see below): cone_candidate+= *parent + *child; //UPDATED(see below): hc->insert(&cone_candidate, parent, child, true, true); //UPDATED(see below): } else { //UPDATED(see below): // test when 1! of the particles is in the cone //UPDATED(see below): cone_candidate = cone + *parent; //UPDATED(see below): hc->insert(&cone_candidate, parent, child, true, false); //UPDATED(see below): //UPDATED(see below): cone_candidate = cone + *child; //UPDATED(see below): hc->insert(&cone_candidate, parent, child, false, true); //UPDATED(see below): } //UPDATED(see below): //UPDATED(see below): nb_tot+=2; // instead of testing 2 inclusion/exclusion states for every pair, we test the 4 of them // when the parent has an energy bigger than the child if (parent->E >= child->E){ // test when both particles are not in the cone // Note: for the totally exclusive case, test emptiness before cone_candidate = cone; if (cone.ref.not_empty()){ hc->insert(&cone_candidate, parent, child, false, false); } // test when 1! of the particles is in the cone cone_candidate += *parent; hc->insert(&cone_candidate, parent, child, true, false); cone_candidate = cone; cone_candidate += *child; hc->insert(&cone_candidate, parent, child, false, true); // test when both are in. cone_candidate += *parent; hc->insert(&cone_candidate, parent, child, true, true); nb_tot += 4; } return 0; } /* * update the cone * go to the next child for that parent and update 'cone' appropriately * return 0 if update candidate found, 1 otherwise ***********************************************************************/ int CSphstable_cones::update_cone(){ #ifdef DEBUG_STABLE_CONES cout << "call 'circles_plot.gp' '" << centre->centre.px << "' '" << centre->centre.py << "' '" << centre->centre.pz << "'" << endl << "pause -1 '(" << centre->angle << " " << (centre->side ? '+' : '-') << ")"; #endif // get the next child and centre centre_idx++; if (centre_idx==vicinity_size) centre_idx=0; if (centre_idx==first_cone) return 1; // update the cone w.r.t. the old child // only required if the old child is entering inside in which // case we need to add it. We also know that the child is // inside iff its side is -. if (!centre->side){ #ifdef DEBUG_STABLE_CONES cout << " old_enter"; #endif // update cone cone += (*child); // update info on particles inside centre->is_inside->cone = true; // update stability check quantities dpt += fabs(child->px)+fabs(child->py)+fabs(child->pz); } // update centre and child to correspond to the new position centre = vicinity[centre_idx]; child = centre->v; // check cocircularity // note that if cocirculaity is detected (i.e. if we receive 1 // in the next test), we need to recall 'update_cone' directly // since tests and remaining part of te update has been performed //if (cocircular_check()) if (cocircular_check()){ #ifdef DEBUG_STABLE_CONES cout << " Co-circular case detected" << endl; #endif return update_cone(); } // update the cone w.r.t. the new child // only required if the new child was already inside in which // case we need to remove it. We also know that the child is // inside iff its side is +. if ((centre->side) && (cone.ref.not_empty())){ #ifdef DEBUG_STABLE_CONES cout << " new exit"; #endif // update cone cone -= (*child); // update info on particles inside centre->is_inside->cone = false; // update stability check quantities dpt += fabs(child->px)+fabs(child->py)+fabs(child->pz); //child->perp2(); } // check that the addition and subtraction of vectors does // not lead to too much rounding error // for that, we compute the sum of pt modifications and of |pt| // since last recomputation and once the ratio overpasses a threshold // we recompute vicinity. if ((dpt>PT_TSHOLD*(fabs(cone.px)+fabs(cone.py)+fabs(cone.pz))) && (cone.ref.not_empty())){ recompute_cone_contents(); } if (cone.ref.is_empty()){ cone = CSphmomentum(); dpt=0.0; } #ifdef DEBUG_STABLE_CONES cout << "'" << endl; #endif return 0; } /* * compute stability of all enumerated candidates. * For all candidate cones which are stable w.r.t. their border particles, * pass the last test: stability with quadtree intersection ************************************************************************/ int CSphstable_cones::proceed_with_stability(){ int i; sph_hash_element *elm; for (i=0;i<=hc->mask;i++){ // test ith cell of the hash array elm = hc->hash_array[i]; // browse elements therein while (elm!=NULL){ // test stability if (elm->is_stable){ // stability is not ensured by all pairs of "edges" already browsed #ifdef USE_QUADTREE_FOR_STABILITY_TEST // => testing stability with quadtree intersection if (quadtree->circle_intersect(elm->eta, elm->phi, R2)==elm->ref) #else // => testing stability with the particle-list intersection if (circle_intersect(elm->centre)==elm->centre.ref) #endif protocones.push_back(CSphmomentum(elm->centre,1.0)); } // jump to the next one elm = elm->next; } } // free hash // we do that at this level because hash eats rather a lot of memory // we want to free it before running the split/merge algorithm #ifdef DEBUG_STABLE_CONES nb_hash_cones = hc->n_cones; nb_hash_occupied = hc->n_occupied_cells; #endif delete hc; hc=NULL; return protocones.size(); } //////////////////////////////////////////////////////// // ALGORITHM MAIN STEPS FOR COCIRCULAR SITUATIONS // // - cocircular_pt_less(v1, v2) // // - prepare_cocircular_list() // // - test_cone_cocircular() // // - test_stability(candidate, border_vect) // // - updat_cone_cocircular() // //////////////////////////////////////////////////////// /// pt-ordering of momenta used for the cocircular case //NEVER USED //bool cocircular_pt_less(CSphmomentum *v1, CSphmomentum *v2){ // return v1->perp2() < v2->perp2(); //} /* * run through the vicinity of the current parent and for each child * establish which other members are cocircular... Note that the list * associated with each child contains references to vicinity * elements: thus two vicinity elements each associated with one given * particle may appear in a list -- this needs to be watched out for * later on... **********************************************************************/ void CSphstable_cones::prepare_cocircular_lists() { siscone::circulator::iterator > here(vicinity.begin(), vicinity.begin(), vicinity.end()); siscone::circulator::iterator > search(here); do { CSphvicinity_elm* here_pntr = *here(); search.set_position(here); // search forwards for things that should have "here" included in // their cocircularity list while (true) { ++search; if ( siscone::abs_dphi((*search())->angle, here_pntr->angle) < here_pntr->cocircular_range && search() != here()) { (*search())->cocircular.push_back(here_pntr); } else { break; } } // search backwards search.set_position(here); while (true) { --search; if ( siscone::abs_dphi((*search())->angle, here_pntr->angle) < here_pntr->cocircular_range && search() != here()) { (*search())->cocircular.push_back(here_pntr); } else { break; } } ++here; } while (here() != vicinity.begin()); } /* * Testing cocircular configurations in p^3 time, * rather than 2^p time; we will test all contiguous subsets of points * on the border --- note that this is till probably overkill, since * in principle we only have to test situations where up to a * half-circle is filled (but going to a full circle is simpler) ******************************************************************/ void CSphstable_cones::test_cone_cocircular(CSphmomentum & borderless_cone, list & border_list) { // in spherical coordinates, we don't have a universal x-y axis system // to measure the angles. So we first determine one minimising // the uncertainties CSph3vector angl_dir1, angl_dir2; centre->centre.get_angular_directions(angl_dir1, angl_dir2); angl_dir1/=angl_dir1._norm; angl_dir2/=angl_dir2._norm; // now we have te reference axis, create the CSphborder_store structure vector border_vect; border_vect.reserve(border_list.size()); for (list::iterator it = border_list.begin(); it != border_list.end(); it++) { border_vect.push_back(CSphborder_store(*it, centre->centre, angl_dir1, angl_dir2)); } // get them into order of angle sort(border_vect.begin(), border_vect.end()); // set up some circulators, since these will help us go around the // circle easily siscone::circulator::iterator > start(border_vect.begin(), border_vect.begin(),border_vect.end()); siscone::circulator::iterator > mid(start), end(start); // test the borderless cone CSphmomentum candidate = borderless_cone; //candidate.build_etaphi(); if (candidate.ref.not_empty()) test_stability(candidate, border_vect); do { // reset status wrt inclusion in the cone mid = start; do { mid()->is_in = false; } while (++mid != start); // now run over all inclusion possibilities with this starting point candidate = borderless_cone; while (++mid != start) { // will begin with start+1 and go up to start-1 mid()->is_in = true; candidate += *(mid()->mom); test_stability(candidate, border_vect); } } while (++start != end); // mid corresponds to momentum that we need to include to get the // full cone mid()->is_in = true; candidate += *(mid()->mom); test_stability(candidate, border_vect); } /** * carry out the computations needed for the stability check of the * candidate, using the border_vect to indicate which particles * should / should not be in the stable cone; if the cone is stable * insert it into the hash. **********************************************************************/ void CSphstable_cones::test_stability(CSphmomentum & candidate, const vector & border_vect) { // this almost certainly has not been done... //candidate.build_etaphi(); bool stable = true; for (unsigned i = 0; i < border_vect.size(); i++) { if (is_closer(&candidate, border_vect[i].mom,tan2R) ^ (border_vect[i].is_in)) { stable = false; break; // it's unstable so there's no point continuing } } if (stable) hc->insert(&candidate); } /* * check if we are in a situation of cocircularity. * if it is the case, update and test in the corresponding way * return 'false' if no cocircularity detected, 'true' otherwise * Note that if cocircularity is detected, we need to * recall 'update' from 'update' !!! ***************************************************************/ bool CSphstable_cones::cocircular_check(){ // check if many configurations have the same centre. // if this is the case, branch on the algorithm for this // special case. // Note that those situation, being considered separately in // test_cone_multiple, must only be considered here if all // angles are on the same side (this avoid multiple counting) if (centre->cocircular.empty()) return false; // first get cone into status required at end... if ((centre->side) && (cone.ref.not_empty())){ // update cone cone -= (*child); // update info on particles inside centre->is_inside->cone = false; // update stability check quantities dpt += fabs(child->px)+fabs(child->py)+fabs(child->pz); //child->perp2(); } // now establish the list of unique children in the list // first make sure parent and child are in! list removed_from_cone; list put_in_border; list border_list; CSphmomentum cone_removal; CSphmomentum border = *parent; border_list.push_back(parent); // make sure child appears in the border region centre->cocircular.push_back(centre); // now establish the full contents of the cone minus the cocircular // region and of the cocircular region itself for(list::iterator it = centre->cocircular.begin(); it != centre->cocircular.end(); it++) { if ((*it)->is_inside->cone) { cone_removal += *((*it)->v); (*it)->is_inside->cone = false; removed_from_cone.push_back((*it)->is_inside); } // if a point appears twice (i.e. with + and - sign) in the list of // points on the border, we take care not to include it twice. // Note that this situation may appear when a point is at a distance // close to 2R from the parent if (!(*it)->is_inside->cocirc) { border += *((*it)->v); (*it)->is_inside->cocirc = true; put_in_border.push_back((*it)->is_inside); border_list.push_back((*it)->v); //cout << " adding particle " << (*it)->v->_theta << ", " << (*it)->v->_phi << " to the border list" << endl; } } // figure out whether this pairing has been observed before CSphmomentum borderless_cone = cone; borderless_cone -= cone_removal; bool consider = true; for (unsigned int i=0;i(borderless_cone.ref, border.ref)); // first figure out whether our cone momentum is good double local_dpt = fabs(cone_removal.px) + fabs(cone_removal.py); double total_dpt = dpt + local_dpt; recompute_cone_contents_if_needed(borderless_cone, total_dpt); if (total_dpt == 0) { // a recomputation has taken place -- so take advantage of this // and update the member cone momentum cone = borderless_cone + cone_removal; dpt = local_dpt; } test_cone_cocircular(borderless_cone, border_list); } // relabel things that were in the cone but got removed for(list::iterator is_in = removed_from_cone.begin(); is_in != removed_from_cone.end(); is_in++) { (*is_in)->cone = true; } // relabel things that got put into the border for(list::iterator is_in = put_in_border.begin(); is_in != put_in_border.end(); is_in++) { (*is_in)->cocirc = false; } // we're done with everything -- return true to signal to user that we've // been through the co-circularity rigmarole return true; } //////////////////////////////////////////////////////// // RECOMPUTATION OF CONE CONTENTS // // - compute_cone_contents() // // - recompute_cone_contents() // // - recompute_cone_contents_if_needed() // //////////////////////////////////////////////////////// /** * compute the cone contents by going once around the full set of * circles and tracking the entry/exit status each time * given parent, child and centre compute the momentum * of the particle inside the cone * This sets up the inclusion information, which can then be directly * used to calculate the cone momentum. **********************************************************************/ void CSphstable_cones::compute_cone_contents() { siscone::circulator::iterator > start(vicinity.begin()+first_cone, vicinity.begin(), vicinity.end()); siscone::circulator::iterator > here(start); // note that in the following algorithm, the cone contents never includes // the child. Indeed, if it has positive sign, then it will be set as // outside at the last step in the loop. If it has negative sign, then the // loop will at some point go to the corresponding situation with positive // sign and set the inclusion status to 0. do { // as we leave this position a particle enters if its side is // negative (i.e. the centre is the one at -ve angle wrt to the // parent-child line if (!(*here())->side) ((*here())->is_inside->cone) = 1; // move on to the next position ++here; // as we arrive at this position a particle leaves if its side is positive if ((*here())->side) ((*here())->is_inside->cone) = 0; } while (here != start); // once we've reached the start the 'is_inside' information should be // 100% complete, so we can use it to calculate the cone contents // and then exit recompute_cone_contents(); return; } /* * compute the cone momentum from particle list. * in this version, we use the 'pincluded' information * from the CSphvicinity class */ void CSphstable_cones::recompute_cone_contents(){ unsigned int i; // set momentum to 0 cone = CSphmomentum(); // Important note: we can browse only the particles // in vicinity since all particles in the cone are // withing a distance 2R w.r.t. parent hence in vicinity. // Among those, we only add the particles for which 'is_inside' is true ! // This methos rather than a direct comparison avoids rounding errors for (i=0;iside) && (vicinity[i]->is_inside->cone)) cone += *vicinity[i]->v; } // set check variables back to 0 dpt = 0.0; } /* * if we have gone beyond the acceptable threshold of change, compute * the cone momentum from particle list. in this version, we use the * 'pincluded' information from the CSphvicinity class, but we don't * change the member cone, only the locally supplied one */ void CSphstable_cones::recompute_cone_contents_if_needed(CSphmomentum & this_cone, double & this_dpt){ if (this_dpt > PT_TSHOLD*(fabs(this_cone.px)+fabs(this_cone.py))) { if (cone.ref.is_empty()) { this_cone = CSphmomentum(); } else { // set momentum to 0 this_cone = CSphmomentum(); // Important note: we can browse only the particles // in vicinity since all particles in the this_cone are // withing a distance 2R w.r.t. parent hence in vicinity. // Among those, we only add the particles for which 'is_inside' is true ! // This methos rather than a direct comparison avoids rounding errors for (unsigned int i=0;iside) && (vicinity[i]->is_inside->cone)) this_cone += *vicinity[i]->v; } } // set check variables back to 0 this_dpt = 0.0; } } //////////////////////////////////////////////////////// // VARIOUS TOOLS // // - circle_intersect() // // - is_inside() // // - abs_dangle() // //////////////////////////////////////////////////////// /* * circle intersection. * computes the intersection with a circle of given centre and radius. * The output takes the form of a checkxor of the intersection's particles * - cx circle centre x coordinate * - cy circle centre y coordinate * return the checkxor for the intersection ******************************************************************/ siscone::Creference CSphstable_cones::circle_intersect(CSph3vector &cone_centre){ siscone::Creference intersection; int i; for (i=0;i #include #include #include "momentum.h" #include #ifdef USE_QUADTREE_FOR_STABILITY_TEST #include #endif namespace siscone_spherical{ /** * \class CSphvicinity_elm * \brief element in the vicinity of a parent. * * class used to manage one points in the vicinity * of a parent point. */ class CSphvicinity_elm{ public: /// pointer to the second borderline particle CSphmomentum *v; /// variable to tell if the particle is inside or outside the cone siscone::Cvicinity_inclusion *is_inside; // centre variables CSph3vector centre; ///< direction of the centre double angle; ///< angle with parent bool side; ///< true if angle on the positive side, false otherwise double cocircular_range; ///< amount by which the angle can be varied while ///< maintaining this point within co-circularity margin /// list of elements co-circular with this one /// NB: empty list uses less mem than vector std::list cocircular; }; /// ordering pointers to CSphvicinity_elm bool ve_less(CSphvicinity_elm *ve1, CSphvicinity_elm *ve2); /** * \class CSphvicinity * \brief list of element in the vicinity of a parent. * * class used to manage the points which are in the vicinity * of a parent point. */ class CSphvicinity{ public: /// default constructor CSphvicinity(); /// constructor with initialisation (see set_particle_list) CSphvicinity(std::vector &_particle_list); /// default destructor ~CSphvicinity(); /** * set the particle_list * \param _particle_list list of particles (type CSphmomentum) */ void set_particle_list(std::vector &_particle_list); /** * build the vicinity list from the list of points. * \param _parent reference particle * \param _VR vicinity radius */ void build(CSphmomentum *_parent, double _VR); // cone kinematical information CSphmomentum *parent; ///< parent vector double VR; ///< radius of the vicinity double VR2; ///< squared radius of the vicinity double cosVR; ///< cosine of the radius of the vicinity double R; ///< normal radius double R2; ///< squared normal radius double tan2R; ///< squared tangent of the normal radius double D2_R; ///< euclidian distance (squared) corresp. to the arc R double inv_R_EPS_COCIRC; ///< R / EPSILON_COCIRCULAR double inv_R_2EPS_COCIRC; ///< R / (2*EPSILON_COCIRCULAR) // particle list information int n_part; ///< number of particles std::vector plist; ///< the list of particles /// the inclusion state of particles std::vector pincluded; CSphvicinity_elm *ve_list; ///< list of vicinity elements built from particle list (size=2*n) #ifdef USE_QUADTREE_FOR_STABILITY_TEST siscone::Cquadtree *quadtree; ///< quadtree used for final stability tests #endif // vicinity information std::vector vicinity; ///< list of points in parent's vicinity unsigned int vicinity_size; ///< number of elements in vicinity protected: /** * append a particle to the 'vicinity' list after * having tested it and computed the angular-ordering quantities * \param v vector to test */ void append_to_vicinity(CSphmomentum *v); // internal variables CSph3vector parent_centre; ///< parent centre CSph3vector angular_dir1; ///< main direction to measure angles CSph3vector angular_dir2; ///< second direction to measure angles (sign) }; } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/spherical/Makefile.am0000644000175000017500000000153112127746211025275 0ustar sunsun# build information for the SISCone library # this is built as a libtool lib. lib_LTLIBRARIES = libsiscone_spherical.la # On top of the configured flags, we need to access the the # top dir for includes of the form to work # Note that we use "siscone/..." for clarity. # Then we need to access the config.h file which is one step away # since we use (for consistency), this means ../.. libsiscone_spherical_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/../.. -I../.. libsiscone_spherical_la_SOURCES = geom_2d.cpp momentum.cpp hash.cpp\ vicinity.cpp protocones.cpp split_merge.cpp siscone.cpp EXTRA_DIST = makefile.static # install the SISCone headers sisconeincludedir = $(includedir)/siscone/spherical sisconeinclude_HEADERS = geom_2d.h\ hash.h\ momentum.h\ protocones.h\ siscone.h\ split_merge.h\ vicinity.h fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/hash.h0000644000175000017500000001070011766120144022360 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: hash.h // // Description: header file for classes hash_element and hash_cones // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 224 $// // $Date:: 2008-05-16 19:58:30 +0200 (Fri, 16 May 2008) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __HASH_H__ #define __HASH_H__ #include "momentum.h" #include "reference.h" namespace siscone{ /** * \class hash_element * information on store cones candidates. * * We store in this class the information used to count all * protocones in a first pass. This first pass only count * cones with different references and test their stbility * with the parent-child particles (border particles). */ class hash_element{ public: Creference ref; ///< reference double eta; ///< centre: eta coordinate double phi; ///< centre: phi coordinate bool is_stable; ///< true if stable w.r.t. "border particles" hash_element *next; ///< pointer to the next element }; /** * \class hash_cones * list of cones candidates. * * We store in this class all the hash_elements and give * functions to manipulate them. */ class hash_cones{ public: /// constructor with initialisation /// \param _Np number of particles /// \param _R2 cone radius (squared) hash_cones(int _Np, double _R2); /// destructor ~hash_cones(); /** * insert a new candidate into the hash. * \param v 4-momentum of te cone to add * \param parent parent particle defining the cone * \param child child particle defining the cone * \param p_io whether the parent has to belong to the cone or not * \param c_io whether the child has to belong to the cone or not * \return 0 on success, 1 on error */ int insert(Cmomentum *v, Cmomentum *parent, Cmomentum *child, bool p_io, bool c_io); /** * insert a new candidate into the hash. * \param v 4-momentum of te cone to add * Note, in this case, we assume stability. We also assume * that eta and phi are computed for v * \return 0 on success, 1 on error */ int insert(Cmomentum *v); /// the cone data itself hash_element **hash_array; /// number of elements int n_cones; /// number of occupied cells #ifdef DEBUG_STABLE_CONES int n_occupied_cells; #endif /// number of cells-1 int mask; /// circle radius (squared) /// NOTE: need to be set before any call to 'insert' double R2; /** * test if a particle is inside a cone of given centre. * check if the particle of coordinates 'v' is inside the circle of radius R * centered at 'centre'. * \param centre centre of the circle * \param v particle to test * \return true if inside, false if outside */ inline bool is_inside(Cmomentum *centre, Cmomentum *v); }; } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/momentum.h0000644000175000017500000001313411766120144023302 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: momentum.h // // Description: header file for 4-momentum class Cmomentum // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 163 $// // $Date:: 2007-04-26 22:31:02 +0200 (Thu, 26 Apr 2007) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __VECTOR_H__ #define __VECTOR_H__ #include #include #include "reference.h" #include "geom_2d.h" #include "defines.h" namespace siscone{ /** * \class Cmomentum * \brief base class for dynamic coordinates management * * This class contains the information for particle or group of * particles management. * It includes all Lorentz properties as well as tools for summing them. * Note: 'sums' over phi angles are indeed averages. This allows to * deal with periodicity at each step */ class Cmomentum{ public: /// default ctor Cmomentum(); /// ctor with initialisation Cmomentum(double _px, double _py, double _pz, double _E); /// ctor with detailed initialisation Cmomentum(double _eta, double _phi, Creference _ref); /// default dtor ~Cmomentum(); /// computes pT inline double perp() const {return sqrt(perp2());} /// computes pT^2 inline double perp2() const {return px*px+py*py;} /// computes m inline double mass() const {return sqrt(mass2());} /// computes m^2 inline double mass2() const {return perpmass2()-perp2();} /// transverse mass, mt = sqrt(pt^2+m^2) = sqrt(E^2 - pz^2) inline double perpmass() const {return sqrt((E-pz)*(E+pz));} /// transverse mass squared, mt^2 = pt^2+m^2 = E^2 - pz^2 inline double perpmass2() const {return (E-pz)*(E+pz);} /// computes transverse energy inline double Et() const {return E/sqrt(1.0+pz*pz/perp2());} /// computes transverse energy (squared) inline double Et2() const {return E*E/(1.0+pz*pz/perp2());} /// assignment of vectors Cmomentum& operator = (const Cmomentum &v); /// addition of vectors /// !!! WARNING !!! no updating of eta and phi !!! const Cmomentum operator + (const Cmomentum &v); /// incrementation of vectors /// !!! WARNING !!! no updating of eta and phi !!! Cmomentum& operator += (const Cmomentum &v); /// decrementation of vectors /// !!! WARNING !!! no updating of eta and phi !!! Cmomentum& operator -= (const Cmomentum &v); /// build eta-phi from 4-momentum info /// !!! WARNING !!! /// !!! computing eta and phi is time-consuming !!! /// !!! use this whenever you need eta or phi !!! /// !!! automatically called for single-particle !!! void build_etaphi(); double px; ///< x-momentum double py; ///< y-momentum double pz; ///< z-momentum double E; ///< energy double eta; ///< particle pseudo-rapidity double phi; ///< particle azimuthal angle int parent_index; ///< particle number in the parent list int index; ///< internal particle number ////////////////////////////////////////////// // the following part is used for checksums // ////////////////////////////////////////////// Creference ref; ///< reference number for the vector }; /// ordering of two vectors /// this is by default done w.r.t. their references bool operator < (const Cmomentum &v1, const Cmomentum &v2); /// ordering of vectors in eta (e.g. used in collinear tests) bool momentum_eta_less(const Cmomentum &v1, const Cmomentum &v2); /// ordering of vectors in pt bool momentum_pt_less(const Cmomentum &v1, const Cmomentum &v2); ////////////////////////// // some handy utilities // ////////////////////////// /// get distance between to eta-phi points /// \param eta eta coordinate of first point /// \param phi phi coordinate of first point /// \param v vector defining the second point inline double get_distance(double eta, double phi, Cmomentum *v){ double dx, dy; dx = eta - v->eta; dy = fabs(phi - v->phi); if (dy>M_PI) dy -= twopi; return dx*dx+dy*dy; } } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/split_merge.cpp0000644000175000017500000007453111766120144024316 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: split_merge.cpp // // Description: source file for splitting/merging (contains the CJet class) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 322 $// // $Date:: 2011-11-15 10:12:36 +0100 (Tue, 15 Nov 2011) $// /////////////////////////////////////////////////////////////////////////////// #include "split_merge.h" #include "siscone_error.h" #include "momentum.h" #include #include // for max #include #include #include #include namespace siscone{ using namespace std; /******************************************************** * class Cjet implementation * * real Jet information. * * This class contains information for one single jet. * * That is, first, its momentum carrying information * * about its centre and pT, and second, its particle * * contents * ********************************************************/ // default ctor //-------------- Cjet::Cjet(){ n = 0; v = Cmomentum(); pt_tilde = 0.0; sm_var2 = 0.0; } // default dtor //-------------- Cjet::~Cjet(){ } // ordering of jets in pt (e.g. used in final jets ordering) //----------------------------------------------------------- bool jets_pt_less(const Cjet &j1, const Cjet &j2){ return j1.v.perp2() > j2.v.perp2(); } /******************************************************** * Csplit_merge_ptcomparison implementation * * This deals with the ordering of the jets candidates * ********************************************************/ // odering of two jets // The variable of the ordering is pt or mt // depending on 'split_merge_scale' choice // // with EPSILON_SPLITMERGE defined, this attempts to identify // delicate cases where two jets have identical momenta except for // softish particles -- the difference of pt's may not be correctly // identified normally and so lead to problems for the fate of the // softish particle. // // NB: there is a potential issue in momentum-conserving events, // whereby the harder of two jets becomes ill-defined when a soft // particle is emitted --- this may have a knock-on effect on // subsequent split-merge steps in cases with sufficiently large R // (but we don't know what the limit is...) //------------------------------------------------------------------ bool Csplit_merge_ptcomparison::operator ()(const Cjet &jet1, const Cjet &jet2) const{ double q1, q2; // compute the value for comparison for both jets // This depends on the choice of variable (mt is the default) q1 = jet1.sm_var2; q2 = jet2.sm_var2; bool res = q1 > q2; // if we enable the refined version of the comparison (see defines.h), // we compute the difference more precisely when the two jets are very // close in the ordering variable. #ifdef EPSILON_SPLITMERGE if ( (fabs(q1-q2) < EPSILON_SPLITMERGE*max(q1,q2)) && (jet1.v.ref != jet2.v.ref) ) { // get the momentum of the difference Cmomentum difference; double pt_tilde_difference; get_difference(jet1,jet2,&difference,&pt_tilde_difference); // use the following relation: pt1^2 - pt2^2 = (pt1+pt2)*(pt1-pt2) double qdiff; Cmomentum sum = jet1.v ; sum += jet2.v; double pt_tilde_sum = jet1.pt_tilde + jet2.pt_tilde; // depending on the choice of ordering variable, set the result switch (split_merge_scale){ case SM_mt: qdiff = sum.E*difference.E - sum.pz*difference.pz; break; case SM_pt: qdiff = sum.px*difference.px + sum.py*difference.py; break; case SM_pttilde: qdiff = pt_tilde_sum*pt_tilde_difference; break; case SM_Et: // diff = E^2 (dpt^2 pz^2- pt^2 dpz^2) // + dE^2 (pt^2+pz^2) pt2^2 // where, unless explicitely specified the variables // refer to the first jet or differences jet1-jet2. qdiff = jet1.v.E*jet1.v.E* ((sum.px*difference.px + sum.py*difference.py)*jet1.v.pz*jet1.v.pz -jet1.v.perp2()*sum.pz*difference.pz) +sum.E*difference.E*(jet1.v.perp2()+jet1.v.pz*jet1.v.pz)*jet2.v.perp2(); break; default: throw Csiscone_error("Unsupported split-merge scale choice: " + SM_scale_name()); } res = qdiff > 0; } #endif // EPSILON_SPLITMERGE return res; } /// return a name for the sm scale choice /// NB: used internally and also by fastjet std::string split_merge_scale_name(Esplit_merge_scale sms) { switch(sms) { case SM_pt: return "pt (IR unsafe)"; case SM_Et: return "Et (boost dep.)"; case SM_mt: return "mt (IR safe except for pairs of identical decayed heavy particles)"; case SM_pttilde: return "pttilde (scalar sum of pt's)"; default: return "[SM scale without a name]"; } } // get the difference between 2 jets // - j1 first jet // - j2 second jet // - v jet1-jet2 // - pt_tilde jet1-jet2 pt_tilde // return true if overlapping, false if disjoint //----------------------------------------------- void Csplit_merge_ptcomparison::get_difference(const Cjet &j1, const Cjet &j2, Cmomentum *v, double *pt_tilde) const { int i1,i2; // initialise i1=i2=0; *v = Cmomentum(); *pt_tilde = 0.0; // compute overlap // at the same time, we store union in indices do{ if (j1.contents[i1]==j2.contents[i2]) { i1++; i2++; } else if (j1.contents[i1]j2.contents[i2]){ (*v) -= (*particles)[j2.contents[i2]]; (*pt_tilde) -= (*pt)[j2.contents[i2]]; i2++; } else { throw Csiscone_error("get_non_overlap reached part it should never have seen..."); } } while ((i1(ptcomparison)); // no hardest cut (col-unsafe) SM_var2_hardest_cut_off = -1.0; // no pt cutoff for the particles to put in p_uncol_hard stable_cone_soft_pt2_cutoff = -1.0; // no pt-weighted splitting use_pt_weighted_splitting = false; } // default dtor //-------------- Csplit_merge::~Csplit_merge(){ full_clear(); } // initialisation function // - _particles list of particles // - protocones list of protocones (initial jet candidates) // - R2 cone radius (squared) // - ptmin minimal pT allowed for jets //------------------------------------------------------------- int Csplit_merge::init(vector & /*_particles*/, vector *protocones, double R2, double ptmin){ // browse protocones return add_protocones(protocones, R2, ptmin); } // initialisation function for particle list // - _particles list of particles //------------------------------------------------------------- int Csplit_merge::init_particles(vector &_particles){ full_clear(); // compute the list of particles // here, we do not need to throw away particles // with infinite rapidity (colinear with the beam) particles = _particles; n = particles.size(); // build the vector of particles' pt pt.resize(n); for (int i=0;i(ptcomparison)); // start off with huge number most_ambiguous_split = numeric_limits::max(); jets.clear(); #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES if (merge_identical_protocones) cand_refs.clear(); #endif p_remain.clear(); return 0; } // full clearance //---------------- int Csplit_merge::full_clear(){ partial_clear(); // clear previously allocated memory if (indices != NULL){ delete[] indices; } particles.clear(); return 0; } // build the list 'p_uncol_hard' from p_remain by clustering collinear particles // note that thins in only used for stable-cone detection // so the parent_index field is unnecessary //------------------------------------------------------------------------- int Csplit_merge::merge_collinear_and_remove_soft(){ int i,j; vector p_sorted; bool collinear; double dphi; p_uncol_hard.clear(); // we first sort the particles according to their rapidity for (i=0;iM_PI) dphi = twopi-dphi; if (dphi *protocones, double R2, double ptmin){ int i; Cmomentum *c; Cmomentum *v; double eta, phi; double dx, dy; double R; Cjet jet; if (protocones->size()==0) return 1; pt_min2 = ptmin*ptmin; R = sqrt(R2); // browse protocones // for each of them, build the list of particles in them for (vector::iterator p_it = protocones->begin();p_it != protocones->end();p_it++){ // initialise variables c = &(*p_it); // note: cones have been tested => their (eta,phi) coordinates are computed eta = c->eta; phi = c->phi; // browse particles to create cone contents // note that jet is always initialised with default values at this level jet.v = Cmomentum(); jet.pt_tilde=0; jet.contents.clear(); for (i=0;ipz)!=v->E){ dx = eta - v->eta; dy = fabs(phi - v->phi); if (dy>M_PI) dy -= twopi; if (dx*dx+dy*dyparent_index); jet.v+= *v; jet.pt_tilde+= pt[v->parent_index]; v->index=0; } } jet.n=jet.contents.size(); // set the momentum in protocones // (it was only known through eta and phi up to now) *c = jet.v; c->eta = eta; // restore exact original coords c->phi = phi; // to avoid rounding error inconsistencies // set the jet range jet.range=Ceta_phi_range(eta,phi,R); #ifdef DEBUG_SPLIT_MERGE cout << "adding jet: "; for (int i2=0;i2size()==0) return 0; if (overlap_tshold>=1.0 || overlap_tshold <= 0) { ostringstream message; message << "Illegal value for overlap_tshold, f = " << overlap_tshold; message << " (legal values are 0size()>0){ // browse for the first jet j1 = candidates->begin(); // if hardest jet does not pass threshold then nothing else will // either so one stops the split merge. if (j1->sm_var2end()){ #ifdef DEBUG_SPLIT_MERGE show(); #endif // check overlapping if (get_overlap(*j1, *j2, &overlap2)){ // check if overlapping energy passes threshold // Note that this depends on the ordering variable #ifdef DEBUG_SPLIT_MERGE cout << "overlap between cdt 1 and cdt " << j2_relindex+1 << " with overlap " << sqrt(overlap2/j2->sm_var2) << endl<sm_var2){ // split jets split(j1, j2); // update iterators j2 = j1 = candidates->begin(); j2_relindex = 0; } else { // merge jets merge(j1, j2); // update iterators j2 = j1 = candidates->begin(); j2_relindex = 0; } } // watch out: split/merge might have caused new jets with pt < // ptmin to disappear, so the total number of jets may // have changed by more than expected and j2 might already by // the end of the candidates list... j2_relindex++; if (j2 != candidates->end()) j2++; } // end of loop on the second jet if (j1 != candidates->end()) { // all "second jet" passed without overlapping // (otherwise we won't leave the j2 loop) // => store jet 1 as real jet jets.push_back(*j1); jets[jets.size()-1].v.build_etaphi(); // a bug where the contents has non-zero size has been cropping // up in many contexts -- so catch it! assert(j1->contents.size() > 0); jets[jets.size()-1].pass = particles[j1->contents[0]].index; #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES cand_refs.erase(j1->v.ref); #endif candidates->erase(j1); //// test that the hardest jet pass the potential cut-off //if ((candidates->size()!=0) && // (candidates->begin()->sm_var2clear(); //} } } } while (candidates->size()>0); // sort jets by pT sort(jets.begin(), jets.end(), jets_pt_less); #ifdef DEBUG_SPLIT_MERGE show(); #endif return jets.size(); } // save the event on disk // - flux stream used to save jet contents //-------------------------------------------- int Csplit_merge::save_contents(FILE *flux){ jet_iterator it_j; Cjet *j1; int i1, i2; fprintf(flux, "# %d jets found\n", (int) jets.size()); fprintf(flux, "# columns are: eta, phi, pt and number of particles for each jet\n"); for (it_j = jets.begin(), i1=0 ; it_j != jets.end() ; it_j++, i1++){ j1 = &(*it_j); j1->v.build_etaphi(); fprintf(flux, "%f\t%f\t%e\t%d\n", j1->v.eta, j1->v.phi, j1->v.perp(), j1->n); } fprintf(flux, "# jet contents\n"); fprintf(flux, "# columns are: eta, phi, pt, particle index and jet number\n"); for (it_j = jets.begin(), i1=0 ; it_j != jets.end() ; it_j++, i1++){ j1 = &(*it_j); for (i2=0;i2n;i2++) fprintf(flux, "%f\t%f\t%e\t%d\t%d\n", particles[j1->contents[i2]].eta, particles[j1->contents[i2]].phi, particles[j1->contents[i2]].perp(), j1->contents[i2], i1); } return 0; } // show current jets/candidate status //------------------------------------ int Csplit_merge::show(){ jet_iterator it_j; cjet_iterator it_c; Cjet *j; const Cjet *c; int i1, i2; for (it_j = jets.begin(), i1=0 ; it_j != jets.end() ; it_j++, i1++){ j = &(*it_j); fprintf(stdout, "jet %2d: %e\t%e\t%e\t%e\t", i1+1, j->v.px, j->v.py, j->v.pz, j->v.E); for (i2=0;i2n;i2++) fprintf(stdout, "%d ", j->contents[i2]); fprintf(stdout, "\n"); } for (it_c = candidates->begin(), i1=0 ; it_c != candidates->end() ; it_c++, i1++){ c = &(*it_c); fprintf(stdout, "cdt %2d: %e\t%e\t%e\t%e\t%e\t", i1+1, c->v.px, c->v.py, c->v.pz, c->v.E, sqrt(c->sm_var2)); for (i2=0;i2n;i2++) fprintf(stdout, "%d ", c->contents[i2]); fprintf(stdout, "\n"); } fprintf(stdout, "\n"); return 0; } // get the overlap between 2 jets // - j1 first jet // - j2 second jet // - overlap2 returned overlap^2 (determined by the choice of SM variable) // return true if overlapping, false if disjoint //--------------------------------------------------------------------- bool Csplit_merge::get_overlap(const Cjet &j1, const Cjet &j2, double *overlap2){ // check if ranges overlap if (!is_range_overlap(j1.range,j2.range)) return false; int i1,i2; bool is_overlap; // initialise i1=i2=idx_size=0; is_overlap = false; Cmomentum v; double pt_tilde=0.0; // compute overlap // at the same time, we store union in indices do{ if (j1.contents[i1]j2.contents[i2]){ indices[idx_size] = j2.contents[i2]; i2++; } else { // (j1.contents[i1]==j2.contents[i2]) v += particles[j1.contents[i1]]; pt_tilde += pt[j1.contents[i1]]; indices[idx_size] = j1.contents[i1]; i1++; i2++; is_overlap = true; } idx_size++; } while ((i1" all over the place const Cjet & j1 = * it_j1; const Cjet & j2 = * it_j2; i1=i2=0; jet2.v = jet1.v = Cmomentum(); jet2.pt_tilde = jet1.pt_tilde = 0.0; // compute centroids // When use_pt_weighted_splitting is activated, the // "geometrical" distance is weighted by the inverse // of the pt of the protojet // This is stored in pt{1,2}_weight tmp = j1.v; tmp.build_etaphi(); eta1 = tmp.eta; phi1 = tmp.phi; pt1_weight = (use_pt_weighted_splitting) ? 1.0/tmp.perp2() : 1.0; tmp = j2.v; tmp.build_etaphi(); eta2 = tmp.eta; phi2 = tmp.phi; pt2_weight = (use_pt_weighted_splitting) ? 1.0/tmp.perp2() : 1.0; jet1.v = jet2.v = Cmomentum(); // compute jet splitting do{ if (j1.contents[i1]eta,v->phi); } else if (j1.contents[i1]>j2.contents[i2]){ // particle i2 belong only to jet 2 v = &(particles[j2.contents[i2]]); jet2.contents.push_back(j2.contents[i2]); jet2.v += *v; jet2.pt_tilde += pt[j2.contents[i2]]; i2++; jet2.range.add_particle(v->eta,v->phi); } else { // (j1.contents[i1]==j2.contents[i2]) // common particle, decide which is the closest centre v = &(particles[j1.contents[i1]]); // distance w.r.t. centroid 1 dx1 = eta1 - v->eta; dy1 = fabs(phi1 - v->phi); if (dy1>M_PI) dy1 -= twopi; // distance w.r.t. centroid 2 dx2 = eta2 - v->eta; dy2 = fabs(phi2 - v->phi); if (dy2>M_PI) dy2 -= twopi; //? what when == ? // When use_pt_weighted_splitting is activated, the // "geometrical" distance is weighted by the inverse // of the pt of the protojet double d1sq = (dx1*dx1+dy1*dy1)*pt1_weight; double d2sq = (dx2*dx2+dy2*dy2)*pt2_weight; // do bookkeeping on most ambiguous split if (fabs(d1sq-d2sq) < most_ambiguous_split) most_ambiguous_split = fabs(d1sq-d2sq); if (d1sqeta,v->phi); } else { // particle i2 belong only to jet 2 jet2.contents.push_back(j2.contents[i2]); jet2.v += *v; jet2.pt_tilde += pt[j2.contents[i2]]; jet2.range.add_particle(v->eta,v->phi); } i1++; i2++; } } while ((i1eta,v->phi); } while (i2eta,v->phi); } // finalise jets jet1.n = jet1.contents.size(); jet2.n = jet2.contents.size(); //jet1.range = j1.range; //jet2.range = j2.range; // remove previous jets #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES cand_refs.erase(j1.v.ref); cand_refs.erase(j2.v.ref); #endif candidates->erase(it_j1); candidates->erase(it_j2); // reinsert new ones insert(jet1); insert(jet2); return true; } // merge the two given jet. // during this procedure, the jets j1 & j2 are replaced // by 1 single jets containing both of them. // - it_j1 iterator of the first jet in 'candidates' // - it_j2 iterator of the second jet in 'candidates' // return true on success, false on error //////////////////////////////////////////////////////////////// bool Csplit_merge::merge(cjet_iterator &it_j1, cjet_iterator &it_j2){ Cjet jet; int i; // build new jet // note: particles within j1 & j2 have already been stored in indices for (i=0;irange, it_j2->range); // remove old candidates #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES if (merge_identical_protocones){ cand_refs.erase(it_j1->v.ref); cand_refs.erase(it_j2->v.ref); } #endif candidates->erase(it_j1); candidates->erase(it_j2); // reinsert new candidate insert(jet); return true; } /** * Check whether or not a jet has to be inserted in the * list of protojets. If it has, set its sm_variable and * insert it to the list of protojets. */ bool Csplit_merge::insert(Cjet &jet){ // eventually check that no other candidate are present with the // same cone contents. We recall that this automatic merging of // identical protocones can lead to infrared-unsafe situations. #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES if ((merge_identical_protocones) && (!cand_refs.insert(jet.v.ref).second)) return false; #endif // check that the protojet has large enough pt if (jet.v.perp2()insert(jet); return true; } /** * given a 4-momentum and its associated pT, return the * variable that has to be used for SM * \param v 4 momentum of the protojet * \param pt_tilde pt_tilde of the protojet */ double Csplit_merge::get_sm_var2(Cmomentum &v, double &pt_tilde){ switch(ptcomparison.split_merge_scale) { case SM_pt: return v.perp2(); case SM_mt: return v.perpmass2(); case SM_pttilde: return pt_tilde*pt_tilde; case SM_Et: return v.Et2(); default: throw Csiscone_error("Unsupported split-merge scale choice: " + ptcomparison.SM_scale_name()); } return 0.0; } } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/reference.cpp0000644000175000017500000001050211766120144023726 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: reference.cpp // // Description: source file for checkxor management (Creference class) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 311 $// // $Date:: 2011-10-05 23:27:09 +0200 (Wed, 05 Oct 2011) $// /////////////////////////////////////////////////////////////////////////////// #include "reference.h" #include "ranlux.h" #include namespace siscone{ /******************************************************* * Creference implementation * * references used for checksums. * * * * This class implements some reference variable * * that can be used for checksums. Those checksums * * are useful to disentengle between contents of two * * cones without looking into their explicit particle * * contents. * *******************************************************/ // default constructor ////////////////////// Creference::Creference(){ ref[0] = ref[1] = ref[2] = 0; } //static unsigned int reference_bit = 1; // create a random reference //--------------------------- void Creference::randomize(){ // ref[0] = reference_bit; // ref[1] = 0; // ref[2] = 0; // reference_bit <<= 1; unsigned int r1 = ranlux_get(); unsigned int r2 = ranlux_get(); unsigned int r3 = ranlux_get(); unsigned int r4 = ranlux_get(); // since ranlux only produces 24 bits, take r4 and add 8 bits // from it to each of r1,r2, r3 to get 3*32 bits. ref[0] = r1+((r4 & 0x00ff0000) << 8); ref[1] = r2+((r4 & 0x0000ff00) << 16); ref[2] = r3+((r4 & 0x000000ff) << 24); if (is_empty()) randomize(); } // test emptyness //---------------- bool Creference::is_empty(){ return (ref[0]==0) && (ref[1]==0) && (ref[2]==0); } // test non-emptyness //-------------------- bool Creference::not_empty(){ return (ref[0]!=0) || (ref[1]!=0) || (ref[2]!=0); } // assignment of reference //------------------------- Creference& Creference::operator = (const Creference &r){ ref[0] = r.ref[0]; ref[1] = r.ref[1]; ref[2] = r.ref[2]; return *this; } // addition of reference //----------------------- Creference Creference::operator + (const Creference &r){ Creference tmp = *this; return tmp+=r; } // incrementation of reference //----------------------------- Creference& Creference::operator += (const Creference &r){ ref[0] ^= r.ref[0]; ref[1] ^= r.ref[1]; ref[2] ^= r.ref[2]; return *this; } // decrementation of reference //----------------------------- Creference& Creference::operator -= (const Creference &r){ ref[0] ^= r.ref[0]; ref[1] ^= r.ref[1]; ref[2] ^= r.ref[2]; return *this; } } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/quadtree.cpp0000644000175000017500000002421011766120144023603 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: quadtree.cpp // // Description: source file for quadtree management (Cquadtree class) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 320 $// // $Date:: 2011-11-15 09:54:50 +0100 (Tue, 15 Nov 2011) $// /////////////////////////////////////////////////////////////////////////////// #include "quadtree.h" #include #include #include namespace siscone{ using namespace std; /******************************************************************* * Cquadtree implementation * * Implementation of a 2D quadtree. * * This class implements the traditional two-dimensional quadtree. * * The elements at each node are of 'Cmomentum' type. * *******************************************************************/ // default ctor //-------------- Cquadtree::Cquadtree(){ v = NULL; children[0][0] = children[0][1] = children[1][0] = children[1][1] = NULL; has_child = false; } // ctor with initialisation (see init for details) //-------------------------- Cquadtree::Cquadtree(double _x, double _y, double _half_size_x, double _half_size_y){ v = NULL; children[0][0] = children[0][1] = children[1][0] = children[1][1] = NULL; has_child = false; init(_x, _y, _half_size_x, _half_size_y); } // default destructor // at destruction, everything is destroyed except // physical values at the leaves //------------------------------------------------ Cquadtree::~Cquadtree(){ if (has_child){ if (v!=NULL) delete v; delete children[0][0]; delete children[0][1]; delete children[1][0]; delete children[1][1]; } } /* * init the tree. * By initializing the tree, we mean setting the cell parameters * and preparing the object to act as a seed for a new tree. * - _x x-position of the center * - _y y-position of the center * - half_size_x half x-size of the cell * - half_size_y half y-size of the cell * return 0 on success, 1 on error. Note that if the cell * is already filled, we return an error. ******************************************************************/ int Cquadtree::init(double _x, double _y, double _half_size_x, double _half_size_y){ if (v!=NULL) return 1; centre_x = _x; centre_y = _y; half_size_x = _half_size_x; half_size_y = _half_size_y; return 0; } /* * adding a particle to the tree. * This method adds one vector to the quadtree structure which * is updated consequently. * - v vector to add * return 0 on success 1 on error ******************************************************************/ int Cquadtree::add(Cmomentum *v_add){ // Description of the method: // -------------------------- // the addition process goes as follows: // 1. check if the cell is empty, in which case, add the particle // here and leave. // 2. If there is a unique particle already inside, // (a) create children // (b) forward the existing particle to the appropriate child // 3. Add current particle to this cell and forward to the // adequate child // NOTE: we assume in the whole procedure that the particle is // indeed inside the cell ! // step 1: the case of empty cells if (v==NULL){ v = v_add; return 0; } // step 2: additional work if 1! particle already present // we use the fact that only 1-particle systems have no child if (!has_child){ double new_half_size_x = 0.5*half_size_x; double new_half_size_y = 0.5*half_size_y; // create children children[0][0] = new Cquadtree(centre_x-new_half_size_x, centre_y-new_half_size_y, new_half_size_x, new_half_size_y); children[0][1] = new Cquadtree(centre_x-new_half_size_x, centre_y+new_half_size_y, new_half_size_x, new_half_size_y); children[1][0] = new Cquadtree(centre_x+new_half_size_x, centre_y-new_half_size_y, new_half_size_x, new_half_size_y); children[1][1] = new Cquadtree(centre_x+new_half_size_x, centre_y+new_half_size_y, new_half_size_x, new_half_size_y); has_child = true; // forward to child //? The following line assumes 'true'==1 and 'false'==0 // Note: v being a single particle, eta and phi are correct children[v->eta>centre_x][v->phi>centre_y]->add(v); // copy physical params v = new Cmomentum(*v); } // step 3: add new particle // Note: v_add being a single particle, eta and phi are correct children[v_add->eta>centre_x][v_add->phi>centre_y]->add(v_add); *v+=*v_add; return 0; } /* * circle intersection. * computes the intersection with a circle of given centre and radius. * The output takes the form of a quadtree with all squares included * in the circle. * - cx circle centre x coordinate * - cy circle centre y coordinate * - cR2 circle radius SQUARED * return the checksum for the intersection ******************************************************************/ Creference Cquadtree::circle_intersect(double cx, double cy, double cR2){ // Description of the method: // -------------------------- // 1. check if cell is empty => no intersection // 2. if cell has 1! particle, check if it is inside the circle. // If yes, add it and return, if not simply return. // 3. check if the circle intersects the square. If not, return. // 4. check if the square is inside the circle. // If yes, add it to qt and return. // 5. check intersections with children. // step 1: if there is no particle inside te square, no reason to go further if (v==NULL) return Creference(); double dx, dy; // step 2: if there is only one particle inside the square, test if it is in // the circle, in which case return associated reference if (!has_child){ // compute the distance // Note: v has only one particle => eta and phi are defined dx = cx - v->eta; dy = fabs(cy - v->phi); if (dy>M_PI) dy -= 2.0*M_PI; // test distance if (dx*dx+dy*dyref; } return Creference(); } // step 3: check if there is an intersection //double ryp, rym; double dx_c, dy_c; // store distance with the centre of the square dx_c = fabs(cx-centre_x); dy_c = fabs(cy-centre_y); if (dy_c>M_PI) dy_c = 2.0*M_PI-dy_c; // compute (minimal) the distance (pay attention to the periodicity in phi). dx = dx_c-half_size_x; if (dx<0) dx=0; dy = dy_c-half_size_y; if (dy<0) dy=0; // check the distance if (dx*dx+dy*dy>=cR2){ // no intersection return Creference(); } // step 4: check if included // compute the (maximal) distance dx = dx_c+half_size_x; dy = dy_c+half_size_y; if (dy>M_PI) dy = M_PI; // compute the distance if (dx*dx+dy*dyref; } // step 5: the square is not fully in. Recurse to children return children[0][0]->circle_intersect(cx, cy, cR2) + children[0][1]->circle_intersect(cx, cy, cR2) + children[1][0]->circle_intersect(cx, cy, cR2) + children[1][1]->circle_intersect(cx, cy, cR2); } /* * output a data file for drawing the grid. * This can be used to output a data file containing all the * grid subdivisions. The file contents is as follows: * first and second columns give center of the cell, the third * gives the size. * - flux opened stream to write to * return 0 on success, 1 on error ******************************************************************/ int Cquadtree::save(FILE *flux){ if (flux==NULL) return 1; if (has_child){ fprintf(flux, "%e\t%e\t%e\t%e\n", centre_x, centre_y, half_size_x, half_size_y); children[0][0]->save(flux); children[0][1]->save(flux); children[1][0]->save(flux); children[1][1]->save(flux); } return 0; } /* * output a data file for drawing the tree leaves. * This can be used to output a data file containing all the * tree leaves. The file contents is as follows: * first and second columns give center of the cell, the third * gives the size. * - flux opened stream to write to * return 0 on success, 1 on error ******************************************************************/ int Cquadtree::save_leaves(FILE *flux){ if (flux==NULL) return 1; if (has_child){ if (children[0][0]!=NULL) children[0][0]->save_leaves(flux); if (children[0][1]!=NULL) children[0][1]->save_leaves(flux); if (children[1][0]!=NULL) children[1][0]->save_leaves(flux); if (children[1][1]!=NULL) children[1][1]->save_leaves(flux); } else { fprintf(flux, "%e\t%e\t%e\t%e\n", centre_x, centre_y, half_size_x, half_size_y); } return 0; } } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/reference.h0000644000175000017500000001026611766120144023402 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: reference.h // // Description: header file for checkxor management (Creference class) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 123 $// // $Date:: 2007-03-01 02:52:16 +0100 (Thu, 01 Mar 2007) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __REFERENCE_H__ #define __REFERENCE_H__ namespace siscone{ /** * \class Creference * \brief references used for checksums. * * This class implements some reference variable * that can be used for checksums. Those checksums * are useful to disentengle between contents of two * cones without looking into their explicit particle * contents. */ class Creference{ public: /// default constructor Creference(); /// create a random reference void randomize(); /// test emptyness bool is_empty(); /// test non-emptyness bool not_empty(); /// assignment of reference Creference& operator = (const Creference &r); /// addition of reference Creference operator + (const Creference &r); /// incrementation of reference Creference& operator += (const Creference &r); /// decrementation of reference Creference& operator -= (const Creference &r); /// accessing the reference inline unsigned int operator[] (int i) {return ref[i];} unsigned int ref[3]; ///< actual data for the reference }; /// addition of two references Creference operator + (Creference &r1, Creference &r2); /// equality test of two references bool operator == (const Creference &r1, const Creference &r2); /// difference test of two references bool operator != (const Creference &r1, const Creference &r2); /// ordering of two references bool operator < (const Creference &r1, const Creference &r2); //=============== inline material ================ // equality test for two references //---------------------------------- inline bool operator == (const Creference &r1, const Creference &r2){ return (r1.ref[0]==r2.ref[0]) && (r1.ref[1]==r2.ref[1]) && (r1.ref[2]==r2.ref[2]); } // difference test for two references //---------------------------------- inline bool operator != (const Creference &r1, const Creference &r2){ return (r1.ref[0]!=r2.ref[0]) || (r1.ref[1]!=r2.ref[1]) || (r1.ref[2]!=r2.ref[2]); } // difference test for two references //---------------------------------- inline bool operator < (const Creference &r1, const Creference &r2){ return (r1.ref[0] &_particles, double _radius, double _f, int _n_pass_max=0, Esplit_merge_scale _split_merge_scale=SM_pttilde, bool _hard_only=false); /** * compute the jet active areas from a given particle set. * The parameters of this method are the ones which control the jet clustering alghorithn. * Note that the pt_min is not allowed here soince the jet-area determination involves soft * particles/jets and thus is used internally. * See compute_areas for paramters definition. * \return the number of jets (including pure-ghost ones if they are included) */ int compute_active_areas(std::vector &_particles, double _radius, double _f, int _n_pass_max=0, Esplit_merge_scale _split_merge_scale=SM_pttilde, bool _hard_only=false); /** * compute the jet passive areas from a given particle set. * The parameters of this method are the ones which control the jet clustering alghorithn. * Note that the pt_min is not allowed here soince the jet-area determination involves soft * particles/jets and thus is used internally. * See compute_areas for paramters definition. */ int compute_passive_areas(std::vector &_particles, double _radius, double _f, int _n_pass_max=0, Esplit_merge_scale _split_merge_scale=SM_pttilde); int grid_size; ///< size of the grid we add soft particles on (N_soft=(grid_size^2)) double grid_eta_max; ///< maximal value of eta we add soft particles on double grid_shift; ///< fractional (random) displacement of the points om the grid double pt_soft; ///< pt of the soft particles added double pt_shift; ///< amplitude of the pt random shift double pt_soft_min; ///< pt_min used in SM to compute passive areas /// jets with their areas std::vector jet_areas; }; } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/hash.cpp0000644000175000017500000001675311766120144022731 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: hash.cpp // // Description: source file for classes hash_element and hash_cones // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 225 $// // $Date:: 2008-05-20 16:59:47 +0200 (Tue, 20 May 2008) $// /////////////////////////////////////////////////////////////////////////////// #include #include #include "hash.h" #include namespace siscone{ using namespace std; /************************************************************** * implementation of hash_cones * * list of cones candidates. * * We store in this class all the hash_elements and give * * functions to manipulate them. * **************************************************************/ // constructor with initialisation // - _Np number of particles // - _R2 cone radius (squared) //----------------------------------- hash_cones::hash_cones(int _Np, double _R2){ int i; n_cones = 0; #ifdef DEBUG_STABLE_CONES n_occupied_cells = 0; #endif // determine hash size // for a ymax=5 and R=0.7, we observed an occupancy around 1/8 N^2 ~ N2 R2/4 //mask = 1 << (int) (2*log(double(_Np))/log(2.0)); //if (mask<=1) mask=2; int nbits = (int) (log(_Np*_R2*_Np/4.0)/log(2.0)); if (nbits<1) nbits=1; mask = 1 << nbits; // create hash hash_array = new hash_element*[mask]; mask--; // set the array to 0 //? needed ? for (i=0;inext; delete elm; } } delete[] hash_array; } /* * insert a new candidate into the hash. * - v 4-momentum of the cone to add * - parent parent particle defining the cone * - child child particle defining the cone * - p_io whether the parent has to belong to the cone or not * - c_io whether the child has to belong to the cone or not * return 0 on success, 1 on error ***********************************************************************/ int hash_cones::insert(Cmomentum *v, Cmomentum *parent, Cmomentum *child, bool p_io, bool c_io){ hash_element *elm; int index = (v->ref.ref[0]) & mask; // check the array cell corresponding to our reference elm = hash_array[index]; #ifdef DEBUG_STABLE_CONES if (elm==NULL) n_occupied_cells++; #endif do{ // if it is not present, add it if (elm==NULL){ // create element elm = new hash_element; // set its varibles // Note: at this level, eta and phi have already been computed // through Cmomentum::build_etaphi. elm->ref = v->ref; //compute vectors centre v->build_etaphi(); elm->eta = v->eta; elm->phi = v->phi; // if at least one of the two is_inside tests gives a result != from the expected, // the || will be true hence !(...) false as wanted elm->is_stable = !((is_inside(v, parent)^p_io)||(is_inside(v, child)^c_io)); //cout << "-- new status of " << v->ref[0] << ":" << elm->is_stable << endl; // update hash elm->next = hash_array[index]; hash_array[index] = elm; n_cones++; return 0; } // if the cone is already there, simply update stability status if (v->ref == elm->ref){ // there is only an update to perform to see if the cone is still stable if (elm->is_stable){ v->build_etaphi(); elm->is_stable = !((is_inside(v, parent)^p_io)||(is_inside(v, child)^c_io)); //cout << " parent/child: " // << parent->ref[0] << ":" << is_inside(v, parent) << ":" << p_io << " " // << child->ref[0] << ":" << is_inside(v, child) << ":" << c_io << endl; //cout << "-- rep status of " << v->ref[0] << ":" << elm->is_stable << endl; //cout << v->eta << " " << v->phi << endl; //cout << (child->eta) << " " << child->phi << endl; } return 0; } elm = elm->next; } while (1); return 1; } /* * insert a new candidate into the hash. * - v 4-momentum of te cone to add * Note, in this case, we assume stability. We also assume * that eta and phi are computed for v * return 0 on success, 1 on error ***********************************************************************/ int hash_cones::insert(Cmomentum *v){ hash_element *elm; int index = (v->ref.ref[0]) & mask; //cout << "-- stable candidate: " << v->ref[0] << ":" << endl; // check the array cell corresponding to our reference elm = hash_array[index]; do{ // if it is not present, add it if (elm==NULL){ // create element elm = new hash_element; // set its varibles // Note: at this level, eta and phi have already been computed // through Cmomentum::build_etaphi. elm->ref = v->ref; elm->eta = v->eta; elm->phi = v->phi; elm->is_stable = true; // update hash elm->next = hash_array[index]; hash_array[index] = elm; n_cones++; return 0; } // if the cone is already there, we have nothing to do if (v->ref == elm->ref){ return 0; } elm = elm->next; } while (1); return 1; } /* * test if a particle is inside a cone of given centre. * check if the particle of coordinates 'v' is inside the circle of radius R * centered at 'centre'. * - centre centre of the circle * - v particle to test * return true if inside, false if outside ******************************************************************************/ inline bool hash_cones::is_inside(Cmomentum *centre, Cmomentum *v){ double dx, dy; dx = centre->eta - v->eta; dy = fabs(centre->phi - v->phi); if (dy>M_PI) dy -= 2.0*M_PI; return dx*dx+dy*dy #include #include "defines.h" #ifndef M_PI #define M_PI 3.141592653589793238462643383279502884197 #endif namespace siscone{ /// return a result that corresponds to phi, but in the /// range (-pi..pi]; the result is only correct if -3pi < phi <= 3pi inline double phi_in_range(double phi) { if (phi <= -M_PI) phi += twopi; else if (phi > M_PI) phi -= twopi; return phi; } /// return the difference between the two phi values, /// placed in the correct range (-pi..pi], , assuming that phi1,phi2 /// are already in the correct range. inline double dphi(double phi1, double phi2) { return phi_in_range(phi1-phi2); } /// return the absolute difference between the two phi values, /// placed in the correct range, assuming that phi1,phi2 are already /// in the correct range. inline double abs_dphi(double phi1, double phi2) { double delta = fabs(phi1-phi2); return delta > M_PI ? twopi-delta : delta; } /// return the square of the argument inline double pow2(double x) {return x*x;} /** * \class Ctwovect * \brief class for holding a two-vector */ class Ctwovect { public: /// default ctor Ctwovect() : x(0.0), y(0.0) {} /// ctor with initialisation /// \param _x first coordinate /// \param _y second coordinate Ctwovect(double _x, double _y) : x(_x), y(_y) {} /// vector coordinates double x, y; /// norm (modulud square) of the vector inline double mod2() const {return pow2(x)+pow2(y);} /// modulus of the vector inline double modulus() const {return sqrt(mod2());} }; /// dot product of two 2-vectors /// \param a first 2-vect /// \param b second 2-vect /// \return a.b is returned inline double dot_product(const Ctwovect & a, const Ctwovect & b) { return a.x*b.x + a.y*b.y; } /// cross product of two 2-vectors /// \param a first 2-vect /// \param b second 2-vect /// \return a x b is returned inline double cross_product(const Ctwovect & a, const Ctwovect & b) { return a.x*b.y - a.y*b.x; } /** * \class Ceta_phi_range * \brief class for holding a covering range in eta-phi * * This class deals with ranges in the eta-phi plane. It * implements methods to test if two ranges overlap and * to take the union of two overlapping intervals. */ class Ceta_phi_range{ public: /// default ctor Ceta_phi_range(); /// ctor with initialisation /// we initialise with a centre (in eta,phi) and a radius /// \param c_eta eta coordinate of the centre /// \param c_phi phi coordinate of the centre /// \param R radius Ceta_phi_range(double c_eta, double c_phi, double R); /// assignment of range /// \param r range to assign to current one Ceta_phi_range& operator = (const Ceta_phi_range &r); /// add a particle to the range /// \param eta eta coordinate of the particle /// \param phi phi coordinate of the particle /// \return 0 on success, 1 on error int add_particle(const double eta, const double phi); /// eta range as a binary coding of covered cells unsigned int eta_range; /// phi range as a binary coding of covered cells unsigned int phi_range; // extremal value for eta static double eta_min; ///< minimal value for eta static double eta_max; ///< maximal value for eta private: /// return the cell index corrsponding to an eta value inline unsigned int get_eta_cell(double eta){ return (unsigned int) (1 << ((int) (32*((eta-eta_min)/(eta_max-eta_min))))); } /// return the cell index corrsponding to a phi value inline unsigned int get_phi_cell(double phi){ return (unsigned int) (1 << ((int) (32*phi/twopi+16)%32)); } }; /// test overlap /// \param r1 first range /// \param r2 second range /// \return true if overlap, false otherwise. bool is_range_overlap(const Ceta_phi_range &r1, const Ceta_phi_range &r2); /// compute union /// Note: we assume that the two intervals overlap /// \param r1 first range /// \param r2 second range /// \return union of the two ranges const Ceta_phi_range range_union(const Ceta_phi_range &r1, const Ceta_phi_range &r2); } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/momentum.cpp0000644000175000017500000001213511766120144023635 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: momentum.cpp // // Description: source file for 4-momentum class Cmomentum // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 123 $// // $Date:: 2007-03-01 02:52:16 +0100 (Thu, 01 Mar 2007) $// /////////////////////////////////////////////////////////////////////////////// #include "momentum.h" #include #include namespace siscone{ /************************************************************************* * class Cmomentum * * This class contains the information for particle or group of * * particles management. * * It includes all Lorentz properties as well as tools for summing them. * *************************************************************************/ // default ctor //-------------- Cmomentum::Cmomentum(){ eta = 0.0; phi = 0.0; px = py = pz = E = 0.0; ref = Creference(); index = -1; } // ctor with initialisation //-------------------------- Cmomentum::Cmomentum(double _px, double _py, double _pz, double _E){ px = _px; py = _py; pz = _pz; E = _E; // compute eta and phi build_etaphi(); ref = Creference(); } // ctor with detailed initialisation //----------------------------------- Cmomentum::Cmomentum(double _eta, double _phi, Creference _ref){ eta = _eta; phi = _phi; ref = _ref; } // default dtor //-------------- Cmomentum::~Cmomentum(){ } // assignment of vectors //----------------------- Cmomentum& Cmomentum::operator = (const Cmomentum &v){ px = v.px; py = v.py; pz = v.pz; E = v.E; eta = v.eta; phi = v.phi; ref = v.ref; return *this; } // addition of vectors // !!! WARNING !!! no updating of eta and phi !!! //------------------------------------------------ const Cmomentum Cmomentum::operator + (const Cmomentum &v){ Cmomentum tmp = *this; return tmp+=v; } // incrementation of vectors // !!! WARNING !!! no updating of eta and phi !!! //------------------------------------------------ Cmomentum& Cmomentum::operator += (const Cmomentum &v){ px+=v.px; py+=v.py; pz+=v.pz; E +=v.E; ref+=v.ref; return *this; } // incrementation of vectors // !!! WARNING !!! no updating of eta and phi !!! //------------------------------------------------ Cmomentum& Cmomentum::operator -= (const Cmomentum &v){ px-=v.px; py-=v.py; pz-=v.pz; E -=v.E; ref-=v.ref; return *this; } // build eta-phi from 4-momentum info // !!! WARNING !!! // !!! computing eta and phi is time-consuming !!! // !!! use this whenever you need eta or phi !!! // !!! automatically called for single-particle !!! //-------------------------------------------------- void Cmomentum::build_etaphi(){ // note: the factor n (ref.nb) cancels in all expressions !! eta = 0.5*log((E+pz)/(E-pz)); phi = atan2(py,px); } // ordering of two vectors // the default ordering is w.r.t. their references //------------------------------------------------- bool operator < (const Cmomentum &v1, const Cmomentum &v2){ return v1.ref < v2.ref; } // ordering of vectors in eta (e.g. used in collinear tests) //----------------------------------------------------------- bool momentum_eta_less(const Cmomentum &v1, const Cmomentum &v2){ return v1.eta < v2.eta; } // ordering of vectors in pt //--------------------------- bool momentum_pt_less(const Cmomentum &v1, const Cmomentum &v2){ return v1.perp2() < v2.perp2(); } } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/siscone_error.h0000644000175000017500000000566511766120144024327 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: siscone_error.h // // Description: header file for SISCone error messages (Csiscone_error) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 327 $// // $Date:: 2011-11-25 15:19:39 +0100 (Fri, 25 Nov 2011) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __SISCONE_ERROR_H__ #define __SISCONE_ERROR_H__ #include #include namespace siscone{ /// \class Csiscone_error /// class corresponding to errors that will be thrown by siscone class Csiscone_error { public: /// default ctor Csiscone_error() {;}; /// ctor with a given error message /// \param message_in the error message to be printed Csiscone_error(const std::string & message_in) { m_message = message_in; if (m_print_errors) std::cerr << "siscone::Csiscone_error: "<< message_in << std::endl; }; /// access to the error message std::string message() const {return m_message;}; /// switch on/off the error message printing /// \param print_errors errors will be printed when true static void setm_print_errors(bool print_errors) { m_print_errors = print_errors;}; private: std::string m_message; ///< the error message static bool m_print_errors; ///< do we print error messages? }; } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/Makefile.in0000644000175000017500000006060312233506730023337 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = siscone DIST_COMMON = $(sisconeinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/config.h.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(sisconeincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libsiscone_la_LIBADD = am_libsiscone_la_OBJECTS = ranlux.lo reference.lo geom_2d.lo \ momentum.lo hash.lo quadtree.lo vicinity.lo protocones.lo \ split_merge.lo siscone.lo siscone_error.lo area.lo libsiscone_la_OBJECTS = $(am_libsiscone_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsiscone_la_SOURCES) DIST_SOURCES = $(libsiscone_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(nodist_noinst_HEADERS) $(sisconeinclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = . spherical # build information for the SISCone library # this is built as a libtool lib. lib_LTLIBRARIES = libsiscone.la libsiscone_la_SOURCES = ranlux.cpp reference.cpp geom_2d.cpp\ momentum.cpp hash.cpp quadtree.cpp vicinity.cpp\ protocones.cpp split_merge.cpp siscone.cpp\ siscone_error.cpp area.cpp EXTRA_DIST = makefile.static # install the SISCone headers sisconeincludedir = $(includedir)/siscone sisconeinclude_HEADERS = area.h\ circulator.h\ defines.h\ geom_2d.h\ hash.h\ momentum.h\ protocones.h\ quadtree.h\ ranlux.h\ reference.h\ siscone_error.h\ siscone.h\ split_merge.h\ vicinity.h # Don't distribute config.h. Note that it'll be accessible through -I. nodist_noinst_HEADERS = config.h all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu siscone/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu siscone/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(top_srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status siscone/config.h $(top_srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsiscone.la: $(libsiscone_la_OBJECTS) $(libsiscone_la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(libsiscone_la_OBJECTS) $(libsiscone_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/area.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geom_2d.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/momentum.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocones.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quadtree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ranlux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reference.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siscone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siscone_error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/split_merge.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vicinity.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-sisconeincludeHEADERS: $(sisconeinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(sisconeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(sisconeincludedir)" @list='$(sisconeinclude_HEADERS)'; test -n "$(sisconeincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(sisconeincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(sisconeincludedir)" || exit $$?; \ done uninstall-sisconeincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(sisconeinclude_HEADERS)'; test -n "$(sisconeincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(sisconeincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(sisconeincludedir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(sisconeincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-sisconeincludeHEADERS install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-sisconeincludeHEADERS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \ distclean distclean-compile distclean-generic distclean-hdr \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES install-man install-pdf \ install-pdf-am install-ps install-ps-am \ install-sisconeincludeHEADERS install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-sisconeincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/split_merge.h0000644000175000017500000003454211766120144023761 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: split_merge.h // // Description: header file for splitting/merging (contains the CJet class) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 268 $// // $Date:: 2009-03-12 21:24:16 +0100 (Thu, 12 Mar 2009) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __SPLIT_MERGE_H__ #define __SPLIT_MERGE_H__ #include "defines.h" #include "geom_2d.h" #include "momentum.h" #include #include #include #include #include namespace siscone{ /** * \class Cjet * real Jet information. * * This class contains information for one single jet. * That is, first, its momentum carrying information * about its centre and pT, and second, its particle * contents */ class Cjet{ public: /// default ctor Cjet(); /// default dtor ~Cjet(); Cmomentum v; ///< jet momentum double pt_tilde; ///< p-scheme pt int n; ///< number of particles inside std::vector contents; ///< particle contents (list of indices) /// ordering variable used for ordering and overlap in the /// split--merge. This variable is automatically set either to /// pt_tilde, or to mt or to pt, depending on the siscone /// parameter. Note that the default behaviour is pt_tilde and that /// other chices may lead to infrared unsafe situations. /// Note: we use the square of the varible rather than the variable itself double sm_var2; /// covered range in eta-phi Ceta_phi_range range; /// pass at which the jet has been found /// It starts at 0 (first pass), -1 means infinite rapidity int pass; }; /// ordering of jets in pt (e.g. used in final jets ordering) bool jets_pt_less(const Cjet &j1, const Cjet &j2); /// the choices of scale variable that can be used in the split-merge /// step, both for ordering the protojets and for measuing their /// overlap; pt, Et and mt=sqrt(pt^2+m^2) are all defined in E-scheme /// (4-momentum) recombination; pttilde = \sum_{i\in jet} |p_{t,i}| /// /// NB: if one changes the order here, one _MUST_ also change the order /// in the SISCone plugin enum Esplit_merge_scale { SM_pt, ///< transverse momentum (E-scheme), IR unsafe SM_Et, ///< transverse energy (E-scheme), not long. boost inv. ///< original run-II choice [may not be implemented] SM_mt, ///< transverse mass (E-scheme), IR safe except ///< in decays of two identical narrow heavy particles SM_pttilde ///< pt-scheme pt = \sum_{i in jet} |p_{ti}|, should ///< be IR safe in all cases }; /// return the name of the split-merge scale choice std::string split_merge_scale_name(Esplit_merge_scale sms); /** * \class Csplit_merge_ptcomparison * comparison of jets for split--merge ordering * * a class that allows us to carry out comparisons of pt of jets, using * information from exact particle contents where necessary. */ class Csplit_merge_ptcomparison{ public: /// default ctor Csplit_merge_ptcomparison() : particles(0), split_merge_scale(SM_pttilde){}; /// return the name corresponding to the SM scale variable std::string SM_scale_name() const { return split_merge_scale_name(split_merge_scale);} std::vector * particles; ///< pointer to the list of particles std::vector * pt; ///< pointer to the pt of the particles /// comparison between 2 jets bool operator()(const Cjet &jet1, const Cjet &jet2) const; /** * get the difference between 2 jets, calculated such that rounding * errors will not affect the result even if the two jets have * almost the same content (so that the difference is below the * rounding errors) * * \param j1 first jet * \param j2 second jet * \param v jet1-jet2 * \param pt_tilde jet1-jet2 pt_tilde */ void get_difference(const Cjet &j1, const Cjet &j2, Cmomentum *v, double *pt_tilde) const; /// the following parameter controls the variable we're using for /// the split-merge process i.e. the variable we use for /// 1. ordering jet candidates; /// 2. computing te overlap fraction of two candidates. /// The default value uses pttile (p-scheme pt). Other alternatives are /// pt, mt=sqrt(pt^2+m^2)=sqrt(E^2-pz^2) or Et. /// NOTE: Modifying the default choice can have nasty effects: /// - using pt leads to some IR unsafety when we have two jets, /// e.g. back-to-back, with the same pt. In that case, their ordering /// in pt is random and can be affected by the addition of a /// soft particle. Hence, we highly recommand to keep this to /// the default value i.e. to use pt only for the purpose of /// investigating the IR issue /// - using Et is safe but do not respect boost invariance /// - using mt solves the IR unsafety issues with the pt variable /// for QCD jets but the IR unsafety remains for nack-to-back /// jets of unstable narrow-width particles (e.g. Higgs). /// Therefore, keeping the default value is strongly advised. Esplit_merge_scale split_merge_scale; }; // iterator types /// iterator definition for the jet candidates structure typedef std::multiset::iterator cjet_iterator; /// iterator definition for the jet structure typedef std::vector::iterator jet_iterator; /** * \class Csplit_merge * Class used to split and merge jets. */ class Csplit_merge{ public: /// default ctor Csplit_merge(); /// default dtor ~Csplit_merge(); ////////////////////////////// // initialisation functions // ////////////////////////////// /** * initialisation function * \param _particles list of particles * \param protocones list of protocones (initial jet candidates) * \param R2 cone radius (squared) * \param ptmin minimal pT allowed for jets * \return 0 on success, 1 on error */ int init(std::vector &_particles, std::vector *protocones, double R2, double ptmin=0.0); /** * initialisation function for particle list * \param _particles list of particles * \return 0 on success, 1 on error */ int init_particles(std::vector &_particles); /** * build initial list of left particles */ int init_pleft(); /** * use a pt-dependent boundary for splitting * When called with true, the criterium for splitting two protojets * will be to compare D1^2/kt1^2 vs. D2^2/kt2^2, the (anti-)kt-weighted * distance instead of the plain distance D1^2 vs. D2^2. * This can be set in order to produce more circular hard jets, * with the same underlying philosophy as for the anti-kt algorithm. * We thus expect a behaviour closer to the IterativeCone one. * By default, we use the standard D1^2 vs. D2^2 comparison and this * function is not called. */ inline int set_pt_weighted_splitting(bool _use_pt_weighted_splitting){ use_pt_weighted_splitting = _use_pt_weighted_splitting; return 0; } //////////////////////// // cleaning functions // //////////////////////// /// partial clearance int partial_clear(); /// full clearance int full_clear(); ///////////////////////////////// // main parts of the algorithm // ///////////////////////////////// /** * build the list 'p_uncol_hard' from p_remain by clustering * collinear particles and removing particles softer than * stable_cone_soft_pt2_cutoff * note that thins in only used for stable-cone detection * so the parent_index field is unnecessary */ int merge_collinear_and_remove_soft(); /** * add a list of protocones * \param protocones list of protocones (initial jet candidates) * \param R2 cone radius (squared) * \param ptmin minimal pT allowed for jets * \return 0 on success, 1 on error */ int add_protocones(std::vector *protocones, double R2, double ptmin=0.0); /** * really do the splitting and merging * At the end, the vector jets is filled with the jets found. * the 'contents' field of each jets contains the indices * of the particles included in that jet. * \param overlap_tshold threshold for splitting/merging transition * \param ptmin minimal pT allowed for jets * \return the number of jets is returned */ int perform(double overlap_tshold, double ptmin=0.0); ////////////////////////////// // save and debug functions // ////////////////////////////// /// save final jets /// \param flux stream to save the jet contentss int save_contents(FILE *flux); /// show jets/candidates status int show(); // particle information int n; ///< number of particles std::vector particles; ///< list of particles std::vector pt; ///< list of particles' pt int n_left; ///< numer of particles that does not belong to any jet std::vector p_remain; ///< list of particles remaining to deal with std::vector p_uncol_hard; ///< list of particles remaining with collinear clustering int n_pass; ///< index of the run /// minimal difference in squared distance between a particle and /// two overlapping protojets when doing a split (useful when /// testing approx. collinear safety) double most_ambiguous_split; // jets information std::vector jets; ///< list of jets // working entries int *indices; ///< maximal size array for indices works int idx_size; ///< number of elements in indices1 /// The following flag indicates that identical protocones /// are to be merged automatically each time around the split-merge /// loop and before anything else happens. /// /// This flag is only effective if ALLOW_MERGE_IDENTICAL_PROTOCONES /// is set in 'defines.h' /// Note that this lead to infrared-unsafety so it is disabled /// by default bool merge_identical_protocones; /// member used for detailed comparisons of pt's Csplit_merge_ptcomparison ptcomparison; /// stop split--merge when the SM_var of the hardest protojet /// is below this cut-off. /// This is not collinear-safe so you should not use this /// variable unless you really know what you are doing /// Note that the cut-off is set on the variable squared. double SM_var2_hardest_cut_off; /// pt cutoff for the particles to put in p_uncol_hard /// this is meant to allow removing soft particles in the /// stable-cone search. double stable_cone_soft_pt2_cutoff; private: /** * get the overlap between 2 jets * \param j1 first jet * \param j2 second jet * \param v returned overlap^2 (determined by the choice of SM variable) * \return true if overlapping, false if disjoint */ bool get_overlap(const Cjet &j1, const Cjet &j2, double *v); /** * split the two given jets. * during this procedure, the jets j1 & j2 are replaced * by 2 new jets. Common particles are associted to the * closest initial jet. * \param it_j1 iterator of the first jet in 'candidates' * \param it_j2 iterator of the second jet in 'candidates' * \param j1 first jet (Cjet instance) * \param j2 second jet (Cjet instance) * \return true on success, false on error */ bool split(cjet_iterator &it_j1, cjet_iterator &it_j2); /** * merge the two given jet. * during this procedure, the jets j1 & j2 are replaced * by 1 single jets containing both of them. * \param it_j1 iterator of the first jet in 'candidates' * \param it_j2 iterator of the second jet in 'candidates' * \return true on success, false on error */ bool merge(cjet_iterator &it_j1, cjet_iterator &it_j2); /** * Check whether or not a jet has to be inserted in the * list of protojets. If it has, set its sm_variable and * insert it to the list of protojets. * \param jet jet to insert */ bool insert(Cjet &jet); /** * given a 4-momentum and its associated pT, return the * variable tht has to be used for SM * \param v 4 momentum of the protojet * \param pt_tilde pt_tilde of the protojet */ double get_sm_var2(Cmomentum &v, double &pt_tilde); // jet information /// list of jet candidates std::auto_ptr > candidates; /// minimal pt2 double pt_min2; /** * do we have or not to use the pt-weighted splitting * (see description for set_pt_weighted_splitting) * This will be false by default */ bool use_pt_weighted_splitting; #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES /// checkxor for the candidates (to avoid having twice the same contents) std::set cand_refs; #endif }; } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/siscone.h0000644000175000017500000001447411766120144023114 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: siscone.h // // Description: header file for the main SISCone class // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 325 $// // $Date:: 2011-11-25 12:41:17 +0100 (Fri, 25 Nov 2011) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __SISCONE_H__ #define __SISCONE_H__ #include "protocones.h" #include "split_merge.h" namespace siscone{ /** * \class Csiscone * final class: gather everything to compute the jet contents. * * This is the class user should use. * It computes the jet contents of a list of particles * given a cone radius and a threshold for splitting/merging. * * After the call to 'perform', the vector jets is filled with * the jets found. the 'contents' field of each jets contains * the indices of the particles included in that jet. */ class Csiscone : public Cstable_cones, public Csplit_merge{ public: /// default ctor Csiscone(); /// default dtor ~Csiscone(); /** * compute the jets from a given particle set. * We are doing multiple passes such pass n_pass looks for jets among * all particles not put into jets during previous passes. * By default the number of passes is infinite (0). * \param _particles list of particles * \param _radius cone radius * \param _f shared energy threshold for splitting&merging * \param _n_pass_max maximum number of passes (0=full search) * \param _ptmin minimum pT of the protojets * \param _split_merge_scale the scale choice for the split-merge procedure * NOTE: SM_pt leads to IR unsafety for some events with momentum conservation. * SM_Et is IR safe but not boost invariant and not implemented(!) * SM_mt is IR safe for hadronic events, but not for decays of two * back-to-back particles of identical mass * SM_pttilde * is always IR safe, and also boost invariant (default) * * \return the number of jets found. */ int compute_jets(std::vector &_particles, double _radius, double _f, int _n_pass_max=0, double _ptmin=0.0, Esplit_merge_scale _split_merge_scale=SM_pttilde); /** * recompute the jets with a different overlap parameter. * we use the same particles and R as in the preceeding call. * \param _f shared energy threshold for splitting&merging * \param _ptmin minimum pT of the protojets * \param _split_merge_scale the scale choice for the split-merge procedure * split--merge variable * NOTE: using pt leads to IR unsafety for some events with momentum * conservation. So we strongly advise not to change the default * value. * \return the number of jets found, -1 if recomputation not allowed. */ int recompute_jets(double _f, double _ptmin = 0.0, Esplit_merge_scale _split_merge_scale=SM_pttilde); /// list of protocones found pass-by-pass std::vector > protocones_list; // random number initialisation static bool init_done; ///< check random generator initialisation #ifdef DEBUG_STABLE_CONES int nb_hash_cones_total, nb_hash_occupied_total; #endif /** * A call to this function modifies the stream * used to print banners (by default cout). * * Please note that if you distribute 3rd party code * that links with SISCone, that 3rd party code must not * use this call turn off the printing of thw banner * by default. This requirement reflects the spirit of * clause 2c of the GNU Public License (v2), under which * SISCone is distributed. */ static void set_banner_stream(std::ostream * ostr) {_banner_ostr = ostr;} /** * returns a pointer to the stream to be used to print banners * (cout by default) */ static std::ostream * banner_stream() {return _banner_ostr;} private: bool rerun_allowed; ///< is recompute_jets allowed ? static std::ostream * _banner_ostr; ///< stream to use for banners }; // finally, a bunch of functions to access to // basic information (package name, version) //--------------------------------------------- /** * return SISCone package name. * This is nothing but "SISCone", it is a replacement to the * PACKAGE_NAME string defined in config.h and which is not * public by default. * \return the SISCone name as a string */ std::string siscone_package_name(); /** * return SISCone version number. * \return a string of the form "X.Y.Z" with possible additional tag * (alpha, beta, devel) to mention stability status */ std::string siscone_version(); } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/siscone.cpp0000644000175000017500000002151612233506640023441 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: siscone.cpp // // Description: source file for the main SISCone class // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 341 $// // $Date:: 2013-04-08 12:21:06 +0200 (Mon, 08 Apr 2013) $// /////////////////////////////////////////////////////////////////////////////// //#ifdef HAVE_CONFIG_H #include "config.h" //#else //#define PACKAGE_NAME "SISCone" //#define VERSION "2.0.6" //#warning "No config.h file available, using preset values" //#endif #include "ranlux.h" #include "momentum.h" #include "defines.h" #include "siscone.h" #include "siscone_error.h" #include #include #include namespace siscone{ using namespace std; /*************************************************************** * Csiscone implementation * * final class: gather everything to compute the jet contents. * * * * This is the class user should use. * * It computes the jet contents of a list of particles * * given a cone radius and a threshold for splitting/merging. * ***************************************************************/ // default ctor //-------------- Csiscone::Csiscone(){ rerun_allowed = false; } // default dtor //-------------- Csiscone::~Csiscone(){ rerun_allowed = false; } bool Csiscone::init_done=false; std::ostream* Csiscone::_banner_ostr = &cout; /* * compute the jets from a given particle set doing multiple passes * such pass N looks for jets among all particles not put into jets * during previous passes. * - _particles list of particles * - _radius cone radius * - _f shared energy threshold for splitting&merging * - _n_pass_max maximum number of runs * - _ptmin minimum pT of the protojets * - _split_merge_scale the scale choice for the split-merge procedure * NOTE: using pt leads to IR unsafety for some events with momentum * conservation. So we strongly advise not to change the default * value. * return the number of jets found. **********************************************************************/ int Csiscone::compute_jets(vector &_particles, double _radius, double _f, int _n_pass_max, double _ptmin, Esplit_merge_scale _split_merge_scale){ // initialise random number generator if (!init_done){ // initialise random number generator ranlux_init(); // do not do this again init_done=true; // print the banner if (_banner_ostr != 0){ (*_banner_ostr) << "#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" << endl; (*_banner_ostr) << "# SISCone version " << setw(28) << left << siscone_version() << "o" << endl; (*_banner_ostr) << "# http://projects.hepforge.org/siscone o" << endl; (*_banner_ostr) << "# o" << endl; (*_banner_ostr) << "# This is SISCone: the Seedless Infrared Safe Cone Jet Algorithm o" << endl; (*_banner_ostr) << "# SISCone was written by Gavin Salam and Gregory Soyez o" << endl; (*_banner_ostr) << "# It is released under the terms of the GNU General Public License o" << endl; (*_banner_ostr) << "# o" << endl; (*_banner_ostr) << "# A description of the algorithm is available in the publication o" << endl; (*_banner_ostr) << "# JHEP 05 (2007) 086 [arXiv:0704.0292 (hep-ph)]. o" << endl; (*_banner_ostr) << "# Please cite it if you use SISCone. o" << endl; (*_banner_ostr) << "#ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" << endl; (*_banner_ostr) << endl; _banner_ostr->flush(); } } // run some general safety tests (NB: f will be checked in split-merge) if (_radius <= 0.0 || _radius >= 0.5*M_PI) { ostringstream message; message << "Illegal value for cone radius, R = " << _radius << " (legal values are 00) && (_n_pass_max!=0)); rerun_allowed = true; // split & merge return perform(_f, _ptmin); } /* * recompute the jets with a different overlap parameter. * we use the same particles and R as in the preceeding call. * - _f shared energy threshold for splitting&merging * - _ptmin minimum pT of the protojets * - _split_merge_scale the scale choice for the split-merge procedure * NOTE: using pt leads to IR unsafety for some events with momentum * conservation. So we strongly advise not to change the default * value. * return the number of jets found, -1 if recomputation not allowed. ********************************************************************/ int Csiscone::recompute_jets(double _f, double _ptmin, Esplit_merge_scale _split_merge_scale){ if (!rerun_allowed) return -1; ptcomparison.split_merge_scale = _split_merge_scale; // restore particle list partial_clear(); init_pleft(); // initialise split/merge algorithm unsigned int i; for (i=0;i #include #include namespace siscone{ using namespace std; /************************************************************* * Cvicinity_elm implementation * * element in the vicinity of a parent. * * class used to manage one points in the vicinity * * of a parent point. * *************************************************************/ // ordering pointers to Cvicinity_elm //------------------------------------ bool ve_less(Cvicinity_elm *ve1, Cvicinity_elm *ve2){ return ve1->angle < ve2->angle; } /************************************************************* * Cvicinity implementation * * list of element in the vicinity of a parent. * * class used to manage the points which are in the vicinity * * of a parent point. The construction of the list can be * * made from a list of points or from a quadtree. * *************************************************************/ // default constructor //--------------------- Cvicinity::Cvicinity(){ n_part = 0; ve_list = NULL; #ifdef USE_QUADTREE_FOR_STABILITY_TEST quadtree = NULL; #endif parent = NULL; VR2 = VR = 0.0; } // constructor with initialisation //--------------------------------- Cvicinity::Cvicinity(vector &_particle_list){ parent = NULL; #ifdef USE_QUADTREE_FOR_STABILITY_TEST quadtree = NULL; #endif VR2 = VR = 0.0; set_particle_list(_particle_list); } // default destructor //-------------------- Cvicinity::~Cvicinity(){ if (ve_list!=NULL) delete[] ve_list; #ifdef USE_QUADTREE_FOR_STABILITY_TEST if (quadtree!=NULL) delete quadtree; #endif } /* * set the particle_list * - particle_list list of particles (type Cmomentum) * - n number of particles in the list ************************************************************/ void Cvicinity::set_particle_list(vector &_particle_list){ int i,j; #ifdef USE_QUADTREE_FOR_STABILITY_TEST double eta_max=0.0; #endif // if the particle list is not empty, destroy it ! if (ve_list!=NULL){ delete[] ve_list; } vicinity.clear(); #ifdef USE_QUADTREE_FOR_STABILITY_TEST if (quadtree!=NULL) delete quadtree; #endif // allocate memory array for particles // Note: - we compute max for |eta| // - we allocate indices to particles n_part = 0; plist.clear(); pincluded.clear(); for (i=0;i<(int) _particle_list.size();i++){ // if a particle is colinear with the beam (infinite rapidity) // we do not take it into account if (fabs(_particle_list[i].pz)!=_particle_list[i].E){ plist.push_back(_particle_list[i]); pincluded.push_back(Cvicinity_inclusion()); // zero inclusion status // the parent_index is handled in the split_merge because // of our multiple-pass procedure. // Hence, it is not required here any longer. // plist[n_part].parent_index = i; plist[n_part].index = n_part; // make sure the reference is randomly created plist[n_part].ref.randomize(); #ifdef USE_QUADTREE_FOR_STABILITY_TEST if (fabs(plist[n_part].eta)>eta_max) eta_max=fabs(plist[n_part].eta); #endif n_part++; } } // allocate quadtree and vicinity_elm list // note: we set phi in [-pi:pi] as it is the natural range for atan2! ve_list = new Cvicinity_elm[2*n_part]; #ifdef USE_QUADTREE_FOR_STABILITY_TEST eta_max+=0.1; quadtree = new Cquadtree(0.0, 0.0, eta_max, M_PI); #endif // append particle to the vicinity_elm list j = 0; for (i=0;iadd(&plist[i]); #endif ve_list[j].v = ve_list[j+1].v = &plist[i]; ve_list[j].is_inside = ve_list[j+1].is_inside = &(pincluded[i]); j+=2; } } /* * build the vicinity list from a list of points. * - _parent reference particle * - _VR vicinity radius ************************************************************/ void Cvicinity::build(Cmomentum *_parent, double _VR){ int i; // set parent and radius parent = _parent; VR = _VR; VR2 = VR*VR; R2 = 0.25*VR2; R = 0.5*VR; inv_R_EPS_COCIRC = 1.0 / R / EPSILON_COCIRCULAR; inv_R_2EPS_COCIRC = 0.5 / R / EPSILON_COCIRCULAR; // clear vicinity vicinity.clear(); // init parent variables pcx = parent->eta; pcy = parent->phi; // really browse the particle list for (i=0;i0) ? 0.0 : 2.0; double t=c/s; return (s>0) ? 1-t/(1+fabs(t)) : 3-t/(1+fabs(t)); } /* * append a particle to the 'vicinity' list after * having computed the angular-ordering quantities * - v vector to test **********************************************************/ void Cvicinity::append_to_vicinity(Cmomentum *v){ double dx, dy, d2; // skip the particle itself) if (v==parent) return; int i=2*(v->index); // compute the distance of the i-th particle with the parent dx = v->eta - pcx; dy = v->phi - pcy; // pay attention to the periodicity in phi ! if (dy>M_PI) dy -= twopi; else if (dy<-M_PI) dy += twopi; d2 = dx*dx+dy*dy; // really check if the distance is less than VR if (d2eta - ve_list[i+1].eta, phi_in_range(v->phi-ve_list[i+1].phi)); // two sources of error are (GPS CCN29-19) epsilon/(R sin theta) // and sqrt(2*epsilon/(R (1-cos theta))) and the way things work // out, it is the _smaller_ of the two that is relevant [NB have // changed definition of theta here relative to that used in // CCN29] [NB2: write things so as to avoid zero denominators and // to minimize the multiplications, divisions and above all sqrts // -- that means that c & s are defined including a factor of VR2] c = dot_product(OP,OC); s = fabs(cross_product(OP,OC)); double inv_err1 = s * inv_R_EPS_COCIRC; double inv_err2_sq = (R2-c) * inv_R_2EPS_COCIRC; ve_list[i].cocircular_range = pow2(inv_err1) > inv_err2_sq ? 1.0/inv_err1 : sqrt(1.0/inv_err2_sq); ve_list[i+1].cocircular_range = ve_list[i].cocircular_range; } } } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/circulator.h0000644000175000017500000001002311766120144023602 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: circulator.h // // Description: header file for circulator (circulator class) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 103 $// // $Date:: 2007-02-18 17:07:34 +0100 (Sun, 18 Feb 2007) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __CIRCULATOR_H__ #define __CIRCULATOR_H__ namespace siscone{ /// \class circulator /// a circulator that is foreseen to take as template member either a /// pointer or an iterator; template class circulator { public: /// ctor with iniitalisation from iterators /// \param here the current position /// \param begin the first position /// \param end the last position inline circulator(T here, T begin, T end) : m_here(here), m_begin(begin), m_end(end) {} /// copy ctor /// \param other the circulator to copy inline circulator(const circulator & other) : m_here(other.m_here), m_begin(other.m_begin), m_end(other.m_end) {} /// set just the position without resetting the begin and end elements /// \param other the circulator to grab position from void set_position(const circulator & other) {m_here = other.m_here;} /// set just the position without resetting the begin and end elements /// \param pointer the iterator to use as the new position void set_position(T pointer) {m_here = pointer;} /// get the current object T operator()() {return m_here;} /// position incrementation inline circulator & operator++() { ++m_here; if (m_here == m_end) m_here = m_begin; return *this; } /// position decrementation inline circulator & operator--() { if (m_here == m_begin) m_here = m_end; --m_here; return *this; } /// check if the current elements are the same /// NB: for efficiency, this checks only the here element /// \param other the circulator to compare to the current one bool operator==(const circulator & other) const {return m_here == other.m_here;} /// check if the current elements are different /// NB: for efficiency, this checks only the here element /// \param other the circulator to compare to the current one bool operator!=(const circulator & other) const {return m_here != other.m_here;} private: T m_here, m_begin, m_end; ///< the current, beginning and ending iterators/pointers }; } #endif // __CIRCULATOR_H__ fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/quadtree.h0000644000175000017500000001175611766120144023263 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: quadtree.h // // Description: header file for quadtree management (Cquadtree class) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 123 $// // $Date:: 2007-03-01 02:52:16 +0100 (Thu, 01 Mar 2007) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __QUADTREE_H__ #define __QUADTREE_H__ #include "momentum.h" #include namespace siscone{ /** * \class Cquadtree * \brief Implementation of a 2D quadtree. * * This class implements the traditional two-dimensional quadtree. * The elements at each node are of 'Cmomentum' type. */ class Cquadtree{ public: /// default ctor Cquadtree(); /// ctor with initialisation (see init for details) Cquadtree(double _x, double _y, double _half_size_x, double _half_size_y); /// default destructor /// at destruction, everything is destroyed except /// physical values at the leaves ~Cquadtree(); /** * init the tree. * By initializing the tree, we mean setting the cell parameters * and preparing the object to act as a seed for a new tree. * \param _x x-position of the center * \param _y y-position of the center * \param _half_size_x x-size of the cell * \param _half_size_y y-size of the cell * \return 0 on success, 1 on error. Note that if the cell or its * parent is already filled, we return an error. */ int init(double _x, double _y, double _half_size_x, double _half_size_y); /** * adding a particle to the tree. * This method adds one vector to the quadtree structure which * is updated consequently. * \param v_add vector to add * \return 0 on success 1 on error */ int add(Cmomentum *v_add); /** * circle intersection. * computes the intersection with a circle of given centre and radius. * The output takes the form of a quadtree with all squares included * in the circle. * \param cx circle centre x coordinate * \param cy circle centre y coordinate * \param cR2 circle radius SQUARED * \return the checksum for that intersection */ Creference circle_intersect(double cx, double cy, double cR2); /** * output a data file for drawing the grid. * This can be used to output a data file containing all the * grid subdivisions. The file contents is as follows: * first and second columns give center of the cell, the third * gives the size. * \param flux opened stream to write to * \return 0 on success, 1 on error */ int save(FILE *flux); /** * output a data file for drawing the tree leaves. * This can be used to output a data file containing all the * tree leaves. The file contents is as follows: * first and second columns give center of the cell, the third * gives the size. * \param flux opened stream to write to * \return 0 on success, 1 on error */ int save_leaves(FILE *flux); double centre_x; ///< x-position of the centre of the cell double centre_y; ///< y-position of the centre of the cell double half_size_x; ///< HALF size of the cell double half_size_y; ///< HALF size of the cell Cmomentum *v; ///< physical contents Cquadtree* children[2][2]; ///< sub-cells ( 0,1->left-right; 0,1->bottom,top) bool has_child; ///< true if not a leaf }; } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/makefile.static0000644000175000017500000000352111766120144024255 0ustar sunsunSUBDIRS = spherical CC = g++ LIBOUT = libsiscone.a CFLAGS = -Wall -g -O3 -ffast-math LDFLAGS = -lm #-lprofiler -lpthread -ltcmalloc ifeq ($(shell whoami),salam) # needed for Gavin to include tcmalloc LDFLAGS += -L/ada1/lpthe/salam/software/local/lib endif OBJS = ranlux.o reference.o geom_2d.o momentum.o hash.o quadtree.o \ vicinity.o protocones.o split_merge.o siscone.o siscone_error.o area.o SRCS = $(patsubst %.o,%.cpp,$(OBJS)) %.o: %.cpp %.h $(CC) -c $(CFLAGS) $< %.o: %.cpp $(CC) -c $(CFLAGS) $< all: $(OBJS) $(SUBDIRS) ar cru $(LIBOUT) $(OBJS) ranlib $(LIBOUT) .PHONY: clean $(SUBDIRS) clean: $(SUBDIRS) rm -f *.o *~ spherical: @cd spherical && $(MAKE) -f makefile.static $(MAKECMDGOALS) # note the -Y option below avoids including all the standard # include directories (which change from one system to another) depend: $(SUBDIRS) makedepend -f makefile.static -- -Y -- $(SRCS) # DO NOT DELETE ranlux.o: ranlux.h reference.o: reference.h ranlux.h geom_2d.o: geom_2d.h defines.h momentum.o: momentum.h reference.h geom_2d.h defines.h hash.o: hash.h momentum.h reference.h geom_2d.h defines.h quadtree.o: quadtree.h momentum.h reference.h geom_2d.h defines.h vicinity.o: vicinity.h momentum.h reference.h geom_2d.h defines.h quadtree.h protocones.o: protocones.h momentum.h reference.h geom_2d.h defines.h protocones.o: vicinity.h quadtree.h hash.h siscone_error.h circulator.h split_merge.o: split_merge.h defines.h geom_2d.h momentum.h reference.h split_merge.o: siscone_error.h siscone.o: config.h ranlux.h momentum.h reference.h geom_2d.h defines.h siscone.o: siscone.h protocones.h vicinity.h quadtree.h hash.h split_merge.h siscone.o: siscone_error.h siscone_error.o: siscone_error.h area.o: area.h momentum.h reference.h geom_2d.h defines.h siscone.h area.o: protocones.h vicinity.h quadtree.h hash.h split_merge.h fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/protocones.cpp0000644000175000017500000007143311766120144024175 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: protocones.cpp // // Description: source file for stable cones determination (Cstable_cones) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 322 $// // $Date:: 2011-11-15 10:12:36 +0100 (Tue, 15 Nov 2011) $// /////////////////////////////////////////////////////////////////////////////// /******************************************************* * Introductory note: * * Since this file has many member functions, we have * * structured them in categories: * * INITIALISATION FUNCTIONS * * - ctor() * * - ctor(particle_list) * * - dtor() * * - init(particle_list) * * ALGORITHM MAIN ENTRY * * - get_stable_cone(radius) * * ALGORITHM MAIN STEPS * * - init_cone() * * - test_cone() * * - update_cone() * * - proceed_with_stability() * * ALGORITHM MAIN STEPS FOR COCIRCULAR SITUATIONS * * - cocircular_pt_less(v1, v2) * * - prepare_cocircular_list() * * - test_cone_cocircular() * * - test_stability(candidate, border_list) * * - updat_cone_cocircular() * * RECOMPUTATION OF CONE CONTENTS * * - compute_cone_contents() * * - recompute_cone_contents() * * - recompute_cone_contents_if_needed() * * VARIOUS TOOLS * * - circle_intersect() * * - is_inside() * * - abs_dangle() * *******************************************************/ #include "protocones.h" #include "siscone_error.h" #include "defines.h" #include #include #include "circulator.h" #include namespace siscone{ using namespace std; /********************************************************************** * Cstable_cones implementation * * Computes the list of stable comes from a particle list. * * This class does the first fundamental task of te cone algorithm: * * it is used to compute the list of stable cones given a list * * of particles. * **********************************************************************/ //////////////////////////////////////////////////////// // INITIALISATION FUNCTIONS // // - ctor() // // - ctor(particle_list) // // - dtor() // // - init(particle_list) // //////////////////////////////////////////////////////// // default ctor //-------------- Cstable_cones::Cstable_cones(){ nb_tot = 0; hc = NULL; } // ctor with initialisation //-------------------------- Cstable_cones::Cstable_cones(vector &_particle_list) : Cvicinity(_particle_list){ nb_tot = 0; hc = NULL; } // default dtor //-------------- Cstable_cones::~Cstable_cones(){ if (hc!=NULL) delete hc; } /* * initialisation * - _particle_list list of particles * - _n number of particles *********************************************************************/ void Cstable_cones::init(vector &_particle_list){ // check already allocated mem if (hc!=NULL){ delete hc; } if (protocones.size()!=0) protocones.clear(); multiple_centre_done.clear(); // initialisation set_particle_list(_particle_list); } //////////////////////////////////////////////////////// // ALGORITHM MAIN ENTRY // // - get_stable_cone(radius) // //////////////////////////////////////////////////////// /* * compute stable cones. * This function really does the job i.e. computes * the list of stable cones (in a seedless way) * - _radius: radius of the cones * The number of stable cones found is returned *********************************************************************/ int Cstable_cones::get_stable_cones(double _radius){ int p_idx; // check if everything is correctly initialised if (n_part==0){ return 0; } R = _radius; R2 = R*R; // allow hash for cones candidates hc = new hash_cones(n_part, R2); // browse all particles for (p_idx=0;p_idxv; centre_idx = first_cone; // build the initial cone (nodist: avoids calculating distances -- // just deduces contents by circulating around all in/out operations) // this function also sets the list of included particles compute_cone_contents(); return 0; } /* * test cones. * We check if the cone(s) built with the present parent and child * are stable * return 0 on success 1 on error *********************************************************************/ int Cstable_cones::test_cone(){ Creference weighted_cone_ref; // depending on the side we are taking the child particle, // we test different configuration. // Each time, two configurations are tested in such a way that // all 4 possible cases (parent or child in or out the cone) // are tested when taking the pair of particle parent+child // and child+parent. // here are the tests entering the first series: // 1. check if the cone is already inserted // 2. check cone stability for the parent and child particles if (centre->side){ // test when both particles are not in the cone // or when both are in. // Note: for the totally exclusive case, test emptyness before cone_candidate = cone; if (cone.ref.not_empty()){ hc->insert(&cone_candidate, parent, child, false, false); } cone_candidate = cone; cone_candidate+= *parent + *child; hc->insert(&cone_candidate, parent, child, true, true); } else { // test when 1! of the particles is in the cone cone_candidate = cone + *parent; hc->insert(&cone_candidate, parent, child, true, false); cone_candidate = cone + *child; hc->insert(&cone_candidate, parent, child, false, true); } nb_tot+=2; return 0; } /* * update the cone * go to the next child for that parent and update 'cone' appropriately * return 0 if update candidate found, 1 otherwise ***********************************************************************/ int Cstable_cones::update_cone(){ // get the next child and centre centre_idx++; if (centre_idx==vicinity_size) centre_idx=0; if (centre_idx==first_cone) return 1; // update the cone w.r.t. the old child // only required if the old child is entering inside in which // case we need to add it. We also know that the child is // inside iff its side is -. if (!centre->side){ // update cone cone += (*child); // update info on particles inside centre->is_inside->cone = true; // update stability check quantities dpt += fabs(child->px)+fabs(child->py); } // update centre and child to correspond to the new position centre = vicinity[centre_idx]; child = centre->v; // check cocircularity // note that if cocirculaity is detected (i.e. if we receive 1 // in the next test), we need to recall 'update_cone' directly // since tests and remaining part of te update has been performed //if (cocircular_check()) if (cocircular_check()) return update_cone(); // update the cone w.r.t. the new child // only required if the new child was already inside in which // case we need to remove it. We also know that the child is // inside iff its side is +. if ((centre->side) && (cone.ref.not_empty())){ // update cone cone -= (*child); // update info on particles inside centre->is_inside->cone = false; // update stability check quantities dpt += fabs(child->px)+fabs(child->py); //child->perp2(); } // check that the addition and subtraction of vectors does // not lead to too much rounding error // for that, we compute the sum of pt modifications and of |pt| // since last recomputation and once the ratio overpasses a threshold // we recompute vicinity. if ((dpt>PT_TSHOLD*(fabs(cone.px)+fabs(cone.py))) && (cone.ref.not_empty())){ recompute_cone_contents(); } if (cone.ref.is_empty()){ cone = Cmomentum(); dpt=0.0; } return 0; } /* * compute stability of all enumerated candidates. * For all candidate cones which are stable w.r.t. their border particles, * pass the last test: stability with quadtree intersection ************************************************************************/ int Cstable_cones::proceed_with_stability(){ int i; // ,n; hash_element *elm; //n=0; for (i=0;i<=hc->mask;i++){ // test ith cell of the hash array elm = hc->hash_array[i]; // browse elements therein while (elm!=NULL){ // test stability if (elm->is_stable){ // stability is not ensured by all pairs of "edges" already browsed #ifdef USE_QUADTREE_FOR_STABILITY_TEST // => testing stability with quadtree intersection if (quadtree->circle_intersect(elm->eta, elm->phi, R2)==elm->ref){ #else // => testing stability with the particle-list intersection if (circle_intersect(elm->eta, elm->phi)==elm->ref){ #endif // add it to the list of protocones // note that in its present form, we do not allocate the // 4-vector components of the momentum. There's no need to // do it here as it will be recomputed in // Csplit_merge::add_protocones protocones.push_back(Cmomentum(elm->eta, elm->phi, elm->ref)); } } // jump to the next one elm = elm->next; } } // free hash // we do that at this level because hash eats rather a lot of memory // we want to free it before running the split/merge algorithm #ifdef DEBUG_STABLE_CONES nb_hash_cones = hc->n_cones; nb_hash_occupied = hc->n_occupied_cells; #endif delete hc; hc=NULL; return protocones.size(); } //////////////////////////////////////////////////////// // ALGORITHM MAIN STEPS FOR COCIRCULAR SITUATIONS // // - cocircular_pt_less(v1, v2) // // - prepare_cocircular_list() // // - test_cone_cocircular() // // - test_stability(candidate, border_vect) // // - updat_cone_cocircular() // //////////////////////////////////////////////////////// /// pt-ordering of momenta used for the cocircular case bool cocircular_pt_less(Cmomentum *v1, Cmomentum *v2){ return v1->perp2() < v2->perp2(); } /* * run through the vicinity of the current parent and for each child * establish which other members are cocircular... Note that the list * associated with each child contains references to vicinity * elements: thus two vicinity elements each associated with one given * particle may appear in a list -- this needs to be watched out for * later on... **********************************************************************/ void Cstable_cones::prepare_cocircular_lists() { circulator::iterator > here(vicinity.begin(), vicinity.begin(), vicinity.end()); circulator::iterator > search(here); do { Cvicinity_elm* here_pntr = *here(); search.set_position(here); // search forwards for things that should have "here" included in // their cocircularity list while (true) { ++search; if ( abs_dphi((*search())->angle, here_pntr->angle) < here_pntr->cocircular_range && search() != here()) { (*search())->cocircular.push_back(here_pntr); } else { break; } } // search backwards search.set_position(here); while (true) { --search; if ( abs_dphi((*search())->angle, here_pntr->angle) < here_pntr->cocircular_range && search() != here()) { (*search())->cocircular.push_back(here_pntr); } else { break; } } ++here; } while (here() != vicinity.begin()); } /* * Testing cocircular configurations in p^3 time, * rather than 2^p time; we will test all contiguous subsets of points * on the border --- note that this is till probably overkill, since * in principle we only have to test situations where up to a * half-circle is filled (but going to a full circle is simpler) ******************************************************************/ void Cstable_cones::test_cone_cocircular(Cmomentum & borderless_cone, list & border_list) { vector border_vect; border_vect.reserve(border_list.size()); for (list::iterator it = border_list.begin(); it != border_list.end(); it++) { border_vect.push_back(Cborder_store(*it, centre->eta, centre->phi)); } // get them into order of angle sort(border_vect.begin(), border_vect.end()); // set up some circulators, since these will help us go around the // circle easily circulator::iterator > start(border_vect.begin(), border_vect.begin(),border_vect.end()); circulator::iterator > mid(start), end(start); // test the borderless cone Cmomentum candidate = borderless_cone; candidate.build_etaphi(); if (candidate.ref.not_empty()) test_stability(candidate, border_vect); do { // reset status wrt inclusion in the cone mid = start; do { mid()->is_in = false; } while (++mid != start); // now run over all inclusion possibilities with this starting point candidate = borderless_cone; while (++mid != start) { // will begin with start+1 and go up to start-1 mid()->is_in = true; candidate += *(mid()->mom); test_stability(candidate, border_vect); } } while (++start != end); // mid corresponds to momentum that we need to include to get the // full cone mid()->is_in = true; candidate += *(mid()->mom); test_stability(candidate, border_vect); } /** * carry out the computations needed for the stability check of the * candidate, using the border_vect to indicate which particles * should / should not be in the stable cone; if the cone is stable * insert it into the hash. **********************************************************************/ void Cstable_cones::test_stability(Cmomentum & candidate, const vector & border_vect) { // this almost certainly has not been done... candidate.build_etaphi(); bool stable = true; for (unsigned i = 0; i < border_vect.size(); i++) { if (is_inside(&candidate, border_vect[i].mom) ^ (border_vect[i].is_in)) { stable = false; break; // it's unstable so there's no point continuing } } if (stable) hc->insert(&candidate); } /* * check if we are in a situation of cocircularity. * if it is the case, update and test in the corresponding way * return 'false' if no cocircularity detected, 'true' otherwise * Note that if cocircularity is detected, we need to * recall 'update' from 'update' !!! ***************************************************************/ bool Cstable_cones::cocircular_check(){ // check if many configurations have the same centre. // if this is the case, branch on the algorithm for this // special case. // Note that those situation, being considered separately in // test_cone_multiple, must only be considered here if all // angles are on the same side (this avoid multiple counting) if (centre->cocircular.empty()) return false; // first get cone into status required at end... if ((centre->side) && (cone.ref.not_empty())){ // update cone cone -= (*child); // update info on particles inside centre->is_inside->cone = false; // update stability check quantities dpt += fabs(child->px)+fabs(child->py); //child->perp2(); } // now establish the list of unique children in the list // first make sure parent and child are in! list removed_from_cone; list put_in_border; list border_list; Cmomentum cone_removal; Cmomentum border = *parent; border_list.push_back(parent); // make sure child appears in the border region centre->cocircular.push_back(centre); // now establish the full contents of the cone minus the cocircular // region and of the cocircular region itself for(list::iterator it = centre->cocircular.begin(); it != centre->cocircular.end(); it++) { if ((*it)->is_inside->cone) { cone_removal += *((*it)->v); (*it)->is_inside->cone = false; removed_from_cone.push_back((*it)->is_inside); } // if a point appears twice (i.e. with + and - sign) in the list of // points on the border, we take care not to include it twice. // Note that this situation may appear when a point is at a distance // close to 2R from the parent if (!(*it)->is_inside->cocirc) { border += *((*it)->v); (*it)->is_inside->cocirc = true; put_in_border.push_back((*it)->is_inside); border_list.push_back((*it)->v); } } // figure out whether this pairing has been observed before Cmomentum borderless_cone = cone; borderless_cone -= cone_removal; bool consider = true; for (unsigned int i=0;i(borderless_cone.ref, border.ref)); // first figure out whether our cone momentum is good double local_dpt = fabs(cone_removal.px) + fabs(cone_removal.py); double total_dpt = dpt + local_dpt; recompute_cone_contents_if_needed(borderless_cone, total_dpt); if (total_dpt == 0) { // a recomputation has taken place -- so take advantage of this // and update the member cone momentum cone = borderless_cone + cone_removal; dpt = local_dpt; } test_cone_cocircular(borderless_cone, border_list); } // relabel things that were in the cone but got removed for(list::iterator is_in = removed_from_cone.begin(); is_in != removed_from_cone.end(); is_in++) { (*is_in)->cone = true; } // relabel things that got put into the border for(list::iterator is_in = put_in_border.begin(); is_in != put_in_border.end(); is_in++) { (*is_in)->cocirc = false; } // we're done with everything -- return true to signal to user that we've // been through the co-circularity rigmarole return true; } //////////////////////////////////////////////////////// // RECOMPUTATION OF CONE CONTENTS // // - compute_cone_contents() // // - recompute_cone_contents() // // - recompute_cone_contents_if_needed() // //////////////////////////////////////////////////////// /** * compute the cone contents by going once around the full set of * circles and tracking the entry/exit status each time * given parent, child and centre compute the momentum * of the particle inside the cone * This sets up the inclusion information, which can then be directly * used to calculate the cone momentum. **********************************************************************/ void Cstable_cones::compute_cone_contents() { circulator::iterator > start(vicinity.begin()+first_cone, vicinity.begin(), vicinity.end()); circulator::iterator > here(start); // note that in the following algorithm, the cone contents never includes // the child. Indeed, if it has positive sign, then it will be set as // outside at the last step in the loop. If it has negative sign, then the // loop will at some point go to the corresponding situation with positive // sign and set the inclusion status to 0. do { // as we leave this position a particle enters if its side is // negative (i.e. the centre is the one at -ve angle wrt to the // parent-child line if (!(*here())->side) ((*here())->is_inside->cone) = 1; // move on to the next position ++here; // as we arrive at this position a particle leaves if its side is positive if ((*here())->side) ((*here())->is_inside->cone) = 0; } while (here != start); // once we've reached the start the 'is_inside' information should be // 100% complete, so we can use it to calculate the cone contents // and then exit recompute_cone_contents(); return; } /* * compute the cone momentum from particle list. * in this version, we use the 'pincluded' information * from the Cvicinity class */ void Cstable_cones::recompute_cone_contents(){ unsigned int i; // set momentum to 0 cone = Cmomentum(); // Important note: we can browse only the particles // in vicinity since all particles in the cone are // withing a distance 2R w.r.t. parent hence in vicinity. // Among those, we only add the particles for which 'is_inside' is true ! // This methos rather than a direct comparison avoids rounding errors for (i=0;iside) && (vicinity[i]->is_inside->cone)) cone += *vicinity[i]->v; } // set check variables back to 0 dpt = 0.0; } /* * if we have gone beyond the acceptable threshold of change, compute * the cone momentum from particle list. in this version, we use the * 'pincluded' information from the Cvicinity class, but we don't * change the member cone, only the locally supplied one */ void Cstable_cones::recompute_cone_contents_if_needed(Cmomentum & this_cone, double & this_dpt){ if (this_dpt > PT_TSHOLD*(fabs(this_cone.px)+fabs(this_cone.py))) { if (cone.ref.is_empty()) { this_cone = Cmomentum(); } else { // set momentum to 0 this_cone = Cmomentum(); // Important note: we can browse only the particles // in vicinity since all particles in the this_cone are // withing a distance 2R w.r.t. parent hence in vicinity. // Among those, we only add the particles for which 'is_inside' is true ! // This methos rather than a direct comparison avoids rounding errors for (unsigned int i=0;iside) && (vicinity[i]->is_inside->cone)) this_cone += *vicinity[i]->v; } } // set check variables back to 0 this_dpt = 0.0; } } //////////////////////////////////////////////////////// // VARIOUS TOOLS // // - circle_intersect() // // - is_inside() // // - abs_dangle() // //////////////////////////////////////////////////////// /* * circle intersection. * computes the intersection with a circle of given centre and radius. * The output takes the form of a checkxor of the intersection's particles * - cx circle centre x coordinate * - cy circle centre y coordinate * return the checkxor for the intersection ******************************************************************/ Creference Cstable_cones::circle_intersect(double cx, double cy){ Creference intersection; int i; double dx, dy; for (i=0;iM_PI) dy -= twopi; // really check if the distance is less than VR if (dx*dx+dy*dyeta - v->eta; dy = fabs(centre_in->phi - v->phi); if (dy>M_PI) dy -= twopi; return dx*dx+dy*dyM_PI) dphi = dphi-twopi; return dphi; } } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/area.cpp0000644000175000017500000003435011766120144022707 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: area.h // // Description: header file for the computation of jet area // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 149 $// // $Date:: 2007-03-15 00:13:58 +0100 (Thu, 15 Mar 2007) $// /////////////////////////////////////////////////////////////////////////////// #include "area.h" #include "momentum.h" #include #include namespace siscone{ using namespace std; /******************************************************* * Cjet_area implementation * * real Jet information, including its area(s) * * * * This class contains information for one single jet. * * That is, first, its momentum carrying information * * about its centre and pT, and second, its particle * * contents (from CJeT). * * Compared to the Cjet class, it also includes the * * passive and active areas of the jet computed using * * the Carea class. * *******************************************************/ // default ctor //-------------- Cjet_area::Cjet_area(){ active_area = passive_area = 0.0; } // jet-initiated ctor //------------------- Cjet_area::Cjet_area(Cjet &j){ v = j.v; n = j.n; contents = j.contents; pass = j.pass; pt_tilde = j.pt_tilde; sm_var2 = j.sm_var2; active_area = passive_area = 0.0; } // default dtor //-------------- Cjet_area::~Cjet_area(){ } /****************************************************************** * Csiscone_area implementation * * class for the computation of jet areas. * * * * This is the class user should use whenever you want to compute * * the jet area (passive and active). * * It uses the SISCone algorithm to perform the jet analysis. * ******************************************************************/ // default ctor //------------- Carea::Carea(){ grid_size = 60; // 3600 particles added grid_eta_max = 6.0; // maybe having twice more points in eta than in phi should be nice grid_shift = 0.5; // 50% "shacking" pt_soft = 1e-100; pt_shift = 0.05; pt_soft_min = 1e-90; } // default dtor //------------- Carea::~Carea(){ } /* * compute the jet areas from a given particle set. * The parameters of this method are the ones which control the jet clustering alghorithm. * Note that the pt_min is not allowed here soince the jet-area determination involves soft * particles/jets and thus is used internally. * - _particles list of particles * - _radius cone radius * - _f shared energy threshold for splitting&merging * - _n_pass_max maximum number of passes (0=full search, the default) * - _split_merge_scale the scale choice for the split-merge procedure * NOTE: SM_pt leads to IR unsafety for some events with momentum conservation. * SM_Et is IR safe but not boost invariant and not implemented(!) * SM_mt is IR safe for hadronic events, but not for decays of two * back-to-back particles of identical mass * SM_pttilde * is always IR safe, and also boost invariant (default) * - _hard_only when this is set on, only hard jets are computed * and not the purely ghosted jets (default: false) * return the jets together with their areas * The return value is the number of jets (including pure-ghost ones if they are included) ********************************************************************************************/ int Carea::compute_areas(std::vector &_particles, double _radius, double _f, int _n_pass_max, Esplit_merge_scale _split_merge_scale, bool _hard_only){ vector all_particles; // put "hardest cut-off" if needed // this avoids computation of ghosted jets when not required and // significantly shortens the SM. if (_hard_only){ SM_var2_hardest_cut_off = pt_soft_min*pt_soft_min; } // clear potential previous runs jet_areas.clear(); // put initial set of particles in the list int n_hard = _particles.size(); all_particles = _particles; // build the set of ghost particles and add them to the particle list int i,j; double eta_g,phi_g,pt_g; for (i=0;i= n_hard // and deduce the number of ghosts in the jet, hence the area. double area_factor = (2.0*grid_eta_max/grid_size)*(twopi/grid_size); for (i=0;i<(int) jets.size();i++){ jet_areas.push_back(jets[i]); j=0; while ((j &_particles, double _radius, double _f, int _n_pass_max, Esplit_merge_scale _split_merge_scale){ vector all_particles; // in the case of passive area, we do not need // to put the ghosts in the stable-cone search // (they do no influence the list of stable cones) // Here's how it goes... stable_cone_soft_pt2_cutoff = pt_soft_min*pt_soft_min; // clear potential previous runs jet_areas.clear(); // put initial set of particles in the list int n_hard = _particles.size(); all_particles = _particles; // build the set of ghost particles and add them to the particle list int i,j; double eta_g,phi_g,pt_g; for (i=0;i= n_hard // and deduce the number of ghosts in the jet, hence the area. double area_factor = (2.0*grid_eta_max/grid_size)*(twopi/grid_size); for (i=0;i<(int) jets.size();i++){ j=0; while ((j &_particles, double _radius, double _f, int _n_pass_max, Esplit_merge_scale _split_merge_scale, bool _hard_only){ vector all_particles; // put "hardest cut-off" if needed // this avoids computation of ghosted jets when not required and // significantly shortens the SM. if (_hard_only){ SM_var2_hardest_cut_off = pt_soft_min*pt_soft_min; } // clear potential previous runs jet_areas.clear(); // put initial set of particles in the list int n_hard = _particles.size(); all_particles = _particles; // build the set of ghost particles and add them to the particle list int i,j; double eta_g,phi_g,pt_g; for (i=0;i= n_hard // and deduce the number of ghosts in the jet, hence the area. double area_factor = (2.0*grid_eta_max/grid_size)*(twopi/grid_size); for (i=0;i<(int) jets.size();i++){ jet_areas.push_back(jets[i]); j=0; while ((j #include /* This is a lagged fibonacci generator with skipping developed by Luescher. The sequence is a series of 24-bit integers, x_n, x_n = d_n + b_n where d_n = x_{n-10} - x_{n-24} - c_{n-1}, b_n = 0 if d_n >= 0 and b_n = 2^24 if d_n < 0, c_n = 0 if d_n >= 0 and c_n = 1 if d_n < 0, where after 24 samples a group of p integers are "skipped", to reduce correlations. By default p = 199, but can be increased to 365. The period of the generator is around 10^171. From: M. Luescher, "A portable high-quality random number generator for lattice field theory calculations", Computer Physics Communications, 79 (1994) 100-110. Available on the net as hep-lat/9309020 at http://xxx.lanl.gov/ See also, F. James, "RANLUX: A Fortran implementation of the high-quality pseudo-random number generator of Luscher", Computer Physics Communications, 79 (1994) 111-114 Kenneth G. Hamilton, F. James, "Acceleration of RANLUX", Computer Physics Communications, 101 (1997) 241-248 Kenneth G. Hamilton, "Assembler RANLUX for PCs", Computer Physics Communications, 101 (1997) 249-253 */ namespace siscone{ static const unsigned long int mask_lo = 0x00ffffffUL; // 2^24 - 1 static const unsigned long int mask_hi = ~0x00ffffffUL; static const unsigned long int two24 = 16777216; // 2^24 // internal generator structure //------------------------------ typedef struct { unsigned int i; unsigned int j; unsigned int n; unsigned int skip; unsigned int carry; unsigned long int u[24]; } ranlux_state_t; // internal generator state //-------------------------- ranlux_state_t local_ranlux_state; // incrementation of the generator state //--------------------------------------- static inline unsigned long int increment_state(){ unsigned int i = local_ranlux_state.i; unsigned int j = local_ranlux_state.j; long int delta = local_ranlux_state.u[j] - local_ranlux_state.u[i] - local_ranlux_state.carry; if (delta & mask_hi){ local_ranlux_state.carry = 1; delta &= mask_lo; } else { local_ranlux_state.carry = 0; } local_ranlux_state.u[i] = delta; if (i==0) i = 23; else i--; local_ranlux_state.i = i; if (j == 0) j = 23; else j--; local_ranlux_state.j = j; return delta; } // set generator state //--------------------- static void ranlux_set(unsigned long int s){ int i; long int seed; if (s==0) s = 314159265; /* default seed is 314159265 */ seed = s; /* This is the initialization algorithm of F. James, widely in use for RANLUX. */ for (i=0;i<24;i++){ unsigned long int k = seed/53668; seed = 40014*(seed-k*53668)-k*12211; if (seed<0){ seed += 2147483563; } local_ranlux_state.u[i] = seed%two24; } local_ranlux_state.i = 23; local_ranlux_state.j = 9; local_ranlux_state.n = 0; local_ranlux_state.skip = 389-24; // 389 => best decorrelation if (local_ranlux_state.u[23]&mask_hi){ local_ranlux_state.carry = 1; } else { local_ranlux_state.carry = 0; } } // generator initialization //-------------------------- void ranlux_init(){ // seed the generator ranlux_set(0); } // get random number //------------------- unsigned long int ranlux_get(){ const unsigned int skip = local_ranlux_state.skip; unsigned long int r = increment_state(); local_ranlux_state.n++; if (local_ranlux_state.n == 24){ unsigned int i; local_ranlux_state.n = 0; for (i = 0; i < skip; i++) increment_state(); } return r; } // print generator state //----------------------- void ranlux_print_state(){ size_t i; unsigned char *p = (unsigned char *) (&local_ranlux_state); const size_t n = sizeof (ranlux_state_t); for (i=0;i= 0 and b_n = 2^24 if d_n < 0, c_n = 0 if d_n >= 0 and c_n = 1 if d_n < 0, where after 24 samples a group of p integers are "skipped", to reduce correlations. By default p = 199, but can be increased to 365. The period of the generator is around 10^171. From: M. Luescher, "A portable high-quality random number generator for lattice field theory calculations", Computer Physics Communications, 79 (1994) 100-110. Available on the net as hep-lat/9309020 at http://xxx.lanl.gov/ See also, F. James, "RANLUX: A Fortran implementation of the high-quality pseudo-random number generator of Luscher", Computer Physics Communications, 79 (1994) 111-114 Kenneth G. Hamilton, F. James, "Acceleration of RANLUX", Computer Physics Communications, 101 (1997) 241-248 Kenneth G. Hamilton, "Assembler RANLUX for PCs", Computer Physics Communications, 101 (1997) 249-253 */ namespace siscone{ /// initialize 'ranlux' generator void ranlux_init(); /// generate random value (24 bits) unsigned long int ranlux_get(); /// save state of the generator void ranlux_print_state(); } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/defines.h0000644000175000017500000001353611766120144023064 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: defines.h // // Description: header file for generic parameters definitions // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 225 $// // $Date:: 2008-05-20 16:59:47 +0200 (Tue, 20 May 2008) $// /////////////////////////////////////////////////////////////////////////////// //! \file defines.h #ifndef __DEFINES_H__ #define __DEFINES_H__ /// program name // we get "SISCone" by calling // siscone::siscone_package_name // defined in siscone.h // Otherwise, config.h // It is also defined as "PACKAGE_NAME" in config.h but this method // might lead to conflicts //#define PROGRAM PACKAGE_NAME // program version // we get it from // siscone::siscone_version // defined in siscone.h // It is also defined as "VERSION" in config.h but this method // might lead to conflicts /// perform final stability check using the quadtree /// With the following define enabled, the final check for stability /// is performed using the quadtree rather than the explicit list of /// particles (see Cstable_cone::proceed_with_stability()) //#define USE_QUADTREE_FOR_STABILITY_TEST /// threshold for recomoutation of the cone (see Cstable_cones::update_cone()) /// When traversing cone candidates along the angular ordering, /// the momentum of the protojet candidate is computed incrementally /// from the particles that enter and leave the cone. /// When the cumulative change in "|px|+|py|" exceeds the cone "|px|+|py|" /// we explicitely recompute the cone contents #define PT_TSHOLD 1000.0 /// The following parameter controls collinear safety. For the set of /// particles used in the search of stable cones, we gather particles /// if their distance in eta and phi is smaller than EPSILON_COLLINEAR. /// /// NB: for things to behave sensibly one requires /// 1e-15 << EPSILON_COCIRCULAR << EPSILON_COLLINEAR << 1 /// /// among the scales that appear in practice (e.g. in deciding to use /// special strategies), we have EPSILON_COLLINEAR, EPSILON_COCIRCULAR, /// sqrt(EPSILON_COCIRCULAR) and EPSILON_COLLINEAR / EPSILON_COCIRCULAR. /// #define EPSILON_COLLINEAR 1e-8 /// The following parameter controls cocircular situations. /// When consecutive particles in the ordered vicinity list are separated /// (in angle) by less that that limit, we consider that we face a situation /// of cocircularity. #define EPSILON_COCIRCULAR 1e-12 /// The following define enables you to allow for identical protocones /// to be merged automatically after each split-merge step before /// anything else happens. Whether this happens depends on teh value /// of the merge_identical_protocones flag in Csplit_merge. /// /// It we allow such a merging and define allow /// MERGE_IDENTICAL_PROTOCONES_DEFAULT_TRUE then the /// 'merge_identical_protocones' flag in Csplit_merge to be set to /// 'true'. It may be manually reset to false in which case the /// merging of identical protocones (protojets) will be turned off. /// /// Note that this merging identical protocones makes the algorithm /// infrared-unsafe, so it should be disabled except for testing /// purposes. //#define ALLOW_MERGE_IDENTICAL_PROTOCONES //#define MERGE_IDENTICAL_PROTOCONES_DEFAULT_TRUE /// if EPSILON_SPLITMERGE is defined then, during the split-merge /// step, when two jets are found with PTs that are identical to /// within a relative difference of EPSILON_SPLITMERGE they are /// compared element-by-element to see where the differences are, and /// one then uses pt1^2-pt2^2 = (pt1-pt2).(pt1+pt2) as an estimator of /// which is harder. NB: in unfortunate cases, this can take the split /// merge step up to N n * ln N time, though on normal events there /// don't seem to have been any major problems yet. #define EPSILON_SPLITMERGE 1e-12 /// definition of 2*M_PI which is useful a bit everyhere! const double twopi = 6.283185307179586476925286766559005768394; /// debugging information //#define DEBUG_STABLE_CONES ///< debug messages in stable cones search //#define DEBUG_SPLIT_MERGE ///< debug messages in split-merge //#define DEBUG ///< all debug messages ! // in case all debug massages allowed, allow them in practice ! #ifdef DEBUG #define DEBUG_STABLE_CONES #define DEBUG_SPLIT_MERGE #endif #endif // __DEFINES_H__ fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/vicinity.h0000644000175000017500000001341611766120144023302 0ustar sunsun// -*- C++ -*- /////////////////////////////////////////////////////////////////////////////// // File: vicinity.h // // Description: header file for particle vicinity (Cvicinity class) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 123 $// // $Date:: 2007-03-01 02:52:16 +0100 (Thu, 01 Mar 2007) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __VICINITY_H__ #define __VICINITY_H__ #include #include #include "momentum.h" #include "defines.h" #include "quadtree.h" namespace siscone{ /** * \class Cvicinity_inclusion * \brief a class to keep track of inclusion status in cone and in cocircular region * while using minimal resources */ class Cvicinity_inclusion { public: /// default ctor Cvicinity_inclusion() : cone(false), cocirc(false) {} bool cone; ///< flag for particle inclusion in the cone bool cocirc; ///< flag for particle inclusion in the border }; /** * \class Cvicinity_elm * \brief element in the vicinity of a parent. * * class used to manage one points in the vicinity * of a parent point. */ class Cvicinity_elm{ public: /// pointer to the second borderline particle Cmomentum *v; /// variable to tell if the particle is inside or outside the cone Cvicinity_inclusion *is_inside; // centre variables double eta; ///< eta coordinate of the center double phi; ///< phi coordinate of the center double angle; ///< angle with parent bool side; ///< true if angle on the positive side, false otherwise double cocircular_range; ///< amount by which the angle can be varied while ///< maintaining this point within co-circularity margin /// list of elements co-circular with this one /// NB: empty list uses less mem than vector std::list cocircular; }; /// ordering pointers to Cvicinity_elm bool ve_less(Cvicinity_elm *ve1, Cvicinity_elm *ve2); /** * \class Cvicinity * \brief list of element in the vicinity of a parent. * * class used to manage the points which are in the vicinity * of a parent point. */ class Cvicinity{ public: /// default constructor Cvicinity(); /// constructor with initialisation (see set_particle_list) Cvicinity(std::vector &_particle_list); /// default destructor ~Cvicinity(); /** * set the particle_list * \param _particle_list list of particles (type Cmomentum) */ void set_particle_list(std::vector &_particle_list); /** * build the vicinity list from the list of points. * \param _parent reference particle * \param _VR vicinity radius */ void build(Cmomentum *_parent, double _VR); // cone kinematical information Cmomentum *parent; ///< parent vector double VR; ///< radius of the vicinity double VR2; ///< squared radius of the vicinity double R; ///< normal radius double R2; ///< squared normal radius double inv_R_EPS_COCIRC; ///< R / EPSILON_COCIRCULAR double inv_R_2EPS_COCIRC; ///< R / (2*EPSILON_COCIRCULAR) // particle list information int n_part; ///< number of particles std::vector plist; ///< the list of particles std::vector pincluded; ///< the inclusion state of particles Cvicinity_elm *ve_list; ///< list of vicinity elements built from particle list (size=2*n) #ifdef USE_QUADTREE_FOR_STABILITY_TEST Cquadtree *quadtree; ///< quadtree used for final stability tests #endif // vicinity information std::vector vicinity; ///< list of points in parent's vicinity unsigned int vicinity_size; ///< number of elements in vicinity protected: /** * append a particle to the 'vicinity' list after * having tested it and computed the angular-ordering quantities * \param v vector to test */ void append_to_vicinity(Cmomentum *v); // internal variables double pcx; ///< parent centre (eta) double pcy; ///< parent centre (phi) }; } #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/siscone_error.cpp0000644000175000017500000000406011766120144024646 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: siscone_error.cpp // // Description: source file for SISCone error messages (Csiscone_error) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 123 $// // $Date:: 2007-03-01 02:52:16 +0100 (Thu, 01 Mar 2007) $// /////////////////////////////////////////////////////////////////////////////// #include "siscone_error.h" namespace siscone{ bool Csiscone_error::m_print_errors = true; } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/siscone/Makefile.am0000644000175000017500000000135612127746211023330 0ustar sunsunSUBDIRS = . spherical # build information for the SISCone library # this is built as a libtool lib. lib_LTLIBRARIES = libsiscone.la libsiscone_la_SOURCES = ranlux.cpp reference.cpp geom_2d.cpp\ momentum.cpp hash.cpp quadtree.cpp vicinity.cpp\ protocones.cpp split_merge.cpp siscone.cpp\ siscone_error.cpp area.cpp EXTRA_DIST = makefile.static # install the SISCone headers sisconeincludedir = $(includedir)/siscone sisconeinclude_HEADERS = area.h\ circulator.h\ defines.h\ geom_2d.h\ hash.h\ momentum.h\ protocones.h\ quadtree.h\ ranlux.h\ reference.h\ siscone_error.h\ siscone.h\ split_merge.h\ vicinity.h # Don't distribute config.h. Note that it'll be accessible through -I. nodist_noinst_HEADERS = config.h fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/TODO0000644000175000017500000000001711766120145020312 0ustar sunsun//!\file TODO fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/ltmain.sh0000755000175000017500000073306012130050355021447 0ustar sunsun# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6b # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION=2.2.6b TIMESTAMP="" package_revision=1.3017 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/missing0000755000175000017500000002623312111460634021224 0ustar sunsun#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/depcomp0000755000175000017500000004426712111460634021211 0ustar sunsun#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/Makefile.in0000644000175000017500000005253112233506730021675 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \ ChangeLog INSTALL NEWS TODO config.guess config.sub depcomp \ install-sh ltmain.sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/siscone/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = siscone examples EXTRA_DIST = makefile.static Doxyfile all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod u+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/ChangeLog0000644000175000017500000012431212233506640021377 0ustar sunsun2013-04-09 Gregory Soyez * Release of SISCone 2.0.6 * NEWS, doc/html/index.html set the release date to April 9th * Doxyfile Set version number to 2.0.6 2013-04-08 Gregory Soyez * doc/html/*.html: * configure.ac: switched version number to 2.0.6 * NEWS: preparing for SISCone 2.0.6 * setversion.sh: minor fix (used bash instead of sh) * CHECKLIST: *** ADDED *** helper checklist for the release process 2013-04-06 Gavin Salam * configure.ac: updated minimal required autotools version to 2.63 2013-02-05 Gavin Salam * autogen.sh: tried to be more tolerant of different libtool versions (some take --version, others -V). Still have problems on OS X 10.8 with macports , but autoreconf works fine. * configure.ac: replaced AM_CONFIG_HEADER with with AC_CONFIG_HEADERS, following error with autoconf 2.69 on OS X 10.8 with macports. 2013-02-04 Gregory Soyez * siscone/Makefile.am: do not install config.h * siscone/spherical/Makefile.am: fixed directory for headers installation for the spherical version of SISCone 2012-01-17 Gregory Soyez * NEWS: SISCone 2.0.5 * NEWS: * configure.ac: * Doxyfile: prepared for the release of SISCone 2.0.5 * siscone/spherical/Makefile.qm: used $(includedir) instead of $(prefix)/include 2012-01-13 Gregory Soyez * siscone/Makefile.am: used $(includedir) instead of $(prefix)/include 2011-11-25 Gregory Soyez * NEWS: SISCone 2.0.4 * NEWS: updated in preparation for the 2.0.4 release * doc/html/home.png: *** ADDED *** * doc/html/usage.html: * siscone/siscone_error.h: * doc/html/index.html: fixed typos; updated html links. * configure.ac: * Doxyfile: * doc/html/*.html: updated the version number to 2.0.4 and the release information * siscone/spherical/siscone.cpp: * siscone/spherical/siscone.h: * siscone/siscone.cpp: * siscone/siscone.h: allowed to redirect the banner to a different stream than cout 2011-11-16 Gregory Soyez * examples/test.cpp: cast a vector size (of type size_t) onto unsigned int to avoid a compiler warning (on either 32 or 64-bit machines) 2011-11-15 Gavin Salam * AUTHORS: updated my address. 2011-11-15 Gregory Soyez * siscone/protocones.cpp (is_inside, proceed_with_stability): * siscone/spherical/split_merge.cpp (init): * siscone/split_merge.cpp (init): * siscone/siscone_error.h: * siscone/area.cpp (compute*_areas): renamed or commented out a few local variables and method arguments to avoid shadowing class members (gcc -Wshadow) * examples/spherical.cpp: * examples/sample.cpp: removed unused argc, argv parameters * examples/spherical.cpp: * examples/sample.cpp: * examples/times.cpp: * examples/test.cpp: * examples/area.cpp: * examples/main.cpp: * siscone/spherical/split_merge.cpp (save_contents, show): * siscone/split_merge.cpp (save_contents, show): * siscone/quadtree.cpp (save, save_leaves): got rid of a few format warnings by replacing %le and %lf by %e and %f (the l prefix applying to int and unsigned int) + a couple of signed/unsigned mismatches (%d -> %u) * configure.ac: switched version number to 2.0.4-devel 2011-10-05 Gregory Soyez * NEWS: SISCone 2.0.3 * AUTHORS: updated addresses and phone numbers * configure.ac: * Doxyfile: * doc/html/*.html: updated the version number and the release information * Doxyfile: removed the treeview * siscone/reference.cpp: removed redundant operator + (following a gcc warning) Checked with FastJet's regression check that it was indeed not used * siscone/spherical/protocones.cpp: removed an unused variable 2011-08-09 Gregory Soyez * siscone/spherical/split_merge.h: fixed the description of E_tilde. It was sum of E_i [ 1 + sin^2(theta_iJ) ] but in practice we used sum of E_i [ 1 +|p_i x p_J|^2/(|p_i|^2 E_J^2)] as mentioned further down in the ChangeLog (that avoids potential issues when a protojet has a zero 3-momentum) 2011-05-17 Gregory Soyez * configure.ac, Doxyfile & NEWS: SISCone 2.0.2 2010-10-27 Gregory Soyez * siscone/makefile.static: recursed make clean in the spherical dir * siscone/spherical/makefile.static: included main siscone header directory * siscone/siscone.cpp, siscone/spherical/siscone.cpp: The config.h header should be present from autoheader in the autotools build and from the sed command in the main makefile.static for build using the static makefiles. 2009-05-29 Gregory Soyez * configure.ac & NEWS: SISCone 2.0.1 2009-05-28 Gregory Soyez * Doxyfile (PROJECT_NUMBER): doc/html/*.html: switched the version number to 2.0.1 * INSTALL (Notes): fixed the comment on the static/shared default build * configure.ac: enabled shared libs by defaut (following a long discussion regarding static vs. shared libraries, we finally decided to make a minimal modification compared to the previous release, i.e. keep shared libraries on) 2009-05-25 Gregory Soyez * configure.ac: switched back to static libraries * siscone/Makefile.am: examples/Makefile.am: siscone/spherical/Makefile.am: replace a few ${var} by $(var) to be more compatible with Makefile rules 2009-05-01 Gregory Soyez * siscone/spherical/hash.cpp (siscone_spherical): renamed _R into _radius (problem with some Mac systems). Note: some of the comments were mentioning R2 as a parameter rather than R, so this has been fixed at the same time. * configure.ac: build shared libs by default This is a bug-fix for FastJet that now uses shared libs by default too * configure.ac & Doxyfile: switched version number to 2.0.1-devel 2009-04-17 Gregory Soyez * NEWS & configure.ac: SISCone 2.0.0 * doc/html/index.html: Doxyfile: configure.ac: switched the version number to 2.0.0 2009-03-17 Gregory Soyez * siscone/split_merge.cpp (siscone): moved the computation of the rapidity limits AFTER the exclusion of the particles with pz>=E 2009-03-12 Gregory Soyez * configure.ac: switched version to 2.0-devel * NEWS: updated to include the new things in the upcoming release * Doxyfile: updated together with an additional bunch of doxygen-compliant comments in the source files 2008-08-06 Gregory Soyez * siscone/siscone.cpp (siscone): make sure that the full 4-vector information is included in the protocones list. 2008-07-29 Gregory Soyez * siscone/siscone.cpp: siscone/spherical/siscone.cpp: check that the config.h file is available. Otherwise, use fixed values for PACKAGE and VERSION. 2008-07-23 Gregory Soyez * siscone/spherical/siscone.h (siscone_spherical): set E_tilde as the default SM variable. * siscone/spherical/split_merge.{h,cpp} (siscone_spherical): addressed the issue of IRC safety related to the choice of the split-merge ordering variable. We kept E (an unsafe choice) for its simplicity and added E_tilde defined as / |p_i X p_J|^2 \ \sum_{i\in J} E_i | 1 + --------------- | \ |p_i|^2 E_J^2 / The use of E_J instead of p_J in the denominator prevents the case where jets have zero momentum (e.g. monster jets with momentum conservation) Note that this variable is only used for the ordering; the computation of the overlap is always using the energy. 2008-07-18 Gregory Soyez * siscone/siscone.cpp (siscone) siscone/spherical/siscone.cpp (siscone_spherical): package_name() returns PACKAGE_NAME, not VERSION! * siscone/spherical/Makefile.am: added a path for siscone/config.h to be correctly included * siscone/Makefile.am: prevent config.h from being shipped with the distribution 2008-07-07 Gregory Soyez * siscone/spherical/split_merge.cpp (siscone_spherical): transformed the pt2 cut-off on particles into an energy (squared) cut-off. 2008-07-07 Gregory Soyez * Spherical version included in the main trunk (see below for details) * Copied the 'spherical branch' into the siscone/spherical folder. Copied the sample program into the example folder. Imported the ChangeLog from the branch Steps remaining in the main trunk: (. = todo, - = done) - updating the makefiles - deleted the "defines.h" file in the subdir the main one is used. - tested (make distcheck + sample running) Questions: - do we also copy the unchanged files? (It will mess a bit the filenames but they concerns material hidden to the end-user, so I'd keep them in the trunk It concerns circulator, reference, ranlux and siscone_error. - do we remove the quadtree in the spherical dir? (I'd say 'yes', not done currently) - keep the "unused" files in the branch? (area, quadtree, ...) 2008-07-02 Gregory Soyez * started the process of merging the spherical version of SISCone into the main trunk. The new version will be inserted in the "siscone/spherical" directory. We shall put it under the 'siscone_spherical' namespace and rename the relevant classes using a 'CSph' prefic instead of the 'C' prefix used in the main trunk. Steps to be done in the branch: (. = todo, - = done) - move the relevant files in a 'siscone/spherical' directory - add a siscone/Makefile.am in the branch (+small updates) - change the namespace - rename the classes and update the names in the code Note that some of the classes have been kept from the main version (e.g. everything in reference.h, siscone_error.h + isolated classes like circulator, two_vector). This should not affect the end-user. - in the examples, move the main sample into a 'spherical' one - test on the branch DONE. 2008-06-16 Gregory Soyez * siscone/vicinity.cpp (siscone): revised the normalisation of the cocircular range. * siscone/split_merge.cpp (siscone): recomputed the norm of the result of a collinear merging. This is required as the norm is used in stable-cone search and not recomputed automatically. * siscone/protocones.cpp (siscone): normalised directions used to determine the angles. This might well be the reason of the co-circular problem. * siscone/geom_2d.cpp (siscone): removed an unused variable 2008-06-14 Gregory Soyez * Note: this version passed ~3e8 safety tests (including arcs, soft particles, reordering and single/multi-pass). * siscone/vicinity.cpp (siscone): added cocirc-tests WARNING: this is a naive adaptation from the cylindrical case. * siscone/momentum.h (siscone): reverted most of the last modification: since the simple computation using a cos() requires the computation of the norm (not its squared because the sign of the cos matters) it is most complicated than the one with the tangent. Note that we're free of the problem mentionned below as the only place where it can happen is in the computation of the vicinity and there we compute distances internally rather than calling is_closer. Finally, we've added a is_closer_safe with the computation using te cosine. 2008-06-13 Gregory Soyez * siscone/vicinity.cpp (siscone): pre-added co-circularity management * siscone/momentum.h (siscone): replaced the tangent used in distances comparison by a cosine (the tangent is more precise at small R but we'll probably never get down to that small values of R). The reason for the replacement is that it gives wrong results for vicinity computation for 2R>pi/2. This present computation is also faster (no x-product). All calls to that function have been updated too. 2008-06-12 Gregory Soyez * Description: this is the first complete adaptation to the SISCone jet-search using spherical coordinatee. This branch is motivated by potential applications to cosmic-rays and follows a request by Yvonne Küssel * Summary of modifications: - use the distance on a sphere instead of the eta-phi one This is the most important change and comes with modifications... well... ... everywhere. Most of the infos about the distance are in the momentum.{h,cpp} files. There are other important pieces when computing the candidate centres (in vicinity.cpp). And the theta_phi range (previously eta_phi!) in geom2d.cpp has also been relooked. - The spit--merge(SM) uses the energy instead of pttilde by default for the ordering - The final jets ae ordered in E instead of pt. - we don't remove particles with infinite rapidity (both in SC search and SM) - for the cone consistency tests, we use |px|+|py|+|pz| instead of |px|+|py| - we have removed the cut on soft particles in Csplit_merge::merge_collinear_and_remove_soft() since it was mainly used for area speed up. - Csplit_merge::use_pt_weighted_splitting is replaced by Csplit_merge::use_E_weighted_splitting when it is defined, the weight is of course 1/E^2 instead of 1/pt^2 - To emphasise the fact that this is not the main SISCone trunk, we've added one sentence in the header of every file and a WARNING in the SISCone banner. * Still to be done - implement co-circularity (currently the range is set to 0) - in the split--merge, check the precision of the collinearity test? * Other points to think about - for the split of 2 protojets, we're currently making many calls to a full distance computation. This can surely be improved when no weighting is asked... - completely remove the quadtree? - remove the area support? - remove the Ctheta_phi range? or improve it (the cell initialisation assume a square shape, not a circle, but already with a square, the geometry is rather involved) * Final word: still need a whole bunch of tests (noticeably IRC safety, speed). Note that the stable-cone search has been checked "graphically". 2008-05-20 Gregory Soyez * siscone/hash.cpp (siscone): Adapted the size of the hash to scale like Nn(=N^2R^2) instead of N^2. This allows to save a fair amount of memory. 2008-05-16 Gregory Soyez * siscone/defines.h siscone/hash.{h,cpp} (siscone) siscone/protocones.{h,cpp} (siscone): siscone/siscone.{h,cpp} (siscone): add some debug information about the occupancy of the hash when DEBUG_STABLE_CONES is defined * examples/test.cpp: update the code to use Csiscone directly instead of separate calls to stable cone search and split--merge stage. This should be less confusing for end-users. 2008-05-15 Gregory Soyez * configure.ac: in the last CXXFLAGS fix, the default has been set at a wrong place (practically, CXXFLAGS was set to the system default value -O2 -g and thus not replaced with our local default). This is fixed now. 2008-03-24 Gregory Soyez * configure.ac: fix CXXFLAGS in such a way as to allow the user to set their own default. 2008-03-17 Gregory Soyez * siscone/defines.h: siscone/siscone.h/cpp examples/option.cpp BUGS: Because of potentil conflicts with other packages, the tags defined in config.h are no longer included in defines.h but only in SISCone source files. As a practical consequence, the program name and version number are now accessed through siscone_package_name() and siscone_version() both defined in siscone.h and inside the siscone namespace. See examples/options.cpp for an example. This solves the corresponding bug reported by Seuster. 2008-03-15 Gavin Salam * BUGS: added entry related to PACKAGE/VERSION/etc reported by Seuster. 2008-03-12 Gregory Soyez * siscone/split_merge.h/cpp (siscone): This is a non-negligible modification: we have added the possibility to modify the way particles are split during the split-merge step. Assume one has to split protojets 1 and 2. The standard split associates a common particle j to the closest centre i.e. compares the distances D_{1j} vs. D_{2j}. Now, by calling Csplit_merge::set_pt_weighted_splitting(true), it is possible to perform the splitting according to the anti-kt distance i.e. comparing D_{1j}/k_{t1} vs. D_{2j}/k_{t2}. This new option should allow to produce more rigid (soft-resilient) jets. Note that the default is to use the standard distance comparison so backward compatibility is not broken. 2008-03-11 Gregory Soyez * siscone/area.cpp (siscone): the jet+area finding now really returns the number of jets as does the standard clustering * siscone/area.cpp (siscone): don't include ghosts in stable-cone search when only the passive area is requested. This is a huge speed improvement as the execution time (when only passive area is requested) is now (with Ntot = N+Nghosts) O(N^2 log(N) + Ntot^2) instead of O(Ntot^2 log(Ntot) + Ntot^2) * configure.ac: switched the main trunk to SISCone-1.4.0-devel 2008-03-07 Gavin SALAM * configure.ac: switched version to 1.3.1 2008-01-17 Gavin Salam * configure.ac: switched version number over to 1.3.1-devel 2008-01-15 Gregory Soyez * siscone/geom_2d.h (M_PI): added definition of M_PI if needed (VC compilation) * siscone/protocones.cpp (siscone): added the algorithm header (VC compilation) 2007-11-12 Gregory Soyez * NEWS & configure.ac: SISCone 1.3.0 2007-11-10 Gavin Salam * configure.ac: * examples/Makefile.am: * examples/events/Makefile.am: made sure some sample events were included in the dist 2007-11-07 Gavin SALAM * configure.ac: switched +="" to A=A"" to eliminate an error on mac 2007-10-24 Gregory Soyez * examples/options.cpp: fix a missing "siscone/" in header include * examples/Makefile.am: fix a problem with make distcheck * configure.ac: the --enable-shared cmd-line option is already handled by libtool. We just need to add AM_DISABLE_SHARED to disable the shared lib by default (can still be changed by using --enable-shared) Also, we set the minimal version of autoconf to 2.57. * examples/Makefile.am: do not install anything (just build examples locally) * examples/main.cpp (main): print a more specific error message when the event file cannot be opened 2007-10-03 Gregory Soyez * siscone/defines.h: read available information from config.h * In examples, include headers from the 'siscone' folder * Move the src folder into a new 'siscone' folder 2007-10-02 Gregory Soyez * add configure script for the build process. This comes with a bunch of new files: autogen.sh, configure.ac, and a Makefile.am in each directory. See the INSTALL files for more details * replace each Makefile by makefile.static Makefile-based build is now made through make -f makefile.static * examples/area.cpp: add a sample program for SISCone jet area computation 2007-06-24 Gregory Soyez * src/defines.h: SISCone 1.2.0 2007-06-15 Gregory Soyez * src/geom_2d.h/cpp: use a 32x32 eta-phi-plane tiling. The range is then defined by two binary fields. This allows easy overlap test and merging. For protojets splitting, the new ranges are built by adding particles one-by-one. * src/split_merge.cpp (siscone): - align code with the modifications in geom_2d.h/cpp - the output of save_contents has slightly been improved * src/area.h/cpp: add methods to compute only the active or passive area * examples/main.cpp: add pass-by-pass statistics in the verbose output * examples/options.cpp: fix bug when passing an unknown long option to getopt_long 2007-06-02 Gregory Soyez * examples/sample.cpp: add a few lines to show how one can browse the output jets of compute_jets. * examples/times.cpp: only save runtime using the siscone class instead of a separate determination. 2007-05-09 Gavin Salam * src/split_merge.cpp: soft_pt2_cutoff -> stable_cone_soft_pt2_cutoff fixed infinite loop for non-zero stable_cone_soft_pt2_cutoff 2007-05-09 Gregory Soyez * src/split_merge.cpp|h: When building the list of particles to be passed to stable-cone search, allow to remove particles below a pt2 threshold soft_pt2_cutoff. 2007-04-27 Gavin SALAM * src/geom_2d.cpp: corrected bugs in range_union -- now passes test that 1000 events are identical to what we had previously. 2007-04-26 Gregory Soyez * src/split_merge.cpp (siscone): add range support to the split--merge. When computing overlap, we first check that the two ranges overlap. In splitting, ranges are set to the parent ranges. In merging, range is set as the union of the parent ranges. * src/split_merge.h: add a range variable to the Cjet class * src/geom_2d.cpp/h (siscone): add the Ceta_phi_range to handle covering ranges in the ete-phi plane. This goes with a function to test overlap and another to compute union. * src/momentum.h: Move geometry tools into geom_2d.h (new file) 2007-04-24 Gavin SALAM + Matteo * src/defines.h (VERSION): updated version number to 1.1.2-devel * src/split_merge.cpp (include): moved test on SM_var2_hardest_cut_off to beginning of loop, to ensure that we don't get a first jet that's below the cutoff. 2007-04-20 Gregory Soyez * src/split_merge.h: remove the "protected" attribute for 'SM_var2_hardest_cut_off' for easier inclusion in fastjet. Note however that the 'protected' declaration in the previous version was used to prevent from dangerous usage of the variable. This is still applicable now! 2007-04-18 Gregory Soyez * src/area.cpp: Add a parameter '_hard_only' which allow to compute only the hard jets area (without the purely ghosted ones. * src/split_merge.h/cpp: Add a cut-off on the SM_var of the hardest protojet. This is useful for computation of the area of the hard jets without computing the purel ghosted ones. Note that this cut-off is colinear-unsafe so has to be used with great care. 2007-04-13 Gregory Soyez * src/area.cpp: add Carea, the class to compute jet area 2007-03-16 Gregory Soyez * SISCone 1.1.1 (tags/siscone-1.1.1) 2007-03-15 Gregory Soyez * doc/html/usage.html: update the html doc for the recent modifications of the split-merge algorithm. * src/split_merge.cpp: improve the recomputation method when two jets are very close in the ordering when SM var is set to SM_Et 2007-03-15 Gavin SALAM * src/split_merge.cpp: modified fix to multiple-pass bug, in hope of being minimally sensitive to rounding errors 2007-03-15 Gregory Soyez * src/siscone.h: set the default number of passes to 0 * examples/main.cpp: adding two command line parameters to the siscone application: - npass controls the number of passes (0 by default) - sm controls the choice for the split--merge variable 2007-03-14 Gregory Soyez * src/momentum.h: add Et (inline) member function * src/siscone.h: remove backward-compatibility computation members to make things more clear. * src/split_merge.cpp: - fix multiple-pass bug - add Et SM variable management 2007-03-14 Gavin Salam * src/split_merge.cpp: put an assert for zero-size jets (common sign of a bug...); ensured that "recomputed" protocones (with full momentum) also have their eta-phi recalculated. 2007-03-12 Gavin SALAM * src/split_merge.cpp: added some more debugging output. 2007-03-10 Gavin Salam * src/split_merge.cpp: fixed some typos and a bug in the EPSILON_SPLITMERGE case for pt-tilde. 2007-03-09 Gregory Soyez * src/siscone.h: The default value for the SM variable is set to pttilde * src/split_merge.h/cpp: Update the split--merge procedure so that it takes into account the choice for the split--merge variable. Among the four choices, (pt_tilde, mt, pt and Et), pt_tilde is the default (mt and pt can lead to IR unsafety). Et is not yet implemented. We strongly advise to keep default value. 2007-03-09 Gavin Salam * src/siscone.h|cpp: * src/split_merge.h|cpp: introduced an enum, Esplit_merge_scale (naming convention in analogy with the leading "C" for classes), which contains values SM_pt, SM_Et, SM_mt, SM_pttilde, and put in routines that take the enum (as well as leaving in old ones) 2007-03-06 Gavin SALAM * src/split_merge.cpp: added transverse mass to info printed out about protojets with the debug mode on (helpful in investigating limiting IR cases) 2007-03-02 Gregory Soyez * SISCone 1.1.0 (tags/siscone-1.1.0) 2007-03-02 Gavin Salam * src/split_merge.cpp: transformed a quiet error on illegal f values into a throw. * src/siscone.cpp: throw an error on illegal R values. 2007-03-01 Gavin Salam * src/split_merge.cpp|h: added a new member variable, most_ambiguous_split, which records the degree of ambiguity of the most ambiguous decision about attributing a particle to one or other jet during a split step. Useful for testing purposes. 2007-03-01 Gregory Soyez * src/split_merge.cpp: set the full momentum information on stable cones when we add them to the protojet list * src/siscone.h,cpp: add comments concerning the split_merge_on_transverse_mass parameter * src/defines.h (VERSION): set to 1.1.0beta * src/split_merge.cpp (siscone): - set ptmin as a real pt cut-off (independent on the choice of variable for the SM) - code cleaned (involves other files e.g. defines.h momentum.h/cpp, siscone.h/cpp) * set the website to the HEPForge one in headers * replaced 'content' by 'contents' everywhere WARNING: it implies Cjet::contents and Csplit_merge::save_contents * src/quadtree.cpp (siscone): replace 'childs' with 'children' 2007-02-21 Gregory Soyez * src/protocones.cpp (siscone): - remove all functions that are no longer necessary and replace them by their new version. This includes the computatin of the cone content, its re-computation, the check for co-circularity and the test for stable cones in the co-circular situations. - add a few comments of potentially tricky points. - remove "cout" statements. - remove 'largest_cocircular_range' which is no longer used * src/vicinity.h: - "largest_cocircular_range" removed. - quadtree related stuff removed. As a consequence, 'build_from_list' is renamed 'build'. The usage of the quadtree can now only be used in 'Cstable_cone::proceed_with_stability' hence, the USE_QUADTREE define has been renamed USE_QUADTREE_FOR_STABILITY_TEST. - Comments aligned to make the code clearer. * src/momentum.h: Add mass() and mass2() member functions to Cmomentum(). Put inline functions in the header rather than in the source file. * add C++ mark ("// -*- C++ -*-") in the headers where it was missing 2007-02-20 Gavin Salam * src/split_merge.cpp: enhanced check on infinite rapidities to include also meaningless rapidities. * src/split_merge.cpp|h: * src/siscone.cpp: sorted out an issue on multi-pass runs caused by earlier fix for transverse mass ordering. 2007-02-20 [am-pm] Gavin Salam * src/split_merge.cpp: fixed a bug that appeared once split_merge_on_transverse_mass got moved into the Csplit_merge_ptcomparison class * src/protocones.cpp|h: introduced compute_cone_contents_nodist(), which calculates the initial cone contents by circulating around all in/out operations and collecting the net result --- this avoids any distance calculations and so removes a potential source of rounding error. (Any remaining rounding error is dealt with by cocircularity tests). * src/defines.h added more info about the meaning of the different EPSILON scales. 2007-02-19 [evening] Gavin Salam * src/defines.h: introduced const bool split_merge_on_transverse_mass, which determines whether the split merge occurs on transverse mass instead of pt -- the latter turns out to be IR unsafe in mom-conserving events for moderately large values of R (R>1) * src/split_merge.cpp: implemented the split-merge ordering on transverse masses, including the limit of there being small differences. * src/momentum.h: introduced perpmass2() which returns the transverse mass, pt^2+m^2 2007-02-19 [pm] Gavin Salam NB: seg-faults are being seen sporadically when fastjet writes its description & need to be understood (but very rare and valgrind gives nothing on small numbers of events...) * src/defines.h: added optional #define EPSILON_SPLITMERGE, which if defined, sets a threshold for pt differences below which the ordering is determined from the explicit particle content... * src/split_merge.cpp|h: trying to introduce more "exact" pt comparison in split merge to deal with multiple scales -- this involves a new Csplit_merge_ptcomparison class which allows the set to carry out comparisons while making use of knowledge about the particle momenta inside the split_merge class. * src/circulator.h: added != and == comparison operators. * src/protocones.h|cpp: added Cstable_cones::test_cone_cocircular_p3() for carrying out a p^3 check of stability -- NB seems a bit slower for small p, but obviously much better for large p... Tests of 2*10^5 particles show no errors, longer tests to be done later... 2007-02-19 [am, early pm] Gavin Salam * src/vicinity.h|cpp: introduced the Cvicinity_inclusion class to allow one to carry out checks both on the inclusion in the cone and in its "cocircular" border. Made corresponding changes elsewhere. * src/protocones.h|cpp: wrote new_cocircular_check() and ran a certain number of tests on it; currently it is this one that is being called from update_cone(), but it still uses the original 2^p routine for actually checking the cone status. * src/[elsewhere] added a lot of (now commented) debugging statements to help fix bugs in the new_cocircular_check(). 2007-02-18 [pm - later] Gavin Salam * src/circulator.h: *** ADDED *** class for a circulator, used below. * src/protocones.(h|cpp): wrote prepare_cocircular_lists(), and checked that it's working sensibly on some simple test events; also added code for esetablishing the largest cocircular range among the children of the current parent (should be used later to establish a more reliable in/out status). NB: the call to this function has added another 1-2% slowdown, and we're now about 3-4% slower than before starting this morning. But this should be the last of the changes that adds significant extra time use? * src/vicinity.(h|cpp): support code for the protocones modification 2007-02-18 [pm] Gavin Salam * src/defines.h: changed default EPSILON values to reflect what will be needed with the new approach. * src/vicinity.cpp: carried out the calculation of cocircular_range inside the append_to_vicinity member function; the extra calculations/storage etc lead to a 2-3% slow-down for the standard fastjet (354 particle) test event with R=1. * src/momentum.h: added a small 2-vector class, needed as a shorthand in vicinity.cpp, plus various small utility routines. * src/vicinity.h: introduced cocircular_range and cocircular (list) as members of Cvicinity_elm * src/momentum.h: introduced phi_in_range, dphi and abs_dphi inline functions. 2007-02-18 [am] Gavin Salam * src/vicinity.cpp (include): switched to twopi from defines.h instead of the pi2 class member * src/siscone_error.(cpp|h): *** ADDED *** this is a simple class for throwing errors. * src/protocones.cpp: caused test_cone cocircular to throw errors when it receives more than 32 points carried out replacement client -> candidate * src/defines.h: introduced definition of twopi, which is used in many place (only some usage instances have been replaced for now). 2007-02-16 Gregory Soyez * src/defines.h: consider the limit on cocircularity and collinearity as different ones. This introduces the EPSILON_COCIRCULAR definition. * src/protocones.cpp (siscone): 1. the list of cocircular situations already encountered is maintained with a pair of references (the cone contents and its border) instead of its coordinates. 2. we have improved the recomputation of the cone contents by dynamically tracking he particles inside of the cone. This adds a list of included particles in Cvicinity as well as a pointer to elements of that list in vicinity elements. 2007-02-15 Gregory Soyez * src/protocones.cpp: Code has been restructured to clearly separate the cocircular case * dealt woth cocircularity and 2\pi periodicity and added an inline fction 2007-02-14 Gregory Soyez * src/reference.cpp (siscone): ensures that the reference is not zero * src/protocones.cpp (siscone): Fix a bug with the interference between the recomputation of jets and the update of cocircular points * src/protocones.cpp (siscone): add tests for recomputation of the cone content for the case of cocircular points * src/protocones.cpp (siscone): when testing the threshold for recomputation of te cone content, we add a test putting automatically the cone to 0 when it is empty. 2007-02-13 Gregory Soyez * We add a test of cocircularity: when more the p>2 particles are found on the same circle, we branch to a different test of cone stability. This new part of the algorithm tests all possible inclusions/exclusions of the particles along the circle in a 2^p-type algorithm. Note that findling large values of p is highly improbable ! 2007-02-12 Gregory Soyez * when traversing the centre list (in stable cones search), we start with the centre which is the most separated from its neighbours. This allows to minimize the possibility that we miscomputed the computation of the initial cone content due to possible rounding errors when two centres are too close. 2007-02-12 Gregory Soyez * in collinear merging, take care of the periodicity in phi * put the threshold for collinear merging in defines.h (EPSILON_COLLINEAR) 2007-02-12 Gregory Soyez * undo the previous modification and use another approach to deal with collinear particles: we keep the p_remain list as it was before (see revision 84). Instead, after computing p_remain, we compute p_uncol which is obtained from p_remain by merging collinear particles. In the siscone main loop, we then use p_uncol instead of p_remain for the search for stable cones. Note that with this modification, the 'parent_index' field of Cmomentum is back to its original definition as a 'int'. 2007-02-12 Gregory Soyez * remove initialisation of parent_index in momentum.cpp and vicinity.cpp This is allowed because of the Npass loop in siscone. Indeed, parent_index is only used internally in split_merge and init at the very beginning of the loop by a call to init_pleft * replaced "int parent_index" by "vector parent_index" and align the code in split_merge.cpp * add a few lines off code in split_merge.cpp to account for collinear particles. * Note concerning the previous update: the change has been validated and is no longer considered as temporary 2007-02-12 Gregory Soyez * Changed the test for recomputation of cone content in Cstable_cones see defines.h for details (this change may be temporary) 2007-02-10 Gregory Soyez * fixed doxygen documentation issues: - undocumented or renamed parameters - include various links into a custom html footer 2007-01-25 Gregory Soyez * fixed memory leak for Cvicinity::ve_list in Cvicinity::set_particle_list() 2007-01-23 Gavin SALAM * added _ptmin argument to Csiscone::recompute_jets(...) 2007-01-22 Gregory Soyez * add ptmin threshold on protojets during split-merge * modify example program to allow for the --ptmin option 2007-01-20 Gregory Soyez * fix typo mistake in split_merge.cpp 2007-01-18 Gregory Soyez * insert a header on top of each source files to give brief information about its content, the SISCone project and copyright 2007-01-03 Gregory Soyez * remove the usage of the quadtree in stable cones detection. Usage of the quadtree in vicinity list creation and final stability tests can be switched on buy defining USE_QUADTREE in defines.h. This step was not fully achieved in the last update. 2006-12-28 Gregory Soyez * remove the usage of the quadtree in stable cones detection. Usage of the quadtree in vicinity list creation and final stability tests can be switched on by defining USE_QUADTREE in defines.h 2006-12-28 Gavin Salam * commented out various "template std::vector<...>" lines to solve compilation problem on Macs. * modified the make depend targets so that they do not include "standard" include files (which differ from one system to another). * fixed log(_Np) bug pointed out by Matteo; fixed program name in defines.h 2006-12-28 Gregory Soyez * replace variables with name being "underscore" followed by a single letter by longer names since they lead to compilation problems under Mac. In practice, we renamed _N with _Np in hash.cpp/h and _R by _radius in protocones.cpp/h and siscone.cpp/h 2006-12-27 Gregory Soyez * arranged for "make dist" to create a file with the same version name in the directory and the tar file; made the tar-file read-only (to avoid involuntarily overwrite); removed svn file from the examples/events subdirectory. 2006-12-26 Gregory Soyez * updated the 'dist' target in the Makefile: include mem_check with the correct path and build archive so that it unpacks into a siscone-1.0-beta directory * fix typos in INSTALL 2006-12-26 Gavin Salam * Changed banner so that first char is # (to allow the rest of the line to be considered a comment by things like gnuplot). * moved scones -> siscone (and sorted out various "ignores") * Reordered changelog so that later stuff appears first (I think this is standard? Makes it easier to see what's been happening recently...) * Tidying up: moved jets.gri and mem_check into the examples directory; added -f to "rm" command in make clean to avoid errors; modified siscones->siscone in a couple of places in doc. * Brought the README and INSTALL files up to date * set some svn:ignore property so as to ignore .dat files (to reduce "noise" with svn status). * added #!/bin/bash to head of examples/mem_check 2006-12-22 Gregory Soyez * rename scones namespace into siscone * put ranlux stuff into the namespace (we don't want to pollute the gobal namespace * add doc/devel as directory for developer's documentation (using Doxygen) * scones.h/cpp is renamed siscone.h/cpp * creation of an 'examples' directory for various programs only the library libsiscone.a is left in the src dir Malefiles are modified accordingly 2006-12-21 Gavin Salam * added the MERGE_IDENTICAL_PROTOCONES_DEFAULT_TRUE define to allow one to make MERGE_IDENTICAL_PROTOCONES to be set true by default if need be. (This makes it a bit easier to make a quick modification to run a test). * changed some of the related comments * replaced occurrences of "extensive" with "multipass" * Added the ChangeLog file! 2006-12-21 START OF CHANGELOG fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/INSTALL0000644000175000017500000000513211766120145020656 0ustar sunsunInstallation procedure: ======================= You have two options to install the SISCone jet finder: 1. use the standard configure/make/make install technique (recommended) 2. use the 'old-fashionned' Makefile 1. Installation through configure/make/make install --------------------------------------------------- This is the recommended method for installing the SISCone library, headers and programs. For a 'standard' installation process, you just need to do $ ./configure $ make $ make install In short, 'configure' checks if your system has the required tools to build SISCone, 'make' actually does the build and 'make install' installs everything in the correct directories. Notes: - If you're using an svn version of SISCone, you first need to issue ./autogen.sh (to which you can pass configure's options, see below for details) in order to generate the configure script from svn files. - The SISCone library is installed in ${prefix}/lib, the SISCone development headers in ${prefix}/include/siscone and the useful programs in ${prefix}/bin. The default prefix is /usr/local but this can be changed by passing the --prefix= to the 'configure' script. Note that if you do not have sufficiently write access you may need to issue 'make install' as root. Also, if you install SISCone in a non standard location (e.g. /usr/local/SISCone), do not forget to append ${prefix}/lib to your LD_LIBARY_PATH. - By default, both shared (libsiscone.so) and static (libsiscone.a) libraries are built and installed. You can disable one of them by passing --disable-shared or --disable-static to 'configure'. 2. Installation using the Makefiles ----------------------------------- If you do not feel comfortable with the suggested installation procedure, it is still possible to install it using the old-fashionned 'make' method. For that, you just need to tell 'make' to use makefile.static as a main Makefile. This is done typing $ make -f makefile.static This will build the siscone library as src/libsiscone.a and the various example programs in examples/ : - 'siscone' an application with options to tune it from the command line (see main.cpp and options.h/cpp) - 'sample' another example (used in the html documentation (see doc/html)) - 'test' a testing program (see src/test.cpp) - 'times' computes execution times and various statistics for 1 <= N <= 1000 - mem_check a shell script for checking memory usage as a function of the number of particles (requires google perftools). You also have access to the SISCone headers in the src folder. fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/config.guess0000755000175000017500000012761512111460634022153 0ustar sunsun#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-11-20' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/configure0000755000175000017500000207007712233506727021554 0ustar sunsun#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.63 for SISCone 2.0.6. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell bug-autoconf@gnu.org about your system, echo including any error possibly output before this message. echo This can help us improve future autoconf versions. echo Configuration will now proceed without shell functions. } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF $* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='SISCone' PACKAGE_TARNAME='siscone' PACKAGE_VERSION='2.0.6' PACKAGE_STRING='SISCone 2.0.6' PACKAGE_BUGREPORT='' ac_unique_file="siscone/siscone.cpp" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_default_prefix=/usr/local ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS CXXCPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL LN_S am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking enable_debug enable_shared enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 { (exit 1); exit 1; }; } ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures SISCone 2.0.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/siscone] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of SISCone 2.0.6:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-debug Turn on debug compiler information --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF SISCone configure 2.0.6 generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by SISCone $as_me 2.0.6, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 $as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 $as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5 $as_echo "$as_me: error: unsafe absolute working directory name" >&2;} { (exit 1); exit 1; }; };; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5 $as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;} { (exit 1); exit 1; }; };; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 $as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 $as_echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:$LINENO: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 $as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='siscone' VERSION='2.0.6' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_config_headers="$ac_config_headers siscone/config.h:config.h.in" DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:$LINENO: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { $as_echo "$as_me:$LINENO: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 $as_echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi fi fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } { $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext { $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:$LINENO: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:$LINENO: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for int" >&5 $as_echo_n "checking for int... " >&6; } if test "${ac_cv_type_int+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_type_int=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof (int)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof ((int))) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_int=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 $as_echo "$ac_cv_type_int" >&6; } { $as_echo "$as_me:$LINENO: checking for long" >&5 $as_echo_n "checking for long... " >&6; } if test "${ac_cv_type_long+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_type_long=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof (long)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof ((long))) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 $as_echo "$ac_cv_type_long" >&6; } test "x${CXXFLAGS+yes}" = xyes || CXXFLAGS="-O3 -Wall -ffast-math" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:$LINENO: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then enableval=$enable_debug; ENABLE_DEBUG_FLAG="$enableval" else ENABLE_DEBUG_FLAG="yes" fi if [ "x$ENABLE_DEBUG_FLAG" == "xyes" ] ; then CXXFLAGS=${CXXFLAGS}" -g " fi { $as_echo "$as_me:$LINENO: checking for cos in -lm" >&5 $as_echo_n "checking for cos in -lm... " >&6; } if test "${ac_cv_lib_m_cos+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char cos (); int main () { return cos (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_m_cos=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_cos=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_cos" >&5 $as_echo "$ac_cv_lib_m_cos" >&6; } if test "x$ac_cv_lib_m_cos" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF LIBS="-lm $LIBS" fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6b' macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 $as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { $as_echo "$as_me:$LINENO: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 $as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 $as_echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:$LINENO: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 $as_echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed $as_unset ac_script || ac_script= if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5 $as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:$LINENO: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 $as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:5973: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:5976: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:5979: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:$LINENO: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:$LINENO: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:$LINENO: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:$LINENO: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 7173 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_cv_cc_needs_belf=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:$LINENO: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_cv_ld_exported_symbols_list=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_ld_exported_symbols_list=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac for ac_header in dlfcn.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:$LINENO: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:$LINENO: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} _lt_caught_CXX_error=yes; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:$LINENO: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:$LINENO: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9276: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9280: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9615: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9619: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9720: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9724: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9775: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9779: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat >conftest.$ac_ext <<_ACEOF int foo(void) {} _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then shlibpath_overrides_runpath=yes fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_dl_dlopen=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) { $as_echo "$as_me:$LINENO: checking for shl_load" >&5 $as_echo_n "checking for shl_load... " >&6; } if test "${ac_cv_func_shl_load+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_shl_load || defined __stub___shl_load choke me #endif int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_func_shl_load=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 $as_echo "$ac_cv_func_shl_load" >&6; } if test "x$ac_cv_func_shl_load" = x""yes; then lt_cv_dlopen="shl_load" else { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_dld_shl_load=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else { $as_echo "$as_me:$LINENO: checking for dlopen" >&5 $as_echo_n "checking for dlopen... " >&6; } if test "${ac_cv_func_dlopen+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_dlopen || defined __stub___dlopen choke me #endif int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_func_dlopen=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 $as_echo "$ac_cv_func_dlopen" >&6; } if test "x$ac_cv_func_dlopen" = x""yes; then lt_cv_dlopen="dlopen" else { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_dl_dlopen=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_svld_dlopen=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_dld_dld_link=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 12578 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 12674 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:$LINENO: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 $as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5]* | *pgcpp\ [1-5]*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= { $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 $as_echo "$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14694: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:14698: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14793: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14797: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14845: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14849: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' { $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 $as_echo "$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then shlibpath_overrides_runpath=yes fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_commands="$ac_config_commands libtool" # Only expand once: ac_config_files="$ac_config_files Makefile siscone/Makefile siscone/spherical/Makefile examples/Makefile examples/events/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by SISCone $as_me 2.0.6, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ SISCone config.status 2.0.6 configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { $as_echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { $as_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ fix_srcfile_path_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "siscone/config.h") CONFIG_HEADERS="$CONFIG_HEADERS siscone/config.h:config.h.in" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "siscone/Makefile") CONFIG_FILES="$CONFIG_FILES siscone/Makefile" ;; "siscone/spherical/Makefile") CONFIG_FILES="$CONFIG_FILES siscone/spherical/Makefile" ;; "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "examples/events/Makefile") CONFIG_FILES="$CONFIG_FILES examples/events/Makefile" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 $as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 $as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 $as_echo "$as_me: error: could not setup config headers machinery" >&2;} { (exit 1); exit 1; }; } fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 $as_echo "$as_me: error: could not create -" >&2;} { (exit 1); exit 1; }; } fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 $as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/Doxyfile0000644000175000017500000017411312233506640021337 0ustar sunsun# Doxyfile 1.5.8 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = SISCone # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 2.0.6 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = doc/devel # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, # Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, # Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene, # Spanish, Swedish, and Ukrainian. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it parses. # With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this tag. # The format is ext=language, where ext is a file extension, and language is one of # the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, # Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat # .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by # doxygen. The layout file controls the global structure of the generated output files # in an output format independent way. The create the layout file that represents # doxygen's defaults, run doxygen with the -l option. You can optionally specify a # file name after the option, if omitted DoxygenLayout.xml will be used as the name # of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = doc \ src/old \ tests \ timings # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = doc/devel/html/footer.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER # are set, an additional index file will be generated that can be used as input for # Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated # HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. # For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's # filter section matches. # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to FRAME, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. Other possible values # for this tag are: HIERARCHIES, which will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list; # ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which # disables this behavior completely. For backwards compatibility with previous # releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE # respectively. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Options related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/makefile.static0000644000175000017500000000204311766120145022611 0ustar sunsunSUBDIRS = siscone examples DISTFILES = AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README TODO Doxyfile \ makefile.static siscone/makefile.static examples/makefile.static \ configure.ac Makefile.am siscone/Makefile.am examples/Makefile.am \ config.h.in siscone/*.cpp siscone/*.h \ examples/events/*.dat examples/mem_check examples/*.h examples/*.cpp VERSION = `head -1 configure.ac | sed -e"s/AC_INIT(\[SISCone\], \[//;s/\])//"` TARDIR = siscone-$(VERSION) all: config $(SUBDIRS) .PHONY: clean $(SUBDIRS) clean: $(SUBDIRS) rm *~ depend: $(SUBDIRS) config: @echo "Creating the configuration file" sed -e "s/#undef PACKAGE_NAME/#define PACKAGE_NAME \"SISCone\"/;s/#undef VERSION/#define VERSION \"$(VERSION)\"/" config.h.in > siscone/config.h siscone: @cd siscone && $(MAKE) -f makefile.static $(MAKECMDGOALS) examples: @cd examples && $(MAKE) -f makefile.static $(MAKECMDGOALS) dist: mkdir $(TARDIR) cp -R -t $(TARDIR) --parents $(DISTFILES) tar -czf $(TARDIR)_noautoconf.tar.gz $(TARDIR) # chmod a-w $(TARDIR).tar.gz rm -Rf $(TARDIR) fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/0000755000175000017500000000000012233507302021434 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/sample.cpp0000644000175000017500000000771511766120145023441 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: sample.cpp // // Description: example program for the Csiscone class (see documentation) // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 321 $// // $Date:: 2011-11-15 09:56:39 +0100 (Tue, 15 Nov 2011) $// /////////////////////////////////////////////////////////////////////////////// #include #include #include #include "siscone/momentum.h" #include "siscone/siscone.h" #define R 0.7 #define f 0.5 #define f_alt 0.75 using namespace std; using namespace siscone; int main(){ vector particles; // list of particles Csiscone siscone; // main object for the cone algorithm int i; // loop index int N; // number of particles double px,py,pz,E; // particles 4-momentum char fline[512]; // line to read from a file // read particles FILE *flux; flux = fopen("events/single-event.dat", "r"); if (flux==NULL){ cerr << "cannot read event" << endl; return 1; } N=0; while (fgets(fline, 512, flux)!=NULL){ if (fline[0]!='#'){ // skip lines beginning with '#' if (sscanf(fline, "%le%le%le%le", &px, &py, &pz, &E)==4){ particles.push_back(Cmomentum(px, py, pz, E)); N++; } else { cout << "error in reading event file Giving up." << endl; fclose(flux); return 2; } } } fclose(flux); // compute jets // first compute with multiple passes (default) i=siscone.compute_jets(particles, R, f); cout << " " << i << " jets found in multi-pass run" << endl; // then, recompute it with a different f i=siscone.recompute_jets(f_alt); cout << " " << i << " jets found with alternative f" << endl; // one pass i=siscone.compute_jets(particles, R, f, 1); cout << " " << i << " jets found in single-pass run" << endl; // show jets vector::iterator it_j; int i1; fprintf(stdout, "# pT eta phi px py pz E \n"); for (it_j = siscone.jets.begin(), i1=0 ; it_j != siscone.jets.end() ; it_j++, i1++){ fprintf(stdout, "Jet %3d: %10.3f %8.3f %8.3f %10.3f %10.3f %10.3f %10.3f\n", i1, it_j->v.perp(), it_j->v.eta, it_j->v.phi, it_j->v.px, it_j->v.py, it_j->v.pz, it_j->v.E); } return 0; } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/events/0000755000175000017500000000000012233507303022741 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/events/midpoint-irunsafety.dat0000644000175000017500000000030111766120145027444 0ustar sunsun# R=0.7 is assumed 400.0 0.0 0.0 400.0 110.0 0.0 73.97603280415951055 132.5611309149182127 90.0 0.0 216.1315626191298955 234.1214478858929349 fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/events/single-event.dat0000644000175000017500000007000211766120145026037 0ustar sunsun -0.8807412236 -1.2331262152 -157.4313156510 157.4393822839 -0.0051712611 0.2381550800 -9.7396045662 9.7435168946 0.0362280943 0.2694752057 -6.9243427525 6.9310844534 -0.2206628664 -0.1438198985 -0.6838608666 0.7460038429 1.2716787521 1.0422298083 -6.1740167274 6.3907254797 -0.5695590845 -0.3627761836 -58.5430479911 58.5544811606 0.2839991726 -0.4668202293 -49.6978846131 49.7097441380 0.6510530003 1.3970949413 -62.7226079598 62.7485783532 0.1434555273 -0.0312880942 -6.9382351613 6.9411919273 0.4931562547 2.1627817414 -14.8865871635 15.0516040711 0.2396813608 -0.0786236784 -1.9340954697 1.9554625817 0.3355486441 0.0516402769 -0.8346540063 0.9118040941 -0.7853865645 -0.7810520475 -1.5367790662 1.8994852039 0.1094889185 -0.1754670827 -0.6843130641 0.7283822313 -1.3395280577 -1.0677537402 -6.4527380155 6.7420362761 -0.4610425267 -0.0168193957 -0.8357253135 0.9647588756 -0.8586330562 -2.0252604440 -6.1169276419 6.5019392609 0.1506846470 -0.2812835366 -0.3038867955 0.4622264166 1.9980221318 1.1300023793 -3.4459595617 4.2454664891 0.3272882037 -0.2364585949 0.1553473919 0.4545798417 1.0076426762 1.4440286855 0.8523588299 1.9612643798 0.0379998790 -0.3660104062 0.1528715253 0.4222050407 10.0151541250 -2.3211630182 -15.0785563543 18.2503000364 11.3598983026 -1.2325298244 -15.8349153125 19.5276839884 1.6687709743 -1.1585763834 -2.8709909456 3.5198245120 3.2014431503 -0.3128004506 -0.5513753788 3.3957985464 -30.7151484971 7.1828179172 -30.3287168815 43.7617176202 -7.5956115238 2.5973350872 -7.5388480549 11.0234901429 -0.9213602936 -0.5107772285 -0.1419601961 1.0721150358 -1.0794599717 -0.6668199287 0.5316879271 1.3827705828 -0.7396340255 -0.6182167240 2.5119449763 2.6941784942 0.2074176533 0.2794277179 0.9960164767 1.0642511636 -0.1539166871 -0.7751679292 2.5738103560 2.7372826624 -1.3215623416 -0.6371922652 234.4350568153 234.4396892268 -1.0575338040 0.0953188302 464.9467453555 464.9479787674 -0.6276410883 0.2361957514 71.0828886604 71.0861889671 -0.2082020096 -0.4373362216 0.9028588667 1.0340430193 -0.0179791764 0.0902483897 0.2648461382 0.3131952817 0.1020198339 0.1098009129 1.7787412558 1.7904928168 2.0706642474 2.4044116603 1.0424047727 3.4696174649 0.7973260719 0.5349870337 57.3601218239 57.3683274589 -0.2096823488 0.0247005810 -23.7890553577 23.7951971424 0.3102511281 0.1319028264 -314.2349531398 314.2355280746 -0.2551007217 0.1414141961 -264.4206622484 264.4208599525 -0.0667217187 0.1675665310 -440.2993433749 440.2994024371 0.1230808742 0.0544787546 -9.2334321211 9.2344131146 0.0149244718 0.0926408620 -13.1527203128 13.1530550328 -0.7273456972 0.8103042163 -69.3094134240 69.3181065354 1.3444919516 -0.0354346667 -75.6843009141 75.6962503634 -0.2673665474 -0.0908126999 -12.8334289873 12.8372937636 0.3478059093 0.1156549525 -5.5306033046 5.5427356000 0.1066857461 -0.0194790151 -1.0350365802 1.0407026486 0.0216700641 -0.0151983847 -0.0808217620 0.0850455160 -0.0908971368 -0.1795934739 -2.1471276079 2.1565419240 0.1619100903 0.1096391138 -5.1549916876 5.1605866621 0.1658801571 -0.4323029725 -10.9719847384 10.9928382207 -0.0738683424 0.2189545272 -5.2858871411 5.2927762347 0.6032480190 0.0236332859 -3.2008192361 3.2944425092 -0.0357683833 0.1856094526 -0.6235460716 0.6515673024 -0.3533710661 0.6295703546 -2.8607535473 2.9504475593 0.0481173336 0.0105768278 -0.5957002119 0.5977339622 0.2075827055 -0.0308763006 -0.7487101323 0.7775672240 0.5304017839 1.4777754272 -3.9322188565 4.3370823357 0.0413924064 0.1486652835 -0.0938036137 0.2282402258 0.0836183570 1.0175603398 -5.1671981062 5.3502475764 0.3485824980 0.7400614406 -2.3277750515 2.4712784483 0.2840798497 0.1448084307 -0.3598613881 0.5006504231 0.0615749422 0.1226682661 -0.2567909641 0.3228937304 0.4447081942 -0.4703237310 -41.1153447304 41.1206763305 0.0124634495 0.4015541485 -14.9710629970 14.9771027945 -0.0316220376 -0.1433969883 -40.0395270888 40.0428387244 -0.3087482155 0.1806952265 -13.8307938752 13.8354195977 -0.3356629575 0.0993822522 -10.0800461630 10.0861229965 -0.3201882660 -0.2024976612 -41.8446572615 41.8568897287 0.1061884633 -0.3151853343 -14.3998854139 14.4044020183 -0.2527720657 0.9069338223 -58.5238686950 58.5316077815 -0.1792120633 -0.0360308668 -33.2666000360 33.2673950427 0.9675598538 0.3593779851 -47.8071191709 47.8274640622 -0.0714174325 0.0908505489 -6.7152464947 6.7176907894 -0.0778201914 1.4032563894 -90.8847339885 90.9004422830 0.0244495106 0.0548209263 -26.7828085908 26.7832395149 -0.1660314882 -0.0217473452 -18.6254257666 18.6267013767 0.0157049989 0.0168585335 -0.3203174380 0.3211450112 0.3107606707 -0.1971654391 -2.5216196955 2.5483352004 0.0555180663 0.1012407689 -2.8568822700 2.8592146218 0.4924054759 0.4638065599 -11.5988585156 11.6185669746 0.0246279353 0.3500825457 -1.4762107229 1.5237592353 -0.1337804291 0.0207566609 -0.6922983624 0.7054112734 0.1425990775 0.2159252673 -1.4422250588 1.4652547008 1.1509079385 1.3932642481 -11.9161396276 12.0523922095 -0.2817355269 0.1171350200 -3.5044085055 3.5204338196 -0.2938296833 0.5477549955 -4.0607872094 4.1104554447 0.2320766870 0.2725578877 -2.4417843515 2.4718288765 -0.1166849087 0.3561484951 -1.0167846717 1.0926060461 0.4301305393 0.3390614943 -3.7153711906 3.7581162630 0.2292214322 0.5342372509 -4.0278522037 4.0719804844 -0.9524325280 0.0334349530 -3.6861382279 3.8073429911 -0.2656944809 -0.2572725338 -2.3412698888 2.3703011214 -1.0311407020 -1.0586248548 -4.0709688056 4.4316494143 -0.0950317920 0.0651839091 -0.4709223689 0.5045073299 0.0664907355 -0.2283387225 -1.8762930749 1.8964480162 -0.5611110795 -0.6953888597 -1.9606771050 2.1592002697 0.1891889671 -0.1472085995 -0.2096350365 0.3184488743 0.0792704574 0.0251844818 -0.0983276385 0.1287881517 0.1611736633 0.0711833539 -0.3690578008 0.4321197344 -0.0054785644 -0.1772470704 -0.1887858326 0.2942217092 1.2592788545 0.6027682305 -1.9731707573 2.5928490514 0.2029562446 0.1650861534 0.0141930687 0.2968600737 1.2748961578 0.4162795142 0.2649070316 1.3741558745 1.0762322510 0.3311719610 0.5525788508 1.2620514638 0.1617039199 -0.1197724715 0.0749212600 0.2560987754 -0.0323954715 0.2494233491 0.1560907622 0.3272698956 0.4783653778 0.0155338834 0.0730680592 0.4841628626 0.8887630855 0.0859887077 0.3171179068 0.9475535060 0.4620391835 0.0959242469 0.9549103797 1.0742510351 0.4929608353 0.2924063523 0.4046649124 0.7153637789 0.8090379891 0.3357430404 0.1242812216 0.8956514187 -0.2218609894 0.0554977900 0.1140035220 0.2911681494 1.0947245051 -0.6236432380 -0.8821510424 1.5443519278 1.2312355422 -0.7380880549 -1.6968461982 2.2269893898 0.9823668004 -0.1980014204 -1.1323956352 1.5185679940 0.3072642138 -0.3616367001 -0.8863081947 1.0149947787 3.5267082850 -0.8709343198 -6.0396048282 7.0492910411 0.0302309577 -0.1093072034 -0.1454183249 0.2312752681 8.3195138078 -1.2696507106 -13.6925071989 16.0726648724 1.9111207173 -0.2604029574 -2.8768617815 3.4664110534 0.5301770085 -0.2474488120 -1.1645712928 1.3107343956 1.7420326246 -0.2822907394 -2.8168929273 3.3240414394 7.1662439694 -0.8989264899 -11.6921124639 13.7429478399 4.0278455019 -0.7538804612 -6.1367606781 7.4387161891 2.3520608039 -0.3594541793 -3.9148734196 4.5833515040 0.8874010232 0.1118054115 0.0320276498 0.9058071435 0.1500724686 0.0233402575 0.0493207873 0.2120821501 4.2962697295 -1.7142289365 -0.1690138675 4.6308271300 1.8430690942 -0.4354147487 0.3986540928 1.9353074110 17.9174665745 -3.9541912904 4.1909545762 18.8211407058 3.7381128073 -1.1588289400 1.2894704313 4.1229341070 40.1307210930 -9.9455385011 9.4372399972 42.4083658029 46.9323028742 -12.1457646999 11.2983938225 49.7778448306 49.9481498640 -13.6951263923 11.6387976852 53.0834743878 55.4631919903 -13.9171302743 13.2275436067 58.6925897426 8.2260209293 -2.0146434912 1.9795098478 8.6973943203 552.6086009193 -143.3841889206 127.4057239389 584.9508777791 -58.5643305599 13.6721150775 -60.7292192202 85.4679184928 -20.7055785892 4.9367170132 -21.3460862941 30.1457632088 -63.1393333534 15.4319228136 -63.1699054399 90.6388674177 -184.7092504379 43.8836483458 -185.9895634959 265.7736690492 -132.3436726570 31.1975659982 -133.8117860858 190.7714585356 -249.6259700938 59.9806981396 -252.0534723625 359.7801849802 -84.6956389844 20.2530979512 -84.9405599439 121.6489105704 -1.4896061764 0.5394718049 -1.1697689680 1.9742835694 -15.6910439822 4.0928980329 -16.0308697076 22.8077421088 -6.5161499932 1.4530419848 -7.0414172713 9.7042557013 -1.6887821332 0.6217356263 -1.7453944171 2.5108607565 -2.9066030431 0.8578299581 -2.1768165890 3.7339287264 -4.3216629645 0.4876667295 -4.0106317127 5.9177053101 -0.1313279989 0.1710015195 0.2960934797 0.3662784619 -0.1378802261 0.0239116355 0.1336123094 0.1934811936 0.1228571341 0.1038820753 0.1856298240 0.2456497354 0.0880826051 -0.0369854789 0.0702432827 0.1185773575 0.3000337170 -0.0143366600 0.8191164649 0.8835481533 0.1103182833 -0.3276972527 0.5695489167 0.6807505905 0.0246169502 -0.0632054218 0.4462814427 0.4514067409 0.3462650138 -0.1370493016 1.8335961124 1.8710309122 0.1072718009 0.2347141259 0.8106008195 0.9835205177 -0.1228669036 -0.3420825771 0.4269449947 0.5778222728 -0.0537484106 -0.1418315633 0.1658218865 0.2247264604 -0.1921583292 -0.2051056097 0.6510375898 0.7227190760 0.0719282041 -0.6389806821 1.3260724361 1.4803438348 0.0770785256 -0.0961694649 0.7126381724 0.7365613449 -0.1024788272 0.2570404755 1.0007133278 1.0476061595 -0.3569652766 0.0132486739 8.2719979695 8.2808834026 0.9119741942 -0.5440359019 10.4508006448 10.5046135631 0.2130354298 0.0824739706 12.4438615581 12.4813728536 0.0796437059 -0.2190335365 1.8949965789 1.9143695121 0.0257844816 -0.0205887972 0.4134653053 0.4147798172 0.3407013815 -0.9771232757 20.8001110981 20.8258365743 -0.0484682129 -0.4170975131 51.2421047601 51.2524142879 0.0897243336 -0.1477960689 33.5942223016 33.5949571509 0.3309172902 0.2053558941 15.3759445633 15.3815092983 -0.4513428002 -1.0629724624 198.6483838807 198.6517896193 -0.5096208939 0.2808545308 526.2829357022 526.2840937694 0.0439210002 -0.0909597094 62.6115892566 62.6118262930 -0.4921468048 -0.2259270362 263.1629036404 263.1651334325 0.0256741895 0.0647083476 60.1293229885 60.1295252698 -0.2129474818 0.3356181212 10.9531127852 10.9612109561 -0.3345049992 0.0053042168 10.0385185055 10.0450612392 -0.2168883064 0.0832963463 14.9196810412 14.9221426402 0.2190731187 0.1408132403 1.5507985399 1.5786948078 0.1157490730 0.0973727931 0.2776072109 0.3455790172 -0.2700182117 -0.2659794788 3.8116405429 3.8304384274 -0.0503520285 -0.0502248492 1.5957756572 1.5973596371 0.3728285538 -0.0813045131 0.3833836648 0.5586361729 0.2045526783 0.5531671529 1.4067251294 1.5317281325 1.1124557930 0.6363451605 0.6161236815 1.7036584277 -0.0045760421 -0.0333413613 -0.0266276402 0.1460185011 0.2034731156 -0.0975389956 -0.0758288761 0.2759437765 0.2198871730 0.5955469316 0.7259653412 0.9744393147 1.6512411277 1.3209100794 1.5552345144 2.6286184355 0.1485630649 0.3302111341 2.2869277289 2.4987878260 0.1434858277 0.1748231234 1.2536107327 1.2814721851 0.4466109566 -0.3708574769 3.3454935959 3.5230832803 0.0645162267 -0.3240107647 0.8653597227 0.9367350499 0.7297178455 -0.0230670048 8.7581561340 8.7896415668 0.0818687057 -1.0590802908 6.0448998742 6.1375213268 -0.0165520648 0.0496969805 0.9381702085 0.9396313643 0.1856788128 -0.2651426402 3.5296675023 3.5472256346 0.2462301231 -0.0254015715 9.5838219962 9.5880341234 0.4564255134 0.1547243999 36.4834178279 36.4899947345 0.2420013869 -0.4750765942 8.8978425902 8.9148945584 -0.5836449074 0.2713063655 97.8985090318 97.9007242003 0.1098728236 -0.3173326524 192.1524793330 192.1528234652 -0.0884675198 -0.0343950604 37.9162600215 37.9166357068 -0.3479866282 -1.6163644207 3219.6952699557 3219.6958312012 -0.4502778003 -0.0845033682 -15.5304915887 15.5378743620 -0.0136188828 0.0749919179 -11.8647621575 11.8658278304 -0.2356122901 0.2546257088 -464.6232035239 464.6233539976 -0.3366930922 0.0001267148 -314.7906873590 314.7912608153 -0.5908021127 0.2714310441 -62.0570105158 62.0624117444 0.0950294025 -0.0979437150 -6.5075134406 6.5089442107 -0.0258241148 -0.1651896244 -7.6613397231 7.6631638929 -0.0283746791 -0.0128186850 -1.1860948704 1.1865034693 -0.2445470072 -0.0367850366 -2.3234980477 2.3366213976 1.1134230020 -0.0084955425 -8.1756524679 8.2511257554 0.7423074922 0.0450351928 -4.7803853081 4.8378851035 0.0631614949 -0.0147897750 -0.3372075109 0.3433904735 -0.0615524241 -0.0730339500 -0.4109508860 0.4219043606 0.2721762563 0.9356454684 -1.1899345164 1.5380040671 0.0195567553 -0.0613884496 -0.2438139881 0.2521830074 0.0015753821 -0.0127040661 -5.1798684309 5.1798842494 -0.2336502048 0.2398589892 -61.5027554276 61.5036669633 -0.2111577946 -1.2264310644 -54.4484267777 54.4628256623 -0.1724150208 -0.6710138080 -46.7073487537 46.7126952108 -0.0083548891 0.1191926839 -1.6273211403 1.6317018091 0.1782576111 0.2370603640 -3.4515411588 3.4642617920 -0.0157160274 -0.0172284475 -0.8321853782 0.8325120519 0.2055123178 -0.2277451049 -4.7400462090 4.7499622323 0.1433996625 0.1319354611 -4.2237703099 4.2282627709 0.2505217514 0.5109550496 -14.5866293938 14.5977256202 0.0907354824 0.2212240967 -1.6245224103 1.6420249969 0.0442826976 0.6827900032 -4.2712530344 4.3257098411 -0.0286900410 0.1272840718 -0.9586700336 0.9675084427 0.0168298416 0.0212462677 -1.2498808277 1.2501746801 0.0191626579 0.0396505095 -0.1096013028 0.1181178053 -0.1826163842 0.1583483453 -0.3493583086 0.4248225159 0.0736986630 -0.4757600112 -0.5567925582 0.7360686341 0.0718737115 -0.1073098612 -0.0922689901 0.1587287096 0.3823052378 0.2473184083 -0.9764937570 1.0774338714 -0.0099669892 0.0144860894 -0.0618195721 0.0642716668 -0.0893120375 0.0045092023 -0.4219473328 0.4313195157 -0.0173901063 0.0980486800 -0.2280732197 0.2488641256 0.0470683860 0.1067218125 -0.0220928902 0.1187142536 0.2236348783 0.1462105889 -0.2007592535 0.3342070810 0.2304940378 -0.1786278713 0.2738302916 0.4000230574 -0.0034266964 -0.0207838453 -0.0099250562 0.0232855581 -0.0198610958 0.0339167728 0.0860577817 0.0946084161 -0.1495093893 -0.0992705397 0.1721689527 0.2486962923 0.1388593068 0.0621639466 0.1820504657 0.2372522611 0.4364050518 0.1711414837 0.2526138346 0.5324965034 0.1135784502 -0.3755312317 -0.4819257884 0.6214307973 0.0656586648 -0.1174273893 -0.3106626572 0.3385432596 0.6794157833 -0.2958876229 -1.3108688155 1.5058327741 0.2105562628 -0.0146095214 -0.3598329775 0.4171656141 0.8891967174 -0.2859846717 -1.2899195992 1.5925924171 0.9709628090 -0.4638594187 -1.5007185975 1.8466430748 0.8378588087 -0.0907723342 -1.0811879512 1.3708444061 0.1779040294 -0.0469475636 -0.1539205319 0.2398863222 0.4696086571 -0.2188612179 -0.5030102129 0.7221161941 0.4511368236 -0.1140360671 -0.5914121373 0.7525270589 1.0715035537 -0.0504322193 -1.2598340838 1.6546435245 0.0668091207 -0.0378517174 -0.0814590598 0.1119454758 0.6316389071 -0.1273235117 -0.6462307006 0.9125749854 0.2684052593 0.0083959523 -0.1886456222 0.3281753282 0.3892874920 -0.1743366297 -0.6509560390 0.7782555985 1.3389273647 -0.3627304714 -1.9218592665 2.3701989205 0.0045094441 -0.0453764540 -0.0434900736 0.0630138411 0.3133525938 -0.1008805853 -0.3655345011 0.4919168751 1.4519335046 -0.3776623331 -2.3436634930 2.7827141980 1.1774890796 -0.2142441295 -1.7232930015 2.0981229346 0.2355847301 -0.2200748912 0.1401791546 0.3515441909 0.3730544183 -0.2033339289 0.0678202445 0.4302486156 5.7036562093 -1.3847122534 1.0304717985 5.9591101942 0.3132978256 -0.0441957346 0.0509066642 0.3204688424 12.0524189062 -3.0888845437 2.7804315114 12.7488355783 31.6297261863 -7.9897036677 7.4822494855 33.4702704005 0.1298166828 -0.0603422723 0.0449212824 0.1500382703 5.6041248096 -1.7827306116 1.3929423696 6.0435611820 15.2635626061 -3.9126479532 3.5227360906 16.1460467918 12.6420333259 -3.3156273590 2.8203654708 13.3704469927 -6.8280628114 1.6575170026 -7.0642230364 9.9635862759 -28.7310801665 6.6899382857 -29.6661493612 41.8367142558 -23.0805998372 5.2804748057 -23.7593817157 33.5428860164 -9.5867328041 2.3566842001 -9.6302827557 13.7920713461 -2.4941626575 0.7605935548 -2.3465485517 3.5079395695 -12.8361288251 4.1724746846 -12.3930282133 18.3238341103 -0.2218939688 0.0177591193 -0.1601445527 0.2742236267 -0.3547183900 0.1627198093 -0.4375984432 0.5863405751 -1.5077751291 0.4846678610 -1.3722432145 2.0955524844 -1.0249084149 0.3454253853 -1.0884030972 1.5343980115 -0.6851007890 0.1387858818 -0.6931465231 0.9844169414 -0.1348478831 0.0027831157 -0.0667382711 0.1504848634 -1.7172317946 0.4278616379 -1.5483601280 2.3514611847 -0.1185075147 -0.0023470526 -0.1255368894 0.1726529765 -0.2481981444 0.1582306347 -0.1468021309 0.3289226630 -0.9966635486 0.3389627921 -0.4783137759 1.1562949761 0.0088328598 -0.0568652170 0.3666038530 0.3710930576 -0.0824728099 0.0441797782 0.3879523579 0.3990747413 0.1199632582 -0.0647633161 0.3012285579 0.3306419733 0.0018630421 -0.0049969991 -0.0147954815 0.0157272757 -0.0136056330 0.0078110768 0.0042779078 0.0162612013 0.0895632652 -0.1214885998 0.5518245090 0.5720938272 0.3093767760 0.0801078725 4.7396091515 4.7503711613 0.1443427580 0.0774488471 4.1438348166 4.1470712729 0.0800206896 -0.2831535685 44.4006608942 44.4016358606 0.0077367737 0.0117045964 0.7717758140 0.7719033374 -0.1114386512 -0.0611335023 10.4091099025 10.4098859187 -0.2179700232 0.0686322286 20.7719389630 20.7731959408 -0.0517190611 0.1441402526 13.4281329719 13.4290061578 -0.0315432027 -0.0288834445 4.1154298514 4.1156520855 -0.0210490068 -0.1913294761 14.6251063933 14.6263729969 -0.4133059803 -0.9942214423 74.9928286595 75.0005576544 0.0017189742 0.0003086548 0.1162765244 0.1162896396 -0.0197978822 0.4918674160 1.4905912780 1.5697731904 0.1498213953 0.2658028537 0.0262280525 0.3062442134 0.1485723914 0.0742812231 -0.0073876616 0.1662709630 -0.0050837918 0.0002284770 -0.0021956656 0.0055423901 0.1905224494 0.0721540097 1.0400756752 1.0598407498 0.1789403158 0.0666764902 2.9045526860 2.9108231992 0.1943735087 -0.0680286041 3.0118739143 3.0189059985 0.0150257083 0.0162010005 3.8405935297 3.8406570928 0.0864382180 -0.1775350230 10.9516521209 10.9534320844 0.0112700861 0.0077621474 6.2645553713 6.2645703178 -0.0880690210 -0.2011746802 24.3996872285 24.4006754876 -0.0428591497 0.0438332411 44.4944475561 44.4944897890 0.0444439323 -0.0497049989 94.1332069530 94.1332305677 0.3963642912 0.0673770453 -289.8837440594 289.8840228682 0.0542374607 0.0178424362 -96.5357422683 96.5357591535 -0.0134026835 -0.0410107441 -5.2778715751 5.2780479229 -0.0074119146 -0.0297613121 -58.9036529918 58.9036609767 -0.2811166895 0.8565449965 -1345.2132113785 1345.2138415713 -0.0217590821 0.0295680705 -1.4316647060 1.4321353144 -0.0411871732 -0.1433145865 -4.1950850614 4.1977344040 0.0000161243 -0.0197893201 -18.6652813563 18.6652918468 -0.0037080800 -0.1644263966 -20.7846855998 20.7853363041 0.1864447321 0.0253239348 0.0515967916 0.1951029695 0.1036221868 -0.0670423838 -0.0340109532 0.1280194664 0.4672472776 0.2236570795 -0.0501273890 0.5204375686 0.1891841769 0.0409518465 0.0506236100 0.2000761265 0.0261105832 0.0529552694 -0.0657671278 0.0883817754 0.1618126437 0.0242326171 0.0023687129 0.1636342329 0.3565264181 0.0124879620 9.3933918502 9.4011997783 0.5033500838 -0.5007399100 16.8454871381 16.8610206829 -0.1398195181 0.0757052286 -118.9195521575 118.9196584511 0.0018271729 -0.0111140989 -74.4314662452 74.4314670974 fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/events/Makefile.in0000644000175000017500000002234312233506727025023 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples/events DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/siscone/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = single-event.dat midpoint-irunsafety.dat two-collinear.dat all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/events/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/events/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/events/two-collinear.dat0000644000175000017500000000024211766120145026215 0ustar sunsun -0.8807412236 -1.2331262152 -157.4313156510 157.4393822839 -0.8807412236 -1.2331262152 -157.4313156510 157.4393822839 fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/events/Makefile.am0000644000175000017500000000011011766120145024772 0ustar sunsunEXTRA_DIST = single-event.dat midpoint-irunsafety.dat two-collinear.dat fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/times.cpp0000644000175000017500000000772411766120145023301 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: times.cpp // // Description: example program that computes execution times // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 320 $// // $Date:: 2011-11-15 09:54:50 +0100 (Tue, 15 Nov 2011) $// /////////////////////////////////////////////////////////////////////////////// #include #include #include #include #include #include #include "siscone/momentum.h" #include "siscone/siscone.h" #define Nruns 32 #define R 0.7 #define f 0.5 using namespace std; using namespace siscone; timeval time_start, time_end; // compute time spent between time_start and time_end int time_spent(){ timeval time_diff; // compute different with initial time time_diff.tv_sec = time_end.tv_sec-time_start.tv_sec; if (time_end.tv_usec > time_start.tv_usec){ time_diff.tv_usec = time_end.tv_usec-time_start.tv_usec; } else { time_diff.tv_sec--; time_diff.tv_usec = (1000000+time_end.tv_usec)-time_start.tv_usec; } return 1000000*time_diff.tv_sec+time_diff.tv_usec; } int main(){ vector particles; Csiscone siscone; double eta,phi; // number of events and particles int i, N; int n_ev, part_inc; // time statistics variables int time_siscone; // save files FILE *flux; // initialise random number generator cout << "initialise random number generator" << endl; timeval timestamp; gettimeofday(×tamp, NULL); srand(timestamp.tv_usec); flux = fopen("times.dat", "w+"); N = 1; part_inc = 1; do{ fprintf(stdout, "\r%5d particles\n", N); time_siscone=0; for (n_ev=0;n_ev #include #include #include "siscone/momentum.h" #include "siscone/siscone.h" #include "options.h" using namespace std; using namespace siscone; int main(int argc, char *argv[]){ vector particles; Csiscone siscone; int i,N; double px,py,pz,E; Coptions opts; char fline[512]; if (opts.parse_options(argc, argv)) exit(1); // deal with help message if (opts.help_flag){ opts.print_help(); exit(0); } // deal with version flag if (opts.version_flag){ opts.print_version(); exit(0); } // various files used to read input data and store results FILE *flux; FILE *fpart; // read particles if (opts.verbose_flag) cout << "reading particles" << endl; flux = fopen(opts.ev_name, "r"); if (flux==NULL){ cerr << "cannot read event '" << opts.ev_name << "'" << endl; cerr << "specify the event to read using the -e option" << endl; return 1; } N=0; fpart = fopen("particles.dat", "w+"); while ((opts.N_stop!=0) && (fgets(fline, 512, flux)!=NULL)){ if (fline[0]!='#'){ // skip lines beginning with '#' if (sscanf(fline, "%le%le%le%le", &px, &py, &pz, &E)==4){ particles.push_back(Cmomentum(px, py, pz, E)); fprintf(fpart, "%e\t%e\n", particles[N].eta, particles[N].phi); N++; opts.N_stop--; } else { cout << "error in reading event file Giving up." << endl; fclose(flux); fclose(fpart); exit(2); } } } fclose(flux); fclose(fpart); if (opts.verbose_flag) cout << " working with " << N << " particles" << endl; // compute jets if (opts.verbose_flag) cout << "computing jet contents" << endl; i=siscone.compute_jets(particles, opts.R, opts.f, opts.npass, opts.ptmin, opts.SM_var); if (opts.verbose_flag){ unsigned int pass; for (pass=0;pass #include #include #include #include #include #include "siscone/momentum.h" #include "siscone/siscone.h" #define N_default 500 #define R 0.7 #define F 0.75 using namespace std; using namespace siscone; int main(int argc, char* argv[]){ vector particles; Cmomentum *v; double phi=0, eta=0, pt=1; unsigned int N; unsigned int i; FILE *flux; if (argc==1){ //cout << "using default number of particles" << endl; N = N_default; } else { sscanf(argv[1], "%u", &N); //cout << "using " << N << " particles" << endl; } // Initialise random number generator timeval timestamp; gettimeofday(×tamp, NULL); srand(timestamp.tv_usec); // build particle list cout << "build particle list" << endl; flux = fopen("particles.dat", "w+"); for (i=0;ieta, v->phi, v->perp()); } } fclose(flux); cout << "bye..." << endl; return 0; } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/Makefile.in0000644000175000017500000011073412233506727023521 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = siscone$(EXEEXT) siscone_area$(EXEEXT) test$(EXEEXT) \ times$(EXEEXT) sample$(EXEEXT) spherical$(EXEEXT) subdir = examples DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/siscone/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_sample_OBJECTS = sample-sample.$(OBJEXT) sample_OBJECTS = $(am_sample_OBJECTS) sample_DEPENDENCIES = ../siscone/libsiscone.la sample_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(sample_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_siscone_OBJECTS = siscone-options.$(OBJEXT) siscone-main.$(OBJEXT) siscone_OBJECTS = $(am_siscone_OBJECTS) siscone_DEPENDENCIES = ../siscone/libsiscone.la siscone_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(siscone_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_siscone_area_OBJECTS = siscone_area-options.$(OBJEXT) \ siscone_area-area.$(OBJEXT) siscone_area_OBJECTS = $(am_siscone_area_OBJECTS) siscone_area_DEPENDENCIES = ../siscone/libsiscone.la siscone_area_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(siscone_area_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_spherical_OBJECTS = spherical-spherical.$(OBJEXT) spherical_OBJECTS = $(am_spherical_OBJECTS) spherical_DEPENDENCIES = ../siscone/spherical/libsiscone_spherical.la \ ../siscone/libsiscone.la spherical_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(spherical_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_test_OBJECTS = test-test.$(OBJEXT) test_OBJECTS = $(am_test_OBJECTS) test_DEPENDENCIES = ../siscone/libsiscone.la test_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(test_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_times_OBJECTS = times-times.$(OBJEXT) times_OBJECTS = $(am_times_OBJECTS) times_DEPENDENCIES = ../siscone/libsiscone.la times_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(times_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/siscone depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(sample_SOURCES) $(siscone_SOURCES) $(siscone_area_SOURCES) \ $(spherical_SOURCES) $(test_SOURCES) $(times_SOURCES) DIST_SOURCES = $(sample_SOURCES) $(siscone_SOURCES) \ $(siscone_area_SOURCES) $(spherical_SOURCES) $(test_SOURCES) \ $(times_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = options.h makefile.static SUBDIRS = events # specify sources for each program to build siscone_SOURCES = options.cpp main.cpp siscone_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/.. siscone_LDADD = ../siscone/libsiscone.la siscone_area_SOURCES = options.cpp area.cpp siscone_area_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/.. siscone_area_LDADD = ../siscone/libsiscone.la test_SOURCES = test.cpp test_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/.. test_LDADD = ../siscone/libsiscone.la times_SOURCES = times.cpp times_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/.. times_LDADD = ../siscone/libsiscone.la sample_SOURCES = sample.cpp sample_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/.. sample_LDADD = ../siscone/libsiscone.la spherical_SOURCES = spherical.cpp spherical_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/.. spherical_LDADD = ../siscone/spherical/libsiscone_spherical.la\ ../siscone/libsiscone.la all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list sample$(EXEEXT): $(sample_OBJECTS) $(sample_DEPENDENCIES) @rm -f sample$(EXEEXT) $(sample_LINK) $(sample_OBJECTS) $(sample_LDADD) $(LIBS) siscone$(EXEEXT): $(siscone_OBJECTS) $(siscone_DEPENDENCIES) @rm -f siscone$(EXEEXT) $(siscone_LINK) $(siscone_OBJECTS) $(siscone_LDADD) $(LIBS) siscone_area$(EXEEXT): $(siscone_area_OBJECTS) $(siscone_area_DEPENDENCIES) @rm -f siscone_area$(EXEEXT) $(siscone_area_LINK) $(siscone_area_OBJECTS) $(siscone_area_LDADD) $(LIBS) spherical$(EXEEXT): $(spherical_OBJECTS) $(spherical_DEPENDENCIES) @rm -f spherical$(EXEEXT) $(spherical_LINK) $(spherical_OBJECTS) $(spherical_LDADD) $(LIBS) test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) @rm -f test$(EXEEXT) $(test_LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS) times$(EXEEXT): $(times_OBJECTS) $(times_DEPENDENCIES) @rm -f times$(EXEEXT) $(times_LINK) $(times_OBJECTS) $(times_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sample-sample.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siscone-main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siscone-options.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siscone_area-area.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siscone_area-options.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spherical-spherical.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times-times.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< sample-sample.o: sample.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sample_CXXFLAGS) $(CXXFLAGS) -MT sample-sample.o -MD -MP -MF $(DEPDIR)/sample-sample.Tpo -c -o sample-sample.o `test -f 'sample.cpp' || echo '$(srcdir)/'`sample.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/sample-sample.Tpo $(DEPDIR)/sample-sample.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='sample.cpp' object='sample-sample.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sample_CXXFLAGS) $(CXXFLAGS) -c -o sample-sample.o `test -f 'sample.cpp' || echo '$(srcdir)/'`sample.cpp sample-sample.obj: sample.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sample_CXXFLAGS) $(CXXFLAGS) -MT sample-sample.obj -MD -MP -MF $(DEPDIR)/sample-sample.Tpo -c -o sample-sample.obj `if test -f 'sample.cpp'; then $(CYGPATH_W) 'sample.cpp'; else $(CYGPATH_W) '$(srcdir)/sample.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/sample-sample.Tpo $(DEPDIR)/sample-sample.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='sample.cpp' object='sample-sample.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sample_CXXFLAGS) $(CXXFLAGS) -c -o sample-sample.obj `if test -f 'sample.cpp'; then $(CYGPATH_W) 'sample.cpp'; else $(CYGPATH_W) '$(srcdir)/sample.cpp'; fi` siscone-options.o: options.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_CXXFLAGS) $(CXXFLAGS) -MT siscone-options.o -MD -MP -MF $(DEPDIR)/siscone-options.Tpo -c -o siscone-options.o `test -f 'options.cpp' || echo '$(srcdir)/'`options.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/siscone-options.Tpo $(DEPDIR)/siscone-options.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='options.cpp' object='siscone-options.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_CXXFLAGS) $(CXXFLAGS) -c -o siscone-options.o `test -f 'options.cpp' || echo '$(srcdir)/'`options.cpp siscone-options.obj: options.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_CXXFLAGS) $(CXXFLAGS) -MT siscone-options.obj -MD -MP -MF $(DEPDIR)/siscone-options.Tpo -c -o siscone-options.obj `if test -f 'options.cpp'; then $(CYGPATH_W) 'options.cpp'; else $(CYGPATH_W) '$(srcdir)/options.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/siscone-options.Tpo $(DEPDIR)/siscone-options.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='options.cpp' object='siscone-options.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_CXXFLAGS) $(CXXFLAGS) -c -o siscone-options.obj `if test -f 'options.cpp'; then $(CYGPATH_W) 'options.cpp'; else $(CYGPATH_W) '$(srcdir)/options.cpp'; fi` siscone-main.o: main.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_CXXFLAGS) $(CXXFLAGS) -MT siscone-main.o -MD -MP -MF $(DEPDIR)/siscone-main.Tpo -c -o siscone-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/siscone-main.Tpo $(DEPDIR)/siscone-main.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='main.cpp' object='siscone-main.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_CXXFLAGS) $(CXXFLAGS) -c -o siscone-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp siscone-main.obj: main.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_CXXFLAGS) $(CXXFLAGS) -MT siscone-main.obj -MD -MP -MF $(DEPDIR)/siscone-main.Tpo -c -o siscone-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/siscone-main.Tpo $(DEPDIR)/siscone-main.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='main.cpp' object='siscone-main.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_CXXFLAGS) $(CXXFLAGS) -c -o siscone-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi` siscone_area-options.o: options.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_area_CXXFLAGS) $(CXXFLAGS) -MT siscone_area-options.o -MD -MP -MF $(DEPDIR)/siscone_area-options.Tpo -c -o siscone_area-options.o `test -f 'options.cpp' || echo '$(srcdir)/'`options.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/siscone_area-options.Tpo $(DEPDIR)/siscone_area-options.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='options.cpp' object='siscone_area-options.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_area_CXXFLAGS) $(CXXFLAGS) -c -o siscone_area-options.o `test -f 'options.cpp' || echo '$(srcdir)/'`options.cpp siscone_area-options.obj: options.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_area_CXXFLAGS) $(CXXFLAGS) -MT siscone_area-options.obj -MD -MP -MF $(DEPDIR)/siscone_area-options.Tpo -c -o siscone_area-options.obj `if test -f 'options.cpp'; then $(CYGPATH_W) 'options.cpp'; else $(CYGPATH_W) '$(srcdir)/options.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/siscone_area-options.Tpo $(DEPDIR)/siscone_area-options.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='options.cpp' object='siscone_area-options.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_area_CXXFLAGS) $(CXXFLAGS) -c -o siscone_area-options.obj `if test -f 'options.cpp'; then $(CYGPATH_W) 'options.cpp'; else $(CYGPATH_W) '$(srcdir)/options.cpp'; fi` siscone_area-area.o: area.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_area_CXXFLAGS) $(CXXFLAGS) -MT siscone_area-area.o -MD -MP -MF $(DEPDIR)/siscone_area-area.Tpo -c -o siscone_area-area.o `test -f 'area.cpp' || echo '$(srcdir)/'`area.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/siscone_area-area.Tpo $(DEPDIR)/siscone_area-area.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='area.cpp' object='siscone_area-area.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_area_CXXFLAGS) $(CXXFLAGS) -c -o siscone_area-area.o `test -f 'area.cpp' || echo '$(srcdir)/'`area.cpp siscone_area-area.obj: area.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_area_CXXFLAGS) $(CXXFLAGS) -MT siscone_area-area.obj -MD -MP -MF $(DEPDIR)/siscone_area-area.Tpo -c -o siscone_area-area.obj `if test -f 'area.cpp'; then $(CYGPATH_W) 'area.cpp'; else $(CYGPATH_W) '$(srcdir)/area.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/siscone_area-area.Tpo $(DEPDIR)/siscone_area-area.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='area.cpp' object='siscone_area-area.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(siscone_area_CXXFLAGS) $(CXXFLAGS) -c -o siscone_area-area.obj `if test -f 'area.cpp'; then $(CYGPATH_W) 'area.cpp'; else $(CYGPATH_W) '$(srcdir)/area.cpp'; fi` spherical-spherical.o: spherical.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(spherical_CXXFLAGS) $(CXXFLAGS) -MT spherical-spherical.o -MD -MP -MF $(DEPDIR)/spherical-spherical.Tpo -c -o spherical-spherical.o `test -f 'spherical.cpp' || echo '$(srcdir)/'`spherical.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/spherical-spherical.Tpo $(DEPDIR)/spherical-spherical.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='spherical.cpp' object='spherical-spherical.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(spherical_CXXFLAGS) $(CXXFLAGS) -c -o spherical-spherical.o `test -f 'spherical.cpp' || echo '$(srcdir)/'`spherical.cpp spherical-spherical.obj: spherical.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(spherical_CXXFLAGS) $(CXXFLAGS) -MT spherical-spherical.obj -MD -MP -MF $(DEPDIR)/spherical-spherical.Tpo -c -o spherical-spherical.obj `if test -f 'spherical.cpp'; then $(CYGPATH_W) 'spherical.cpp'; else $(CYGPATH_W) '$(srcdir)/spherical.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/spherical-spherical.Tpo $(DEPDIR)/spherical-spherical.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='spherical.cpp' object='spherical-spherical.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(spherical_CXXFLAGS) $(CXXFLAGS) -c -o spherical-spherical.obj `if test -f 'spherical.cpp'; then $(CYGPATH_W) 'spherical.cpp'; else $(CYGPATH_W) '$(srcdir)/spherical.cpp'; fi` test-test.o: test.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -MT test-test.o -MD -MP -MF $(DEPDIR)/test-test.Tpo -c -o test-test.o `test -f 'test.cpp' || echo '$(srcdir)/'`test.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/test-test.Tpo $(DEPDIR)/test-test.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test.cpp' object='test-test.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -c -o test-test.o `test -f 'test.cpp' || echo '$(srcdir)/'`test.cpp test-test.obj: test.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -MT test-test.obj -MD -MP -MF $(DEPDIR)/test-test.Tpo -c -o test-test.obj `if test -f 'test.cpp'; then $(CYGPATH_W) 'test.cpp'; else $(CYGPATH_W) '$(srcdir)/test.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/test-test.Tpo $(DEPDIR)/test-test.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test.cpp' object='test-test.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -c -o test-test.obj `if test -f 'test.cpp'; then $(CYGPATH_W) 'test.cpp'; else $(CYGPATH_W) '$(srcdir)/test.cpp'; fi` times-times.o: times.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(times_CXXFLAGS) $(CXXFLAGS) -MT times-times.o -MD -MP -MF $(DEPDIR)/times-times.Tpo -c -o times-times.o `test -f 'times.cpp' || echo '$(srcdir)/'`times.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/times-times.Tpo $(DEPDIR)/times-times.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='times.cpp' object='times-times.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(times_CXXFLAGS) $(CXXFLAGS) -c -o times-times.o `test -f 'times.cpp' || echo '$(srcdir)/'`times.cpp times-times.obj: times.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(times_CXXFLAGS) $(CXXFLAGS) -MT times-times.obj -MD -MP -MF $(DEPDIR)/times-times.Tpo -c -o times-times.obj `if test -f 'times.cpp'; then $(CYGPATH_W) 'times.cpp'; else $(CYGPATH_W) '$(srcdir)/times.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/times-times.Tpo $(DEPDIR)/times-times.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='times.cpp' object='times-times.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(times_CXXFLAGS) $(CXXFLAGS) -c -o times-times.obj `if test -f 'times.cpp'; then $(CYGPATH_W) 'times.cpp'; else $(CYGPATH_W) '$(srcdir)/times.cpp'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ clean-noinstPROGRAMS ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/makefile.static0000644000175000017500000000657511766120145024445 0ustar sunsunCC = g++ OUT = siscone OUT_AREA = area OUT_TEST = test OUT_TIMES = times OUT_SAMPLE = sample OUT_SPHERE = spherical CFLAGS = -I.. -Wall -g -O3 -ffast-math LDFLAGS = -lm -L../siscone -lsiscone -L../siscone/spherical -lsiscone_spherical #-lprofiler -lpthread -ltcmalloc ifeq ($(shell whoami),salam) # needed for Gavin to include tcmalloc LDFLAGS += -L/ada1/lpthe/salam/software/local/lib endif OBJS_MAIN = options.o main.o OBJS_AREA = options.o area.o OBJS_TEST = test.o OBJS_TIMES = times.o OBJS_SAMPLE = sample.o OBJS_SPHERE = spherical.o OBJS_ALL = options.o main.o area.o sample.o test.o times.o spherical.o SRCS = $(patsubst %.o,%.cpp,$(OBJS_ALL)) %.o: %.cpp %.h $(CC) -c $(CFLAGS) $< %.o: %.cpp $(CC) -c $(CFLAGS) $< all: main area sample test times spherical main: $(OBJS_MAIN) $(CC) -o $(OUT) $(OBJS_MAIN) $(LDFLAGS) area: $(OBJS_AREA) $(CC) -o $(OUT_AREA) $(OBJS_AREA) $(LDFLAGS) test: $(OBJS_TEST) $(CC) -o $(OUT_TEST) $(OBJS_TEST) $(LDFLAGS) times: $(OBJS_TIMES) $(CC) -o $(OUT_TIMES) $(OBJS_TIMES) $(LDFLAGS) sample: $(OBJS_SAMPLE) $(CC) -o $(OUT_SAMPLE) $(OBJS_SAMPLE) $(LDFLAGS) spherical: $(OBJS_SPHERE) $(CC) -o $(OUT_SPHERE) $(OBJS_SPHERE) $(LDFLAGS) .PHONY: clean clean: rm -f *.o *~ depend: makedepend -I.. -Y -f makefile.static -- -- $(SRCS) # DO NOT DELETE options.o: options.h ../siscone/siscone.h ../siscone/protocones.h options.o: ../siscone/momentum.h ../siscone/reference.h ../siscone/geom_2d.h options.o: ../siscone/defines.h ../siscone/vicinity.h ../siscone/quadtree.h options.o: ../siscone/hash.h ../siscone/split_merge.h main.o: ../siscone/momentum.h ../siscone/reference.h ../siscone/geom_2d.h main.o: ../siscone/defines.h ../siscone/siscone.h ../siscone/protocones.h main.o: ../siscone/momentum.h ../siscone/vicinity.h ../siscone/quadtree.h main.o: ../siscone/hash.h ../siscone/split_merge.h options.h area.o: ../siscone/momentum.h ../siscone/reference.h ../siscone/geom_2d.h area.o: ../siscone/defines.h ../siscone/siscone.h ../siscone/protocones.h area.o: ../siscone/momentum.h ../siscone/vicinity.h ../siscone/quadtree.h area.o: ../siscone/hash.h ../siscone/split_merge.h ../siscone/area.h area.o: ../siscone/siscone.h options.h sample.o: ../siscone/momentum.h ../siscone/reference.h ../siscone/geom_2d.h sample.o: ../siscone/defines.h ../siscone/siscone.h ../siscone/protocones.h sample.o: ../siscone/momentum.h ../siscone/vicinity.h ../siscone/quadtree.h sample.o: ../siscone/hash.h ../siscone/split_merge.h test.o: ../siscone/momentum.h ../siscone/reference.h ../siscone/geom_2d.h test.o: ../siscone/defines.h ../siscone/siscone.h ../siscone/protocones.h test.o: ../siscone/momentum.h ../siscone/vicinity.h ../siscone/quadtree.h test.o: ../siscone/hash.h ../siscone/split_merge.h times.o: ../siscone/momentum.h ../siscone/reference.h ../siscone/geom_2d.h times.o: ../siscone/defines.h ../siscone/siscone.h ../siscone/protocones.h times.o: ../siscone/momentum.h ../siscone/vicinity.h ../siscone/quadtree.h times.o: ../siscone/hash.h ../siscone/split_merge.h spherical.o: ../siscone/spherical/momentum.h ../siscone/reference.h spherical.o: ../siscone/geom_2d.h ../siscone/defines.h ../siscone/defines.h spherical.o: ../siscone/spherical/siscone.h ../siscone/protocones.h spherical.o: ../siscone/momentum.h ../siscone/reference.h spherical.o: ../siscone/vicinity.h ../siscone/quadtree.h ../siscone/hash.h spherical.o: ../siscone/split_merge.h fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/area.cpp0000644000175000017500000001061711766120145023063 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: main.cpp // // Description: main program that runs siscone from the command line // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 171 $// // $Date:: 2007-06-19 10:26:05 -0400 (Tue, 19 Jun 2007) $// /////////////////////////////////////////////////////////////////////////////// #include #include #include #include "siscone/momentum.h" #include "siscone/siscone.h" #include "siscone/area.h" #include "options.h" using namespace std; using namespace siscone; int main(int argc, char *argv[]){ vector particles; Carea siscone_with_area; int i,N; double px,py,pz,E; Coptions opts; char fline[512]; if (opts.parse_options(argc, argv)) exit(1); // deal with help message if (opts.help_flag){ opts.print_help(); exit(0); } // deal with version flag if (opts.version_flag){ opts.print_version(); exit(0); } // various files used to read input data and store results FILE *flux; FILE *fpart; // read particles if (opts.verbose_flag) cout << "reading particles" << endl; flux = fopen(opts.ev_name, "r"); if (flux==NULL){ cerr << "cannot read event" << endl; return 1; } N=0; fpart = fopen("particles.dat", "w+"); while ((opts.N_stop!=0) && (fgets(fline, 512, flux)!=NULL)){ if (fline[0]!='#'){ // skip lines beginning with '#' if (sscanf(fline, "%le%le%le%le", &px, &py, &pz, &E)==4){ particles.push_back(Cmomentum(px, py, pz, E)); fprintf(fpart, "%e\t%e\n", particles[N].eta, particles[N].phi); N++; opts.N_stop--; } else { cout << "error in reading event file Giving up." << endl; fclose(flux); fclose(fpart); exit(2); } } } fclose(flux); fclose(fpart); if (opts.verbose_flag) cout << " working with " << N << " particles" << endl; // compute jets if (opts.verbose_flag) cout << "computing jet contents" << endl; i=siscone_with_area.compute_areas(particles, opts.R, opts.f, opts.npass, opts.SM_var); if (opts.verbose_flag){ unsigned int pass; for (pass=0;pass::iterator ja; for (ja=siscone_with_area.jet_areas.begin();ja!=siscone_with_area.jet_areas.end();ja++){ fprintf(flux, "%e\t%e\t%e\t%e\t%e\n", ja->v.perp(), ja->v.eta, ja->v.phi, ja->active_area, ja->passive_area); } fclose(flux); if (opts.verbose_flag) cout << "bye..." << endl; return 0; } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/spherical.cpp0000644000175000017500000001016511766120145024123 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: spherical.cpp // // Description: example program for the CSphsiscone class (spherical SISCone)// // This file is part of the SISCone project. // // WARNING: this is not the main SISCone trunk but // // an adaptation to spherical coordinates // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 227 $// // $Date:: 2008-06-12 20:00:44 -0400 (Thu, 12 Jun 2008) $// /////////////////////////////////////////////////////////////////////////////// #include #include #include #include "siscone/spherical/momentum.h" #include "siscone/spherical/siscone.h" #define R 0.7 #define f 0.5 #define f_alt 0.75 using namespace std; using namespace siscone_spherical; int main(){ vector particles; // list of particles CSphsiscone siscone; // main object for the cone algorithm int i; // loop index int N; // number of particles double px,py,pz,E; // particles 4-momentum char fline[512]; // line to read from a file // read particles FILE *flux; flux = fopen("events/single-event.dat", "r"); if (flux==NULL){ cerr << "cannot read event" << endl; return 1; } N=0; while (fgets(fline, 512, flux)!=NULL){ if (fline[0]!='#'){ // skip lines beginning with '#' if (sscanf(fline, "%le%le%le%le", &px, &py, &pz, &E)==4){ particles.push_back(CSphmomentum(px, py, pz, E)); N++; } else { cout << "error in reading event file Giving up." << endl; fclose(flux); return 2; } } } fclose(flux); // compute jets // first compute with multiple passes (default) i=siscone.compute_jets(particles, R, f); cout << " " << i << " jets found in multi-pass run" << endl; // then, recompute it with a different f i=siscone.recompute_jets(f_alt); cout << " " << i << " jets found with alternative f" << endl; // one pass i=siscone.compute_jets(particles, R, f, 1); cout << " " << i << " jets found in single-pass run" << endl; // show jets vector::iterator it_j; int i1; fprintf(stdout, "# theta phi px py pz E \n"); for (it_j = siscone.jets.begin(), i1=0 ; it_j != siscone.jets.end() ; it_j++, i1++){ fprintf(stdout, "Jet %3d: %8.3f %8.3f %10.3f %10.3f %10.3f %10.3f\n", i1, it_j->v._theta, it_j->v._phi, it_j->v.px, it_j->v.py, it_j->v.pz, it_j->v.E); } return 0; } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/options.h0000644000175000017500000000611011766120145023304 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: options.h // // Description: management of the cmdline options of the main program // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 180 $// // $Date:: 2007-10-03 19:21:19 +0200 (Wed, 03 Oct 2007) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __OPTIONS_H__ #define __OPTIONS_H__ #include "siscone/siscone.h" /** * \class Coptions * options for the 'cone' sample */ class Coptions{ public: /// default ctor Coptions(); /// default dtor ~Coptions(); /// parse oprions /// \param argc number of arguments from the command line /// \param argv arguments from the command line /// \return 1 on error, 0 on success int parse_options(int argc, char **argv); /// print the help message int print_help(); /// print program version int print_version(); // flags int help_flag; ///< do we need to print the help message int version_flag; ///< do we need to print the version description int verbose_flag; ///< do we need to print the help message // options int N_stop; ///< maximum number of particle double R; ///< cone radius double f; ///< split/merge threshold double ptmin; ///< minimal pT for jet candidates char *ev_name; ///< event to read int npass; ///< number of passes (0 for \infty) /// variable for split-merge siscone::Esplit_merge_scale SM_var; }; #endif fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/options.cpp0000644000175000017500000002100211766120145023634 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: options.cpp // // Description: management of the cmdline options of the main program // // This file is part of the SISCone project. // // For more details, see http://projects.hepforge.org/siscone // // // // Copyright (c) 2006 Gavin Salam and Gregory Soyez // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 213 $// // $Date:: 2008-03-17 17:05:59 +0100 (Mon, 17 Mar 2008) $// /////////////////////////////////////////////////////////////////////////////// #include "options.h" #include #include #include using namespace std; using namespace siscone; #define N_DEFAULT -1 #define R_DEFAULT 0.7 #define THRESHOLD_DEFAULT 0.5 #define PTMIN_DEFAULT 0.0 #define NPASS_DEFAULT 0 #define DEFAULT_EVENT "events/single-event.dat" #define SM_DEFAULT SM_pttilde /******************************************* * Coptions implementation * * options for the 'cone' sample * *******************************************/ // default ctor //-------------- Coptions::Coptions(){ // set default flags values help_flag=0; version_flag=0; verbose_flag=1; // set default options values N_stop = N_DEFAULT; R = R_DEFAULT; f = THRESHOLD_DEFAULT; npass = NPASS_DEFAULT; ev_name = NULL; SM_var = SM_DEFAULT; } // default dtor //-------------- Coptions::~Coptions(){ if (ev_name!=NULL) delete[] ev_name; } // parse oprions // - argc number of arguments from the command line // - argv arguments from the command line // return 1 on error, 0 on success //--------------------------------- int Coptions::parse_options(int argc, char **argv){ int opt_param; int option_index; bool stop=false; // browse the command-line options{ static struct option siscone_options[]={ // options that set a flag {"verbose", no_argument, &verbose_flag, 1}, {"quiet", no_argument, &verbose_flag, 0}, {"help", no_argument, &help_flag , 1}, {"version", no_argument, &version_flag, 1}, // options setting parameters {"number", required_argument, NULL, 'N'}, {"radius", required_argument, NULL, 'R'}, {"fraction", required_argument, NULL, 'f'}, {"ptmin", required_argument, NULL, 'p'}, {"npass", required_argument, NULL, 'n'}, {"event", required_argument, NULL, 'e'}, {"sm", required_argument, NULL, 's'}, {0,0,0,0} }; do{ // getopt_long stores the option index here. option_index=0; // retreive options opt_param = getopt_long(argc, argv, "hvqN:R:f:p:n:e:s:", siscone_options, &option_index); // Detect the end of the options. if (opt_param == -1) stop=true; // branch according to 'opt_param' switch (opt_param){ case 'h': help_flag = 1; break; // help case 'v': verbose_flag = 1; break; // verbose case 'q': verbose_flag = 0; break; // quiet case 'N': // max number of paprticles sscanf(optarg, "%d", &N_stop); if (N_stop<=0){ cout << "Warning: the specified number of particles must be positive. Using default one" << endl; N_stop = N_DEFAULT; } break; case 'R': sscanf(optarg, "%lf", &R); if (R<=0){ cout << "Warning: the specified cone radius must be positive. Using default one" << endl; R = R_DEFAULT; } break; case 'f': sscanf(optarg, "%lf", &f); if ((f<0) || (f>1)){ cout << "Warning: the specified split/merge threshold must be in [0,1]. Using default one" << endl; f = THRESHOLD_DEFAULT; } break; case 'p': sscanf(optarg, "%lf", &ptmin); if (ptmin<0){ cout << "Warning: the specified minimal pT must be non-negative. Using default one" << endl; ptmin = PTMIN_DEFAULT; } break; case 'n': // max number of paprticles sscanf(optarg, "%d", &npass); if (npass<0){ cout << "Warning: the specified number of passes must be non negative. Using default one" << endl; npass = NPASS_DEFAULT; } break; case 'e': if (ev_name==NULL){ ev_name = new char[strlen(optarg)+1]; strcpy(ev_name, optarg); } break; case 's': char tmp[512]; strcpy(tmp, optarg); if (strcmp(tmp, "pttilde")==0){ SM_var = SM_pttilde; } else if (strcmp(tmp, "mt")==0){ SM_var = SM_mt; } else if (strcmp(tmp, "pt")==0){ SM_var = SM_pt; } else if (strcmp(tmp, "Et")==0){ SM_var = SM_Et; } else { cout << "Warning: the specified varible for split--merge is not valid (should be pttilde, pt, mt or Et). Using pttilde as the default one." << endl; SM_var = SM_pttilde; } break; case 0: case -1: break; case '?': fprintf(stderr, "Giving up.\n"); return 1; break; default: if (!help_flag){ fprintf(stderr, "unrecognized option %c. Giving up.\n", opt_param); return 1; } } } while (!stop); if (ev_name==NULL){ ev_name = new char[strlen(DEFAULT_EVENT)+1]; strcpy(ev_name, DEFAULT_EVENT); } return 0; } // print the help message //------------------------ int Coptions::print_help(){ cout << siscone_package_name() << " " << siscone_version() << endl; cout << "Usage: " << siscone_package_name() << " " << endl; cout << endl; cout << "Here is an exhaustive list of the arguments:" << endl; cout << "Parameters control (with default values):" << endl; cout << " -n , --number= : set the maximum number of particles allowed (all)" << endl; cout << " -R , --radius= : set the radius (" << R_DEFAULT << ")" << endl; cout << " -f , --fraction=: set the overlap parameter (" << THRESHOLD_DEFAULT << ")" << endl; cout << " -p , --ptmin= : set the minimal pT for protojets (" << PTMIN_DEFAULT << ")" << endl; cout << " -n , --npass= : set the maximal number of passes (0 for no limit) (" << NPASS_DEFAULT << ")" << endl; cout << " -e , --event= : set the event filename (" << DEFAULT_EVENT << ")" << endl; cout << " -s , --sm= : variable for split--merge: pttilde, mt, pt or Et (pttilde)" << endl; cout << endl; cout << "Output flags" << endl; cout << " --version : show version information" << endl; cout << " -h, --help : show this message" << endl; cout << " -v, --verbose: be verbose (on by default)" << endl; cout << " -q, --quiet : be quiet" << endl; cout << endl; return 0; } // print program version //----------------------- int Coptions::print_version(){ cout << siscone_package_name() << " " << siscone_version() << endl; cout << "Copyright (C) 2006." << endl; cout << siscone_package_name() << " comes with NO WARRANTY," << endl; cout << "to the extent permitted by law." << endl; cout << "You may redistribute copies of " << siscone_package_name() << endl; cout << "under the terms of the GNU General Public License." << endl; cout << "For more information about these matters," << endl; cout << "see the files named COPYING." << endl; cout << "Please send bugs or comments to AUTHORS" << endl; return 0; } fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/examples/Makefile.am0000644000175000017500000000212711766120145023500 0ustar sunsun# we only install the 'siscone' and 'area' programs # since the remaining ones are samples and test programs # we leave them in the 'examples' folder. noinst_PROGRAMS = siscone siscone_area test times sample spherical EXTRA_DIST = options.h makefile.static SUBDIRS = events # specify sources for each program to build siscone_SOURCES = options.cpp main.cpp siscone_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/.. siscone_LDADD = ../siscone/libsiscone.la siscone_area_SOURCES = options.cpp area.cpp siscone_area_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/.. siscone_area_LDADD = ../siscone/libsiscone.la test_SOURCES = test.cpp test_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/.. test_LDADD = ../siscone/libsiscone.la times_SOURCES = times.cpp times_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/.. times_LDADD = ../siscone/libsiscone.la sample_SOURCES = sample.cpp sample_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/.. sample_LDADD = ../siscone/libsiscone.la spherical_SOURCES = spherical.cpp spherical_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir)/.. spherical_LDADD = ../siscone/spherical/libsiscone_spherical.la\ ../siscone/libsiscone.la fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/README0000644000175000017500000000031211766120145020500 0ustar sunsunSee html docmentation in doc/html or developer's doxygen documentation in doc/devel/html (you may need to run doxygen for the latter to be present). For installation instructions see the INSTALL file. fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/configure.ac0000644000175000017500000000345312233506640022115 0ustar sunsunAC_INIT([SISCone], [2.0.6]) AC_CONFIG_SRCDIR([siscone/siscone.cpp]) AM_INIT_AUTOMAKE dnl uncomment the following line if you want to use autoheader AC_CONFIG_HEADERS(siscone/config.h:config.h.in) dnl and also uncomment the call to autoheader in autogen.sh dnl check autoconf version AC_PREREQ(2.63) dnl check basic types AC_CHECK_TYPE(int) AC_CHECK_TYPE(long) dnl set default compilation and link flags dnl those can be changed at configure time so we don't use AM_CXXFLAGS here test "x${CXXFLAGS+yes}" = xyes || CXXFLAGS="-O3 -Wall -ffast-math" dnl CXXFLAGS=" -Wall -O3 -ffast-math " dnl check useful programs AC_PROG_CXX AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET dnl check standard C headers AC_STDC_HEADERS dnl set the default destination directory AC_PREFIX_DEFAULT(/usr/local) dnl if the debug flag is set, build with -g dnl default is "yes" AC_ARG_ENABLE(debug, [ --enable-debug Turn on debug compiler information], [ENABLE_DEBUG_FLAG="$enableval"], [ENABLE_DEBUG_FLAG="yes"]) if [[ "x$ENABLE_DEBUG_FLAG" == "xyes" ]] ; then CXXFLAGS=${CXXFLAGS}" -g " fi dnl uncomment the next line not to build the shared lib by default dnl AM_DISABLE_SHARED dnl----------------- dnl check libraries dnl ---------------- dnl math lib AC_CHECK_LIB(m, cos) dnl already included into LIBS by the previous check dnl AM_LDFLAGS=" -lm " dnl if the debug flags are on, check if we can also use dnl some profiling tools dnl COMMENTED: Pass LDFLAGS to configure instead dnl if [[ "x$ENABLE_DEBUG_FLAG" == "xyes" ]] ; then dnl AC_CHECK_LIB(profiler, google_initializer_module_profiler) dnl AC_CHECK_LIB(pthread, pthread_create) dnl AC_CHECK_LIB(tcmalloc, malloc) dnl fi dnl enable libtool AC_PROG_LIBTOOL AC_OUTPUT( Makefile siscone/Makefile siscone/spherical/Makefile examples/Makefile examples/events/Makefile ) fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/NEWS0000644000175000017500000001331712140755776020343 0ustar sunsunThis file contains the history of SISCone releases. For each one, we give a short summary of the important changes from the previous version. If you want to see a more detailed list of changes, please read the ChangeLog file. SISCone version 2.0.6 (April 9 2013) ===================== * Minor release fixing an issue concerning the installation of configuration headers and bringing small updates in the autotools build system (version to be included in FastJet>=3.0.4) SISCone version 2.0.5 (January 17 2012) ===================== * Minor release bringing minor improvements to the build system (version to be included in FastJet>=3.0.2) SISCone version 2.0.4 (November 25 2011) ===================== * Minor release to remove a few gcc warnings when compiled with high warning level (-ansi -pedantic -Wextra -Wshadow) (version to be included in FastJet>=3.0.1) SISCone version 2.0.3 (October 5 2011) ===================== * Minor release to fix a badly documented Etilde variable in the spherical version of SISCone and to remove a few gcc warnings (version to be included in FastJet 3.x) SISCone version 2.0.2 (May 2011) ===================== * minor modifications to the build system (version to be included in FastJet 3.x) SISCone version 2.0.1 (May 2009) ===================== * enabled shared libraries by default [that was the source of a bug in fastJet] * replaced _R with _radius to fix build problems on old OSX systems * fixed some syntax inconsistencies in Makefile.am's SISCone version 2.0.0 (Apr 2009) ===================== * Added a spherical version of SISCone for use in e+e- collisions This typically works in the same way as the pp version of SISCone with the following remarks: - the classes fot the spherical versions of SISCone are prefixed by 'CSph' instead of 'C' (e.g. CSphMomentum CSphSISCone) - the cone radius is defined as its half opening angle (particle distances are also defined through the angle they define, or, equivalently, as distances on the surface of a unit sphere) - For ordering the protojets during the split--merge, we use E_tilde defined as / |p_i X p_J|^2 \ \sum_{i\in J} E_i | 1 + --------------- | \ |p_i|^2 E_J^2 / Note that the computation of the overlap uses the "plain" energy * Added a flag (Csiscone::use_pt_weighted_splitting) to modify the split part of the split-merge procedure in such a way that a shared particle i is assigned the one of the overlapping jets j=1,2 that has the smaller value of DeltaR_{ij}/p_{tj}. This produces more circular jets. * fixed a bug in the computation of the rapidity range in the split-merge step * the protocones list now contains the full 4-momentum information (rather than just eta and phi) * fixed bugs in example/test.cpp SISCone version 1.3.3 (Aug 2008) ===================== * added bugfix for g++-4.3 (missing headers for "exit") SISCone version 1.3.2 (Mar 2008) ===================== * VERSION and PROGRAM (or PACKAGE_NAME) are no longer accessible directly because of potential conflicts with other packages. You should use siscone_version() and siscone_package_name() instead. (Thanks to Rolf Seuster) * allow the users to set their own default compilation flags. SISCone version 1.3.1 (Mar 2008) ===================== * fixed some compilation issues under windows SISCone version 1.3.0 (Nov 2007) ===================== * The main update in this new release is the switch to 'autotools'. This means that instead of using the (static) Makefile build process, you can now use the "standard ./configure; make; make install" approach. See the INSTALL file for details. * added a 'siscone_area' example of how jet areas work within SISCone. SISCone version 1.2.0 (Jun 2007) ===================== * 10-15% speed increase by introducing a tiling in the eta-phi plane allowing for better overlap checking in the split--merge. This can turn into a bigger effect for area computations. * implementing a 'jet area' class to compute active and/or passive areas. * in examples: - fix bug in the cmdline parsing (there was a segfault with unrecognised long options), - add "passes information" to the verbose output of the main siscone program, - solve problems with the 'time' example. SISCone version 1.1.1 (Mar 2007) ===================== * The major upgrade is the use of pttilde (p-scheme pt) instead of mt in the split--merge process. Indeed, we have noticed that mt can lead to IR usafety in the case of two back-to-back narrow-decay-width unstable particles (e.g. a pair of Higgs bosons). See http://projects.hepforge.org/siscone/sm_issue.html for details. Note that SISCone 1.1.1 allows the user to specify its choice for the split-merge variable (we highly recommand the default choice) * The number of passes is now set to infinity (0) by default * Small minor changes in the 'siscone' command-line options SISCone version 1.1.0 (Mar 2007) ===================== * dealt with colinearity issues * dealt with cocircularity situations (and related rounding errors) * use mt instead of pt in the split-merge pt lead to some IR unsafety for events with momentum conservation * move all references to HEPForge * Important note: some typos have been fixed. As a consequence, some end-user members have been affected: - The contents of the jets is accessed through 'Cjet::contents' instead of 'Cjet::content' - The function called to save the jet contents to disk is 'Csplit_merge::save_contents' instead of 'Csplit_merge::save_content' Note that 'Csiscone::save_contents' is also valid. SISCone version 1.0.0 (Jan 2007) ===================== This is the first stable release of siscone. fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/install-sh0000755000175000017500000003253712111460634021635 0ustar sunsun#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/config.sub0000755000175000017500000010316712111460634021612 0ustar sunsun#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-11-20' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/Makefile.am0000644000175000017500000000010111766120145021650 0ustar sunsunSUBDIRS = siscone examples EXTRA_DIST = makefile.static Doxyfile fastjet-3.0.6+dfsg.orig/plugins/SISCone/siscone/COPYING0000644000175000017500000003543311766120145020667 0ustar sunsun GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS fastjet-3.0.6+dfsg.orig/plugins/SISCone/SISConeSphericalPlugin.cc0000644000175000017500000001760611766120133022754 0ustar sunsun // fastjet stuff #include "fastjet/ClusterSequence.hh" #include "fastjet/SISConeSphericalPlugin.hh" //// siscone stuff #include "siscone/spherical/momentum.h" #include "siscone/spherical/siscone.h" // other stuff #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; using namespace siscone_spherical; /// shortcut for converting siscone CSphmomentum into PseudoJet template<> PseudoJet::PseudoJet(const siscone_spherical::CSphmomentum & four_vector) { (*this) = PseudoJet(four_vector.px,four_vector.py,four_vector.pz, four_vector.E); } ///////////////////////////////////////////// // static members declaration // ///////////////////////////////////////////// std::auto_ptr SISConeSphericalPlugin::stored_plugin; std::auto_ptr > SISConeSphericalPlugin::stored_particles; std::auto_ptr SISConeSphericalPlugin::stored_siscone; ///////////////////////////////////////////// // now comes the implementation itself // ///////////////////////////////////////////// string SISConeSphericalPlugin::description () const { ostringstream desc; const string on = "on"; const string off = "off"; string sm_scale_string = "split-merge uses " + split_merge_scale_name(Esplit_merge_scale(split_merge_scale())); desc << "Spherical SISCone jet algorithm with " ; desc << "cone_radius = " << cone_radius () << ", "; desc << "overlap_threshold = " << overlap_threshold () << ", "; desc << "n_pass_max = " << n_pass_max () << ", "; desc << "protojet_Emin = " << protojet_Emin() << ", "; desc << sm_scale_string << ", "; desc << "caching turned " << (caching() ? on : off); desc << ", SM stop scale = " << _split_merge_stopping_scale; // add a note to the description if we use the pt-weighted splitting if (_use_E_weighted_splitting){ desc << ", using E-weighted splitting"; } if (_use_jet_def_recombiner){ desc << ", using jet-definition's own recombiner"; } // create a fake siscone object so that we can find out more about it CSphsiscone siscone; if (siscone.merge_identical_protocones) { desc << ", and (IR unsafe) merge_indentical_protocones=true" ; } desc << ", SISCone code v" << siscone_version(); return desc.str(); } // overloading the base class implementation void SISConeSphericalPlugin::run_clustering(ClusterSequence & clust_seq) const { CSphsiscone::set_banner_stream(clust_seq.fastjet_banner_stream()); CSphsiscone local_siscone; CSphsiscone * siscone; unsigned n = clust_seq.jets().size(); bool new_siscone = true; // by default we'll be running it if (caching()) { // Establish if we have a cached run with the same R, npass and // particles. If not then do any tidying up / reallocation that's // necessary for the next round of caching, otherwise just set // relevant pointers so that we can reuse and old run. if (stored_siscone.get() != 0) { new_siscone = !(stored_plugin->cone_radius() == cone_radius() && stored_plugin->n_pass_max() == n_pass_max() && stored_particles->size() == n); if (!new_siscone) { for(unsigned i = 0; i < n; i++) { // only check momentum because indices will be correctly dealt // with anyway when extracting the clustering order. new_siscone |= !have_same_momentum(clust_seq.jets()[i], (*stored_particles)[i]); } } } // allocate the new siscone, etc., if need be if (new_siscone) { stored_siscone .reset( new CSphsiscone ); stored_particles.reset( new std::vector(clust_seq.jets())); reset_stored_plugin(); } siscone = stored_siscone.get(); } else { siscone = &local_siscone; } // make sure stopping scale is set in siscone siscone->SM_var2_hardest_cut_off = _split_merge_stopping_scale*_split_merge_stopping_scale; // set the specific parameters // when running with ghosts for passive areas, do not put the // ghosts into the stable-cone search (not relevant) siscone->stable_cone_soft_E2_cutoff = ghost_separation_scale() * ghost_separation_scale(); // set the type of splitting we want (default=std one, true->pt-weighted split) siscone->set_E_weighted_splitting(_use_E_weighted_splitting); if (new_siscone) { // transfer fastjet initial particles into the siscone type std::vector siscone_momenta(n); for(unsigned i = 0; i < n; i++) { const PseudoJet & p = clust_seq.jets()[i]; // shorthand siscone_momenta[i] = CSphmomentum(p.px(), p.py(), p.pz(), p.E()); } // run the jet finding //cout << "plg sms: " << split_merge_scale() << endl; siscone->compute_jets(siscone_momenta, cone_radius(), overlap_threshold(), n_pass_max(), protojet_or_ghost_Emin(), Esplit_merge_scale(split_merge_scale())); } else { // rerun the jet finding // just run the overlap part of the jets. //cout << "plg rcmp sms: " << split_merge_scale() << endl; siscone->recompute_jets(overlap_threshold(), protojet_or_ghost_Emin(), Esplit_merge_scale(split_merge_scale())); } // extract the jets [in reverse order -- to get nice ordering in pt at end] int njet = siscone->jets.size(); // allocate space for the extras object SISConeSphericalExtras * extras = new SISConeSphericalExtras(n); for (int ijet = njet-1; ijet >= 0; ijet--) { const CSphjet & jet = siscone->jets[ijet]; // shorthand // Successively merge the particles that make up the cone jet // until we have all particles in it. Start off with the zeroth // particle. int jet_k = jet.contents[0]; for (unsigned ipart = 1; ipart < jet.contents.size(); ipart++) { // take the last result of the merge int jet_i = jet_k; // and the next element of the jet int jet_j = jet.contents[ipart]; // and merge them (with a fake dij) double dij = 0.0; if (_use_jet_def_recombiner) { clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, jet_k); } else { // create the new jet by hand so that we can adjust its user index PseudoJet newjet = clust_seq.jets()[jet_i] + clust_seq.jets()[jet_j]; // set the user index to be the pass in which the jet was discovered // *** The following line was commented for 3.0.1 *** //newjet.set_user_index(jet.pass); clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, newjet, jet_k); } } // we have merged all the jet's particles into a single object, so now // "declare" it to be a beam (inclusive) jet. // [NB: put a sensible looking d_iB just to be nice...] double d_iB = clust_seq.jets()[jet_k].perp2(); clust_seq.plugin_record_iB_recombination(jet_k, d_iB); // now record the pass of the jet in the extras object extras->_pass[clust_seq.jets()[jet_k].cluster_hist_index()] = jet.pass; } // now copy the list of protocones into an "extras" objects for (unsigned ipass = 0; ipass < siscone->protocones_list.size(); ipass++) { for (unsigned ipc = 0; ipc < siscone->protocones_list[ipass].size(); ipc++) { PseudoJet protocone(siscone->protocones_list[ipass][ipc]); protocone.set_user_index(ipass); extras->_protocones.push_back(protocone); } } extras->_most_ambiguous_split = siscone->most_ambiguous_split; // tell it what the jet definition was extras->_jet_def_plugin = this; // give the extras object to the cluster sequence. clust_seq.plugin_associate_extras(std::auto_ptr(extras)); } void SISConeSphericalPlugin::reset_stored_plugin() const{ stored_plugin.reset( new SISConeSphericalPlugin(*this)); } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/plugins/SISCone/Makefile.in0000644000175000017500000006356612233506215020242 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/SISCone DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) libSISConePlugin_la_LIBADD = am_libSISConePlugin_la_OBJECTS = libSISConePlugin_la-SISConePlugin.lo \ libSISConePlugin_la-SISConeSphericalPlugin.lo libSISConePlugin_la_OBJECTS = $(am_libSISConePlugin_la_OBJECTS) libSISConePlugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libSISConePlugin_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @MONOLITHIC_PLUGINS_FALSE@am_libSISConePlugin_la_rpath = -rpath \ @MONOLITHIC_PLUGINS_FALSE@ $(libdir) @MONOLITHIC_PLUGINS_TRUE@am_libSISConePlugin_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libSISConePlugin_la_SOURCES) DIST_SOURCES = $(libSISConePlugin_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = siscone fastjet . @MONOLITHIC_PLUGINS_TRUE@noinst_LTLIBRARIES = libSISConePlugin.la @MONOLITHIC_PLUGINS_FALSE@lib_LTLIBRARIES = libSISConePlugin.la libSISConePlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/siscone -I$(srcdir)/../../include libSISConePlugin_la_SOURCES = SISConePlugin.cc SISConeSphericalPlugin.cc EXTRA_DIST = makefile.static all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/SISCone/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/SISCone/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libSISConePlugin.la: $(libSISConePlugin_la_OBJECTS) $(libSISConePlugin_la_DEPENDENCIES) $(libSISConePlugin_la_LINK) $(am_libSISConePlugin_la_rpath) $(libSISConePlugin_la_OBJECTS) $(libSISConePlugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSISConePlugin_la-SISConePlugin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSISConePlugin_la-SISConeSphericalPlugin.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libSISConePlugin_la-SISConePlugin.lo: SISConePlugin.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSISConePlugin_la_CXXFLAGS) $(CXXFLAGS) -MT libSISConePlugin_la-SISConePlugin.lo -MD -MP -MF $(DEPDIR)/libSISConePlugin_la-SISConePlugin.Tpo -c -o libSISConePlugin_la-SISConePlugin.lo `test -f 'SISConePlugin.cc' || echo '$(srcdir)/'`SISConePlugin.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSISConePlugin_la-SISConePlugin.Tpo $(DEPDIR)/libSISConePlugin_la-SISConePlugin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SISConePlugin.cc' object='libSISConePlugin_la-SISConePlugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSISConePlugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libSISConePlugin_la-SISConePlugin.lo `test -f 'SISConePlugin.cc' || echo '$(srcdir)/'`SISConePlugin.cc libSISConePlugin_la-SISConeSphericalPlugin.lo: SISConeSphericalPlugin.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSISConePlugin_la_CXXFLAGS) $(CXXFLAGS) -MT libSISConePlugin_la-SISConeSphericalPlugin.lo -MD -MP -MF $(DEPDIR)/libSISConePlugin_la-SISConeSphericalPlugin.Tpo -c -o libSISConePlugin_la-SISConeSphericalPlugin.lo `test -f 'SISConeSphericalPlugin.cc' || echo '$(srcdir)/'`SISConeSphericalPlugin.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libSISConePlugin_la-SISConeSphericalPlugin.Tpo $(DEPDIR)/libSISConePlugin_la-SISConeSphericalPlugin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='SISConeSphericalPlugin.cc' object='libSISConePlugin_la-SISConeSphericalPlugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSISConePlugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libSISConePlugin_la-SISConeSphericalPlugin.lo `test -f 'SISConeSphericalPlugin.cc' || echo '$(srcdir)/'`SISConeSphericalPlugin.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/SISCone/SISConePlugin.cc0000644000175000017500000001732511766120133021117 0ustar sunsun // fastjet stuff #include "fastjet/ClusterSequence.hh" #include "fastjet/SISConePlugin.hh" // sisocne stuff #include "siscone/momentum.h" #include "siscone/siscone.h" // other stuff #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; using namespace siscone; /// shortcut for converting siscone Cmomentum into PseudoJet template<> PseudoJet::PseudoJet(const siscone::Cmomentum & four_vector) { (*this) = PseudoJet(four_vector.px,four_vector.py,four_vector.pz, four_vector.E); } ///////////////////////////////////////////// // static members declaration // ///////////////////////////////////////////// std::auto_ptr SISConePlugin::stored_plugin; std::auto_ptr > SISConePlugin::stored_particles; std::auto_ptr SISConePlugin::stored_siscone; ///////////////////////////////////////////// // now comes the implementation itself // ///////////////////////////////////////////// string SISConePlugin::description () const { ostringstream desc; const string on = "on"; const string off = "off"; string sm_scale_string = "split-merge uses " + split_merge_scale_name(Esplit_merge_scale(split_merge_scale())); desc << "SISCone jet algorithm with " ; desc << "cone_radius = " << cone_radius () << ", "; desc << "overlap_threshold = " << overlap_threshold () << ", "; desc << "n_pass_max = " << n_pass_max () << ", "; desc << "protojet_ptmin = " << protojet_ptmin() << ", "; desc << sm_scale_string << ", "; desc << "caching turned " << (caching() ? on : off); desc << ", SM stop scale = " << _split_merge_stopping_scale; // add a note to the description if we use the pt-weighted splitting if (_use_pt_weighted_splitting){ desc << ", using pt-weighted splitting"; } if (_use_jet_def_recombiner){ desc << ", using jet-definition's own recombiner"; } // create a fake siscone object so that we can find out more about it Csiscone siscone; if (siscone.merge_identical_protocones) { desc << ", and (IR unsafe) merge_indentical_protocones=true" ; } desc << ", SISCone code v" << siscone_version(); return desc.str(); } // overloading the base class implementation void SISConePlugin::run_clustering(ClusterSequence & clust_seq) const { Csiscone::set_banner_stream(clust_seq.fastjet_banner_stream()); Csiscone local_siscone; Csiscone * siscone; unsigned n = clust_seq.jets().size(); bool new_siscone = true; // by default we'll be running it if (caching()) { // Establish if we have a cached run with the same R, npass and // particles. If not then do any tidying up / reallocation that's // necessary for the next round of caching, otherwise just set // relevant pointers so that we can reuse and old run. if (stored_siscone.get() != 0) { new_siscone = !(stored_plugin->cone_radius() == cone_radius() && stored_plugin->n_pass_max() == n_pass_max() && stored_particles->size() == n); if (!new_siscone) { for(unsigned i = 0; i < n; i++) { // only check momentum because indices will be correctly dealt // with anyway when extracting the clustering order. new_siscone |= !have_same_momentum(clust_seq.jets()[i], (*stored_particles)[i]); } } } // allocate the new siscone, etc., if need be if (new_siscone) { stored_siscone .reset( new Csiscone ); stored_particles.reset( new std::vector(clust_seq.jets())); reset_stored_plugin(); } siscone = stored_siscone.get(); } else { siscone = &local_siscone; } // make sure stopping scale is set in siscone siscone->SM_var2_hardest_cut_off = _split_merge_stopping_scale*_split_merge_stopping_scale; // set the specific parameters // when running with ghosts for passive areas, do not put the // ghosts into the stable-cone search (not relevant) siscone->stable_cone_soft_pt2_cutoff = ghost_separation_scale() * ghost_separation_scale(); // set the type of splitting we want (default=std one, true->pt-weighted split) siscone->set_pt_weighted_splitting(_use_pt_weighted_splitting); if (new_siscone) { // transfer fastjet initial particles into the siscone type std::vector siscone_momenta(n); for(unsigned i = 0; i < n; i++) { const PseudoJet & p = clust_seq.jets()[i]; // shorthand siscone_momenta[i] = Cmomentum(p.px(), p.py(), p.pz(), p.E()); } // run the jet finding //cout << "plg sms: " << split_merge_scale() << endl; siscone->compute_jets(siscone_momenta, cone_radius(), overlap_threshold(), n_pass_max(), protojet_or_ghost_ptmin(), Esplit_merge_scale(split_merge_scale())); } else { // rerun the jet finding // just run the overlap part of the jets. //cout << "plg rcmp sms: " << split_merge_scale() << endl; siscone->recompute_jets(overlap_threshold(), protojet_or_ghost_ptmin(), Esplit_merge_scale(split_merge_scale())); } // extract the jets [in reverse order -- to get nice ordering in pt at end] int njet = siscone->jets.size(); // allocate space for the extras object SISConeExtras * extras = new SISConeExtras(n); for (int ijet = njet-1; ijet >= 0; ijet--) { const Cjet & jet = siscone->jets[ijet]; // shorthand // Successively merge the particles that make up the cone jet // until we have all particles in it. Start off with the zeroth // particle. int jet_k = jet.contents[0]; for (unsigned ipart = 1; ipart < jet.contents.size(); ipart++) { // take the last result of the merge int jet_i = jet_k; // and the next element of the jet int jet_j = jet.contents[ipart]; // and merge them (with a fake dij) double dij = 0.0; if (_use_jet_def_recombiner) { clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, jet_k); } else { // create the new jet by hand so that we can adjust its user index PseudoJet newjet = clust_seq.jets()[jet_i] + clust_seq.jets()[jet_j]; // set the user index to be the pass in which the jet was discovered // *** The following line was commented for 3.0.1 *** //newjet.set_user_index(jet.pass); clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, newjet, jet_k); } } // we have merged all the jet's particles into a single object, so now // "declare" it to be a beam (inclusive) jet. // [NB: put a sensible looking d_iB just to be nice...] double d_iB = clust_seq.jets()[jet_k].perp2(); clust_seq.plugin_record_iB_recombination(jet_k, d_iB); // now record the pass of the jet in the extras object extras->_pass[clust_seq.jets()[jet_k].cluster_hist_index()] = jet.pass; } // now copy the list of protocones into an "extras" objects for (unsigned ipass = 0; ipass < siscone->protocones_list.size(); ipass++) { for (unsigned ipc = 0; ipc < siscone->protocones_list[ipass].size(); ipc++) { PseudoJet protocone(siscone->protocones_list[ipass][ipc]); protocone.set_user_index(ipass); extras->_protocones.push_back(protocone); } } extras->_most_ambiguous_split = siscone->most_ambiguous_split; // tell it what the jet definition was extras->_jet_def_plugin = this; // give the extras object to the cluster sequence. clust_seq.plugin_associate_extras(std::auto_ptr(extras)); } void SISConePlugin::reset_stored_plugin() const{ stored_plugin.reset( new SISConePlugin(*this)); } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/plugins/SISCone/makefile.static0000644000175000017500000000271311766120133021147 0ustar sunsun # common fastjet definitions include ../../makefile.static CXXSRC = SISConePlugin.cc SISConeSphericalPlugin.cc OBJS = $(patsubst %.cc,%.o,$(CXXSRC)) MAKESUBDIR = siscone_config siscone_src SUBDIR = siscone/siscone SUBDIR_CONFIG = siscone # fastjet includes FASTJET_INCLUDE = -I../../include INCLUDE += $(FASTJET_INCLUDE) # scones includes INCLUDE += -I$(SUBDIR_CONFIG) all: libSISConePlugin.a libSISConePlugin.a: $(MAKESUBDIR) $(OBJS) ar cru libSISConePlugin.a $(OBJS) $(SUBDIR)/*.o ranlib libSISConePlugin.a siscone_config: @cd $(SUBDIR_CONFIG) && $(MAKE) -f makefile.static config siscone_src: @cd $(SUBDIR) && $(MAKE) -f makefile.static $(MAKECMDGOALS) clean: rm -f $(OBJS) @cd $(SUBDIR) && $(MAKE) -f makefile.static $(MAKECMDGOALS) distclean: clean rm -f libSISConePlugin.a *~ # NB: only use "relative" includes here (others are too subject # to change according to the system one is on...) depend: makedepend -f makefile.static $(FASTJET_INCLUDE) -I. -Isiscone/src -- -- $(CXXSRC) # DO NOT DELETE SISConePlugin.o: ../../include/fastjet/ClusterSequence.hh SISConePlugin.o: ../../include/fastjet/internal/DynamicNearestNeighbours.hh SISConePlugin.o: ../../include/fastjet/internal/numconsts.hh SISConePlugin.o: ../../include/fastjet/internal/base.hh SISConePlugin.o: ../../include/fastjet/PseudoJet.hh SISConePlugin.o: ../../include/fastjet/Error.hh SISConePlugin.o: ../../include/fastjet/JetDefinition.hh SISConePlugin.o: fastjet/SISConePlugin.hh fastjet-3.0.6+dfsg.orig/plugins/SISCone/fastjet/0000755000175000017500000000000012233507303017614 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/SISCone/fastjet/SISConeBasePlugin.hh0000644000175000017500000001465511766120133023367 0ustar sunsun#ifndef __SISCONEBASEPLUGIN_HH__ #define __SISCONEBASEPLUGIN_HH__ #include "fastjet/JetDefinition.hh" #include "fastjet/ClusterSequence.hh" #include #include #include #include // questionable whether this should be in fastjet namespace or not... FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // /// \if internal_doc /// @ingroup internal /// \class SISConeBasePlugin /// Implementation of the SISCone algorithm, base class (plugin for fastjet v2.1 upwards) /// /// SISConeBasePlugin is a plugin for fastjet (v2.1 upwards) that /// provides a base interface to SISCone-type cone jet finder by /// Gregory Soyez and Gavin Salam. /// /// This is a purely virtual class that needs to be overloaded /// for the specific implementations of SISCone (i.e. regular or /// spherical as of July 16th 2008). /// /// any derived plugin MUST overload the following methods: /// description() /// run_siscone_clustering() /// reset_stored_plugin() /// /// For further details, see the derived plugins or /// http://projects.hepforge.com/siscone /// /// \endif // class SISConeBasePlugin : public JetDefinition::Plugin { public: /// default ctor SISConeBasePlugin (){ _use_jet_def_recombiner = false; } /// copy constructor SISConeBasePlugin (const SISConeBasePlugin & plugin) { *this = plugin; } /// the cone radius double cone_radius () const {return _cone_radius ;} /// Fraction of overlap energy in a jet above which jets are merged /// and below which jets are split. double overlap_threshold () const {return _overlap_threshold ;} /// the maximum number of passes of stable-cone searching (<=0 is same /// as infinity). int n_pass_max () const {return _n_pass_max ;} /// set the "split_merge_stopping_scale": if the scale variable for /// all protojets is below this, then stop the split-merge procedure /// and keep only those jets found so far. This is useful in /// determination of areas of hard jets because it can be used to /// avoid running the split-merging on the pure ghost-part of the /// event. void set_split_merge_stopping_scale(double scale) { _split_merge_stopping_scale = scale;} /// return the value of the split_merge_stopping_scale (see /// set_split_merge_stopping_scale(...) for description) double split_merge_stopping_scale() {return _split_merge_stopping_scale;} /// allow the user to decide if one uses the jet_def's own recombination scheme void set_use_jet_def_recombiner(bool choice) {_use_jet_def_recombiner = choice;} /// indicate if the jet_def's recombination scheme is being used bool use_jet_def_recombiner() const {return _use_jet_def_recombiner;} /// indicates whether caching is turned on or not. bool caching() const {return _caching ;} /// the plugin mechanism's standard way of accessing the jet radius virtual double R() const {return cone_radius();} /// return true since there is specific support for the measurement /// of passive areas, in the sense that areas determined from all /// particles below the ghost separation scale will be a passive /// area. virtual bool supports_ghosted_passive_areas() const { return true; } /// set the ghost separation scale for passive area determinations /// _just_ in the next run (strictly speaking that makes the routine /// a non const, so related internal info must be stored as a mutable) virtual void set_ghost_separation_scale(double scale) const { _ghost_sep_scale = scale; } virtual double ghost_separation_scale() const { return _ghost_sep_scale; } // the things that one MUST overload required by base class //--------------------------------------------------------- /// plugin description virtual std::string description () const =0; /// really do the clustering work virtual void run_clustering(ClusterSequence &) const = 0; protected: double _cone_radius, _overlap_threshold; int _n_pass_max; bool _caching;//, _split_merge_on_transverse_mass; double _split_merge_stopping_scale; bool _use_jet_def_recombiner; mutable double _ghost_sep_scale; // the part that HAS to be overloaded /// call the re-clustering itself virtual void reset_stored_plugin() const =0; }; //====================================================================== /// @ingroup extra_info /// \class SISConeBaseExtras /// Class that provides extra information about a SISCone clustering /// /// This is only the base class that the "regular" and "spherical" /// implementations of SISCone will have to overload. The only thing /// that needs to be done for the derived classes is to define /// '_jet_def_plugin', implement /// jet_def_plugin(); /// and add the corresponding plugin class as a friend class SISConeBaseExtras : public ClusterSequence::Extras { public: /// constructor // it just initialises the pass information SISConeBaseExtras(int nparticles) : _pass(nparticles*2,-1) {} /// purely virtual destructor inline virtual ~SISConeBaseExtras()=0; /// returns a reference to the vector of stable cones (aka protocones) const std::vector & stable_cones() const {return _protocones;} /// an old name for getting the vector of stable cones (aka protocones) const std::vector & protocones() const {return _protocones;} /// return the # of the pass at which a given jet was found; will /// return -1 if the pass is invalid int pass(const PseudoJet & jet) const {return _pass[jet.cluster_hist_index()];} /// return a brief summary of the contents of the extras object /// (specifically, the number of protocones. std::string description() const{ std::ostringstream ostr; ostr << "This SISCone clustering found " << protocones().size() << " stable protocones"; return ostr.str(); }; /// return the smallest difference in squared distance encountered /// during splitting between a particle and two overlapping /// protojets. inline double most_ambiguous_split() const {return _most_ambiguous_split;} protected: std::vector _protocones; std::vector _pass; double _most_ambiguous_split; const SISConeBasePlugin * _jet_def_plugin; }; /// give the destructor its required implementation inline SISConeBaseExtras::~SISConeBaseExtras(){} FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __SISCONEBASEPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/SISCone/fastjet/SISConeSphericalPlugin.hh0000644000175000017500000001716011766120133024421 0ustar sunsun#ifndef __SISCONESPHERICALPLUGIN_HH__ #define __SISCONESPHERICALPLUGIN_HH__ #include "SISConeBasePlugin.hh" // forward declaration of the siscone classes we'll need namespace siscone_spherical{ class CSphsiscone; } // questionable whether this should be in fastjet namespace or not... FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // /// @ingroup plugins /// \class SISConeSphericalPlugin /// Implementation of the spherical version of the SISCone algorithm /// (plugin for fastjet v2.1 upwards) /// /// SISConeSphericalPlugin is a plugin for fastjet (v2.1 upwards) that /// provides an interface to the seedless infrared safe cone jet /// finder by Gregory Soyez and Gavin Salam. /// /// This is the version of SISCone using spherical coordinates. Compared /// to the original cylindrical version: /// /// - Particles are within a cone if their opening angle relative to the /// centre of the cone is less than R /// /// - The split-merge step uses the total energy in the protojet as the /// ordering and overlap-measure variable /// /// - The IR safety of the split-merge step is _not_ guaranteed for /// events consisting of two back-to-back identical heavy particles /// that decay. This is because of potential degeneracies in the /// ordering for the split-merge step. /// /// For moderate values of R the problem should not be too severe /// (or may even be absent for some values of the overlap /// parameter), however the user should be aware of the issue. /// /// The default split-merge scale may change at a later date to /// resolve this issue. /// /// /// SISCone uses geometrical techniques to exhaustively consider all /// possible distinct cones. It then finds out which ones are stable /// and sends the result to the Tevatron Run-II type split-merge /// procedure for overlapping cones. /// /// Four parameters govern the "physics" of the algorithm: /// /// - the cone_radius (this should be self-explanatory!) /// /// - the overlap_threshold is the parameter which dictates how much /// two jets must overlap (E_overlap/min(E1,E2)) if they are to be /// merged /// /// - Not all particles are in stable cones in the first round of /// searching for stable cones; one can therefore optionally have the /// the jet finder carry out additional passes of searching for /// stable cones among particles that were in no stable cone in /// previous passes --- the maximum number of passes carried out is /// n_pass_max. If this is zero then additional passes are carried /// out until no new stable cones are found. /// /// - Protojet Emin: protojets that are below this Emin /// (default = 0) are discarded before each iteration of the /// split-merge loop. /// /// One parameter governs some internal algorithmic shortcuts: /// /// - if "caching" is turned on then the last event clustered by /// siscone is stored -- if the current event is identical and the /// cone_radius and n_pass_max are identical, then the only part of /// the clustering that needs to be rerun is the split-merge part, /// leading to significant speed gains; there is a small (O(N) storage /// and speed) penalty for caching, so it should be kept off /// (default) if only a single overlap_threshold is used. /// /// The final jets can be accessed by requestion the /// inclusive_jets(...) from the ClusterSequence object. Note that /// these PseudoJets have their user_index() set to the index of the /// pass in which they were found (first pass = 0). NB: This does not /// currently work for jets that consist of a single particle. /// /// For further information on the details of the algorithm see the /// SISCone paper, arXiv:0704.0292 [JHEP 0705:086,2007]. /// /// For documentation about the implementation, see the /// siscone/doc/html/index.html file. // class SISConeSphericalPlugin : public SISConeBasePlugin{ public: /// enum for the different split-merge scale choices; /// Note that order _must_ be the same as in siscone enum SplitMergeScale {SM_E, ///< Energy (IR unsafe with momentum conservation) SM_Etilde ///< sum_{i \in jet} E_i [1+sin^2(theta_iJ)] }; /// Main constructor for the SISConeSpherical Plugin class. /// /// SISConeSphericalPlugin (double cone_radius_in, double overlap_threshold_in, int n_pass_max_in = 0, double protojet_Emin_in = 0.0, bool caching_in = false, SplitMergeScale split_merge_scale_in = SM_Etilde, double split_merge_stopping_scale_in = 0.0){ _cone_radius =cone_radius_in; _overlap_threshold =overlap_threshold_in; _n_pass_max =n_pass_max_in; _protojet_Emin =protojet_Emin_in; _caching =caching_in; _split_merge_scale =split_merge_scale_in; _split_merge_stopping_scale = split_merge_stopping_scale_in; _ghost_sep_scale = 0.0; _use_E_weighted_splitting = false; } /// minimum energy for a protojet to be considered in the split-merge step /// of the algorithm double protojet_Emin () const {return _protojet_Emin ;} /// return the scale to be passed to SISCone as the protojet_Emin /// -- if we have a ghost separation scale that is above the /// protojet_ptmin, then the ghost_separation_scale becomes the /// relevant one to use here double protojet_or_ghost_Emin () const {return std::max(_protojet_Emin, _ghost_sep_scale);} /// indicates scale used in split-merge SplitMergeScale split_merge_scale() const {return _split_merge_scale;} /// sets scale used in split-merge void set_split_merge_scale(SplitMergeScale sms) {_split_merge_scale = sms;} /// indicate if the splittings are done using the anti-kt distance bool split_merge_use_E_weighted_splitting() const {return _use_E_weighted_splitting;} void set_split_merge_use_E_weighted_splitting(bool val) { _use_E_weighted_splitting = val;} /// overload the default as we don't provide support /// for passive areas. virtual bool supports_ghosted_passive_areas() const {return true;} // the things that are required by base class virtual std::string description () const; virtual void run_clustering(ClusterSequence &) const ; protected: virtual void reset_stored_plugin() const; private: double _protojet_Emin; SplitMergeScale _split_merge_scale; bool _use_E_weighted_splitting; // part needed for the cache // variables for caching the results and the input static std::auto_ptr stored_plugin; static std::auto_ptr > stored_particles; static std::auto_ptr stored_siscone; }; //====================================================================== /// @ingroup extra_info /// \class SISConeSphericalExtras /// Class that provides extra information about a SISCone clustering class SISConeSphericalExtras : public SISConeBaseExtras { public: /// constructor // it just initialises the pass information SISConeSphericalExtras(int nparticles) : SISConeBaseExtras(nparticles){} /// access to the siscone jet def plugin (more convenient than /// getting it from the original jet definition, because here it's /// directly of the right type (rather than the base type) const SISConeSphericalPlugin* jet_def_plugin() const { return dynamic_cast(_jet_def_plugin); } private: // let us be written to by SISConePlugin friend class SISConeSphericalPlugin; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __SISCONEPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/SISCone/fastjet/Makefile.in0000644000175000017500000003432512233506215021671 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/SISCone/fastjet DIST_COMMON = $(fastjetinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(fastjetincludedir)" HEADERS = $(fastjetinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fastjetincludedir = $(includedir)/fastjet fastjetinclude_HEADERS = SISConeBasePlugin.hh SISConePlugin.hh SISConeSphericalPlugin.hh all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/SISCone/fastjet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/SISCone/fastjet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fastjetincludeHEADERS: $(fastjetinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludedir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludedir)" @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludedir)" || exit $$?; \ done uninstall-fastjetincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(fastjetincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fastjetincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fastjetincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-fastjetincludeHEADERS install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-fastjetincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/SISCone/fastjet/SISConePlugin.hh0000644000175000017500000002163411766120133022567 0ustar sunsun#ifndef __SISCONEPLUGIN_HH__ #define __SISCONEPLUGIN_HH__ #include "SISConeBasePlugin.hh" // forward declaration of the siscone classes we'll need namespace siscone{ class Csiscone; } FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // /// @ingroup plugins /// \class SISConePlugin /// Implementation of the SISCone algorithm (plugin for fastjet v2.1 upwards) /// /// SISConePlugin is a plugin for fastjet (v2.1 upwards) that provides /// an interface to the seedless infrared safe cone jet finder by /// Gregory Soyez and Gavin Salam. /// /// SISCone uses geometrical techniques to exhaustively consider all /// possible distinct cones. It then finds out which ones are stable /// and sends the result to the Tevatron Run-II type split-merge /// procedure for overlapping cones. /// /// Four parameters govern the "physics" of the algorithm: /// /// - the cone_radius (this should be self-explanatory!) /// /// - the overlap_threshold is the parameter which dictates how much /// two jets must overlap (pt_overlap/min(pt1,pt2)) if they are to be /// merged /// /// - Not all particles are in stable cones in the first round of /// searching for stable cones; one can therefore optionally have the /// the jet finder carry out additional passes of searching for /// stable cones among particles that were in no stable cone in /// previous passes --- the maximum number of passes carried out is /// n_pass_max. If this is zero then additional passes are carried /// out until no new stable cones are found. /// /// - Protojet ptmin: protojets that are below this ptmin /// (default = 0) are discarded before each iteration of the /// split-merge loop. /// /// One parameter governs some internal algorithmic shortcuts: /// /// - if "caching" is turned on then the last event clustered by /// siscone is stored -- if the current event is identical and the /// cone_radius and n_pass_mass are identical, then the only part of /// the clustering that needs to be rerun is the split-merge part, /// leading to significant speed gains; there is a small (O(N) storage /// and speed) penalty for caching, so it should be kept off /// (default) if only a single overlap_threshold is used. /// /// The final jets can be accessed by requestion the /// inclusive_jets(...) from the ClusterSequence object. Note that /// these PseudoJets have their user_index() set to the index of the /// pass in which they were found (first pass = 0). NB: This does not /// currently work for jets that consist of a single particle. /// /// For further information on the details of the algorithm see the /// SISCone paper, arXiv:0704.0292 [JHEP 0705:086,2007]. /// /// For documentation about the implementation, see the /// siscone/doc/html/index.html file. // class SISConePlugin : public SISConeBasePlugin{ public: /// enum for the different split-merge scale choices; /// Note that order _must_ be the same as in siscone enum SplitMergeScale {SM_pt, ///< transverse momentum (E-scheme), IR unsafe SM_Et, ///< transverse energy (E-scheme), not long. boost invariant ///< original run-II choice [may not be implemented] SM_mt, ///< transverse mass (E-scheme), IR safe except ///< in decays of two identical narrow heavy particles SM_pttilde ///< pt-scheme pt = \sum_{i in jet} |p_{ti}|, should ///< be IR safe in all cases }; /// Main constructor for the SISCone Plugin class. /// /// Note: wrt version prior to 2.4 this constructor differs in that a /// the default value has been removed for overlap_threshold. The /// former has been removed because the old default of 0.5 was found /// to be unsuitable in high-noise environments; so the user should /// now explicitly think about the value for this -- we recommend /// 0.75. /// SISConePlugin (double cone_radius_in, double overlap_threshold_in, int n_pass_max_in = 0, double protojet_ptmin_in = 0.0, bool caching_in = false, SplitMergeScale split_merge_scale_in = SM_pttilde, double split_merge_stopping_scale_in = 0.0){ _cone_radius = cone_radius_in; _overlap_threshold = overlap_threshold_in; _n_pass_max = n_pass_max_in; _protojet_ptmin = protojet_ptmin_in; _caching = caching_in; _split_merge_scale = split_merge_scale_in; _split_merge_stopping_scale = split_merge_stopping_scale_in; _ghost_sep_scale = 0.0; _use_pt_weighted_splitting = false;} /// Backwards compatible constructor for the SISCone Plugin class SISConePlugin (double cone_radius_in, double overlap_threshold_in, int n_pass_max_in, double protojet_ptmin_in, bool caching_in, bool split_merge_on_transverse_mass_in){ _cone_radius = cone_radius_in; _overlap_threshold = overlap_threshold_in; _n_pass_max = n_pass_max_in; _protojet_ptmin = protojet_ptmin_in; _caching = caching_in; _split_merge_stopping_scale = 0.0; _split_merge_scale = split_merge_on_transverse_mass_in ? SM_mt : SM_pttilde; _ghost_sep_scale = 0.0;} /// backwards compatible constructor for the SISCone Plugin class /// (avoid using this in future). SISConePlugin (double cone_radius_in, double overlap_threshold_in, int n_pass_max_in, bool caching_in) { _cone_radius = cone_radius_in; _overlap_threshold = overlap_threshold_in; _n_pass_max = n_pass_max_in; _protojet_ptmin = 0.0; _caching = caching_in; _split_merge_scale = SM_mt; _split_merge_stopping_scale = 0.0; _ghost_sep_scale = 0.0; _use_pt_weighted_splitting = false;} /// minimum pt for a protojet to be considered in the split-merge step /// of the algorithm double protojet_ptmin () const {return _protojet_ptmin ;} /// return the scale to be passed to SISCone as the protojet_ptmin /// -- if we have a ghost separation scale that is above the /// protojet_ptmin, then the ghost_separation_scale becomes the /// relevant one to use here double protojet_or_ghost_ptmin () const {return std::max(_protojet_ptmin, _ghost_sep_scale);} /// indicates scale used in split-merge SplitMergeScale split_merge_scale() const {return _split_merge_scale;} /// sets scale used in split-merge void set_split_merge_scale(SplitMergeScale sms) {_split_merge_scale = sms;} /// indicates whether the split-merge orders on transverse mass or not. /// retained for backwards compatibility with 2.1.0b3 bool split_merge_on_transverse_mass() const {return _split_merge_scale == SM_mt ;} void set_split_merge_on_transverse_mass(bool val) { _split_merge_scale = val ? SM_mt : SM_pt;} /// indicates whether the split-merge orders on transverse mass or not. /// retained for backwards compatibility with 2.1.0b3 bool split_merge_use_pt_weighted_splitting() const {return _use_pt_weighted_splitting;} void set_split_merge_use_pt_weighted_splitting(bool val) { _use_pt_weighted_splitting = val;} // the things that are required by base class virtual std::string description () const; virtual void run_clustering(ClusterSequence &) const ; protected: virtual void reset_stored_plugin() const; private: double _protojet_ptmin; SplitMergeScale _split_merge_scale; bool _use_pt_weighted_splitting; // part needed for the cache // variables for caching the results and the input static std::auto_ptr stored_plugin; static std::auto_ptr > stored_particles; static std::auto_ptr stored_siscone; }; //====================================================================== /// @ingroup extra_info /// \class SISConeExtras /// Class that provides extra information about a SISCone clustering class SISConeExtras : public SISConeBaseExtras { public: /// constructor // it just initialises the pass information SISConeExtras(int nparticles) : SISConeBaseExtras(nparticles){} /// access to the siscone jet def plugin (more convenient than /// getting it from the original jet definition, because here it's /// directly of the right type (rather than the base type) const SISConePlugin* jet_def_plugin() const { return dynamic_cast(_jet_def_plugin); } private: // let us be written to by SISConePlugin friend class SISConePlugin; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __SISCONEPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/SISCone/fastjet/Makefile.am0000644000175000017500000000020111766120133021643 0ustar sunsunfastjetincludedir=$(includedir)/fastjet fastjetinclude_HEADERS = SISConeBasePlugin.hh SISConePlugin.hh SISConeSphericalPlugin.hh fastjet-3.0.6+dfsg.orig/plugins/SISCone/Makefile.am0000644000175000017500000000053411766120133020214 0ustar sunsunSUBDIRS = siscone fastjet . if MONOLITHIC_PLUGINS noinst_LTLIBRARIES = libSISConePlugin.la else lib_LTLIBRARIES = libSISConePlugin.la endif libSISConePlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/siscone -I$(srcdir)/../../include libSISConePlugin_la_SOURCES = SISConePlugin.cc SISConeSphericalPlugin.cc EXTRA_DIST = makefile.static fastjet-3.0.6+dfsg.orig/plugins/Makefile.in0000644000175000017500000006314612233506215016771 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @BUILD_PLUGIN_SISCONE_TRUE@am__append_1 = SISCone @BUILD_PLUGIN_CDFCONES_TRUE@am__append_2 = CDFCones @BUILD_PLUGIN_PXCONE_TRUE@am__append_3 = PxCone @BUILD_PLUGIN_D0RUNIICONE_TRUE@am__append_4 = D0RunIICone @BUILD_PLUGIN_NESTEDDEFS_TRUE@am__append_5 = NestedDefs @BUILD_PLUGIN_TRACKJET_TRUE@am__append_6 = TrackJet @BUILD_PLUGIN_ATLASCONE_TRUE@am__append_7 = ATLASCone @BUILD_PLUGIN_EECAMBRIDGE_TRUE@am__append_8 = EECambridge @BUILD_PLUGIN_JADE_TRUE@am__append_9 = Jade @BUILD_PLUGIN_CMSITERATIVECONE_TRUE@am__append_10 = CMSIterativeCone @BUILD_PLUGIN_D0RUNICONE_TRUE@am__append_11 = D0RunICone @BUILD_PLUGIN_GRIDJET_TRUE@am__append_12 = GridJet @BUILD_PLUGIN_SISCONE_TRUE@@MONOLITHIC_PLUGINS_TRUE@am__append_13 = SISCone/libSISConePlugin.la @BUILD_PLUGIN_CDFCONES_TRUE@@MONOLITHIC_PLUGINS_TRUE@am__append_14 = CDFCones/libCDFConesPlugin.la @BUILD_PLUGIN_PXCONE_TRUE@@MONOLITHIC_PLUGINS_TRUE@am__append_15 = PxCone/libPxConePlugin.la @BUILD_PLUGIN_D0RUNIICONE_TRUE@@MONOLITHIC_PLUGINS_TRUE@am__append_16 = D0RunIICone/libD0RunIIConePlugin.la @BUILD_PLUGIN_NESTEDDEFS_TRUE@@MONOLITHIC_PLUGINS_TRUE@am__append_17 = NestedDefs/libNestedDefsPlugin.la @BUILD_PLUGIN_TRACKJET_TRUE@@MONOLITHIC_PLUGINS_TRUE@am__append_18 = TrackJet/libTrackJetPlugin.la @BUILD_PLUGIN_ATLASCONE_TRUE@@MONOLITHIC_PLUGINS_TRUE@am__append_19 = ATLASCone/libATLASConePlugin.la @BUILD_PLUGIN_EECAMBRIDGE_TRUE@@MONOLITHIC_PLUGINS_TRUE@am__append_20 = EECambridge/libEECambridgePlugin.la @BUILD_PLUGIN_JADE_TRUE@@MONOLITHIC_PLUGINS_TRUE@am__append_21 = Jade/libJadePlugin.la @BUILD_PLUGIN_CMSITERATIVECONE_TRUE@@MONOLITHIC_PLUGINS_TRUE@am__append_22 = CMSIterativeCone/libCMSIterativeConePlugin.la @BUILD_PLUGIN_D0RUNICONE_TRUE@@MONOLITHIC_PLUGINS_TRUE@am__append_23 = D0RunICone/libD0RunIConePlugin.la @BUILD_PLUGIN_GRIDJET_TRUE@@MONOLITHIC_PLUGINS_TRUE@am__append_24 = GridJet/libGridJetPlugin.la subdir = plugins DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) @MONOLITHIC_PLUGINS_TRUE@libfastjetplugins_la_DEPENDENCIES = \ @MONOLITHIC_PLUGINS_TRUE@ $(am__append_13) $(am__append_14) \ @MONOLITHIC_PLUGINS_TRUE@ $(am__append_15) $(am__append_16) \ @MONOLITHIC_PLUGINS_TRUE@ $(am__append_17) $(am__append_18) \ @MONOLITHIC_PLUGINS_TRUE@ $(am__append_19) $(am__append_20) \ @MONOLITHIC_PLUGINS_TRUE@ $(am__append_21) $(am__append_22) \ @MONOLITHIC_PLUGINS_TRUE@ $(am__append_23) $(am__append_24) am_libfastjetplugins_la_OBJECTS = libfastjetplugins_la_OBJECTS = $(am_libfastjetplugins_la_OBJECTS) @MONOLITHIC_PLUGINS_TRUE@am_libfastjetplugins_la_rpath = -rpath \ @MONOLITHIC_PLUGINS_TRUE@ $(libdir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libfastjetplugins_la_SOURCES) \ $(nodist_EXTRA_libfastjetplugins_la_SOURCES) DIST_SOURCES = $(libfastjetplugins_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # end plugin section -- do not modify this line SUBDIRS = $(am__append_1) $(am__append_2) $(am__append_3) \ $(am__append_4) $(am__append_5) $(am__append_6) \ $(am__append_7) $(am__append_8) $(am__append_9) \ $(am__append_10) $(am__append_11) $(am__append_12) . @MONOLITHIC_PLUGINS_TRUE@lib_LTLIBRARIES = libfastjetplugins.la @MONOLITHIC_PLUGINS_TRUE@libfastjetplugins_la_SOURCES = @MONOLITHIC_PLUGINS_TRUE@nodist_EXTRA_libfastjetplugins_la_SOURCES = dummy.cc @MONOLITHIC_PLUGINS_TRUE@libfastjetplugins_la_LIBADD = \ @MONOLITHIC_PLUGINS_TRUE@ $(am__append_13) $(am__append_14) \ @MONOLITHIC_PLUGINS_TRUE@ $(am__append_15) $(am__append_16) \ @MONOLITHIC_PLUGINS_TRUE@ $(am__append_17) $(am__append_18) \ @MONOLITHIC_PLUGINS_TRUE@ $(am__append_19) $(am__append_20) \ @MONOLITHIC_PLUGINS_TRUE@ $(am__append_21) $(am__append_22) \ @MONOLITHIC_PLUGINS_TRUE@ $(am__append_23) $(am__append_24) # end monolithic plugin section -- do not modify this line DIST_SUBDIRS = GridJet D0RunICone CMSIterativeCone Jade EECambridge ATLASCone TrackJet SISCone CDFCones PxCone D0RunIICone NestedDefs EXTRA_DIST = makefile.static all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libfastjetplugins.la: $(libfastjetplugins_la_OBJECTS) $(libfastjetplugins_la_DEPENDENCIES) $(CXXLINK) $(am_libfastjetplugins_la_rpath) $(libfastjetplugins_la_OBJECTS) $(libfastjetplugins_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dummy.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/0000755000175000017500000000000012233507301016555 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/D0RunICone/D0RunIBaseConePlugin.cc0000644000175000017500000002172111766120134022714 0ustar sunsun//STARTHEADER // $Id: D0RunIBaseConePlugin.cc 1779 2010-10-25 10:32:59Z soyez $ // // Copyright (c) 2009-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER // D0 stuff // apparently this has to go first to avoid a problem with gcc-4.0.1 builds on Macs #include #include "ConeClusterAlgo.hpp" #include "HepEntityIpre96.h" #include "HepEntityI.h" #include "fastjet/D0RunIBaseConePlugin.hh" #include "fastjet/D0RunIpre96ConePlugin.hh" #include "fastjet/D0RunIConePlugin.hh" #include "fastjet/ClusterSequence.hh" #include "fastjet/Error.hh" #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; using namespace d0runi; ///////////////////////////////////////////// // // // D0RunIBaseConePlugin implementation // // // ///////////////////////////////////////////// const double D0RunIBaseConePlugin::_DEFAULT_SPLifr = 0.5; //shared Et fraction threshold const double D0RunIBaseConePlugin::_DEFAULT_TWOrad = 0.; const bool D0RunIBaseConePlugin::_DEFAULT_D0_Angle = false; const bool D0RunIBaseConePlugin::_DEFAULT_Increase_Delta_R = true; const bool D0RunIBaseConePlugin::_DEFAULT_Kill_Far_Clusters = true; const bool D0RunIBaseConePlugin::_DEFAULT_Jet_Et_Min_On_Iter = true; const double D0RunIBaseConePlugin::_DEFAULT_Far_Ratio = 0.5; const double D0RunIBaseConePlugin::_DEFAULT_Eitem_Negdrop = -1.0; const double D0RunIBaseConePlugin::_DEFAULT_Et_Min_Ratio = 0.5; const double D0RunIBaseConePlugin::_DEFAULT_Thresh_Diff_Et = 0.01; // for the real work, we write a template class that decides which // HepEntity type to use template void D0RunIBaseConePlugin::run_clustering_worker(ClusterSequence & clust_seq) const{ // create the entities needed by the D0 code vector entities(clust_seq.jets().size()); list ensemble; for (unsigned i = 0; i < clust_seq.jets().size(); i++) { entities[i].Fill(clust_seq.jets()[i].E(), clust_seq.jets()[i].px(), clust_seq.jets()[i].py(), clust_seq.jets()[i].pz(), i); // use only the particles that do not have infinite rapidity if (abs(entities[i].pz() ) < entities[i].E() ) { ensemble.push_back(& (entities[i])); } } // prepare the D0 algorithm ConeClusterAlgo RunIconeAlgo(CONErad(), JETmne(), TWOrad(), SPLifr(), D0_Angle(), Increase_Delta_R(), Kill_Far_Clusters(), Jet_Et_Min_On_Iter(), Far_Ratio(), Eitem_Negdrop(), Et_Min_Ratio(), Thresh_Diff_Et()); // run the algorithm float Zvertex = 0.; list jets; RunIconeAlgo.makeClusters(jets, ensemble, Zvertex); // now transfer the information about the jets into the // FastJet structure for(int i = RunIconeAlgo.TempColl.size()-1; i >= 0; i--) { std::list tlist = RunIconeAlgo.TempColl[i].LItems(); typename std::list::iterator tk; // get first particle in list tk = tlist.begin(); int jet_k = (*tk)->index; // GS addition: in order to use the proper recombination scheme // used by D0 we need to keep track of the sum as a // "HepEntityType" HepEntityType jet_current_momentum = *(*tk); // now merge with remaining particles in list tk++; for (; tk != tlist.end(); tk++) { int jet_i = jet_k; int jet_j = (*tk)->index; // do a fake recombination step with dij=0 double dij = 0.0; // GS addition: find the new momentum and convert that into a // pseudo-jet jet_current_momentum.Add(**tk); PseudoJet new_mom(jet_current_momentum.px(), jet_current_momentum.py(), jet_current_momentum.pz(), jet_current_momentum.E()); clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, new_mom, jet_k); } // NB: put a sensible looking d_iB just to be nice... double d_iB = clust_seq.jets()[jet_k].perp2(); clust_seq.plugin_record_iB_recombination(jet_k, d_iB); } } ///////////////////////////////////////////// // // // D0RunIpre96ConePlugin implementation // // // ///////////////////////////////////////////// bool D0RunIpre96ConePlugin::_first_time=true; string D0RunIpre96ConePlugin::description () const { ostringstream desc; desc << "D0 Run I (pre 96) cone jet algorithm, with "; desc << "cone_radius = " << CONErad () << ", " << "min_jet_Et = " << JETmne () << ", " << "split_fraction = " << SPLifr (); return desc.str(); } void D0RunIpre96ConePlugin::run_clustering(ClusterSequence & clust_seq) const { // print a banner if we run this for the first time _print_banner(clust_seq.fastjet_banner_stream()); run_clustering_worker(clust_seq); } // print a banner for reference to the 3rd-party code void D0RunIpre96ConePlugin::_print_banner(ostream *ostr) const{ if (! _first_time) return; _first_time=false; // make sure the user has not set the banner stream to NULL if (!ostr) return; (*ostr) << "#--------------------------------------------------------------------------" << endl; (*ostr) << "# You are running the D0 Run I (pre96) Cone plugin for FastJet " << endl; (*ostr) << "# Original code by the D0 collaboration, provided by Lars Sonnenschein; " << endl; (*ostr) << "# interface by FastJet authors " << endl; (*ostr) << "# If you use this plugin, please cite " << endl; (*ostr) << "# B. Abbott et al. [D0 Collaboration], FERMILAB-PUB-97-242-E. " << endl; (*ostr) << "# in addition to the usual FastJet reference. " << endl; (*ostr) << "#--------------------------------------------------------------------------" << endl; // make sure we really have the output done. ostr->flush(); } ///////////////////////////////////////////// // // // D0RunIConePlugin implementation // // // ///////////////////////////////////////////// bool D0RunIConePlugin::_first_time=true; string D0RunIConePlugin::description () const { ostringstream desc; desc << "D0 Run I cone jet algorithm, with "; desc << "cone_radius = " << CONErad () << ", " << "min_jet_Et = " << JETmne () << ", " << "split_fraction = " << SPLifr (); return desc.str(); } void D0RunIConePlugin::run_clustering(ClusterSequence & clust_seq) const { // print a banner if we run this for the first time _print_banner(clust_seq.fastjet_banner_stream()); run_clustering_worker(clust_seq); } // print a banner for reference to the 3rd-party code void D0RunIConePlugin::_print_banner(ostream *ostr) const{ if (! _first_time) return; _first_time=false; // make sure the user has not set the banner stream to NULL if (!ostr) return; (*ostr) << "#--------------------------------------------------------------------------" << endl; (*ostr) << "# You are running the D0 Run I Cone plugin for FastJet " << endl; (*ostr) << "# Original code provided by Lars Sonnenschein; interface by FastJet authors" << endl; (*ostr) << "# If you use this plugin, please cite " << endl; (*ostr) << "# B. Abbott et al. [D0 Collaboration], FERMILAB-PUB-97-242-E. " << endl; (*ostr) << "# in addition to the usual FastJet reference. " << endl; (*ostr) << "#--------------------------------------------------------------------------" << endl; // make sure we really have the output done. ostr->flush(); } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/HepEntityIpre96.h0000644000175000017500000000625111766120134021647 0ustar sunsun#ifndef D0RunIconeJets_HepEntityPre96_class #define D0RunIconeJets_HepEntityPre96_class #include "inline_maths.h" #include "HepEntityI.h" #include FASTJET_BEGIN_NAMESPACE namespace d0runi{ //Author: Lars Sonnenschein 25/Feb/2010 //This is an example class fulfilling the minimal requirements needed by the //D0 RunI cone jet algorithm implementation prior to 1996, which is an inlined template class //See FERMILAB-Pub-97-242-E for details // This file is distributed with FastJet under the terms of the GNU // General Public License (v2). Permission to do so has been granted // by Lars Sonnenschein and the D0 collaboration (see COPYING for // details) // // History of changes in FastJet compared tothe original version of // HepEntity.h // // 2011-12-13 Gregory Soyez // // * added license information // // 2011-11-14 Gregory Soyez // // * removed some harmless warnings coming with the -Wshadow gcc option // // 2011-10-06 Gregory Soyez // // * put the code in the fastjet::d0runi namespace class HepEntityIpre96 : public HepEntityI { public: HepEntityIpre96() { Et=0.; eta=0.; phi=0.; Ex=0.; Ey=0.; Ez=0.; index = -1; phi_pre96=0.; eta_pre96=0.; return; } HepEntityIpre96(double E_in, double px_in, double py_in, double pz_in, int index_in = -1) : index(index_in) { //Snowmass Et scheme double pt = sqrt(px_in*px_in+py_in*py_in); double p = sqrt(pt*pt+pz_in*pz_in); phi = inline_maths::phi(px_in,py_in); double theta = asin(pt/p); eta = inline_maths::eta(theta); Et = E_in*sin(theta); phi_pre96 = phi; eta_pre96 = eta; Ex = Et*cos(phi_pre96); Ey = Et*sin(phi_pre96); Ez = Et*sinh(eta_pre96); return; } inline double px() const { return Et*cos(phi_pre96); } inline double py() const { return Et*sin(phi_pre96); } inline double pz() const { return Et*sinh(eta_pre96); } inline double E() const { return Et*cosh(eta_pre96); } inline void Add(const HepEntityIpre96 el) { //assumes Et, eta and phi stored accurately double w2 = el.Et; Et += el.Et; w2 /= Et; eta += w2*(el.eta - eta); phi += w2*inline_maths::delta_phi(el.phi, phi); Ex += el.Ex; Ey += el.Ey; Ez += el.Ez; phi_pre96 = atan2(Ey, Ex); double theta_pre96 = atan2(sqrt(Ex*Ex+Ey*Ey),Ez); eta_pre96 = -log(tan(theta_pre96/2.)); return; } inline void Fill(double E_in, double px_in, double py_in, double pz_in, int index_in) { double pt = sqrt(px_in*px_in+py_in*py_in); double p = sqrt(pt*pt+pz_in*pz_in); phi = inline_maths::phi(px_in,py_in); double theta = asin(pt/p); eta = inline_maths::eta(theta); Et = E_in*sin(theta); phi_pre96 = phi; eta_pre96 = eta; Ex = Et*cos(phi_pre96); Ey = Et*sin(phi_pre96); Ez = Et*sinh(eta_pre96); index = index_in; return; } double Ex; double Ey; double Ez; int index; double phi_pre96; double eta_pre96; private: }; //end of class HepEntityIpre96; } // end of namespace d0runi FASTJET_END_NAMESPACE #endif fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/Makefile.in0000644000175000017500000006131112233506214020626 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/D0RunICone DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) libD0RunIConePlugin_la_LIBADD = am_libD0RunIConePlugin_la_OBJECTS = \ libD0RunIConePlugin_la-D0RunIBaseConePlugin.lo libD0RunIConePlugin_la_OBJECTS = $(am_libD0RunIConePlugin_la_OBJECTS) libD0RunIConePlugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libD0RunIConePlugin_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @MONOLITHIC_PLUGINS_FALSE@am_libD0RunIConePlugin_la_rpath = -rpath \ @MONOLITHIC_PLUGINS_FALSE@ $(libdir) @MONOLITHIC_PLUGINS_TRUE@am_libD0RunIConePlugin_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libD0RunIConePlugin_la_SOURCES) DIST_SOURCES = $(libD0RunIConePlugin_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = fastjet . @MONOLITHIC_PLUGINS_TRUE@noinst_LTLIBRARIES = libD0RunIConePlugin.la @MONOLITHIC_PLUGINS_FALSE@lib_LTLIBRARIES = libD0RunIConePlugin.la libD0RunIConePlugin_la_CXXFLAGS = ${AM_CXXFLAGS} -I$(srcdir) -I$(srcdir)/../../include libD0RunIConePlugin_la_SOURCES = D0RunIBaseConePlugin.cc EXTRA_DIST = makefile.static ConeClusterAlgo.hpp HepEntityI.h HepEntityIpre96.h inline_maths.h all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/D0RunICone/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/D0RunICone/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libD0RunIConePlugin.la: $(libD0RunIConePlugin_la_OBJECTS) $(libD0RunIConePlugin_la_DEPENDENCIES) $(libD0RunIConePlugin_la_LINK) $(am_libD0RunIConePlugin_la_rpath) $(libD0RunIConePlugin_la_OBJECTS) $(libD0RunIConePlugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libD0RunIConePlugin_la-D0RunIBaseConePlugin.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libD0RunIConePlugin_la-D0RunIBaseConePlugin.lo: D0RunIBaseConePlugin.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libD0RunIConePlugin_la_CXXFLAGS) $(CXXFLAGS) -MT libD0RunIConePlugin_la-D0RunIBaseConePlugin.lo -MD -MP -MF $(DEPDIR)/libD0RunIConePlugin_la-D0RunIBaseConePlugin.Tpo -c -o libD0RunIConePlugin_la-D0RunIBaseConePlugin.lo `test -f 'D0RunIBaseConePlugin.cc' || echo '$(srcdir)/'`D0RunIBaseConePlugin.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libD0RunIConePlugin_la-D0RunIBaseConePlugin.Tpo $(DEPDIR)/libD0RunIConePlugin_la-D0RunIBaseConePlugin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='D0RunIBaseConePlugin.cc' object='libD0RunIConePlugin_la-D0RunIBaseConePlugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libD0RunIConePlugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libD0RunIConePlugin_la-D0RunIBaseConePlugin.lo `test -f 'D0RunIBaseConePlugin.cc' || echo '$(srcdir)/'`D0RunIBaseConePlugin.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/HepEntityI.h0000644000175000017500000000546711766120134020771 0ustar sunsun#ifndef D0RunIconeJets_HepEntity_class #define D0RunIconeJets_HepEntity_class #include "inline_maths.h" #include FASTJET_BEGIN_NAMESPACE namespace d0runi{ //Author: Lars Sonnenschein 15/Sep/2009 //This is an example class fulfilling the minimal requirements needed by the //D0 RunI cone jet algorithm implementation, which is an inlined template class // This file is distributed with FastJet under the terms of the GNU // General Public License (v2). Permission to do so has been granted // by Lars Sonnenschein and the D0 collaboration (see COPYING for // details) // // History of changes in FastJet compared tothe original version of // HepEntity.h // // 2011-12-13 Gregory Soyez // // * added license information // // 2011-11-14 Gregory Soyez // // * removed some harmless warnings coming with the -Wshadow gcc option // // 2011-10-06 Gregory Soyez // // * put the code in the fastjet::d0runi namespace class HepEntityI { public: HepEntityI() { Et=0.; eta=0.; phi=0.; index = -1; return; } HepEntityI(double E_in, double px_in, double py_in, double pz_in, int index_in = -1) : index(index_in) { //Snowmass Et scheme double pt = sqrt(px_in*px_in+py_in*py_in); double p = sqrt(pt*pt+pz_in*pz_in); phi = inline_maths::phi(px_in,py_in); double theta = asin(pt/p); eta = inline_maths::eta(theta); Et = E_in*sin(theta); return; } HepEntityI(const HepEntityI& in) : Et(in.Et), eta(in.eta), phi(in.phi), index(in.index) { return; } inline double pT() const { return Et; } inline double px() const { return Et*cos(phi); } inline double py() const { return Et*sin(phi); } inline double pz() const { return Et*sinh(eta); } inline double E() const { return Et*cosh(eta); } inline void p4vec(float* p) const { p[0] = Et*cos(phi); p[1] = Et*sin(phi); p[2] = Et*sinh(eta); p[3] = Et*cosh(eta); //E return; } inline void Add(const HepEntityI el) { //assumes Et, eta and phi stored accurately double w2 = el.Et; Et += el.Et; w2 /= Et; eta += w2*(el.eta - eta); phi += w2*inline_maths::delta_phi(el.phi, phi); return; } inline void Fill(double E_in, double px_in, double py_in, double pz_in, int index_in) { double pt = sqrt(px_in*px_in+py_in*py_in); double p = sqrt(pt*pt+pz_in*pz_in); phi = inline_maths::phi(px_in,py_in); double theta = asin(pt/p); eta = inline_maths::eta(theta); Et = E_in*sin(theta); index = index_in; return; } double Et; double eta; double phi; int index; private: }; //end of class HepEntityI; } // end of namespace d0runi FASTJET_END_NAMESPACE #endif fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/ConeClusterAlgo.hpp0000644000175000017500000006471011766120134022334 0ustar sunsun////////////////////////////////////////////////////////////// // File: ConeClusterAlgo.hpp // // Author: G. Le Meur & F. Touze // // Created: 15-JUNE-1998 // // Purpose: make jet clusters using fixed cone like algorithm // implemented in RUNI. // // Modified: // 28-OCT-1998 to use KinemUtil (S. Protopopescu) // 8-JAN-1999: Laurent Duflot // . correct bugs in getItemsInCone and updateEtaPhiEt for jets // overlapping the phi=0 line // . change abs(float) to fabs(float) // 1-NOV-1999: Laurent Duflot // . correct bug in makeCluster: when the temporary jet was emptied the eta // and phi were not set again. The main effect was a nearly zero // efficiency for jets at phi=pi (as seen by Volker Buescher) // 25-JAN-2000: Francois Touze // . change in updateEtaPhiEt : the method E() which returns energy doesn't // exist in MCparticle classe,... so use the 4-momentum components // . declare const the EnergyClusterCollection of seeds in makeClusters // 01-FEB-2000: Laurent Duflot // . add a missing break statement in the removal of shared items. Caused // an infinite loop on some events. // . correct typo in variable name. Change a variable name that was in // French. // . leave some debug printout (commented) // 15-Sep-2009 Lars Sonnenschein // extracted from D0 software framework and modified to remove subsequent dependencies // // // This file is distributed with FastJet under the terms of the GNU // General Public License (v2). Permission to do so has been granted // by Lars Sonnenschein and the D0 collaboration (see COPYING for // details) // // History of changes in FastJet compared to the original version of // ConeClusterAlgo.hpp // // 2011-12-13 Gregory Soyez // // * added license information // // 2011-10-06 Gregory Soyez // // * put the code in the fastjet::d0runi namespace // ////////////////////////////////////////////////////////////// //#ifndef CONECLUSTERALGO_H //#define CONECLUSTERALGO_H #ifndef D0RunIconeJets_CONECLUSTERALGO_H #define D0RunIconeJets_CONECLUSTERALGO_H //#include "EnergyClusterReco.hpp" #include #include #include //#include "kinem_util/AnglesUtil.hpp" #include #include #include "inline_maths.h" #include FASTJET_BEGIN_NAMESPACE namespace d0runi{ using namespace std; //some utility functions inline float R2(float eta1, float phi1, float eta2, float phi2) { return (eta1-eta2)*(eta1-eta2)+(phi1-phi2)*(phi1-phi2); } inline float R2_bis(float eta1, float phi1, float eta2, float phi2) { //float dphi = kinem::delta_phi(phi1,phi2); float dphi = inline_maths::delta_phi(phi1,phi2); return (eta1-eta2)*(eta1-eta2)+dphi*dphi; } inline float DELTA_r(float eta1,float eta2,float phi1,float phi2) { //float dphi = kinem::delta_phi(phi1,phi2); float dphi = inline_maths::delta_phi(phi1,phi2); return sqrt((eta1-eta2)*(eta1-eta2)+dphi*dphi); } inline float E2eta(float* p) { float small= 1.E-05; float E[3]; if(p[3] < 0.0) { E[0]= -p[0]; E[1]= -p[1]; E[2]= -p[2]; } else { E[0]= p[0]; E[1]= p[1]; E[2]= p[2]; } float pperp= sqrt(E[0]*E[0]+E[1]*E[1])+small; float ptotal= sqrt(E[0]*E[0]+E[1]*E[1]+E[2]*E[2])+small; //float theta= atan2(pperp,E[2]); float eta= 0.0; if(E[2] > 0.0) eta= log((ptotal+E[2])/pperp); else eta= log(pperp/(ptotal-E[2])); return eta; } inline float E2phi(float* p) { float small= 1.E-05; float E[3]; if(p[3] < 0.0) { E[0]= -p[0]; E[1]= -p[1]; E[2]= -p[2]; } else { E[0]= p[0]; E[1]= p[1]; E[2]= p[2]; } float phi= atan2(E[1],E[0]+small); //if(phi < 0.0) phi+=kinem::TWOPI; if (phi < 0.0) phi += inline_maths::TWOPI; return phi; } //template < class CalItem,class CalItemAddress,class CalIClusterChunk > template < class CalItem > class ConeClusterAlgo { // // Purpose: make calorimeter clusters using a cone algorithm from // preclusters created previously by the class ConePreClusterAlgo. // Items must have addresses and 4-momenta. // The algorithm is implemented with a template function makeClusters. // public : //default constructor ConeClusterAlgo() {} //constructor for cone jet algorithm ConeClusterAlgo( float CONErad,float JETmne,float SPLifr): _CONErad(fabs(CONErad)), _JETmne(JETmne), _SPLifr(SPLifr), _TWOrad(0.), _D0_Angle(false), _Increase_Delta_R(true), _Kill_Far_Clusters(true), _Jet_Et_Min_On_Iter(true), _Far_Ratio(0.5), _Eitem_Negdrop(-1.0), _Et_Min_Ratio(0.5), _Thresh_Diff_Et(0.01) {} //changing default thresholds & parameters // (declared by PARAMETER in RUNI code) ConeClusterAlgo( float CONErad,float JETmne,float SPLifr,float TWOrad, float Tresh_Diff_Et,bool D0_Angle,bool Increase_Delta_R, bool Kill_Far_Clusters,bool Jet_Et_Min_On_Iter, float Far_Ratio,float Eitem_Negdrop,float Et_Min_Ratio ): _CONErad(fabs(CONErad)), _JETmne(JETmne), _SPLifr(SPLifr), _TWOrad(TWOrad), _D0_Angle(D0_Angle), _Increase_Delta_R(Increase_Delta_R), _Kill_Far_Clusters(Kill_Far_Clusters), _Jet_Et_Min_On_Iter(Jet_Et_Min_On_Iter), _Far_Ratio(Far_Ratio), _Eitem_Negdrop(Eitem_Negdrop), _Et_Min_Ratio(Et_Min_Ratio), _Thresh_Diff_Et(Tresh_Diff_Et) {} //destructor ~ConeClusterAlgo() {} //to make jet clusters using cone algorithm void makeClusters(//const EnergyClusterReco* r, std::list &jets, list &itemlist, float Zvertex //, const EnergyClusterCollection &preclu, //CalIClusterChunk* chunkptr //) const; ); //print parameters of the algorithm void print(ostream &os)const; //vector< TemporaryJet > TempColl; private : float _CONErad; float _JETmne; float _SPLifr; float _TWOrad; bool _D0_Angle; bool _Increase_Delta_R; bool _Kill_Far_Clusters; bool _Jet_Et_Min_On_Iter; float _Far_Ratio; float _Eitem_Negdrop; float _Et_Min_Ratio; float _Thresh_Diff_Et; class TemporaryJet { public: TemporaryJet() {} TemporaryJet(float eta,float phi) { _Eta=eta; _Phi=phi; } ~TemporaryJet() {} void addItem(const CalItem* tw) { _LItems.push_back(tw); } void setEtaPhiEt(float eta,float phi,float pT) { _Eta= eta; _Phi= phi; _Et = pT; } void erase() { _LItems.erase(_LItems.begin(),_LItems.end()); _Eta= 0.0; _Phi= 0.0; _Et = 0.0; } bool share_jets(TemporaryJet &NewJet,float SharedFr,float SPLifr) { // // combined // if(SharedFr >= SPLifr) { typename list::iterator it; typename list::iterator end_of_old=_LItems.end(); for(it=NewJet._LItems.begin(); it!=NewJet._LItems.end(); it++) { typename list::iterator where = find(_LItems.begin(),end_of_old,*it); // if the item is not shared, add to this jet if(where == end_of_old) { _LItems.push_back(*it); } } NewJet.erase(); return false; } else { // // split // typename list::iterator it; for(it=NewJet._LItems.begin(); it!=NewJet._LItems.end(); ) { typename list::iterator where = find(_LItems.begin(),_LItems.end(),*it); if(where != _LItems.end()) { //float EtaItem=(*it)->eta(); //float PhiItem=(*it)->phi(); // stay closer to the RUNI conventions for negative E cells float pz[4]; (*it)->p4vec(pz); float EtaItem= E2eta(pz); float PhiItem= E2phi(pz); float RadOld=R2_bis(_Eta,_Phi,EtaItem,PhiItem); float RadNew=R2_bis(NewJet.Eta(),NewJet.Phi(),EtaItem,PhiItem); if (RadNew > RadOld) { it = NewJet._LItems.erase(it); } else { _LItems.erase(where); ++it; } } else ++it; } return true; } } float dist_R2(TemporaryJet &jet) const { float deta= _Eta-jet.Eta(); //float dphi= kinem::delta_phi(_Phi,jet.Phi()); float dphi= inline_maths::delta_phi(_Phi,jet.Phi()); return (deta*deta+dphi*dphi); } bool ItemInJet(const CalItem* tw) const { typename list::const_iterator where= find(_LItems.begin(),_LItems.end(),tw); if(where != _LItems.end()) return true; else return false; } bool updateEtaPhiEt() { float ETsum = 0.0; float ETAsum= 0.0; float PHIsum= 0.0; float Esum= 0.0; typename list::iterator it; for(it=_LItems.begin(); it!=_LItems.end(); it++) { float ETk = (*it)->pT(); // now done in CalCell/CalTower if((*it)->E() < 0.0) ETk= -ETk; //float ETAk= (*it)->eta(); //float PHIk= (*it)->phi(); float pz[4]; (*it)->p4vec(pz); float ETAk= E2eta(pz); // take care of the phi=0=2pi problem float PHIk= E2phi(pz); //if(fabs(PHIk-_Phi) > kinem::TWOPI-fabs(PHIk-_Phi)) if(fabs(PHIk-_Phi) > inline_maths::TWOPI-fabs(PHIk-_Phi)) { if(_Phi < PHIk) { //PHIk -= kinem::TWOPI; PHIk -= inline_maths::TWOPI; } else { //PHIk += kinem::TWOPI; PHIk += inline_maths::TWOPI; } } ETAsum+= ETAk*ETk; PHIsum+= PHIk*ETk; ETsum += ETk; // Esum+=(*it)->E(); use 4-momentum components Esum+= pz[3]; } if(ETsum <= 0.0) { _Eta= 0.0; _Phi= 0.0; _Et = 0.0; _E=0.; return false; } else { _Eta= ETAsum/ETsum; _Phi= PHIsum/ETsum; //if ( _Phi<0 ) _Phi+=kinem::TWOPI; if ( _Phi<0 ) _Phi+=inline_maths::TWOPI; _Et = ETsum; _E = Esum; return true; } } void D0_Angle_updateEtaPhi() { float EXsum = 0.0; float EYsum = 0.0; float EZsum = 0.0; typename list::iterator it; for(it=_LItems.begin(); it!=_LItems.end(); it++) { float p[4]; (*it)->p4vec(p); EXsum += p[0]; EYsum += p[1]; EZsum += p[2]; } //_Phi=kinem::phi(EYsum,EXsum); _Phi=inline_maths::phi(EYsum,EXsum); //_Eta=kinem::eta(EXsum,EYsum,EZsum); _Eta=inline_maths::eta(EXsum,EYsum,EZsum); } void getItems(list &ecv) const { ecv.clear(); //ls 27/Feb/2010 typename list::const_iterator it; for(it=_LItems.begin(); it!=_LItems.end(); it++) { ecv.push_back(*it); } } float Eta() {return _Eta;} float Phi() {return _Phi;} float Et() {return _Et;} float E() {return _E;} list &LItems() {return _LItems;} private: list _LItems; float _Eta; float _Phi; float _Et; float _E; }; //class TemporaryJet void getItemsInCone(list &tlist, float etaJet, float phiJet, float cone_radius, float zvertex_in) const; void getItemsInCone_bis(list &tlist, float etaJet, float phiJet,float cone_radius, float zvertex_in) const; public: vector< TemporaryJet > TempColl; }; ///////////////////////////////////////////////////////// //template < class CalItem,class CalItemAddress,class CalIClusterChunk > template < class CalItem > //void ConeClusterAlgo :: void ConeClusterAlgo :: getItemsInCone(list &tlist, float etaJet, float phiJet, float cone_radius, float zvertex_in) const { // // provide the list of Items (towers, Cells...) containing the energy from a // jet of a given cone size // float ZVERTEX_MAX=200.; float DMIN=80.; float DMAX=360.; float THETA_margin=0.022; float zvertex=zvertex_in; float d1,d2; float phi_d1, phi_d2; float theta_E1, r1, r2, z1, z2; float theta_d1, theta_d2, eta_d1, eta_d2; // Ignore very large vertex positions if (fabs(zvertex) > ZVERTEX_MAX ) zvertex=0.0; if (zvertex >=0. ) { d1=fabs(DMIN-zvertex); d2=fabs(DMAX+zvertex); } else { d1=fabs(DMAX-zvertex); d2=fabs(DMIN+zvertex); } // calculate theta of physics cone and find which eta's this intercepts // a the maximum points phi_d1 = phiJet+cone_radius; //theta_E1 = kinem::theta(etaJet+cone_radius); theta_E1 = inline_maths::theta(etaJet+cone_radius); z1 = zvertex+d1*cos(theta_E1); r1 = d1*sin(theta_E1); phi_d2 = phiJet-cone_radius; //theta_E1 = kinem::theta(etaJet-cone_radius); theta_E1 = inline_maths::theta(etaJet-cone_radius); z2 = zvertex+d2*cos(theta_E1); r2 = d2*sin(theta_E1); // maximum spread in detector theta theta_d1 = atan2(r1, z1); theta_d2 = atan2(r2, z2); // make sure they stay in the calorimeter theta_d1=max(theta_d1, THETA_margin); theta_d2=max(theta_d2, THETA_margin); //theta_d1=min(kinem::PI-(double)THETA_margin, (double)theta_d1); theta_d1=min(inline_maths::PI-(double)THETA_margin, (double)theta_d1); //theta_d2=min(kinem::PI-(double)THETA_margin, (double)theta_d2); theta_d2=min(inline_maths::PI-(double)THETA_margin, (double)theta_d2); //eta_d1 = kinem::eta(theta_d1); eta_d1 = inline_maths::eta(theta_d1); //eta_d2 = kinem::eta(theta_d2); eta_d2 = inline_maths::eta(theta_d2); typename list::iterator it; for (it=tlist.begin() ; it != tlist.end() ; ) { //float eta_cur= (*it)->eta(); //float phi_cur= (*it)->phi(); float pz[4]; (*it)->p4vec(pz); float eta_cur= E2eta(pz); float phi_cur= E2phi(pz); bool accepted = eta_cur < eta_d1 && eta_cur > eta_d2; //if ( phi_d2>0 && phi_d10 && phi_d1phi_d2; } else{ // case the cone overlap the phi=0=2pi line if ( phi_d2>0 ){ accepted = accepted && //((phi_cur>phi_d2 && phi_curphi_d2 && phi_cur0) || phi_cur>phi_d2+kinem::TWOPI); ((phi_cur0) || phi_cur>phi_d2+inline_maths::TWOPI); } } if ( ! accepted ) it = tlist.erase(it); else ++it; } } ///////////////////////////////////////////////////////// //template < class CalItem,class CalItemAddress,class CalIClusterChunk > template < class CalItem > //void ConeClusterAlgo :: void ConeClusterAlgo :: getItemsInCone_bis(list &tlist, float etaJet, float phiJet, float cone_radius, float zvertex_in) const { // // provide the list of Items (towers, Cells...) containing the energy from a // jet of a given cone size // // WARNING: this is only to be used to compare to RUN I cone jets // float ZVERTEX_MAX=200.; float DMIN=80.; float DMAX=360.; float THETA_margin=0.022; float zvertex=zvertex_in; float d1,d2; float phi_d1, phi_d2; float theta_E1, r1, r2, z1, z2; float theta_d1, theta_d2, eta_d1, eta_d2; // Ignore very large vertex positions if (fabs(zvertex) > ZVERTEX_MAX ) zvertex=0.0; if (zvertex >=0. ) { d1=fabs(DMIN-zvertex); d2=fabs(DMAX+zvertex); } else { d1=fabs(DMAX-zvertex); d2=fabs(DMIN+zvertex); } // calculate theta of physics cone and find which eta's this intercepts // a the maximum points phi_d1 = phiJet+cone_radius; //theta_E1 = kinem::theta(etaJet+cone_radius); theta_E1 = inline_maths::theta(etaJet+cone_radius); z1 = zvertex+d1*cos(theta_E1); r1 = d1*sin(theta_E1); phi_d2 = phiJet-cone_radius; //theta_E1 = kinem::theta(etaJet-cone_radius); theta_E1 = inline_maths::theta(etaJet-cone_radius); z2 = zvertex+d2*cos(theta_E1); r2 = d2*sin(theta_E1); // maximum spread in detector theta theta_d1 = atan2(r1, z1); theta_d2 = atan2(r2, z2); // make sure they stay in the calorimeter theta_d1=max(theta_d1, THETA_margin); theta_d2=max(theta_d2, THETA_margin); //theta_d1=min(kinem::PI-(double)THETA_margin, (double)theta_d1); theta_d1=min(inline_maths::PI-(double)THETA_margin, (double)theta_d1); //theta_d2=min(kinem::PI-(double)THETA_margin, (double)theta_d2); theta_d2=min(inline_maths::PI-(double)THETA_margin, (double)theta_d2); //eta_d1 = kinem::eta(theta_d1); eta_d1 = inline_maths::eta(theta_d1); //eta_d2 = kinem::eta(theta_d2); eta_d2 = inline_maths::eta(theta_d2); float signe; if( eta_d1>=0.0 ) signe= 1.0; else signe= -1.0; int ietaMAX= eta_d1/0.1+signe; if(fabs(eta_d1)>=4.45) ietaMAX= 37*signe; else if(fabs(eta_d1)>=4.1) ietaMAX= 36*signe; else if(fabs(eta_d1)>=3.7) ietaMAX= 35*signe; else if(fabs(eta_d1)>=3.42) ietaMAX= 34*signe; else if(fabs(eta_d1)>=3.2) ietaMAX= 33*signe; if( eta_d2>=0.0 ) signe= 1.0; else signe= -1.0; int ietaMIN= eta_d2/0.1+signe; if(fabs(eta_d2)>=4.45) ietaMIN= 37*signe; else if(fabs(eta_d2)>=4.1) ietaMIN= 36*signe; else if(fabs(eta_d2)>=3.7) ietaMIN= 35*signe; else if(fabs(eta_d2)>=3.42) ietaMIN= 34*signe; else if(fabs(eta_d2)>=3.2) ietaMIN= 33*signe; //int iphiMAX= 64*phi_d1/(2.*kinem::PI)+1; int iphiMAX= 64*phi_d1/(2.*inline_maths::PI)+1; //int iphiMIN= 64*phi_d2/(2.*kinem::PI)+1; int iphiMIN= 64*phi_d2/(2.*inline_maths::PI)+1; typename list::iterator it; for (it=tlist.begin() ; it != tlist.end() ; ) { //float eta_cur= (*it)->eta(); //float phi_cur= (*it)->phi(); int ieta= (*it)->address().ieta(); int iphi= (*it)->address().iphi(); bool accepted = ietaietaMIN; if ( iphiMIN>0 && iphiMAX<=64 ) { accepted = accepted && iphiiphiMIN; } else{ // case the cone overlap the phi=0=2pi line if ( iphiMIN>0 ){ accepted = accepted && ((iphi>iphiMIN && iphi<=64) || iphi0) || iphi>iphiMIN+64); } } if ( ! accepted ) it = tlist.erase(it); else ++it; } } ///////////////////////////////////////////////////////// //template < class CalItem,class CalItemAddress,class CalIClusterChunk > template < class CalItem > //inline void ConeClusterAlgo :: inline void ConeClusterAlgo :: print(ostream &os) const { os< >::iterator kj; for(kj=LTrack.begin(); kj!=LTrack.end(); kj++) { if(DELTA_r((*kj).first,ETAst,(*kj).second,PHIst)<_Far_Ratio*_CONErad) { nojets= true; //cout << "seed too close ! skip " << endl; break; } } } if( nojets==false ) { TemporaryJet TJet(ETAst,PHIst); list< pair > JETshare; // start of cone building loop int trial= 0; do{ trial++; //cout << " trial " << trial << endl; ETAst= TJet.Eta(); PHIst= TJet.Phi(); TJet.erase(); //if(PHIst > kinem::TWOPI) PHIst= PHIst-kinem::TWOPI; if(PHIst > inline_maths::TWOPI) PHIst= PHIst-inline_maths::TWOPI; //if(PHIst < 0.0 ) PHIst= PHIst+kinem::TWOPI; if(PHIst < 0.0 ) PHIst= PHIst+inline_maths::TWOPI; //if( PHIst>kinem::TWOPI || PHIst<0.0 ) { if( PHIst>inline_maths::TWOPI || PHIst<0.0 ) { TJet.setEtaPhiEt(0.0,0.0,0.0); break; // end loop do (illegal jet PHI) } TJet.setEtaPhiEt(ETAst,PHIst,0.0); // calculate eta & phi limits for cone list Twlist(itemlist); getItemsInCone(Twlist,ETAst,PHIst,_CONErad,Zvertex); // only to compare with RUN I cone jets ! getItemsInCone_bis(Twlist,ETAst,PHIst,_CONErad,Zvertex); // loop over the possible items for this cone typename list::iterator tk; for( tk= Twlist.begin(); tk!=Twlist.end(); tk++ ) { float ETk =(*tk)->pT(); // now done in CalCell/CalTower if((*tk)->E() < 0.0) ETk= -ETk; if( ETk > _Eitem_Negdrop ) { //float ETAk=(*tk)->eta(); //float PHIk=(*tk)->phi(); float pz[4]; (*tk)->p4vec(pz); float ETAk= E2eta(pz); float PHIk= E2phi(pz); float dphi= fabs(PHIk-PHIst); //if(dphi > kinem::TWOPI-dphi) { if(dphi > inline_maths::TWOPI-dphi) { //if(PHIst < PHIk) PHIk= PHIk-kinem::TWOPI; if(PHIst < PHIk) PHIk= PHIk-inline_maths::TWOPI; //else PHIk= PHIk+kinem::TWOPI; else PHIk= PHIk+inline_maths::TWOPI; } if( R2_bis(ETAk,PHIk,ETAst,PHIst) <= _CONErad*_CONErad ) { TJet.addItem(*tk); } } }// end loop tk if(TJet.updateEtaPhiEt()==false) { //cout << " negative E jet ! drop " << endl; break; } // require some minimum ET on every iteration if(_Jet_Et_Min_On_Iter) { if( TJet.Et() < _JETmne*_Et_Min_Ratio ) { //cout << " too low ET jet ! drop " << endl; break; // end loop trial } } //cout << " R2 = " << R2_bis(TJet.Eta(),TJet.Phi(),ETAst,PHIst) << // " Rcut = " << Rcut << endl; }while(R2_bis(TJet.Eta(),TJet.Phi(),ETAst,PHIst)>=Rcut && trial<=50); if( TJet.Et() >= _JETmne ) { //cout << " jet accepted will check for overlaps " << endl; if(_D0_Angle) TJet.D0_Angle_updateEtaPhi(); //cout << " after TJet.D0_Angle_updateEtaPhi() " << endl; // item also in another jet list Lst; TJet.getItems(Lst); typename list::iterator tk; for(tk=Lst.begin(); tk!=Lst.end(); tk++) { float ETk=(*tk)->pT(); // now done in CalCell/CalTower if((*tk)->E() < 0.0) ETk= -ETk; for(unsigned int kj=0; kj >::iterator pit; bool jetok= false; for(pit=JETshare.begin(); pit!=JETshare.end();pit++) { if((*pit).first == (int) kj) { jetok= true; (*pit).second+= ETk; break; } } if(jetok==false) JETshare.push_back(make_pair(kj,ETk)); } } } if(JETshare.size() >0) { list< pair >::iterator pit; float Ssum= 0.0; list< pair >::iterator pitMAX=JETshare.begin(); for(pit=JETshare.begin(); pit!=JETshare.end(); pit++) { Ssum+= (*pit).second; if((*pit).second > (*pitMAX).second) pitMAX= pit; } //int IJET= (*pitMAX).first; bool splshr; float Eleft= fabs(TJet.Et()-Ssum); float Djets= TempColl[(*pitMAX).first].dist_R2(TJet); if(Djets <= _TWOrad || Eleft <= _Thresh_Diff_Et) { TJet.erase(); splshr= false; } else { float SharedFr=Ssum/min(TempColl[(*pitMAX).first].Et(),TJet.Et()); if(JETshare.size() >1) { typename list::iterator tk; for(tk=TJet.LItems().begin(); tk!=TJet.LItems().end(); ) { bool found = false; list< pair >::iterator pit; for(pit=JETshare.begin(); pit!=JETshare.end();pit++) { if((*pit).first!=(*pitMAX).first) { if(TempColl[(*pit).first].ItemInJet(*tk)==true) { tk = TJet.LItems().erase(tk); found = true; break; } } } if ( !found ) ++tk; } } splshr= TempColl[(*pitMAX).first].share_jets(TJet,SharedFr,_SPLifr); if( splshr==true ) { //cout << " jet splitted due to overlaps " << endl; TempColl[(*pitMAX).first].updateEtaPhiEt(); TJet.updateEtaPhiEt(); if(_D0_Angle) TJet.D0_Angle_updateEtaPhi(); if(_D0_Angle) TempColl[(*pitMAX).first].D0_Angle_updateEtaPhi(); TempColl.push_back(TJet); LTrack.push_back(make_pair(TJet.Eta(),TJet.Phi())); } else { //cout << " jet merged due to overlaps " << endl; TempColl[(*pitMAX).first].updateEtaPhiEt(); if(_D0_Angle) TempColl[(*pitMAX).first].D0_Angle_updateEtaPhi(); } } } else { TJet.updateEtaPhiEt(); if(_D0_Angle) TJet.D0_Angle_updateEtaPhi(); TempColl.push_back(TJet); LTrack.push_back(make_pair(TJet.Eta(),TJet.Phi())); } } //JETmne } //nojets }// end loop jclu for(unsigned int i=0; i* ptrclu; CalItem ptrclu; //r->createCluster(ptrcol,ptrclu); list Vi; TempColl[i].getItems(Vi); typename list::iterator it; for(it=Vi.begin(); it!=Vi.end(); it++) { const CalItem* ptr= *it; //CalItemAddress addr= ptr->address(); float p[4]; ptr->p4vec(p); //float emE= ptr->emE(); //r->addClusterItem(ptrclu,addr,p,emE); ptrclu.Add(*ptr); } jets.push_back(ptrclu); } }// end } //namespace d0runi FASTJET_END_NAMESPACE #endif // CONECLUSTERALGO_H fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/makefile.static0000644000175000017500000000120211766120134021543 0ustar sunsun# common fastjet definitions include ../../makefile.static CXXSRC = D0RunIBaseConePlugin.cc OBJS = $(patsubst %.cc,%.o,$(CXXSRC)) # fastjet includes FASTJET_INCLUDE = -I../../include INCLUDE += $(FASTJET_INCLUDE) -I. -Wall -g all: libD0RunIConePlugin.a libD0RunIConePlugin.a: $(OBJS) ar cru libD0RunIConePlugin.a $(OBJS) ranlib libD0RunIConePlugin.a clean: rm -f $(OBJS) distclean: clean rm -f libD0RunIConePlugin.a *~ # NB: only use "relative" includes here (others are too subject # to change according to the system one is on...) depend: makedepend -f makefile.static $(FASTJET_INCLUDE) -I. -I./fastjet -- -- $(CXXSRC) fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/inline_maths.h0000644000175000017500000000554211766120134021413 0ustar sunsun#ifndef INLINE_MATHS #define INLINE_MATHS // This file is distributed with FastJet under the terms of the GNU // General Public License (v2). Permission to do so has been granted // by Lars Sonnenschein and the D0 collaboration (see COPYING for // details) // // History of changes in FastJet compared tothe original version of // inline_math.h // // 2011-12-13 Gregory Soyez // // * added license information // // 2011-10-06 Gregory Soyez // // * put the code in the fastjet::d0runi namespace #include #include #include FASTJET_BEGIN_NAMESPACE //using namespace std; namespace d0runi{ namespace inline_maths { const double PI = fabs(acos(-1.)); const double TWOPI = 2*PI; inline double sqr(double a) { return a*a; } inline double min(double a, double b) { return (a < b) ? a : b; } inline double delta_phi(double phi1, double phi2) { double dphi = min( double(fabs(phi1-phi2)), double(2.*PI-fabs(phi1-phi2)) ); return (phi1 < phi2) ? -dphi : dphi; } inline double phi(double px, double py) { return atan2(py, px); } inline double y(double E, double pz) { errno=0; double y; //cout << "inline_maths: "; if (fabs(E-pz) == 0.) { // cout << "Error in header mathe.h: division by 0 in function y!" << " p=" << p << " pz=" << pz << endl; // exit(721); errno=721; y = 99999.; } else { y = 0.5*log((E+pz)/(E-pz)); } //cout << "y: E=" << E << " pz=" << pz << " y=" << y << endl; return y; } inline double eta(double p, double pz) { errno=0; double eta; //cout << "inline_maths: "; if (fabs(p-pz) == 0.) { // cout << "Error in header mathe.h: division by 0 in function eta!" << " p=" << p << " pz=" << pz << endl; // exit(721); errno=721; eta = 99999.; } else { eta = 0.5*log((p+pz)/(p-pz)); } //cout << "eta: p=" << p << " pz=" << pz << " eta=" << eta << endl; return eta; } inline double eta(double px, double py, double pz) { errno=0; double eta; //cout << "inline_maths: "; double p = sqrt(px*px+py*py+pz*pz); if (fabs(p-pz) == 0.) { // cout << "Error in header mathe.h: division by 0 in function eta!" << " p=" << p << " pz=" << pz << endl; // exit(721); errno=721; eta = 99999.; } else { eta = 0.5*log((p+pz)/(p-pz)); } //cout << "eta: p=" << p << " pz=" << pz << " eta=" << eta << endl; return eta; } inline double eta(double theta) { double eta = -log(tan(theta/2.)); return eta; } inline double theta(double eta) { double theta = 2.*atan(exp(-eta)); return theta; } inline double theta(double px, double py, double pz) { double Eta = eta(px, py, pz); double theta = 2.*atan(exp(-Eta)); return theta; } } //end usename inline_maths } //end usename d0runi FASTJET_END_NAMESPACE #endif fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/fastjet/0000755000175000017500000000000012233507301020215 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/D0RunICone/fastjet/D0RunIpre96ConePlugin.hh0000644000175000017500000000723311766120134024463 0ustar sunsun#ifndef __D0RUNIPRE96CONEPLUGIN_HH__ #define __D0RUNIPRE96CONEPLUGIN_HH__ //STARTHEADER // $Id: D0RunIpre96ConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ // // Copyright (c) 2009-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/D0RunIBaseConePlugin.hh" // questionable whether this should be in fastjet namespace or not... FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // /// @ingroup plugins /// \class D0RunIpre96ConePlugin /// /// A plugin for FastJet (v3.0 or later) that provides an interface to /// the pre 1996 D0 version of Run-I cone algorithm /// /// The D0 code has been obtained from Lars Sonnenschein's web-space /// http://www-d0.fnal.gov/~sonne/D0RunIcone.tgz /// /// The version of the D0 Run I code distributed /// here has been modified by the FastJet authors, so as to provide /// access to the contents of the jets (as is necessary for the /// plugin). This does not modify the results of the clustering. /// /// The difference between this algorithm and the post-1996 version /// relates to the way the final jet momenta are calculated. Details /// are to be found in FERMILAB-PUB-97-242-E. // //---------------------------------------------------------------------- class D0RunIpre96ConePlugin : public D0RunIBaseConePlugin { public: /// The D0RunIpre96ConePlugin constructor, which sets the "free" parameters of the /// algorithm: /// /// \param CONErad is the cone radius /// /// \param JETmne is a minimum ET requirement on every iteration /// (jet dropped if Et < JETmne * Et_min_ratio ). /// The value that has been used by D0 for JETmne: 8 GeV /// (and Et_min_ratio is 0.5) /// /// \param SPlifr is the shared Et fraction splitting threshold, and /// a value of 0.5 was usually used by D0 /// /// The remaining parameters of the algorithm are not to be modified if the algorithm /// is to correspond to the one actually used by D0. /// /// D0RunIpre96ConePlugin (double CONErad_in, double JETmne_in , double SPLifr_in = _DEFAULT_SPLifr) : D0RunIBaseConePlugin(CONErad_in, JETmne_in , SPLifr_in){} // the things that are required by base class virtual std::string description () const; // the part that really does the clustering virtual void run_clustering(ClusterSequence &) const; private: static bool _first_time; /// print a banner for reference to the 3rd-party code void _print_banner(std::ostream *ostr) const; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __D0RUNIPRE96CONEPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/fastjet/D0RunIConePlugin.hh0000644000175000017500000000715111766120134023574 0ustar sunsun#ifndef __D0RUNICONEPLUGIN_HH__ #define __D0RUNICONEPLUGIN_HH__ //STARTHEADER // $Id: D0RunIConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ // // Copyright (c) 2009-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/D0RunIBaseConePlugin.hh" // questionable whether this should be in fastjet namespace or not... FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // /// @ingroup plugins /// \class D0RunIConePlugin /// /// A plugin for FastJet (v3.0 or later) that provides an interface to /// the D0 version of Run-I cone algorithm /// /// The D0 code has been obtained from Lars Sonnenschein's web-space /// http://www-d0.fnal.gov/~sonne/D0RunIcone.tgz /// /// The version of the D0 Run I code distributed /// here has been modified by the FastJet authors, so as to provide /// access to the contents of the jets (as is necessary for the /// plugin). This does not modify the results of the clustering. /// /// The difference between this algorithm and the post-1996 version /// relates to the way the final jet momenta are calculated. Details /// are to be found in FERMILAB-PUB-97-242-E. // //---------------------------------------------------------------------- class D0RunIConePlugin : public D0RunIBaseConePlugin { public: /// The D0RunIConePlugin constructor, which sets the "free" parameters of the /// algorithm: /// /// \param CONErad is the cone radius /// /// \param JETmne is a minimum ET requirement on every iteration /// (jet dropped if Et < JETmne * Et_min_ratio ). /// The value that has been used by D0 for JETmne: 8 GeV /// (and Et_min_ratio is 0.5) /// /// \param SPlifr is the shared Et fraction splitting threshold, and /// a value of 0.5 was usually used by D0 /// /// The remaining parameters of the algorithm are not to be modified if the algorithm /// is to correspond to the one actually used by D0. /// D0RunIConePlugin (double CONErad_in, double JETmne_in , double SPLifr_in = _DEFAULT_SPLifr) : D0RunIBaseConePlugin(CONErad_in, JETmne_in , SPLifr_in){} // the things that are required by base class virtual std::string description () const; // the part that really does the clustering virtual void run_clustering(ClusterSequence &) const; private: static bool _first_time; /// print a banner for reference to the 3rd-party code void _print_banner(std::ostream *ostr) const; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __D0RUNICONEPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/fastjet/Makefile.in0000644000175000017500000003434312233506214022273 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/D0RunICone/fastjet DIST_COMMON = $(fastjetinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(fastjetincludedir)" HEADERS = $(fastjetinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fastjetincludedir = $(includedir)/fastjet fastjetinclude_HEADERS = D0RunIBaseConePlugin.hh D0RunIpre96ConePlugin.hh D0RunIConePlugin.hh all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/D0RunICone/fastjet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/D0RunICone/fastjet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fastjetincludeHEADERS: $(fastjetinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludedir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludedir)" @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludedir)" || exit $$?; \ done uninstall-fastjetincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(fastjetincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fastjetincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fastjetincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-fastjetincludeHEADERS install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-fastjetincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/fastjet/D0RunIBaseConePlugin.hh0000644000175000017500000001566711766120134024402 0ustar sunsun#ifndef __D0RUNIBASECONEPLUGIN_HH__ #define __D0RUNIBASECONEPLUGIN_HH__ //STARTHEADER // $Id: D0RunIBaseConePlugin.hh 1778 2010-10-25 10:02:58Z soyez $ // // Copyright (c) 2009-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/JetDefinition.hh" // questionable whether this should be in fastjet namespace or not... FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // /// @ingroup internal /// \class D0RunIBaseConePlugin /// /// D0RunIBaseConePlugin is base class for a plugin for FastJet (v3.0 or later) /// that provides an interface to the D0 version of Run-I cone algorithm /// /// Note that this base class is purely virtual and thus needs to be /// overloaded. In practice this means that you should use one of /// D0RunIConePlugin or D0RunIpre96ConePlugin. /// /// The D0 code has been obtained from Lars Sonnenschein's web-space /// http://www-d0.fnal.gov/~sonne/D0RunIcone.tgz /// /// The version of the D0 Run I code distributed here has been /// modified by the FastJet authors, so as to provide access to the /// contents of the jets (as is necessary for the plugin). This does /// not modify the results of the clustering. // //---------------------------------------------------------------------- class D0RunIBaseConePlugin : public JetDefinition::Plugin { public: /// A D0RunIConePlugin constructor which sets the "free" parameters of the /// algorithm: /// /// \param CONErad is the cone radius /// /// \param JETmne is a minimum ET requirement on every iteration /// (jet dropped if Et < JETmne * Et_min_ratio ). /// The value that has been used by D0 for JETmne: 8 GeV /// (and Et_min_ratio is 0.5) /// /// \param SPlifr is the shared Et fraction splitting threshold, and /// a value of 0.5 was usually used by D0 /// /// The remaining parameters of the algorithm are not to be modified if the algorithm /// is to correspond to the one actually used by D0. D0RunIBaseConePlugin (double CONErad_in, double JETmne_in, double SPLifr_in = _DEFAULT_SPLifr) : _CONErad (CONErad_in ), _JETmne (JETmne_in ), _SPLifr (SPLifr_in ), _TWOrad (_DEFAULT_TWOrad ), _D0_Angle (_DEFAULT_D0_Angle ), _Increase_Delta_R (_DEFAULT_Increase_Delta_R ), _Kill_Far_Clusters (_DEFAULT_Kill_Far_Clusters ), _Jet_Et_Min_On_Iter(_DEFAULT_Jet_Et_Min_On_Iter), _Far_Ratio (_DEFAULT_Far_Ratio ), _Eitem_Negdrop (_DEFAULT_Eitem_Negdrop ), _Et_Min_Ratio (_DEFAULT_Et_Min_Ratio ), _Thresh_Diff_Et (_DEFAULT_Thresh_Diff_Et ){} // some functions to return info about parameters inline double CONErad () const { return _CONErad ;} //= 0.7; inline double JETmne () const { return _JETmne ;} //= 8.0; inline double SPLifr () const { return _SPLifr ;} // =0.5; inline double TWOrad () const { return _TWOrad ;} //= 0.; inline bool D0_Angle () const { return _D0_Angle ;} // =false; inline bool Increase_Delta_R () const { return _Increase_Delta_R ;} // =true; inline bool Kill_Far_Clusters () const { return _Kill_Far_Clusters ;} // =true; inline bool Jet_Et_Min_On_Iter() const { return _Jet_Et_Min_On_Iter;} // =true; inline double Far_Ratio () const { return _Far_Ratio ;} // =0.5; inline double Eitem_Negdrop () const { return _Eitem_Negdrop ;} // =-1.0; inline double Et_Min_Ratio () const { return _Et_Min_Ratio ;} // =0.5; inline double Thresh_Diff_Et () const { return _Thresh_Diff_Et ;} // =0.01; /// access the split_ratio() also by the name overlap_threshold() inline double overlap_threshold() const {return SPLifr();} // the things that are required by base class virtual std::string description () const = 0; // the part that really does the clustering virtual void run_clustering(ClusterSequence &) const = 0; /// the plugin mechanism's standard way of accessing the jet radius virtual double R() const {return CONErad();} protected: template void run_clustering_worker(ClusterSequence &) const; //private: double _CONErad ;//= 0.7 double _JETmne ;//= 8. //the parameters below have been found to be set to the values given below //in the original implementation, shouldn't be altered double _SPLifr ; //=0.5 double _TWOrad ; //=0. bool _D0_Angle ; //=false bool _Increase_Delta_R ; //=true bool _Kill_Far_Clusters ; //=true bool _Jet_Et_Min_On_Iter; //=true double _Far_Ratio ; //=0.5 double _Eitem_Negdrop ; //=-1.0 double _Et_Min_Ratio ; //=0.5 double _Thresh_Diff_Et ; //=0.01 // here are the variables for the default parameters of the D0 Run I Cone algorithm. // They are set in the .cc file const static double _DEFAULT_SPLifr ; // = 0.5; //shared Et fraction threshold const static double _DEFAULT_TWOrad ; // = 0.; //minimum Delta_R separation between cones const static bool _DEFAULT_D0_Angle ; // = false; const static bool _DEFAULT_Increase_Delta_R ; // = true; const static bool _DEFAULT_Kill_Far_Clusters ; // = true; const static bool _DEFAULT_Jet_Et_Min_On_Iter ; // = true; const static double _DEFAULT_Far_Ratio ; // = 0.5; const static double _DEFAULT_Eitem_Negdrop ; // = -1.0; const static double _DEFAULT_Et_Min_Ratio ; // = 0.5; const static double _DEFAULT_Thresh_Diff_Et ; // = 0.01; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __D0RUNIBASECONEPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/fastjet/Makefile.am0000644000175000017500000000020611766120134022254 0ustar sunsunfastjetincludedir=$(includedir)/fastjet fastjetinclude_HEADERS = D0RunIBaseConePlugin.hh D0RunIpre96ConePlugin.hh D0RunIConePlugin.hh fastjet-3.0.6+dfsg.orig/plugins/D0RunICone/Makefile.am0000644000175000017500000000057311766120134020623 0ustar sunsunSUBDIRS = fastjet . if MONOLITHIC_PLUGINS noinst_LTLIBRARIES = libD0RunIConePlugin.la else lib_LTLIBRARIES = libD0RunIConePlugin.la endif libD0RunIConePlugin_la_CXXFLAGS = ${AM_CXXFLAGS} -I$(srcdir) -I$(srcdir)/../../include libD0RunIConePlugin_la_SOURCES = D0RunIBaseConePlugin.cc EXTRA_DIST = makefile.static ConeClusterAlgo.hpp HepEntityI.h HepEntityIpre96.h inline_maths.h fastjet-3.0.6+dfsg.orig/plugins/GridJet/0000755000175000017500000000000012233507301016237 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/GridJet/Makefile.in0000644000175000017500000006064012233506215020315 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/GridJet DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) libGridJetPlugin_la_LIBADD = am_libGridJetPlugin_la_OBJECTS = libGridJetPlugin_la-GridJetPlugin.lo libGridJetPlugin_la_OBJECTS = $(am_libGridJetPlugin_la_OBJECTS) libGridJetPlugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libGridJetPlugin_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @MONOLITHIC_PLUGINS_FALSE@am_libGridJetPlugin_la_rpath = -rpath \ @MONOLITHIC_PLUGINS_FALSE@ $(libdir) @MONOLITHIC_PLUGINS_TRUE@am_libGridJetPlugin_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libGridJetPlugin_la_SOURCES) DIST_SOURCES = $(libGridJetPlugin_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = fastjet . @MONOLITHIC_PLUGINS_TRUE@noinst_LTLIBRARIES = libGridJetPlugin.la @MONOLITHIC_PLUGINS_FALSE@lib_LTLIBRARIES = libGridJetPlugin.la libGridJetPlugin_la_CXXFLAGS = ${AM_CXXFLAGS} -I$(srcdir) -I$(srcdir)/../../include libGridJetPlugin_la_SOURCES = GridJetPlugin.cc EXTRA_DIST = makefile.static all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/GridJet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/GridJet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libGridJetPlugin.la: $(libGridJetPlugin_la_OBJECTS) $(libGridJetPlugin_la_DEPENDENCIES) $(libGridJetPlugin_la_LINK) $(am_libGridJetPlugin_la_rpath) $(libGridJetPlugin_la_OBJECTS) $(libGridJetPlugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libGridJetPlugin_la-GridJetPlugin.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libGridJetPlugin_la-GridJetPlugin.lo: GridJetPlugin.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libGridJetPlugin_la_CXXFLAGS) $(CXXFLAGS) -MT libGridJetPlugin_la-GridJetPlugin.lo -MD -MP -MF $(DEPDIR)/libGridJetPlugin_la-GridJetPlugin.Tpo -c -o libGridJetPlugin_la-GridJetPlugin.lo `test -f 'GridJetPlugin.cc' || echo '$(srcdir)/'`GridJetPlugin.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libGridJetPlugin_la-GridJetPlugin.Tpo $(DEPDIR)/libGridJetPlugin_la-GridJetPlugin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='GridJetPlugin.cc' object='libGridJetPlugin_la-GridJetPlugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libGridJetPlugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libGridJetPlugin_la-GridJetPlugin.lo `test -f 'GridJetPlugin.cc' || echo '$(srcdir)/'`GridJetPlugin.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/GridJet/GridJetPlugin.cc0000644000175000017500000001512111766120134021262 0ustar sunsun//STARTHEADER // $Id: GridJetPlugin.cc 2268 2011-06-20 15:12:26Z salam $ // // Copyright (c) 2011, Matteo Cacciari, Gavin Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER // fastjet stuff #include "fastjet/ClusterSequence.hh" #include "fastjet/GridJetPlugin.hh" // other stuff #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //---------------------------------------------------------------------- GridJetPlugin::GridJetPlugin (double ymax, double requested_grid_spacing, const JetDefinition & post_jet_def) : _ymin(-ymax), _ymax(ymax), _requested_grid_spacing(requested_grid_spacing) , _post_jet_def(post_jet_def) { setup_grid(); } void GridJetPlugin::setup_grid() { // since we've exchanged the arguments of the constructor, // there's a danger of calls with exchanged ymax,spacing arguments -- // the following check should catch most such situations. assert(_ymax>0 && _ymax - _ymin >= _requested_grid_spacing); double ny_double = (_ymax-_ymin) / _requested_grid_spacing; _ny = int(ny_double+0.49999); _dy = (_ymax-_ymin) / _ny; _nphi = int (twopi / _requested_grid_spacing + 0.5); _dphi = twopi / _nphi; // some sanity checking (could throw a fastjet::Error) assert(_ny >= 1 && _nphi >= 1); _ntotal = _nphi * _ny; } //---------------------------------------------------------------------- string GridJetPlugin::description () const { ostringstream desc; desc << "GridJetPlugin plugin with ymax = " << _ymax << ", dy = " << _dy << ", dphi = " << _dphi << " (requested grid spacing was " << _requested_grid_spacing << ")"; if (_post_jet_def.jet_algorithm() != undefined_jet_algorithm) { desc << ", followed by " << _post_jet_def.description(); } return desc.str(); } //---------------------------------------------------------------------- double GridJetPlugin::R() const {return sqrt(_dy*_dphi/pi);} //---------------------------------------------------------------------- int GridJetPlugin::igrid(const PseudoJet & p) const { // directly taking int does not work for values between -1 and 0 // so use floor instead // double iy_double = (p.rap() - _ymin) / _dy; // if (iy_double < 0.0) return -1; // int iy = int(iy_double); // if (iy >= _ny) return -1; // writing it as below gives a huge speed gain (factor two!). Even // though answers are identical and the routine here is not the // speed-critical step. It's not at all clear why. int iy = int(floor( (p.rap() - _ymin) / _dy )); if (iy < 0 || iy >= _ny) return -1; int iphi = int( p.phi()/_dphi ); assert(iphi >= 0 && iphi <= _nphi); if (iphi == _nphi) iphi = 0; // just in case of rounding errors int igrid_res = iy*_nphi + iphi; assert (igrid_res >= 0 && igrid_res < _ny*_nphi); return igrid_res; } //---------------------------------------------------------------------- void GridJetPlugin::run_clustering(ClusterSequence & cs) const { // we will create a grid; // * -1 will indicate there is no jet here currently // * a number >= 0 will mean that particle indicated by the index // is currently the jet on the grid vector grid(_ntotal, -1); int nparticles = cs.jets().size(); double dij_or_diB = 1.0; int ngrid_active = 0; // combine particles with whatever is in the grid for (int i = 0; i < nparticles; i++) { int igrd = igrid(cs.jets()[i]); //cout << i << " " << cs.jets()[i].rap() << " " << cs.jets()[i].phi() // << " " << igrd << " " << grid.size() << " " << _ntotal << endl; if (igrd < 0) continue; assert(igrd <= _ntotal); if (grid[igrd] == -1) { grid[igrd] = i; // jet index of initial particle i is i ngrid_active++; } else { int k; cs.plugin_record_ij_recombination(grid[igrd], i, dij_or_diB, k); grid[igrd] = k; // grid takes jet index of new particle //cout << " res: " << cs.jets()[k].rap() << " " << cs.jets()[k].phi() << endl; } } if (_post_jet_def.jet_algorithm() == undefined_jet_algorithm) { // make the final jets via iB recombinations for (unsigned igrd = 0; igrd < grid.size(); igrd++) { if (grid[igrd] != -1) cs.plugin_record_iB_recombination(grid[igrd], dij_or_diB); } } else { // otherwise post-cluster the grid elements with a normal jet algorithm vector inputs; vector cs_indices; inputs.reserve(ngrid_active); cs_indices.reserve(2*ngrid_active); for (unsigned igrd = 0; igrd < grid.size(); igrd++) { if (grid[igrd] != -1) { inputs.push_back(cs.jets()[grid[igrd]]); cs_indices.push_back(grid[igrd]); } } ClusterSequence post_cs(inputs, _post_jet_def); const vector & post_history = post_cs.history(); const vector & post_jets = post_cs.jets(); for (unsigned ihist = ngrid_active; ihist < post_history.size(); ihist++) { const ClusterSequence::history_element & hist = post_history[ihist]; int post_ij1 = post_history[hist.parent1].jetp_index; int ij1 = cs_indices[post_ij1]; if (hist.parent2 >= 0) { int post_ij2 = post_history[hist.parent2].jetp_index; int ij2 = cs_indices[post_ij2]; int k; cs.plugin_record_ij_recombination(ij1, ij2, hist.dij, post_jets[hist.jetp_index], k); assert(int(cs_indices.size()) == hist.jetp_index); cs_indices.push_back(k); } else { cs.plugin_record_iB_recombination(ij1, hist.dij); } } } } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/plugins/GridJet/makefile.static0000644000175000017500000000114011766120134021226 0ustar sunsun# common fastjet definitions include ../../makefile.static CXXSRC = GridJetPlugin.cc OBJS = $(patsubst %.cc,%.o,$(CXXSRC)) # fastjet includes FASTJET_INCLUDE = -I../../include INCLUDE += $(FASTJET_INCLUDE) all: libGridJetPlugin.a libGridJetPlugin.a: $(OBJS) ar cru libGridJetPlugin.a $(OBJS) ranlib libGridJetPlugin.a clean: rm -f $(OBJS) distclean: clean rm -f libGridJetPlugin.a *~ # NB: only use "relative" includes here (others are too subject # to change according to the system one is on...) depend: makedepend -f makefile.static $(FASTJET_INCLUDE) -I. -I./fastjet -- -- $(CXXSRC) fastjet-3.0.6+dfsg.orig/plugins/GridJet/fastjet/0000755000175000017500000000000012233507301017677 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/GridJet/fastjet/GridJetPlugin.hh0000644000175000017500000000705112233501057022734 0ustar sunsun#ifndef __GRIDJETPLUGIN_HH__ #define __GRIDJETPLUGIN_HH__ //STARTHEADER // $Id: GridJetPlugin.hh 2267 2011-06-20 15:10:23Z salam $ // // Copyright (c) 2011, Matteo Cacciari, Gavin Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/JetDefinition.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // forward declaration to reduce includes class ClusterSequence; //---------------------------------------------------------------------- // /// @ingroup plugins /// \class GridJetPlugin /// plugin for fastjet (v3.0 upwards) that clusters particles such /// that all particles in a given cell of a rectangular rapidity-phi /// grid end up in a common "jet". /// /// This is not intended for use as a regular jet clustering algorithm, /// but is rather provided for comparison purposes with the /// GridMedianBackgroundEstimator (which is even faster). class GridJetPlugin : public JetDefinition::Plugin { public: /// Main constructor for the GridJetPlugin Plugin class. /// /// \param ymax The maximal rapidity extent of the grid /// \param requested_grid_spacing The requested grid spacing /// \param post_jet_def if present, and not == JetDefinition() /// (which has undefined_jet_algorithm), then /// run the post_jet_def on the result of the grid /// clustering. GridJetPlugin (double ymax, double requested_grid_spacing, const JetDefinition & post_jet_def = JetDefinition()); /// copy constructor GridJetPlugin (const GridJetPlugin & plugin) { *this = plugin; } // the things that are required by base class virtual std::string description () const; virtual void run_clustering(ClusterSequence &) const; /// This returns the sqrt(dphi*dy/pi) -- i.e. the radius that for a /// circular jet would give the same area. virtual double R() const; /// returns the actual rapidity spacing of the grid double drap() const {return _dy;} /// returns the actual phi spacing of the grid double dphi() const {return _dphi;} /// returns the minimum rapidity of the grid double rapmin() const {return _ymin;} /// returns the maximum rapidity of the grid double rapmax() const {return _ymax;} private: void setup_grid(); int igrid(const PseudoJet & p) const; double _ymin, _ymax, _dy, _dphi, _requested_grid_spacing; int _ny, _nphi, _ntotal; JetDefinition _post_jet_def; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __GRIDJETPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/GridJet/fastjet/Makefile.in0000644000175000017500000003424612233506215021760 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/GridJet/fastjet DIST_COMMON = $(fastjetinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(fastjetincludedir)" HEADERS = $(fastjetinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fastjetincludedir = $(includedir)/fastjet fastjetinclude_HEADERS = GridJetPlugin.hh all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/GridJet/fastjet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/GridJet/fastjet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fastjetincludeHEADERS: $(fastjetinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludedir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludedir)" @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludedir)" || exit $$?; \ done uninstall-fastjetincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(fastjetincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fastjetincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fastjetincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-fastjetincludeHEADERS install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-fastjetincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/GridJet/fastjet/Makefile.am0000644000175000017500000000012211766120134021733 0ustar sunsunfastjetincludedir=$(includedir)/fastjet fastjetinclude_HEADERS = GridJetPlugin.hh fastjet-3.0.6+dfsg.orig/plugins/GridJet/Makefile.am0000644000175000017500000000044611766120134020304 0ustar sunsunSUBDIRS = fastjet . if MONOLITHIC_PLUGINS noinst_LTLIBRARIES = libGridJetPlugin.la else lib_LTLIBRARIES = libGridJetPlugin.la endif libGridJetPlugin_la_CXXFLAGS = ${AM_CXXFLAGS} -I$(srcdir) -I$(srcdir)/../../include libGridJetPlugin_la_SOURCES = GridJetPlugin.cc EXTRA_DIST = makefile.static fastjet-3.0.6+dfsg.orig/plugins/makefile.static0000644000175000017500000000517511766120135017713 0ustar sunsun# makefile to speed up "making" of plugins # the plugins enabled by default default: cdfcones-lib siscone-lib jade-lib eecambridge-lib nesteddefs-lib # all cxx plugins (pxcone left out as it needs fortran ibs) allcxx: gridjet default atlas-lib cms-lib doruni-lib dorunii-lib trackjet-lib # all plugins all: allcxx pxcone-lib atlas-lib: cd ATLASCone && $(MAKE) -f makefile.static cdfcones-lib: cd CDFCones && $(MAKE) -f makefile.static cms-lib: cd CMSIterativeCone && $(MAKE) -f makefile.static doruni-lib: cd D0RunICone && $(MAKE) -f makefile.static dorunii-lib: cd D0RunIICone && $(MAKE) -f makefile.static eecambridge-lib: cd EECambridge && $(MAKE) -f makefile.static jade-lib: cd Jade && $(MAKE) -f makefile.static nesteddefs-lib: cd NestedDefs && $(MAKE) -f makefile.static pxcone-lib: cd PxCone && $(MAKE) -f makefile.static siscone-lib: cd SISCone && $(MAKE) -f makefile.static trackjet-lib: cd TrackJet && $(MAKE) -f makefile.static gridjet-lib: cd GridJet clean:clean: $(MAKE) -f makefile.static clean: cd GridJet clean:clean: $(MAKE) -f makefile.static $(MAKECMDGOALS) cd ATLASCone && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd CDFCones && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd CMSIterativeCone && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd D0RunICone && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd D0RunIICone && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd EECambridge && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd Jade && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd NestedDefs && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd PxCone && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd SISCone && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd TrackJet && $(MAKE) -f makefile.static $(MAKECMDGOALS) distclean: cd GridJet distclean:distclean: $(MAKE) -f makefile.static $(MAKECMDGOALS) cd ATLASCone && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd CDFCones && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd CMSIterativeCone && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd D0RunICone && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd D0RunIICone && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd EECambridge && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd Jade && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd NestedDefs && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd PxCone && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd SISCone && $(MAKE) -f makefile.static $(MAKECMDGOALS) cd TrackJet && $(MAKE) -f makefile.static $(MAKECMDGOALS) rm -f *~ fastjet-3.0.6+dfsg.orig/plugins/PxCone/0000755000175000017500000000000012233507303016105 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/PxCone/pxcone.h0000644000175000017500000000221511766120135017556 0ustar sunsun // actual physical parameters: // // coner // epsilon // ovlim extern "C" { #ifdef WIN32 void _stdcall PXCONE #else void pxcone_ #endif ( const int & mode , // 1=>e+e-, 2=>hadron-hadron const int & ntrak , // Number of particles const int & itkdm , // First dimension of PTRAK array: const double * ptrak , // Array of particle 4-momenta (Px,Py,Pz,E) const double & coner , // Cone size (half angle) in radians const double & epslon , // Minimum Jet energy (GeV) const double & ovlim , // Maximum fraction of overlap energy in a jet const int & mxjet , // Maximum possible number of jets int & njet , // Number of jets found double * pjet, // 5-vectors of jets int * ipass, // Particle k belongs to jet number IPASS(k)-1 // IPASS = -1 if not assosciated to a jet int * ijmul, // Jet i contains IJMUL[i] particles int & ierr // = 0 if all is OK ; = -1 otherwise ); } #ifdef WIN32 #define pxcone PXCONE #else #define pxcone pxcone_ #endif fastjet-3.0.6+dfsg.orig/plugins/PxCone/Makefile.in0000644000175000017500000006147312233506215020166 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/PxCone DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) libPxConePlugin_la_LIBADD = am_libPxConePlugin_la_OBJECTS = pxcone.lo \ libPxConePlugin_la-PxConePlugin.lo libPxConePlugin_la_OBJECTS = $(am_libPxConePlugin_la_OBJECTS) libPxConePlugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libPxConePlugin_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @MONOLITHIC_PLUGINS_FALSE@am_libPxConePlugin_la_rpath = -rpath \ @MONOLITHIC_PLUGINS_FALSE@ $(libdir) @MONOLITHIC_PLUGINS_TRUE@am_libPxConePlugin_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) LTF77COMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(F77LD) $(AM_FFLAGS) $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libPxConePlugin_la_SOURCES) DIST_SOURCES = $(libPxConePlugin_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = fastjet @MONOLITHIC_PLUGINS_TRUE@noinst_LTLIBRARIES = libPxConePlugin.la @MONOLITHIC_PLUGINS_FALSE@lib_LTLIBRARIES = libPxConePlugin.la libPxConePlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libPxConePlugin_la_SOURCES = pxcone.f PxConePlugin.cc EXTRA_DIST = makefile.static pxcone.h all: all-recursive .SUFFIXES: .SUFFIXES: .cc .f .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/PxCone/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/PxCone/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libPxConePlugin.la: $(libPxConePlugin_la_OBJECTS) $(libPxConePlugin_la_DEPENDENCIES) $(libPxConePlugin_la_LINK) $(am_libPxConePlugin_la_rpath) $(libPxConePlugin_la_OBJECTS) $(libPxConePlugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libPxConePlugin_la-PxConePlugin.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libPxConePlugin_la-PxConePlugin.lo: PxConePlugin.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libPxConePlugin_la_CXXFLAGS) $(CXXFLAGS) -MT libPxConePlugin_la-PxConePlugin.lo -MD -MP -MF $(DEPDIR)/libPxConePlugin_la-PxConePlugin.Tpo -c -o libPxConePlugin_la-PxConePlugin.lo `test -f 'PxConePlugin.cc' || echo '$(srcdir)/'`PxConePlugin.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libPxConePlugin_la-PxConePlugin.Tpo $(DEPDIR)/libPxConePlugin_la-PxConePlugin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='PxConePlugin.cc' object='libPxConePlugin_la-PxConePlugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libPxConePlugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libPxConePlugin_la-PxConePlugin.lo `test -f 'PxConePlugin.cc' || echo '$(srcdir)/'`PxConePlugin.cc .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/PxCone/pxcone.f0000644000175000017500000006770511766120135017573 0ustar sunsun SUBROUTINE PXCONE(MODE,NTRAK,ITKDM,PTRAK,CONER,EPSLON,OVLIM, + MXJET,NJET,PJET,IPASS,IJMUL,IERR) *.********************************************************* *. ------ *. PXCONE *. ------ *. *. Code downloaded from the following web page *. *. http://aliceinfo.cern.ch/alicvs/viewvc/JETAN/pxcone.F?view=markup&pathrev=v4-05-04 *. *. on 17/10/2006 by G. Salam. Permission subsequently granted by Michael *. H. Seymour (on behalf of the PxCone authors) for this code to be *. distributed together with FastJet under the terms of the GNU Public *. License v2 (see the file COPYING in the main FastJet directory). *. *.********** Pre Release Version 26.2.93 *. *. Driver for the Cone Jet finding algorithm of L.A. del Pozo. *. Based on algorithm from D.E. Soper. *. Finds jets inside cone of half angle CONER with energy > EPSLON. *. Jets which receive more than a fraction OVLIM of their energy from *. overlaps with other jets are excluded. *. Output jets are ordered in energy. *. If MODE.EQ.2 momenta are stored as (eta,phi,,pt) *. Usage : *. *. INTEGER ITKDM,MXTRK *. PARAMETER (ITKDM=4.or.more,MXTRK=1.or.more) *. INTEGER MXJET, MXTRAK, MXPROT *. PARAMETER (MXJET=10,MXTRAK=500,MXPROT=500) *. INTEGER IPASS (MXTRAK),IJMUL (MXJET) *. INTEGER NTRAK,NJET,IERR,MODE *. DOUBLE PRECISION PTRAK (ITKDM,MXTRK),PJET (5,MXJET) *. DOUBLE PRECISION CONER, EPSLON, OVLIM *. NTRAK = 1.to.MXTRAK *. CONER = ... *. EPSLON = ... *. OVLIM = ... *. CALL PXCONE (MODE,NTRAK,ITKDM,PTRAK,CONER,EPSLON,OVLIM,MXJET, *. + NJET,PJET,IPASS,IJMUL,IERR) *. *. INPUT : MODE 1=>e+e-, 2=>hadron-hadron *. INPUT : NTRAK Number of particles *. INPUT : ITKDM First dimension of PTRAK array *. INPUT : PTRAK Array of particle 4-momenta (Px,Py,Pz,E) *. INPUT : CONER Cone size (half angle) in radians *. INPUT : EPSLON Minimum Jet energy (GeV) *. INPUT : OVLIM Maximum fraction of overlap energy in a jet *. INPUT : MXJET Maximum possible number of jets *. OUTPUT : NJET Number of jets found *. OUTPUT : PJET 5-vectors of jets *. OUTPUT : IPASS(k) Particle k belongs to jet number IPASS(k) *. IPASS = -1 if not assosciated to a jet *. OUTPUT : IJMUL(i) Jet i contains IJMUL(i) particles *. OUTPUT : IERR = 0 if all is OK ; = -1 otherwise *. *. CALLS : PXSEAR, PXSAME, PXNEW, PXTRY, PXORD, PXUVEC, PXOLAP *. CALLED : User *. *. AUTHOR : L.A. del Pozo *. CREATED : 26-Feb-93 *. LAST MOD : 2-Mar-93 *. *. Modification Log. *. 25-Feb-07: G P Salam - fix bugs concerning 2pi periodicity in eta phi mode *. - added commented code to get consistent behaviour *. regardless of particle order (replaces n-way *. midpoints with 2-way midpoints however...) *. 2-Jan-97: M Wobisch - fix bug concerning COS2R in eta phi mode *. 4-Apr-93: M H Seymour - Change 2d arrays to 1d in PXTRY & PXNEW *. 2-Apr-93: M H Seymour - Major changes to add boost-invariant mode *. 1-Apr-93: M H Seymour - Increase all array sizes *. 30-Mar-93: M H Seymour - Change all REAL variables to DOUBLE PRECISION *. 30-Mar-93: M H Seymour - Change OVLIM into an input parameter *. 2-Mar-93: L A del Pozo - Fix Bugs in PXOLAP *. 1-Mar-93: L A del Pozo - Remove Cern library routine calls *. 1-Mar-93: L A del Pozo - Add Print out of welcome and R and Epsilon *. *.********************************************************* C+SEQ,DECLARE. *** External Arrays INTEGER ITKDM,MXJET,NTRAK,NJET,IERR,MODE INTEGER IPASS (NTRAK),IJMUL (MXJET) DOUBLE PRECISION PTRAK (ITKDM,NTRAK),PJET (5,MXJET), + CONER, EPSLON, OVLIM *** Internal Arrays INTEGER MXPROT, MXTRAK PARAMETER (MXPROT=5000, MXTRAK=5000) DOUBLE PRECISION PP(4,MXTRAK), PU(3,MXTRAK), PJ(4,MXPROT) LOGICAL JETLIS(MXPROT,MXTRAK) *** Used in the routine. DOUBLE PRECISION COSR,COS2R, VSEED(3), VEC1(3), VEC2(3),PTSQ,PPSQ, + COSVAL,PXMDPI cMWobisch DOUBLE PRECISION RSEP cMWobisch LOGICAL UNSTBL INTEGER I,J,N,MU,N1,N2, ITERR, NJTORG INTEGER NCALL, NPRINT DOUBLE PRECISION ROLD, EPSOLD, OVOLD SAVE NCALL,NPRINT,ROLD, EPSOLD, OVOLD DATA NCALL,NPRINT /0,0/ DATA ROLD,EPSOLD,OVOLD/0.,0.,0./ cMWobisch c*************************************** RSEP = 2D0 c*************************************** cMWobisch IERR=0 * *** INITIALIZE IF(NCALL.LE.0) THEN ROLD = 0. EPSOLD = 0. OVOLD = 0. ENDIF NCALL = NCALL + 1 * *** Print welcome and Jetfinder parameters IF((CONER.NE.ROLD .OR. EPSLON.NE.EPSOLD .OR. OVLIM.NE.OVOLD) + .AND. NPRINT.LE.10) THEN WRITE (6,*) WRITE (6,*) ' *********** PXCONE: Cone Jet-finder ***********' WRITE (6,*) ' Written by Luis Del Pozo of OPAL' WRITE (6,*) ' Modified for eta-phi by Mike Seymour' WRITE (6,*) ' Includes bug fixes by Wobisch, Salam' WRITE(6,1000)' Cone Size R = ',CONER,' Radians' WRITE(6,1001)' Min Jet energy Epsilon = ',EPSLON,' GeV' WRITE(6,1002)' Overlap fraction parameter = ',OVLIM WRITE (6,*) ' PXCONE is not a supported product and is' WRITE (6,*) ' is provided for comparative purposes only' WRITE (6,*) ' ***********************************************' cMWobisch IF (RSEP .lt. 1.999) THEN WRITE(6,*) ' ' WRITE (6,*) ' ******************************************' WRITE (6,*) ' ******************************************' WRITE(6,*) ' M Wobisch: private change !!!!!!!!!!!! ' WRITE(6,*) ' Rsep is set to ',RSEP WRITE(6,*) ' this is ONLY meaningful in a NLO calculation' WRITE(6,*) ' ------------------------ ' WRITE(6,*) ' please check what you''re doing!!' WRITE(6,*) ' or ask: Markus.Wobisch@desy.de --' WRITE (6,*) ' ******************************************' WRITE (6,*) ' ******************************************' WRITE (6,*) ' ******************************************' WRITE(6,*) ' ' WRITE(6,*) ' ' ENDIF cMWobisch WRITE (6,*) 1000 FORMAT(A18,F5.2,A10) 1001 FORMAT(A29,F5.2,A5) 1002 FORMAT(A33,F5.2) NPRINT = NPRINT + 1 ROLD=CONER EPSOLD=EPSLON OVOLD=OVLIM ENDIF * *** Copy calling array PTRAK to internal array PP(4,NTRAK) * IF (NTRAK .GT. MXTRAK) THEN WRITE (6,*) ' PXCONE: Ntrak too large: ',NTRAK IERR=-1 RETURN ENDIF IF (MODE.NE.2) THEN DO 100 I=1, NTRAK DO 101 J=1,4 PP(J,I)=PTRAK(J,I) 101 CONTINUE 100 CONTINUE ELSE *** Converting to eta,phi,pt if necessary DO 104 I=1,NTRAK PTSQ=PTRAK(1,I)**2+PTRAK(2,I)**2 PPSQ=(SQRT(PTSQ+PTRAK(3,I)**2)+ABS(PTRAK(3,I)))**2 IF (PTSQ.LE.4.25E-18*PPSQ) THEN PP(1,I)=20 ELSE PP(1,I)=0.5*LOG(PPSQ/PTSQ) ENDIF PP(1,I)=SIGN(PP(1,I),PTRAK(3,I)) IF (PTSQ.EQ.0) THEN PP(2,I)=0 ELSE PP(2,I)=ATAN2(PTRAK(2,I),PTRAK(1,I)) ENDIF PP(3,I)=0 PP(4,I)=SQRT(PTSQ) PU(1,I)=PP(1,I) PU(2,I)=PP(2,I) PU(3,I)=PP(3,I) 104 CONTINUE ENDIF * *** Zero output variables * NJET=0 DO 102 I = 1, NTRAK DO 103 J = 1, MXPROT JETLIS(J,I) = .FALSE. 103 CONTINUE 102 CONTINUE CALL PXZERV(4*MXPROT,PJ) CALL PXZERI(MXJET,IJMUL) * IF (MODE.NE.2) THEN COSR = COS(CONER) COS2R = COS(CONER) ELSE *** Purely for convenience, work in terms of 1-R**2 COSR = 1-CONER**2 cMW -- select Rsep: 1-(Rsep*CONER)**2 COS2R = 1-(RSEP*CONER)**2 cORIGINAL COS2R = 1-(2*CONER)**2 ENDIF UNSTBL = .FALSE. IF (MODE.NE.2) THEN CALL PXUVEC(NTRAK,PP,PU,IERR) IF (IERR .NE. 0) RETURN ENDIF *** Look for jets using particle diretions as seed axes * DO 110 N = 1,NTRAK DO 120 MU = 1,3 VSEED(MU) = PU(MU,N) 120 CONTINUE CALL PXSEAR(MODE,COSR,NTRAK,PU,PP,VSEED, & NJET,JETLIS,PJ,UNSTBL,IERR) IF (IERR .NE. 0) RETURN 110 CONTINUE cMW - for Rsep=1 goto 145 c GOTO 145 *** Now look between all pairs of jets as seed axes. c NJTORG = NJET ! GPS -- to get consistent behaviour (2-way midpnts) c DO 140 N1 = 1,NJTORG-1 ! GPS -- to get consistent behaviour (2-way midpnts) DO 140 N1 = 1,NJET-1 VEC1(1)=PJ(1,N1) VEC1(2)=PJ(2,N1) VEC1(3)=PJ(3,N1) IF (MODE.NE.2) CALL PXNORV(3,VEC1,VEC1,ITERR) C DO 150 N2 = N1+1,NJTORG ! GPS -- to get consistent behaviour DO 150 N2 = N1+1,NJET VEC2(1)=PJ(1,N2) VEC2(2)=PJ(2,N2) VEC2(3)=PJ(3,N2) IF (MODE.NE.2) CALL PXNORV(3,VEC2,VEC2,ITERR) CALL PXADDV(3,VEC1,VEC2,VSEED,ITERR) IF (MODE.NE.2) THEN CALL PXNORV(3,VSEED,VSEED,ITERR) ELSE VSEED(1)=VSEED(1)/2 !VSEED(2)=VSEED(2)/2 ! GPS 25/02/07 VSEED(2)=PXMDPI(VEC1(2)+0.5d0*PXMDPI(VEC2(2)-VEC1(2))) ENDIF C---ONLY BOTHER IF THEY ARE BETWEEN 1 AND 2 CONE RADII APART IF (MODE.NE.2) THEN COSVAL=VEC1(1)*VEC2(1)+VEC1(2)*VEC2(2)+VEC1(3)*VEC2(3) ELSE IF (ABS(VEC1(1)).GE.20.OR.ABS(VEC2(1)).GE.20) THEN COSVAL=-1000 ELSE COSVAL=1- + ((VEC1(1)-VEC2(1))**2+PXMDPI(VEC1(2)-VEC2(2))**2) ENDIF ENDIF IF (COSVAL.LE.COSR.AND.COSVAL.GE.COS2R) + CALL PXSEAR(MODE,COSR,NTRAK,PU,PP,VSEED,NJET, + JETLIS,PJ,UNSTBL,IERR) c CALL PXSEAR(MODE,COSR,NTRAK,PU,PP,VSEED,NJET, c + JETLIS,PJ,UNSTBL,IERR) IF (IERR .NE. 0) RETURN 150 CONTINUE 140 CONTINUE IF (UNSTBL) THEN IERR=-1 WRITE (6,*) ' PXCONE: Too many iterations to find a proto-jet' RETURN ENDIF 145 CONTINUE *** Now put the jet list into order by jet energy, eliminating jets *** with energy less than EPSLON. CALL PXORD(EPSLON,NJET,NTRAK,JETLIS,PJ) * *** Take care of jet overlaps CALL PXOLAP(MODE,NJET,NTRAK,JETLIS,PJ,PP,OVLIM) * *** Order jets again as some have been eliminated, or lost energy. CALL PXORD(EPSLON,NJET,NTRAK,JETLIS,PJ) * *** All done!, Copy output into output arrays IF (NJET .GT. MXJET) THEN WRITE (6,*) ' PXCONE: Found more than MXJET jets' IERR=-1 GOTO 99 ENDIF IF (MODE.NE.2) THEN DO 300 I=1, NJET DO 310 J=1,4 PJET(J,I)=PJ(J,I) 310 CONTINUE 300 CONTINUE ELSE DO 315 I=1, NJET PJET(1,I)=PJ(4,I)*COS(PJ(2,I)) PJET(2,I)=PJ(4,I)*SIN(PJ(2,I)) PJET(3,I)=PJ(4,I)*SINH(PJ(1,I)) PJET(4,I)=PJ(4,I)*COSH(PJ(1,I)) 315 CONTINUE ENDIF DO 320 I=1, NTRAK IPASS(I)=-1 DO 330 J=1, NJET IF (JETLIS(J,I)) THEN IJMUL(J)=IJMUL(J)+1 IPASS(I)=J ENDIF 330 CONTINUE 320 CONTINUE 99 RETURN END *CMZ : 1.06/00 28/02/94 15.44.44 by P. Schleper *-- Author : C----------------------------------------------------------------------- SUBROUTINE PXNORV(N,A,B,ITERR) INTEGER I,N,ITERR DOUBLE PRECISION A(N),B(N),C C=0 DO 10 I=1,N C=C+A(I)**2 10 CONTINUE IF (C.LE.0) RETURN C=1/SQRT(C) DO 20 I=1,N B(I)=A(I)*C 20 CONTINUE END *CMZ : 2.00/00 10/01/95 10.17.57 by P. Schleper *CMZ : 1.06/00 15/03/94 12.17.46 by P. Schleper *-- Author : * C+DECK,PXOLAP. SUBROUTINE PXOLAP(MODE,NJET,NTRAK,JETLIS,PJ,PP,OVLIM) * *** Looks for particles assigned to more than 1 jet, and reassigns them *** If more than a fraction OVLIM of a jet's energy is contained in *** higher energy jets, that jet is neglected. *** Particles assigned to the jet closest in angle (a la CDF, Snowmass). C+SEQ,DECLARE. INTEGER MXTRAK, MXPROT PARAMETER (MXTRAK=5000,MXPROT=5000) INTEGER NJET, NTRAK, MODE LOGICAL JETLIS(MXPROT,MXTRAK) DOUBLE PRECISION PJ(4,MXPROT),PP(4,MXTRAK),PXMDPI INTEGER I,J,N,MU LOGICAL OVELAP DOUBLE PRECISION EOVER DOUBLE PRECISION OVLIM INTEGER ITERR, IJMIN, IJET(MXPROT), NJ DOUBLE PRECISION VEC1(3), VEC2(3), COST, THET, THMIN DATA IJMIN/0/ * IF (NJET.LE.1) RETURN *** Look for jets with large overlaps with higher energy jets. DO 100 I = 2,NJET *** Find overlap energy between jets I and all higher energy jets. EOVER = 0.0 DO 110 N = 1,NTRAK OVELAP = .FALSE. DO 120 J= 1,I-1 IF (JETLIS(I,N).AND.JETLIS(J,N)) THEN OVELAP = .TRUE. ENDIF 120 CONTINUE IF (OVELAP) THEN EOVER = EOVER + PP(4,N) ENDIF 110 CONTINUE *** Is the fraction of energy shared larger than OVLIM? IF (EOVER.GT.OVLIM*PJ(4,I)) THEN *** De-assign all particles from Jet I DO 130 N = 1,NTRAK JETLIS(I,N) = .FALSE. 130 CONTINUE ENDIF 100 CONTINUE *** Now there are no big overlaps, assign every particle in *** more than 1 jet to the closet jet. *** Any particles now in more than 1 jet are assigned to the CLOSET *** jet (in angle). DO 140 I=1,NTRAK NJ=0 DO 150 J=1, NJET IF(JETLIS(J,I)) THEN NJ=NJ+1 IJET(NJ)=J ENDIF 150 CONTINUE IF (NJ .GT. 1) THEN *** Particle in > 1 jet - calc angles... VEC1(1)=PP(1,I) VEC1(2)=PP(2,I) VEC1(3)=PP(3,I) THMIN=0. DO 160 J=1,NJ VEC2(1)=PJ(1,IJET(J)) VEC2(2)=PJ(2,IJET(J)) VEC2(3)=PJ(3,IJET(J)) IF (MODE.NE.2) THEN CALL PXANG3(VEC1,VEC2,COST,THET,ITERR) ELSE THET=(VEC1(1)-VEC2(1))**2+PXMDPI(VEC1(2)-VEC2(2))**2 ENDIF IF (J .EQ. 1) THEN THMIN=THET IJMIN=IJET(J) ELSEIF (THET .LT. THMIN) THEN THMIN=THET IJMIN=IJET(J) ENDIF 160 CONTINUE *** Assign track to IJMIN DO 170 J=1,NJET JETLIS(J,I) = .FALSE. 170 CONTINUE JETLIS(IJMIN,I)=.TRUE. ENDIF 140 CONTINUE *** Recompute PJ DO 200 I = 1,NJET DO 210 MU = 1,4 PJ(MU,I) = 0.0 210 CONTINUE DO 220 N = 1,NTRAK IF( JETLIS(I,N) ) THEN IF (MODE.NE.2) THEN DO 230 MU = 1,4 PJ(MU,I) = PJ(MU,I) + PP(MU,N) 230 CONTINUE ELSE PJ(1,I)=PJ(1,I) + + PP(4,N)/(PP(4,N)+PJ(4,I))*(PP(1,N)-PJ(1,I)) c GPS 25/02/07 PJ(2,I)=PXMDPI(PJ(2,I) + + PP(4,N)/(PP(4,N)+PJ(4,I))*PXMDPI(PP(2,N)-PJ(2,I))) c PJ(2,I)=PJ(2,I) c + + PP(4,N)/(PP(4,N)+PJ(4,I))*PXMDPI(PP(2,N)-PJ(2,I)) PJ(4,I)=PJ(4,I)+PP(4,N) ENDIF ENDIF 220 CONTINUE 200 CONTINUE RETURN END *CMZ : 2.00/00 10/01/95 10.17.57 by P. Schleper *CMZ : 1.06/00 14/03/94 15.37.45 by P. Schleper *-- Author : * C+DECK,PXORD. SUBROUTINE PXORD(EPSLON,NJET,NTRAK,JETLIS,PJ) * *** Routine to put jets into order and eliminate tose less than EPSLON C+SEQ,DECLARE. INTEGER MXTRAK,MXPROT PARAMETER (MXTRAK=5000,MXPROT=5000) INTEGER I, J, INDEX(MXPROT) DOUBLE PRECISION PTEMP(4,MXPROT), ELIST(MXPROT) INTEGER NJET,NTRAK LOGICAL JETLIS(MXPROT,MXTRAK) LOGICAL LOGTMP(MXPROT,MXTRAK) DOUBLE PRECISION EPSLON,PJ(4,MXPROT) *** Puts jets in order of energy: 1 = highest energy etc. *** Then Eliminate jets with energy below EPSLON * *** Copy input arrays. DO 100 I=1,NJET DO 110 J=1,4 PTEMP(J,I)=PJ(J,I) 110 CONTINUE DO 120 J=1,NTRAK LOGTMP(I,J)=JETLIS(I,J) 120 CONTINUE 100 CONTINUE DO 150 I=1,NJET ELIST(I)=PJ(4,I) 150 CONTINUE *** Sort the energies... CALL PXSORV(NJET,ELIST,INDEX,'I') *** Fill PJ and JETLIS according to sort ( sort is in ascending order!!) DO 200 I=1, NJET DO 210 J=1,4 PJ(J,I)=PTEMP(J,INDEX(NJET+1-I)) 210 CONTINUE DO 220 J=1,NTRAK JETLIS(I,J)=LOGTMP(INDEX(NJET+1-I),J) 220 CONTINUE 200 CONTINUE ** Jets are now in order *** Now eliminate jets with less than Epsilon energy DO 300, I=1, NJET IF (PJ(4,I) .LT. EPSLON) THEN NJET=NJET-1 PJ(4,I)=0. ENDIF 300 CONTINUE RETURN END ******************************************************************** *CMZ : 2.00/00 10/01/95 10.17.57 by P. Schleper *CMZ : 1.06/00 14/03/94 15.37.44 by P. Schleper *-- Author : C+DECK,PXSEAR. SUBROUTINE PXSEAR(MODE,COSR,NTRAK,PU,PP,VSEED,NJET, + JETLIS,PJ,UNSTBL,IERR) * C+SEQ,DECLARE. INTEGER MXTRAK, MXPROT PARAMETER (MXTRAK=5000,MXPROT=5000) INTEGER NTRAK, IERR, MODE DOUBLE PRECISION COSR,PU(3,MXTRAK),PP(4,MXTRAK),VSEED(3) LOGICAL UNSTBL LOGICAL JETLIS(MXPROT,MXTRAK) INTEGER NJET DOUBLE PRECISION PJ(4,MXPROT) *** Using VSEED as a trial axis , look for a stable jet. *** Check stable jets against those already found and add to PJ. *** Will try up to MXITER iterations to get a stable set of particles *** in the cone. INTEGER MU,N,ITER LOGICAL PXSAME,PXNEW,OK LOGICAL NEWLIS(MXTRAK),OLDLIS(MXTRAK) DOUBLE PRECISION OAXIS(3),NAXIS(3),PNEW(4) INTEGER MXITER PARAMETER(MXITER = 30) * DO 100 MU=1,3 OAXIS(MU) = VSEED(MU) 100 CONTINUE DO 110 N = 1,NTRAK OLDLIS(N) = .FALSE. 110 CONTINUE DO 120 ITER = 1,MXITER CALL PXTRY(MODE,COSR,NTRAK,PU,PP,OAXIS,NAXIS,PNEW,NEWLIS,OK) *** Return immediately if there were no particles in the cone. IF (.NOT.OK) THEN RETURN ENDIF IF(PXSAME(NEWLIS,OLDLIS,NTRAK)) THEN *** We have a stable jet. IF (PXNEW(NEWLIS,JETLIS,NTRAK,NJET)) THEN *** And the jet is a new one. So add it to our arrays. *** Check arrays are big anough... IF (NJET .EQ. MXPROT) THEN WRITE (6,*) ' PXCONE: Found more than MXPROT proto-jets' IERR = -1 RETURN ENDIF NJET = NJET + 1 DO 130 N = 1,NTRAK JETLIS(NJET,N) = NEWLIS(N) 130 CONTINUE DO 140 MU=1,4 PJ(MU,NJET)=PNEW(MU) 140 CONTINUE ENDIF RETURN ENDIF *** The jet was not stable, so we iterate again DO 150 N=1,NTRAK OLDLIS(N)=NEWLIS(N) 150 CONTINUE DO 160 MU=1,3 OAXIS(MU)=NAXIS(MU) 160 CONTINUE 120 CONTINUE UNSTBL = .TRUE. RETURN END *CMZ : 1.06/00 28/02/94 15.44.44 by P. Schleper *-- Author : C----------------------------------------------------------------------- SUBROUTINE PXSORV(N,A,K,OPT) C Sort A(N) into ascending order C OPT = 'I' : return index array K only C OTHERWISE : return sorted A and index array K C----------------------------------------------------------------------- INTEGER NMAX PARAMETER (NMAX=5000) * * INTEGER N,I,J,K(N),IL(NMAX),IR(NMAX) *LUND INTEGER N,I,J,K(NMAX),IL(NMAX),IR(NMAX) CHARACTER OPT * * DOUBLE PRECISION A(N),B(NMAX) DOUBLE PRECISION A(NMAX),B(NMAX) *LUND IF (N.GT.NMAX) STOP 'Sorry, not enough room in Mike''s PXSORV' IL(1)=0 IR(1)=0 DO 10 I=2,N IL(I)=0 IR(I)=0 J=1 2 IF(A(I).GT.A(J)) GO TO 5 3 IF(IL(J).EQ.0) GO TO 4 J=IL(J) GO TO 2 4 IR(I)=-J IL(J)=I GO TO 10 5 IF(IR(J).LE.0) GO TO 6 J=IR(J) GO TO 2 6 IR(I)=IR(J) IR(J)=I 10 CONTINUE I=1 J=1 GO TO 8 20 J=IL(J) 8 IF(IL(J).GT.0) GO TO 20 9 K(I)=J B(I)=A(J) I=I+1 IF(IR(J)) 12,30,13 13 J=IR(J) GO TO 8 12 J=-IR(J) GO TO 9 30 IF(OPT.EQ.'I') RETURN DO 31 I=1,N 31 A(I)=B(I) 999 END ********************************************************************* *CMZ : 2.00/00 10/01/95 10.17.57 by P. Schleper *CMZ : 1.06/00 14/03/94 15.37.44 by P. Schleper *-- Author : * C+DECK,PXTRY. SUBROUTINE PXTRY(MODE,COSR,NTRAK,PU,PP,OAXIS,NAXIS, + PNEW,NEWLIS,OK) * C+SEQ,DECLARE. INTEGER MXTRAK PARAMETER (MXTRAK=5000) INTEGER NTRAK,MODE *** Note that although PU and PP are assumed to be 2d arrays, they *** are used as 1d in this routine for efficiency DOUBLE PRECISION COSR,PU(3*MXTRAK),PP(4*MXTRAK),OAXIS(3),PXMDPI LOGICAL OK LOGICAL NEWLIS(MXTRAK) DOUBLE PRECISION NAXIS(3),PNEW(4) *** Finds all particles in cone of size COSR about OAXIS direction. *** Calculates 4-momentum sum of all particles in cone (PNEW) , and *** returns this as new jet axis NAXIS (Both unit Vectors) INTEGER N,MU,NPU,NPP DOUBLE PRECISION COSVAL,NORMSQ,NORM * OK = .FALSE. DO 100 MU=1,4 PNEW(MU)=0.0 100 CONTINUE NPU=-3 NPP=-4 DO 110 N=1,NTRAK NPU=NPU+3 NPP=NPP+4 IF (MODE.NE.2) THEN COSVAL=0.0 DO 120 MU=1,3 COSVAL=COSVAL+OAXIS(MU)*PU(MU+NPU) 120 CONTINUE ELSE IF (ABS(PU(1+NPU)).GE.20.OR.ABS(OAXIS(1)).GE.20) THEN COSVAL=-1000 ELSE COSVAL=1- + ((OAXIS(1)-PU(1+NPU))**2+PXMDPI(OAXIS(2)-PU(2+NPU))**2) ENDIF ENDIF IF (COSVAL.GE.COSR)THEN NEWLIS(N) = .TRUE. OK = .TRUE. IF (MODE.NE.2) THEN DO 130 MU=1,4 PNEW(MU) = PNEW(MU) + PP(MU+NPP) 130 CONTINUE ELSE PNEW(1)=PNEW(1) + + PP(4+NPP)/(PP(4+NPP)+PNEW(4))*(PP(1+NPP)-PNEW(1)) c PNEW(2)=PNEW(2) c + + PP(4+NPP)/(PP(4+NPP)+PNEW(4)) c + *PXMDPI(PP(2+NPP)-PNEW(2)) ! GPS 25/02/07 PNEW(2)=PXMDPI(PNEW(2) + + PP(4+NPP)/(PP(4+NPP)+PNEW(4)) + *PXMDPI(PP(2+NPP)-PNEW(2))) PNEW(4)=PNEW(4)+PP(4+NPP) ENDIF ELSE NEWLIS(N)=.FALSE. ENDIF 110 CONTINUE *** If there are particles in the cone, calc new jet axis IF (OK) THEN IF (MODE.NE.2) THEN NORMSQ = 0.0 DO 140 MU = 1,3 NORMSQ = NORMSQ + PNEW(MU)**2 140 CONTINUE NORM = SQRT(NORMSQ) ELSE NORM = 1 ENDIF DO 150 MU=1,3 NAXIS(MU) = PNEW(MU)/NORM 150 CONTINUE ENDIF RETURN END ********************************************************************* *CMZ : 2.00/00 10/01/95 10.17.57 by P. Schleper *CMZ : 1.06/00 28/02/94 15.44.44 by P. Schleper *-- Author : C+DECK,PXUVEC. * SUBROUTINE PXUVEC(NTRAK,PP,PU,IERR) * *** Routine to calculate unit vectors PU of all particles PP C+SEQ,DECLARE. INTEGER MXTRAK PARAMETER (MXTRAK=5000) INTEGER NTRAK, IERR DOUBLE PRECISION PP(4,MXTRAK) DOUBLE PRECISION PU(3,MXTRAK) INTEGER N,MU DOUBLE PRECISION MAG DO 100 N=1,NTRAK MAG=0.0 DO 110 MU=1,3 MAG=MAG+PP(MU,N)**2 110 CONTINUE MAG=SQRT(MAG) IF (MAG.EQ.0.0) THEN WRITE(6,*)' PXCONE: An input particle has zero mod(p)' IERR=-1 RETURN ENDIF DO 120 MU=1,3 PU(MU,N)=PP(MU,N)/MAG 120 CONTINUE 100 CONTINUE RETURN END *CMZ : 1.06/00 28/02/94 15.44.44 by P. Schleper *-- Author : C----------------------------------------------------------------------- SUBROUTINE PXZERI(N,A) INTEGER I,N,A(N) DO 10 I=1,N A(I)=0 10 CONTINUE END *CMZ : 1.06/00 28/02/94 15.44.44 by P. Schleper *-- Author : C----------------------------------------------------------------------- C This is a set of routines written by Mike Seymour to provide the C services presumably normally provided by standard OPAL routines C PXZERV zeroes a vector C PXZERI zeroes a vector of integers C PXNORV normalizes a vector C PXADDV adds two vectors C PXSORV sorts a vector (copied from HERWIG) C PXANG3 finds the angle (and its cosine) between two vectors C PXMDPI moves its argument onto the range [-pi,pi) C----------------------------------------------------------------------- SUBROUTINE PXZERV(N,A) INTEGER I,N DOUBLE PRECISION A(N) DO 10 I=1,N A(I)=0 10 CONTINUE END *-- Author : C----------------------------------------------------------------------- SUBROUTINE PXADDV(N,A,B,C,ITERR) INTEGER I,N,ITERR DOUBLE PRECISION A(N),B(N),C(N) DO 10 I=1,N C(I)=A(I)+B(I) 10 CONTINUE END *CMZ : 1.06/00 28/02/94 15.44.44 by P. Schleper *-- Author : C----------------------------------------------------------------------- SUBROUTINE PXANG3(A,B,COST,THET,ITERR) INTEGER ITERR DOUBLE PRECISION A(3),B(3),C,COST,THET C=(A(1)**2+A(2)**2+A(3)**2)*(B(1)**2+B(2)**2+B(3)**2) IF (C.LE.0) RETURN C=1/SQRT(C) COST=(A(1)*B(1)+A(2)*B(2)+A(3)*B(3))*C THET=ACOS(COST) END *CMZ : 1.06/00 14/03/94 15.41.57 by P. Schleper *-- Author : P. Schleper 28/02/94 LOGICAL FUNCTION PXNEW(TSTLIS,JETLIS,NTRAK,NJET) * INTEGER MXTRAK,MXPROT PARAMETER (MXTRAK=5000,MXPROT=5000) INTEGER NTRAK,NJET *** Note that although JETLIS is assumed to be a 2d array, it *** it is used as 1d in this routine for efficiency LOGICAL TSTLIS(MXTRAK),JETLIS(MXPROT*MXTRAK) *** Checks to see if TSTLIS entries correspond to a jet already found *** and entered in JETLIS INTEGER N, I, IN LOGICAL MATCH * PXNEW = .TRUE. DO 100 I = 1,NJET MATCH = .TRUE. IN=I-MXPROT DO 110 N = 1,NTRAK IN=IN+MXPROT IF(TSTLIS(N).NEQV.JETLIS(IN)) THEN MATCH = .FALSE. GO TO 100 ENDIF 110 CONTINUE IF (MATCH) THEN PXNEW = .FALSE. RETURN ENDIF 100 CONTINUE RETURN END *CMZ : 1.06/00 14/03/94 15.41.57 by P. Schleper *-- Author : P. Schleper 28/02/94 LOGICAL FUNCTION PXSAME(LIST1,LIST2,N) * LOGICAL LIST1(*),LIST2(*) INTEGER N *** Returns T if the first N elements of LIST1 are the same as the *** first N elements of LIST2. INTEGER I * PXSAME = .TRUE. DO 100 I = 1,N IF ( LIST1(I).NEQV.LIST2(I) ) THEN PXSAME = .FALSE. RETURN ENDIF 100 CONTINUE RETURN END *CMZ : 1.06/00 28/02/94 15.44.44 by P. Schleper *-- Author : C----------------------------------------------------------------------- FUNCTION PXMDPI(PHI) IMPLICIT NONE C---RETURNS PHI, MOVED ONTO THE RANGE [-PI,PI) DOUBLE PRECISION PXMDPI,PHI,PI,TWOPI,THRPI,EPS PARAMETER (PI=3.141592654,TWOPI=6.283185307,THRPI=9.424777961) PARAMETER (EPS=1E-15) PXMDPI=PHI IF (PXMDPI.LE.PI) THEN IF (PXMDPI.GT.-PI) THEN GOTO 100 ELSEIF (PXMDPI.GT.-THRPI) THEN PXMDPI=PXMDPI+TWOPI ELSE PXMDPI=-MOD(PI-PXMDPI,TWOPI)+PI ENDIF ELSEIF (PXMDPI.LE.THRPI) THEN PXMDPI=PXMDPI-TWOPI ELSE PXMDPI=MOD(PI+PXMDPI,TWOPI)-PI ENDIF 100 IF (ABS(PXMDPI).LT.EPS) PXMDPI=0 END fastjet-3.0.6+dfsg.orig/plugins/PxCone/PxConePlugin.cc0000644000175000017500000001577011766120135021005 0ustar sunsun//STARTHEADER // $Id: PxConePlugin.cc 2777 2011-11-25 15:01:56Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/PxConePlugin.hh" #include "fastjet/ClusterSequence.hh" #include // pxcone stuff #include "pxcone.h" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; bool PxConePlugin::_first_time = true; string PxConePlugin::description () const { ostringstream desc; desc << "PxCone jet algorithm with " << "cone_radius = " << cone_radius () << ", " << "min_jet_energy = " << min_jet_energy () << ", " << "overlap_threshold = " << overlap_threshold () << ", " << "E_scheme_jets = " << E_scheme_jets () << " (NB: non-standard version of PxCone, containing small bug fixes by Gavin Salam)"; return desc.str(); } void PxConePlugin::run_clustering(ClusterSequence & clust_seq) const { // print a banner if we run this for the first time //_print_banner(clust_seq.fastjet_banner_stream()); // only have hh mode int mode = 2; int ntrak = clust_seq.jets().size(), itkdm = 4; double *ptrak = new double[ntrak*4+1]; for (int i = 0; i < ntrak; i++) { ptrak[4*i+0] = clust_seq.jets()[i].px(); ptrak[4*i+1] = clust_seq.jets()[i].py(); ptrak[4*i+2] = clust_seq.jets()[i].pz(); ptrak[4*i+3] = clust_seq.jets()[i].E(); } // max number of allowed jets int mxjet = ntrak; int njet; double *pjet = new double[mxjet*5+1]; int *ipass = new int[ntrak+1]; int *ijmul = new int[mxjet+1]; int ierr; // run pxcone pxcone( mode , // 1=>e+e-, 2=>hadron-hadron ntrak , // Number of particles itkdm , // First dimension of PTRAK array: ptrak , // Array of particle 4-momenta (Px,Py,Pz,E) cone_radius() , // Cone size (half angle) in radians min_jet_energy() , // Minimum Jet energy (GeV) overlap_threshold() , // Maximum fraction of overlap energy in a jet mxjet , // Maximum possible number of jets njet , // Number of jets found pjet , // 5-vectors of jets ipass, // Particle k belongs to jet number IPASS(k)-1 // IPASS = -1 if not assosciated to a jet ijmul, // Jet i contains IJMUL[i] particles ierr // = 0 if all is OK ; = -1 otherwise ); if (ierr != 0) throw Error("An error occurred while running PXCONE"); // now transfer information back valarray last_index_created(njet); vector > jet_particle_content(njet); // get a list of particles in each jet for (int itrak = 0; itrak < ntrak; itrak++) { int jet_i = ipass[itrak] - 1; if (jet_i >= 0) jet_particle_content[jet_i].push_back(itrak); } // now transfer the jets back into our own structure -- we will // mimic the cone code with a sequential recombination sequence in // which the jets are built up by adding one particle at a time for(int ipxjet = njet-1; ipxjet >= 0; ipxjet--) { const vector & jet_trak_list = jet_particle_content[ipxjet]; int jet_k = jet_trak_list[0]; for (unsigned ilist = 1; ilist < jet_trak_list.size(); ilist++) { int jet_i = jet_k; // retrieve our misappropriated index for the jet int jet_j = jet_trak_list[ilist]; // do a fake recombination step with dij=0 double dij = 0.0; //clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, jet_k); if (ilist != jet_trak_list.size()-1 || E_scheme_jets()) { // our E-scheme recombination in cases where it doesn't matter clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, jet_k); } else { // put in pxcone's momentum for the last recombination so that the // final inclusive jet corresponds exactly to PXCONE's clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, PseudoJet(pjet[5*ipxjet+0],pjet[5*ipxjet+1], pjet[5*ipxjet+2],pjet[5*ipxjet+3]), jet_k); } } // NB: put a sensible looking d_iB just to be nice... double d_iB = clust_seq.jets()[jet_k].perp2(); clust_seq.plugin_record_iB_recombination(jet_k, d_iB); } //// following code is for testing only //cout << endl; //for (int ijet = 0; ijet < njet; ijet++) { // PseudoJet jet(pjet[ijet][0],pjet[ijet][1],pjet[ijet][2],pjet[ijet][3]); // cout << jet.perp() << " " << jet.rap() << endl; //} //cout << "-----------------------------------------------------\n"; //vector ourjets(clust_seq.inclusive_jets()); //for (vector::const_iterator ourjet = ourjets.begin(); // ourjet != ourjets.end(); ourjet++) { // cout << ourjet->perp() << " " << ourjet->rap() << endl; //} ////cout << endl; delete[] ptrak; delete[] ipass; delete[] ijmul; delete[] pjet; } // print a banner for reference to the 3rd-party code void PxConePlugin::_print_banner(ostream *ostr) const{ if (! _first_time) return; _first_time=false; // make sure the user has not set the banner stream to NULL if (!ostr) return; (*ostr) << "#-------------------------------------------------------------------------" << endl; (*ostr) << "# You are running the PxCone plugin for FastJet " << endl; (*ostr) << "# Original code by the Luis Del Pozo, David Ward and Michael H. Seymour " << endl; (*ostr) << "# If you use this plugin, please cite " << endl; (*ostr) << "# M. H. Seymour and C. Tevlin, JHEP 0611 (2006) 052 [hep-ph/0609100]. " << endl; (*ostr) << "# in addition to the usual FastJet reference. " << endl; (*ostr) << "#-------------------------------------------------------------------------" << endl; // make sure we really have the output done. ostr->flush(); } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/plugins/PxCone/makefile.static0000644000175000017500000000164011766120135021100 0ustar sunsun # common fastjet definitions include ../../makefile.static CXXSRC = PxConePlugin.cc F77SRC = pxcone.f OBJS = $(patsubst %.cc,%.o,$(CXXSRC)) $(patsubst %.f,%.o,$(F77SRC)) # fastjet includes INCLUDE += -I../../include libPxConePlugin.a: $(OBJS) ar cru libPxConePlugin.a $(OBJS) ranlib libPxConePlugin.a clean: rm -f $(OBJS) distclean: clean rm -f libPxConePlugin.a *~ depend: makedepend -f makefile.static $(INCLUDE) -I. -- -- $(CXXSRC) $(F77SRC) # DO NOT DELETE PxConePlugin.o: fastjet/PxConePlugin.hh PxConePlugin.o: ../../include/fastjet/JetDefinition.hh PxConePlugin.o: ../../include/fastjet/internal/numconsts.hh PxConePlugin.o: ../../include/fastjet/internal/base.hh PxConePlugin.o: ../../include/fastjet/PseudoJet.hh PxConePlugin.o: ../../include/fastjet/ClusterSequence.hh PxConePlugin.o: ../../include/fastjet/internal/DynamicNearestNeighbours.hh PxConePlugin.o: ../../include/fastjet/Error.hh pxcone.h fastjet-3.0.6+dfsg.orig/plugins/PxCone/README0000644000175000017500000000252411766120135016774 0ustar sunsunThis directory contains the pxcone code (written by Luis Del Pozo, David Ward and Michael H. Seymour) together with a plugin (written by M. Cacciari and G. Salam) for using it within fastjet. While permission has been granted for pxcone to be distributed with fastjet, this was under the condition that it be made clear that pxcone is _not_ a supported product. Distribution permission is specified below and a list of changes from the original code can be found in the header of pxcone.f Compiling --------- Just type "make" Using it -------- See the example program in ../../examples/plugins/ ====================================================================== Authorship and distribution permission: ====================================================================== From: Mike Seymour Subject: Re: PxCone licence Date: Wed, 9 Nov 2011 15:15:08 +0000 To: Gavin Salam Dear Gavin, As an author of the PxCone code, and having checked that this is acceptable with the other authors of PxCone (Luis Del Pozo and his then PhD supervisor David Ward), I hereby grant you the right to distribute PxCone together with FastJet under a GPL (v2) license. Many thanks for dealing with this, Mike. Michael H. Seymour. Professor of Particle Physics, University of Manchester Schuster: 6-10; +44 161 306 6480 fastjet-3.0.6+dfsg.orig/plugins/PxCone/fastjet/0000755000175000017500000000000012233507303017545 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/PxCone/fastjet/Makefile.in0000644000175000017500000003424212233506215021620 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/PxCone/fastjet DIST_COMMON = $(fastjetinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(fastjetincludedir)" HEADERS = $(fastjetinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fastjetincludedir = $(includedir)/fastjet fastjetinclude_HEADERS = PxConePlugin.hh all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/PxCone/fastjet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/PxCone/fastjet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fastjetincludeHEADERS: $(fastjetinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludedir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludedir)" @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludedir)" || exit $$?; \ done uninstall-fastjetincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(fastjetincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fastjetincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fastjetincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-fastjetincludeHEADERS install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-fastjetincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/PxCone/fastjet/PxConePlugin.hh0000644000175000017500000001265611766120135022457 0ustar sunsun//STARTHEADER // $Id: PxConePlugin.hh 2758 2011-11-24 08:31:58Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #ifndef __PXCONEPLUGIN_HH__ #define __PXCONEPLUGIN_HH__ #include "fastjet/JetDefinition.hh" // questionable whether this should be in fastjet namespace or not... FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh //---------------------------------------------------------------------- // /// @ingroup plugins /// \class PxConePlugin /// Implementation of the PxCone algorithm (plugin for fastjet v2.1 upwards) /// /// PxConePlugin is a plugin for fastjet (v2.1 upwards) that provides /// an interface to the fortran pxcone iterative cone algorithm with /// midpoint seeds. /// /// Pxcone was written by Luis del Pozo and Michael H. Seymour. It is /// not a "supported" program, so if you encounter problems, you are /// on your own... /// /// Note that pxcone sometimes encounters non-stable iterations; in /// such cases it returns an error -- the plugin propagates this by /// throwing a fastjet::Error exception; if the user wishes to have /// robust code, they should catch this exception. /// /// Pxcone has a hard-coded limit (by default 4000) on the maximum /// number of particles and protojets; if the number of particles or /// protojets exceeds this, again a fastjet::Error exception will be /// thrown. /// /// The functionality of pxcone is described at /// http://www.hep.man.ac.uk/u/wplano/ConeJet.ps // //---------------------------------------------------------------------- class PxConePlugin : public JetDefinition::Plugin { public: /// constructor for the PxConePlugin, whose arguments have the /// following meaning: /// /// - the cone_radius is as usual in cone algorithms /// /// - stables cones (protojets) below min_jet_energy are discarded /// before calling the splitting procedure to resolve overlaps /// (called epslon in pxcone). /// /// - when two protojets overlap, if /// (overlapping_Et)/(Et_of_softer_protojet) < overlap_threshold /// the overlapping energy is split between the two protojets; /// otherwise the less energetic protojet is discarded. Called /// ovlim in pxcone. /// /// - pxcone carries out p-scheme recombination, and the resulting /// jets are massless; setting E_scheme_jets = true (default /// false) doesn't change the jet composition, but the final /// momentum sum for the jets is carried out by direct /// four-vector addition instead of p-scheme recombination. /// PxConePlugin (double cone_radius_in , double min_jet_energy_in = 5.0 , double overlap_threshold_in = 0.5, bool E_scheme_jets_in = false) : _cone_radius (cone_radius_in ), _min_jet_energy (min_jet_energy_in ), _overlap_threshold (overlap_threshold_in), _E_scheme_jets (E_scheme_jets_in ) {} // some functions to return info about parameters ---------------- /// the cone radius double cone_radius () const {return _cone_radius ;} /// minimum jet energy (protojets below this are thrown own before /// merging/splitting) -- called epslon in pxcone double min_jet_energy () const {return _min_jet_energy ;} /// Maximum fraction of overlap energy in a jet -- called ovlim in pxcone. double overlap_threshold () const {return _overlap_threshold ;} /// if true then the final jets are returned as the E-scheme recombination /// of the particle momenta (by default, pxcone returns massless jets with /// a mean phi,eta type of recombination); regardless of what is /// returned, the internal pxcone jet-finding procedure is /// unaffected. bool E_scheme_jets() const {return _E_scheme_jets ;} // the things that are required by base class virtual std::string description () const; virtual void run_clustering(ClusterSequence &) const; /// the plugin mechanism's standard way of accessing the jet radius virtual double R() const {return cone_radius();} private: double _cone_radius ; double _min_jet_energy ; double _overlap_threshold ; bool _E_scheme_jets; static bool _first_time; /// print a banner for reference to the 3rd-party code void _print_banner(std::ostream *ostr) const; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __PXCONEPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/PxCone/fastjet/Makefile.am0000644000175000017500000000012011766120135021576 0ustar sunsunfastjetincludedir=$(includedir)/fastjet fastjetinclude_HEADERS=PxConePlugin.hh fastjet-3.0.6+dfsg.orig/plugins/PxCone/Makefile.am0000644000175000017500000000046211766120135020147 0ustar sunsunSUBDIRS = fastjet if MONOLITHIC_PLUGINS noinst_LTLIBRARIES = libPxConePlugin.la else lib_LTLIBRARIES = libPxConePlugin.la endif libPxConePlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libPxConePlugin_la_SOURCES = pxcone.f PxConePlugin.cc EXTRA_DIST = makefile.static pxcone.h fastjet-3.0.6+dfsg.orig/plugins/NestedDefs/0000755000175000017500000000000012233507303016735 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/NestedDefs/Makefile.in0000644000175000017500000006110312233506215021004 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/NestedDefs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) libNestedDefsPlugin_la_LIBADD = am_libNestedDefsPlugin_la_OBJECTS = \ libNestedDefsPlugin_la-NestedDefsPlugin.lo libNestedDefsPlugin_la_OBJECTS = $(am_libNestedDefsPlugin_la_OBJECTS) libNestedDefsPlugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libNestedDefsPlugin_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @MONOLITHIC_PLUGINS_FALSE@am_libNestedDefsPlugin_la_rpath = -rpath \ @MONOLITHIC_PLUGINS_FALSE@ $(libdir) @MONOLITHIC_PLUGINS_TRUE@am_libNestedDefsPlugin_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libNestedDefsPlugin_la_SOURCES) DIST_SOURCES = $(libNestedDefsPlugin_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = fastjet . @MONOLITHIC_PLUGINS_TRUE@noinst_LTLIBRARIES = libNestedDefsPlugin.la @MONOLITHIC_PLUGINS_FALSE@lib_LTLIBRARIES = libNestedDefsPlugin.la libNestedDefsPlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libNestedDefsPlugin_la_SOURCES = NestedDefsPlugin.cc EXTRA_DIST = makefile.static all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/NestedDefs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/NestedDefs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libNestedDefsPlugin.la: $(libNestedDefsPlugin_la_OBJECTS) $(libNestedDefsPlugin_la_DEPENDENCIES) $(libNestedDefsPlugin_la_LINK) $(am_libNestedDefsPlugin_la_rpath) $(libNestedDefsPlugin_la_OBJECTS) $(libNestedDefsPlugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libNestedDefsPlugin_la-NestedDefsPlugin.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libNestedDefsPlugin_la-NestedDefsPlugin.lo: NestedDefsPlugin.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libNestedDefsPlugin_la_CXXFLAGS) $(CXXFLAGS) -MT libNestedDefsPlugin_la-NestedDefsPlugin.lo -MD -MP -MF $(DEPDIR)/libNestedDefsPlugin_la-NestedDefsPlugin.Tpo -c -o libNestedDefsPlugin_la-NestedDefsPlugin.lo `test -f 'NestedDefsPlugin.cc' || echo '$(srcdir)/'`NestedDefsPlugin.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libNestedDefsPlugin_la-NestedDefsPlugin.Tpo $(DEPDIR)/libNestedDefsPlugin_la-NestedDefsPlugin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='NestedDefsPlugin.cc' object='libNestedDefsPlugin_la-NestedDefsPlugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libNestedDefsPlugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libNestedDefsPlugin_la-NestedDefsPlugin.lo `test -f 'NestedDefsPlugin.cc' || echo '$(srcdir)/'`NestedDefsPlugin.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/NestedDefs/NestedDefsPlugin.cc0000644000175000017500000001204511766120134022454 0ustar sunsun//STARTHEADER // $Id: NestedDefsPlugin.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2007-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER // TODO // ? Maybe one could provide additional recomb. dists as an "extra".; // fastjet stuff #include "fastjet/ClusterSequence.hh" #include "fastjet/NestedDefsPlugin.hh" // other stuff #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; string NestedDefsPlugin::description () const { ostringstream desc; desc << "NestedDefs: successive application of " ; unsigned int i=1; for (list::const_iterator it=_defs.begin();it!=_defs.end();it++){ desc << "Definition " << i++ << " [" << it->description() << "] - "; } return desc.str(); } void NestedDefsPlugin::run_clustering(ClusterSequence & clust_seq) const { vector momenta; // build the initial list of particles momenta = clust_seq.jets(); unsigned int step_n = momenta.size(); // initialise the conversion table, which works as follows // conversion_table[step_cs_jet_index] = main_cs_jet_index vector conversion_table(2*step_n); vector new_conversion_table; for (unsigned int i=0;i::const_iterator def_iterator = _defs.begin(); unsigned int def_index=0; bool last_def=false; while (def_iterator!=_defs.end()){ last_def = (def_index == (_defs.size()-1)); // do the clustering ClusterSequence step_cs(momenta, *def_iterator); // clear the momenta as we shall fill them again momenta.clear(); new_conversion_table.clear(); // retrieve the history const vector & step_history = step_cs.history(); // copy the history // note that we skip the initial steps which are just the // declaration of the particles. vector::const_iterator hist_iterator = step_history.begin(); for (unsigned int i=step_n;i!=0;i--) hist_iterator++; while (hist_iterator != step_history.end()){ // check if it is a recombination with the beam or a simple recombination if (hist_iterator->parent2 == ClusterSequence::BeamJet){ // save this jet for future clustering // unless we've reached the last def in which case, record the clustering unsigned int step_jet_index = step_cs.history()[hist_iterator->parent1].jetp_index; if (last_def){ clust_seq.plugin_record_iB_recombination(conversion_table[step_jet_index], hist_iterator->dij); } else { momenta.push_back(step_cs.jets()[step_jet_index]); new_conversion_table.push_back(conversion_table[step_jet_index]); } } else { // record combination // note that we set the recombination distance to 0 except for the last alg unsigned int step_jet1_index = step_cs.history()[hist_iterator->parent1].jetp_index; unsigned int step_jet2_index = step_cs.history()[hist_iterator->parent2].jetp_index; PseudoJet newjet = step_cs.jets()[hist_iterator->jetp_index]; int jet_k; clust_seq.plugin_record_ij_recombination(conversion_table[step_jet1_index], conversion_table[step_jet2_index], last_def ? hist_iterator->dij : 0.0, newjet, jet_k); // save info in the conversion table for tracking purposes conversion_table[hist_iterator->jetp_index]=jet_k; } // go to the next history element hist_iterator++; } // finalise this step: // - update nr of particles // - update conversion table step_n = momenta.size(); for (unsigned int i=0;i. //---------------------------------------------------------------------- //ENDHEADER #ifndef __NESTEDALGSPLUGIN_HH__ #define __NESTEDALGSPLUGIN_HH__ #include "fastjet/JetDefinition.hh" #include #include #include // questionable whether this should be in fastjet namespace or not... FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // another forward declaration to reduce includes class PseudoJet; //---------------------------------------------------------------------- // /// @ingroup plugins /// \class NestedDefsPlugin /// Plugin to run multiple jet definitions successively (plugin for fastjet v2.4 upwards) /// /// NestedAglsPlugin is a plugin for fastjet (v2.4 upwards) that, given /// a list of jet definitions, performs the clustering by feeding the /// particles to the first algorithm and then, successively feeding the /// output to the next algorithm in the list. // class NestedDefsPlugin : public JetDefinition::Plugin { public: /// Main constructor for the NestedDefs Plugin class. /// /// The argument is an initialised list of jet algorithms NestedDefsPlugin (std::list &defs) : _defs(defs){} /// copy constructor NestedDefsPlugin (const NestedDefsPlugin & plugin) { *this = plugin; } // the things that are required by base class virtual std::string description () const; virtual void run_clustering(ClusterSequence &) const; /// the plugin mechanism's standard way of accessing the jet radius /// here we return the R of the last alg in the list virtual double R() const {return _defs.rbegin()->R();} private: std::list _defs; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __SISCONEPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/NestedDefs/fastjet/Makefile.in0000644000175000017500000003426212233506215022452 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/NestedDefs/fastjet DIST_COMMON = $(fastjetinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(fastjetincludedir)" HEADERS = $(fastjetinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fastjetincludedir = $(includedir)/fastjet fastjetinclude_HEADERS = NestedDefsPlugin.hh all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/NestedDefs/fastjet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/NestedDefs/fastjet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fastjetincludeHEADERS: $(fastjetinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludedir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludedir)" @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludedir)" || exit $$?; \ done uninstall-fastjetincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(fastjetincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fastjetincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fastjetincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-fastjetincludeHEADERS install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-fastjetincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/NestedDefs/fastjet/Makefile.am0000644000175000017500000000012511766120134022432 0ustar sunsunfastjetincludedir=$(includedir)/fastjet fastjetinclude_HEADERS = NestedDefsPlugin.hh fastjet-3.0.6+dfsg.orig/plugins/NestedDefs/Makefile.am0000644000175000017500000000046511766120134021001 0ustar sunsunSUBDIRS = fastjet . if MONOLITHIC_PLUGINS noinst_LTLIBRARIES = libNestedDefsPlugin.la else lib_LTLIBRARIES = libNestedDefsPlugin.la endif libNestedDefsPlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libNestedDefsPlugin_la_SOURCES = NestedDefsPlugin.cc EXTRA_DIST = makefile.static fastjet-3.0.6+dfsg.orig/plugins/README0000644000175000017500000000353011766120135015576 0ustar sunsunREADME for the plugins directory/ --------------------------------- This directory contains plugins that allow one to use certain cone jet-finders within the fastjet framework. For instructions on how to build and use plugins, see the main fastjet documentation. For documentation on specific plugins, see the plugin header files which contain extensive information. PxCone/ contains the pxcone code and the associated plugin; note that since pxcone is in fortran, when linking with this plugin it is necessary to link also with fortran libraries, and the variable that provides the options for this F77LIB is defined in ../Makefile. **** The user should have defined beforehand the environment variable G77LIBDIR which points to the directory containing the libg2c.a library. The command locate libg2c.a | head -1 | sed 's/\/[^\/]*$//' or dirname `locate libg2c.a | head -1` might help in locating such a directory. Alternatively, uncomment the G77LIBDIR line in ../Makefile **** CDFCones/ contains CDF's code for their jetclu and midpoint jet finders (actually in the CDFcode subdirectory), as well as the associated plugins. usage_examples/ some programs to illustrate use of individual plugins as well as several jet finders together. To run these programs, you should first: - build fastjet (see instructions in parent directory) - build the plugins: make (if you just want a subset of plugins just go to the relevant directory and build what you need). - then build an example program and then run it cd usage_examples make ./many_algs_example < data/single-event.dat fastjet-3.0.6+dfsg.orig/plugins/EECambridge/0000755000175000017500000000000012233507302016777 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/EECambridge/EECambridgePlugin.cc0000644000175000017500000000676711766120134022600 0ustar sunsun//STARTHEADER // $Id: EECambridgePlugin.cc 2577 2011-09-13 15:11:38Z salam $ // // Copyright (c) 2007-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER // fastjet stuff #include "fastjet/ClusterSequence.hh" #include "fastjet/EECambridgePlugin.hh" #include "fastjet/NNH.hh" // other stuff #include #include FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh using namespace std; //---------------------------------------------------------------------- /// class to help run an e+e- Cambridge algorithm class EECamBriefJet { public: void init(const PseudoJet & jet) { double norm = 1.0/sqrt(jet.modp2()); nx = jet.px() * norm; ny = jet.py() * norm; nz = jet.pz() * norm; } double distance(const EECamBriefJet * jet) const { double dij = 1 - nx*jet->nx - ny*jet->ny - nz*jet->nz; return dij; } double beam_distance() const { return numeric_limits::max(); } private: double nx, ny, nz; }; string EECambridgePlugin::description () const { ostringstream desc; desc << "EECambridge plugin with ycut = " << ycut() ; return desc.str(); } void EECambridgePlugin::run_clustering(ClusterSequence & cs) const { int njets = cs.jets().size(); NNH nnh(cs.jets()); double Q2 = cs.Q2(); while (njets > 0) { int i, j, k; // here we get a minimum based on the purely angular variable from the NNH class // (called dij there, but vij in the Cambridge article (which uses dij for // a kt distance...) double vij = nnh.dij_min(i, j); // i,j are return values... // next we work out the dij (ee kt distance), and based on its // value decide whether we have soft-freezing (represented here by // a "Beam" clustering) or not double dij; if (j >= 0) { double scale = min(cs.jets()[i].E(), cs.jets()[j].E()); dij = 2 * vij * scale * scale; if (dij > Q2 * ycut()) { // we'll call the softer partner a "beam" jet if (cs.jets()[i].E() > cs.jets()[j].E()) std::swap(i,j); j = -1; } } else { // for the last particle left, just use yij = 1 dij = Q2; } if (j >= 0) { cs.plugin_record_ij_recombination(i, j, dij, k); nnh.merge_jets(i, j, cs.jets()[k], k); } else { cs.plugin_record_iB_recombination(i, dij); nnh.remove_jet(i); } njets--; } } FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh fastjet-3.0.6+dfsg.orig/plugins/EECambridge/Makefile.in0000644000175000017500000006117412233506214021056 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/EECambridge DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) libEECambridgePlugin_la_LIBADD = am_libEECambridgePlugin_la_OBJECTS = \ libEECambridgePlugin_la-EECambridgePlugin.lo libEECambridgePlugin_la_OBJECTS = \ $(am_libEECambridgePlugin_la_OBJECTS) libEECambridgePlugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(libEECambridgePlugin_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ @MONOLITHIC_PLUGINS_FALSE@am_libEECambridgePlugin_la_rpath = -rpath \ @MONOLITHIC_PLUGINS_FALSE@ $(libdir) @MONOLITHIC_PLUGINS_TRUE@am_libEECambridgePlugin_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libEECambridgePlugin_la_SOURCES) DIST_SOURCES = $(libEECambridgePlugin_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = fastjet . @MONOLITHIC_PLUGINS_TRUE@noinst_LTLIBRARIES = libEECambridgePlugin.la @MONOLITHIC_PLUGINS_FALSE@lib_LTLIBRARIES = libEECambridgePlugin.la libEECambridgePlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libEECambridgePlugin_la_SOURCES = EECambridgePlugin.cc EXTRA_DIST = makefile.static all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/EECambridge/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/EECambridge/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libEECambridgePlugin.la: $(libEECambridgePlugin_la_OBJECTS) $(libEECambridgePlugin_la_DEPENDENCIES) $(libEECambridgePlugin_la_LINK) $(am_libEECambridgePlugin_la_rpath) $(libEECambridgePlugin_la_OBJECTS) $(libEECambridgePlugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libEECambridgePlugin_la-EECambridgePlugin.Plo@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libEECambridgePlugin_la-EECambridgePlugin.lo: EECambridgePlugin.cc @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libEECambridgePlugin_la_CXXFLAGS) $(CXXFLAGS) -MT libEECambridgePlugin_la-EECambridgePlugin.lo -MD -MP -MF $(DEPDIR)/libEECambridgePlugin_la-EECambridgePlugin.Tpo -c -o libEECambridgePlugin_la-EECambridgePlugin.lo `test -f 'EECambridgePlugin.cc' || echo '$(srcdir)/'`EECambridgePlugin.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libEECambridgePlugin_la-EECambridgePlugin.Tpo $(DEPDIR)/libEECambridgePlugin_la-EECambridgePlugin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='EECambridgePlugin.cc' object='libEECambridgePlugin_la-EECambridgePlugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libEECambridgePlugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libEECambridgePlugin_la-EECambridgePlugin.lo `test -f 'EECambridgePlugin.cc' || echo '$(srcdir)/'`EECambridgePlugin.cc mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/EECambridge/makefile.static0000644000175000017500000000227511766120134021777 0ustar sunsun# common fastjet definitions include ../../makefile.static CXXSRC = EECambridgePlugin.cc OBJS = $(patsubst %.cc,%.o,$(CXXSRC)) # fastjet includes FASTJET_INCLUDE = -I../../include INCLUDE += $(FASTJET_INCLUDE) all: libEECambridgePlugin.a libEECambridgePlugin.a: $(OBJS) ar cru libEECambridgePlugin.a $(OBJS) ranlib libEECambridgePlugin.a clean: rm -f $(OBJS) distclean: clean rm -f libEECambridgePlugin.a *~ # NB: only use "relative" includes here (others are too subject # to change according to the system one is on...) depend: # makedepend -f Makefile $(FASTJET_INCLUDE) -I. -I./fastjet -- -- $(CXXSRC) makedepend -f makefile.static $(FASTJET_INCLUDE) -I. -I./fastjet -- -- $(CXXSRC) # DO NOT DELETE EECambridgePlugin.o: ../../include/fastjet/ClusterSequence.hh EECambridgePlugin.o: ../../include/fastjet/internal/DynamicNearestNeighbours.hh EECambridgePlugin.o: ../../include/fastjet/internal/numconsts.hh EECambridgePlugin.o: ../../include/fastjet/internal/base.hh EECambridgePlugin.o: ../../include/fastjet/PseudoJet.hh EECambridgePlugin.o: ../../include/fastjet/Error.hh EECambridgePlugin.o: ../../include/fastjet/JetDefinition.hh EECambridgePlugin.o: fastjet/EECambridgePlugin.hh fastjet-3.0.6+dfsg.orig/plugins/EECambridge/fastjet/0000755000175000017500000000000012233507302020437 5ustar sunsunfastjet-3.0.6+dfsg.orig/plugins/EECambridge/fastjet/Makefile.in0000644000175000017500000003426612233506214022520 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/EECambridge/fastjet DIST_COMMON = $(fastjetinclude_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(fastjetincludedir)" HEADERS = $(fastjetinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fastjetincludedir = $(includedir)/fastjet fastjetinclude_HEADERS = EECambridgePlugin.hh all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/EECambridge/fastjet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/EECambridge/fastjet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fastjetincludeHEADERS: $(fastjetinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(fastjetincludedir)" || $(MKDIR_P) "$(DESTDIR)$(fastjetincludedir)" @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fastjetincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fastjetincludedir)" || exit $$?; \ done uninstall-fastjetincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(fastjetinclude_HEADERS)'; test -n "$(fastjetincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(fastjetincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(fastjetincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(fastjetincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fastjetincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fastjetincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-fastjetincludeHEADERS install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-fastjetincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/plugins/EECambridge/fastjet/Makefile.am0000644000175000017500000000012611766120134022476 0ustar sunsunfastjetincludedir=$(includedir)/fastjet fastjetinclude_HEADERS = EECambridgePlugin.hh fastjet-3.0.6+dfsg.orig/plugins/EECambridge/fastjet/EECambridgePlugin.hh0000644000175000017500000000637011766120134024240 0ustar sunsun#ifndef __EECAMBRIDGEPLUGIN_HH__ #define __EECAMBRIDGEPLUGIN_HH__ //STARTHEADER // $Id: EECambridgePlugin.hh 2692 2011-11-14 16:27:44Z soyez $ // // Copyright (c) 2009, Matteo Cacciari, Gavin Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/JetDefinition.hh" FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh // forward declaration to reduce includes class ClusterSequence; //---------------------------------------------------------------------- // /// @ingroup plugins /// \class EECambridgePlugin /// Implementation of the e+e- Cambridge algorithm (plugin for fastjet v2.4 upwards) /// /// EECambridgePlugin is a plugin for fastjet (v2.4 upwards) /// It implements the Cambridge algorithm, as defined in /// /// Better jet clustering algorithms /// Yuri Dokshitzer, Garth Leder, Stefano Moretti, Bryan Webber /// JHEP 9708 (1997) 001 /// http://www-spires.slac.stanford.edu/spires/find/hep/www?rawcmd=FIND+j+JHEPA%2C9708%2C001 /// /// On construction one must supply a ycut value. /// /// To get the jets at the end call ClusterSequence::inclusive_jets(); class EECambridgePlugin : public JetDefinition::Plugin { public: /// Main constructor for the EECambridge Plugin class. /// It takes the dimensionless parameter ycut (the Q value for normalisation /// of the kt-distances is taken from the sum of all particle energies). EECambridgePlugin (double ycut_in) : _ycut(ycut_in) {} /// copy constructor EECambridgePlugin (const EECambridgePlugin & plugin) { *this = plugin; } // the things that are required by base class virtual std::string description () const; virtual void run_clustering(ClusterSequence &) const; double ycut() const {return _ycut;} /// the plugin mechanism's standard way of accessing the jet radius. /// This must be set to return something sensible, even if R /// does not make sense for this algorithm! virtual double R() const {return 1.0;} /// avoid the warning whenever the user requests "exclusive" jets /// from the cluster sequence virtual bool exclusive_sequence_meaningful() const {return true;} private: double _ycut; }; FASTJET_END_NAMESPACE // defined in fastjet/internal/base.hh #endif // __EECAMBRIDGEPLUGIN_HH__ fastjet-3.0.6+dfsg.orig/plugins/EECambridge/Makefile.am0000644000175000017500000000047211766120134021042 0ustar sunsunSUBDIRS = fastjet . if MONOLITHIC_PLUGINS noinst_LTLIBRARIES = libEECambridgePlugin.la else lib_LTLIBRARIES = libEECambridgePlugin.la endif libEECambridgePlugin_la_CXXFLAGS = $(AM_CXXFLAGS) -I$(srcdir) -I$(srcdir)/../../include libEECambridgePlugin_la_SOURCES = EECambridgePlugin.cc EXTRA_DIST = makefile.static fastjet-3.0.6+dfsg.orig/plugins/Makefile.am0000644000175000017500000000431211766120135016751 0ustar sunsunSUBDIRS = if BUILD_PLUGIN_SISCONE SUBDIRS += SISCone endif if BUILD_PLUGIN_CDFCONES SUBDIRS += CDFCones endif if BUILD_PLUGIN_PXCONE SUBDIRS += PxCone endif if BUILD_PLUGIN_D0RUNIICONE SUBDIRS += D0RunIICone endif if BUILD_PLUGIN_NESTEDDEFS SUBDIRS += NestedDefs endif if BUILD_PLUGIN_TRACKJET SUBDIRS += TrackJet endif if BUILD_PLUGIN_ATLASCONE SUBDIRS += ATLASCone endif if BUILD_PLUGIN_EECAMBRIDGE SUBDIRS += EECambridge endif if BUILD_PLUGIN_JADE SUBDIRS += Jade endif if BUILD_PLUGIN_CMSITERATIVECONE SUBDIRS += CMSIterativeCone endif if BUILD_PLUGIN_D0RUNICONE SUBDIRS += D0RunICone endif if BUILD_PLUGIN_GRIDJET SUBDIRS += GridJet endif # end plugin section -- do not modify this line SUBDIRS += . if MONOLITHIC_PLUGINS lib_LTLIBRARIES = libfastjetplugins.la libfastjetplugins_la_SOURCES= nodist_EXTRA_libfastjetplugins_la_SOURCES = dummy.cc libfastjetplugins_la_LIBADD = if BUILD_PLUGIN_SISCONE libfastjetplugins_la_LIBADD += SISCone/libSISConePlugin.la endif if BUILD_PLUGIN_CDFCONES libfastjetplugins_la_LIBADD += CDFCones/libCDFConesPlugin.la endif if BUILD_PLUGIN_PXCONE libfastjetplugins_la_LIBADD += PxCone/libPxConePlugin.la endif if BUILD_PLUGIN_D0RUNIICONE libfastjetplugins_la_LIBADD += D0RunIICone/libD0RunIIConePlugin.la endif if BUILD_PLUGIN_NESTEDDEFS libfastjetplugins_la_LIBADD += NestedDefs/libNestedDefsPlugin.la endif if BUILD_PLUGIN_TRACKJET libfastjetplugins_la_LIBADD += TrackJet/libTrackJetPlugin.la endif if BUILD_PLUGIN_ATLASCONE libfastjetplugins_la_LIBADD += ATLASCone/libATLASConePlugin.la endif if BUILD_PLUGIN_EECAMBRIDGE libfastjetplugins_la_LIBADD += EECambridge/libEECambridgePlugin.la endif if BUILD_PLUGIN_JADE libfastjetplugins_la_LIBADD += Jade/libJadePlugin.la endif if BUILD_PLUGIN_CMSITERATIVECONE libfastjetplugins_la_LIBADD += CMSIterativeCone/libCMSIterativeConePlugin.la endif if BUILD_PLUGIN_D0RUNICONE libfastjetplugins_la_LIBADD += D0RunICone/libD0RunIConePlugin.la endif if BUILD_PLUGIN_GRIDJET libfastjetplugins_la_LIBADD += GridJet/libGridJetPlugin.la endif # end monolithic plugin section -- do not modify this line endif DIST_SUBDIRS = GridJet D0RunICone CMSIterativeCone Jade EECambridge ATLASCone TrackJet SISCone CDFCones PxCone D0RunIICone NestedDefs EXTRA_DIST = makefile.static fastjet-3.0.6+dfsg.orig/INSTALL0000644000175000017500000002317011766120142014266 0ustar sunsun------------------------------------- Installation instructions for FastJet ------------------------------------- FastJet can be configured, built and installed using the standard sequence % ./configure [options] % make % make check (optional) % make install The full list of configuration options can be obtained with ./configure --help. Some useful ones include: --prefix= (default=/usr/local) specify location where FastJet will be installed The library and plugins will be installed in ${prefix}/lib while the headers will be placed in ${prefix}/include/fastjet --disable-static --enable-static disable/enable construction of static libraries (enabled by default) --disable-shared --enable-shared disable/enable construction of shared libraries (enabled by default) --enable-cgal enable use of CGAL libraries, which are needed for the N ln N version of the k_t algorithm and N^{3/2} version of anti-k_t; relevant mainly if you expect to have N>15000. --with-cgaldir=directory For CGAL >= 3.4 tells it where to look for CGAL, if it's not in a standard place. --with-cgalmakefile=makefile For CGAL <= 3.3.x specify location of CGAL Makefile (which contains info on correct compilation flags when using CGAL). In the absence of this flag, the environment variable $(CGAL_MAKEFILE) will be used to locate the CGAL Makefile. If this is absent too, the default location (/usr/share/cgal/cgal.mk) is used. --enable-allcxxplugins (default=no) enable all C++ plugins, but not the Fortran ones --enable-allplugins (default=no) enable all plugins, including the Fortran ones (PxCone). --enable-siscone (default=yes) enables the SISCone plugin --enable-cdfcones (default=yes) enables the CDFJetClu and CDFMidPoint plugins --enable-d0runiicone (default=no) enables the D0RunIICone (also known as ILConeAlgorithm within D0) --enable-pxcone (default=no) enables the PxCone plugin (note this is in f77, and so you may have to deal with C++/f77 compatibility issues) etc. many more plugins available: --help option lists them As well as installing the libraries and headers, "make install" also installs ${prefix}/bin/fastjet-config; assuming this is in your path, then you can compile a program that uses fastjet as follows % g++ myprog.cc `fastjet-config --cxxflags --libs --plugins` -o myprog The --plugins option is only needed if you want access to plugins. If shared libraries are built, they will be used by default. You can still switch to the static libraries by adding the --shared=no option. Other examples of the usage of this are given in the Makefile.alt file in the example directory. Note on the --enable-foo usage ------------------------------ Each --enable-foo option can also be specified using --enable-foo=yes. If, instead you want to disable the option, you can use --enable-foo=no or --disable-foo. Note for SVN users -- developers only ------------------ If you download a subversion copy of FastJet (currently restricted to the developers), you first need to generate all configuration files. This is done by using % autoreconf --install % ./configure [configure option] or, alternatively, % ./autogen.sh [configure option] Remarks: - a version of libtool >= 1.5 is needed. On Mac OSX the GNU libtool should be installed. - adding '--force' to the list of autoreconf arguments will overwrite the INSTALL file with the default version - using the autogen.sh script automatically runs ./configure (with the specified options) ====================================================================== OLD (NON-AUTOTOOLS) BUILD SYSTEM ====================================================================== ------------ Quick method ------------ Run the following to build FastJet and its plugins and to test them. % ./test-static.sh (NB: this no longer works as of FastJet 2.4, but the files have been left in place in case somebody prefers a non-autotools solution and wishes to update it.) ------------------ Longer description ------------------ To make it possible to have two build systems in parallel, the makefiles for the old system are named makefile.static -- you should tell make to use them explicitly with the "-f makefile.static" option. As a first step the user should decide whether or not they want to have access to the N ln N algorithms for the kt algorithm, based on the Computational Geometry Algorithms Library (CGAL). If the user does not wish to use it, he or she should ensure that the Makefile in the top directory has the line USE_CGAL = no Otherwise it should read USE_CGAL = yes In that case the user should first download CGAL from http://www.cgal.org/ and then compile and install it. Under linux, she or he will have to ensure that an environment variable CGAL_MAKEFILE points to the Makefile generated by CGAL at install time, containing various definitions of locations of include files. CGAL will encourage the user to set this variable during the install process. Then in the src/ directory do % make -f makefile.static % make -f makefile.static install which places the fastjet library in lib/. To build the cone jet-finder plugins, you should go to the plugin directory and type % make -f makefile.static % make -f makefile.static pxcone // OPTIONAL -- if you want fortran pxcone plugin // to be compiled too -- make sure you also set // G77LIBDIR in the main Makefile To run the example program cd to the example directory and do % make -f makefile.static fastjet_example % ./fastjet_example < data/single-event.dat The output (without CGAL) should be >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #-------------------------------------------------------------------------- # FastJet release 2.3-beta0 # Written by M. Cacciari, G.P. Salam and G. Soyez # http://www.lpthe.jussieu.fr/~salam/fastjet # # Longitudinally invariant Kt, anti-Kt, and inclusive Cambridge/Aachen # clustering using fast geometric algorithms, with area measures and optional # external jet-finder plugins. # Please cite Phys. Lett. B641 (2006) [hep-ph/0512210] if you use this code. # # This package uses T.Chan's closest pair algorithm, Proc.13th ACM-SIAM # Symp. Discr. Alg, p.472 (2002), S.Fortune's Voronoi algorithm and code . #------------------------------------------------------------------------- Ran Longitudinally invariant kt algorithm with R = 1 and E scheme recombination Strategy adopted by FastJet was N2Tiled Printing inclusive jets with pt > 5 GeV --------------------------------------- jet # rapidity phi pt n constituents 0 -0.86730713 2.90511470 983.38727662 35 1 0.22380471 6.04226446 910.28808604 52 2 -1.16520657 6.04589034 70.78886044 48 3 -2.34731970 1.25431317 10.72317440 18 4 -1.19479918 0.80734483 8.29342805 15 5 -1.71897064 4.01955399 8.16413672 9 6 -4.71909257 4.09173629 5.57326514 15 7 3.42713139 5.74362063 5.17254118 13 8 -4.83615264 2.20502275 5.02711586 12 Printing exclusive jets with dcut = 25 GeV^2 -------------------------------------------- jet # rapidity phi pt n constituents 0 -0.86730713 2.90511470 983.38727662 35 1 0.22093749 6.02911715 898.62586887 29 2 -1.16520657 6.04589034 70.78886044 48 3 0.36257181 0.54763129 16.65531147 23 4 -2.34731970 1.25431317 10.72317440 18 5 -1.19479918 0.80734483 8.29342805 15 6 -1.71897064 4.01955399 8.16413672 9 7 -4.71909257 4.09173629 5.57326514 15 8 3.42713139 5.74362063 5.17254118 13 9 -4.83615264 2.20502275 5.02711586 12 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Additionally the example/ directory contains the following other programs - ktjet_example same example program, but written with ktjet, to illustrate similarities and differences with fastjet_example. For compilation to work please set the KTJET_INCLUDE and KTJET_LIBRARY variables in the fastjet main Makefile. - ktjet_timing - fastjet_timing_plugins programs for testing output and timings of the two programs -- may be run with a variety of command-line options to control behaviour -- see the beginning of fastjet_timing_plugins.cc for further information. - fastjet_areas example program for evaluating the areas of the jets in a single event (it reads in the same input file as fastjet_example) - A number of examples named 01-XXX.cc, 02-YYY.cc, etc, where FastJet features are illustrated in increasing order of complexity. fastjet-3.0.6+dfsg.orig/test-static.sh0000755000175000017500000000652411766120142016044 0ustar sunsun#!/bin/bash # Script for testing whether everything works with the old (pre 2.3) build # framework. This compiles things and runs a few tests. # Usage # ./test-script.sh [-c] [-j2] # following was designed for when pxcone was part of test script. # # set G77LIBDIR if the user has not set it in its environment # if [[ ! $G77LIBDIR ]] ; then # dir=`locate libg2c.a | head -1` # dir=`dirname $dir` # echo Setting G77LIBDIR to $dir # echo Press return to accept, or input a different directory # read newdir # if [[ $newdir == "" ]]; then # export G77LIBDIR=$dir # else # export G77LIBDIR=$newdir # fi # fi # set CLEAN to "empty string" in order NOT to clean CLEAN="" MAKEARGS="-f makefile.static " # flag -c in input to clean, -jN to make for arg in $* do if [[ $arg == "-c" ]]; then CLEAN="1" elif [[ $arg == "-j2" ]]; then MAKEARGS=$MAKEARGS" "$arg elif [[ $arg == "-j4" ]]; then MAKEARGS=$MAKEARGS" "$arg elif [[ $arg == "-j8" ]]; then MAKEARGS=$MAKEARGS" "$arg fi done # output file OUTPUT=/tmp/output$$ # build the main package pushd src if [ $CLEAN ]; then make $MAKEARGS clean || exit -1; fi make $MAKEARGS install popd # build the plugins pushd plugins if [ $CLEAN ]; then make $MAKEARGS clean || exit -1; fi make $MAKEARGS || exit -1 popd # build the examples -- tests will be postponed to later pushd example if [ $CLEAN ]; then make $MAKEARGS clean || exit -1; fi make $MAKEARGS fastjet_example || exit -1 ## (./fastjet_example < data/single-event.dat | tee $OUTPUT) || exit -1 make $MAKEARGS fastjet_areas || exit -1 ## (./fastjet_areas < data/single-event.dat | tee -a $OUTPUT) || exit -1 make $MAKEARGS fastjet_example_v1_interface || exit -1 make $MAKEARGS fastjet_subtraction || exit -1 make $MAKEARGS fastjet_timing || exit -1 #make $MAKEARGS fastjet_timing_plugins || exit -1 popd # build some plugin examples pushd plugins/usage_examples if [ $CLEAN ]; then make $MAKEARGS clean || exit -1; fi #make $MAKEARGS cdfmidpoint_example many_algs_example pxcone_example siscone_example || exit -1 make $MAKEARGS cdfmidpoint_example many_algs_example siscone_example || exit -1 ## (./many_algs_example < data/single-event.dat | tee -a $OUTPUT) || exit -1 popd # now run tests from the tests-compare.sh export srcdir=. ./test-compare.sh ## # mv the output file to a "decent" place (remove ## #mv $OUTPUT test-script-output.txt ## grep -v 'CGAL' $OUTPUT > test-script-output.txt ## echo ## echo ----------------------------------------------------------- ## echo "Comparing output from these runs (test-script-output.txt) " ## echo "to the expected output (test-script-output-orig.txt)" ## echo ----------------------------------------------------------- ## grep -v -e '#' -e 'SISCone' test-script-output.txt > output1.tmp ## grep -v -e '#' -e 'SISCone' test-script-output-orig.txt > output2.tmp ## #diff --ignore-matching-lines="#" --ignore-matching-lines=SISCone test-script-output.txt test-script-output-orig.txt > $OUTPUT ## #DIFF=`diff --ignore-matching-lines="#" --ignore-matching-lines=SISCone test-script-output.txt test-script-output-orig.txt` ## diff output1.tmp output2.tmp > $OUTPUT ## DIFF=`diff output1.tmp output2.tmp` ## rm output1.tmp output2.tmp ## if [[ $DIFF ]]; then cat $OUTPUT ## else ## echo Results are identical ## fi ## ## # remove temporary output file ## rm -f $OUTPUT fastjet-3.0.6+dfsg.orig/config.guess0000755000175000017500000012761512111460634015564 0ustar sunsun#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-11-20' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: fastjet-3.0.6+dfsg.orig/fastjet-config.in0000755000175000017500000002277211766120142016502 0ustar sunsun#!/bin/bash # # @configure_input@ # # This is the base script for retrieving all information # regarding compiling and linking programs using FastJet. # Run ./fastjet-config without arguments for usage details ######################################################### # the list of plugins is dynamic so we need the following # line to deal with the static lib link installationdir=@prefix@ prefix=@prefix@ exec_prefix=@exec_prefix@ # print a usage message and exit # exit code passed as argument: # 0 if it is a normal call # 1 if it is due to a misusage. usage() { if [ "x@HAS_SHARED@" == "xyes" ] ; then cat 1>&2 <&2 </dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell bug-autoconf@gnu.org about your system, echo including any error possibly output before this message. echo This can help us improve future autoconf versions. echo Configuration will now proceed without shell functions. } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF $* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='FastJet' PACKAGE_TARNAME='fastjet' PACKAGE_VERSION='3.0.6' PACKAGE_STRING='FastJet 3.0.6' PACKAGE_BUGREPORT='' ac_unique_file="src/JetDefinition.cc" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_default_prefix=/usr/local enable_option_checking=no ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS CONFIGURE_INVOCATION CONFIG_SUMMARY LIST_ALL_PLUGINS CONFIG_LIBS CONFIG_CXXFLAGS CONFIG_LIBS_PLUGINS_STATIC CONFIG_LIBS_PLUGINS D0_CXXFLAGS AM_FCFLAGS AM_FFLAGS F77 FLIBS FFLAGS FCLIBS ac_ct_FC FCFLAGS FC OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP NM ac_ct_DUMPBIN DUMPBIN LD FGREP host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL BUILD_PLUGIN_GRIDJET_FALSE BUILD_PLUGIN_GRIDJET_TRUE BUILD_PLUGIN_D0RUNICONE_FALSE BUILD_PLUGIN_D0RUNICONE_TRUE BUILD_PLUGIN_JADE_FALSE BUILD_PLUGIN_JADE_TRUE BUILD_PLUGIN_EECAMBRIDGE_FALSE BUILD_PLUGIN_EECAMBRIDGE_TRUE BUILD_PLUGIN_CMSITERATIVECONE_FALSE BUILD_PLUGIN_CMSITERATIVECONE_TRUE BUILD_PLUGIN_ATLASCONE_FALSE BUILD_PLUGIN_ATLASCONE_TRUE BUILD_PLUGIN_TRACKJET_FALSE BUILD_PLUGIN_TRACKJET_TRUE BUILD_PLUGIN_NESTEDDEFS_FALSE BUILD_PLUGIN_NESTEDDEFS_TRUE BUILD_PLUGIN_D0RUNIICONE_FALSE BUILD_PLUGIN_D0RUNIICONE_TRUE BUILD_PLUGIN_PXCONE_FALSE BUILD_PLUGIN_PXCONE_TRUE BUILD_PLUGIN_CDFCONES_FALSE BUILD_PLUGIN_CDFCONES_TRUE subdirs BUILD_PLUGIN_SISCONE_FALSE BUILD_PLUGIN_SISCONE_TRUE MONOLITHIC_PLUGINS_FALSE MONOLITHIC_PLUGINS_TRUE HAS_SHARED AM_CXXFLAGS CONFIG_RUNPATH_FLAGS HAS_RUNPATH_SUPPORT CGAL_LIBS CGAL_CPPFLAGS CXXCPP SED LN_S cxx_found am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking enable_debug enable_extra_warnings enable_shared enable_cgal with_cgalmakefile with_cgaldir enable_allplugins enable_allcxxplugins enable_monolithic enable_siscone enable_cdfcones enable_pxcone enable_d0runiicone enable_nesteddefs enable_trackjet enable_atlascone enable_cmsiterativecone enable_eecambridge enable_jade enable_d0runicone enable_gridjet enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP FC FCFLAGS' ac_subdirs_all='plugins/SISCone/siscone' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 { (exit 1); exit 1; }; } ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures FastJet 3.0.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/fastjet] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of FastJet 3.0.6:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-debug Turn on debug compiler information default=yes --enable-extra-warnings Turn on additional compiler warnings default=no --enable-shared[=PKGS] build shared libraries [default=yes] --enable-cgal enables link with the CGAL library default=no --enable-allplugins enables all the FastJet plugins (default=no) --enable-allcxxplugins enables all the CXX FastJet plugins (default=no) --enable-monolithic Build all the (compiled) plugins in a single lib default=yes --enable-siscone enables the SISCone plugin [default=yes] --enable-cdfcones enables the CDFCones plugin [default=yes] --enable-pxcone enables the PxCone plugin [default=no] --enable-d0runiicone enables the D0RunIICone plugin [default=no] --enable-nesteddefs enables the NestedDefs plugin [default=yes] --enable-trackjet enables the TrackJet plugin [default=no] --enable-atlascone enables the ATLASCone plugin [default=no] --enable-cmsiterativecone enables the CMSIterativeCone plugin [default=no] --enable-eecambridge enables the EECambridge plugin [default=yes] --enable-jade enables the Jade plugin [default=yes] --enable-d0runicone enables the D0RunICone plugin [default=no] --enable-gridjet enables the GridJet plugin [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-cgalmakefile=makefile Use the following CGAL makefile (CGAL <= 3.3.x) --with-cgaldir=dir Assume the given directory for CGAL (CGAL >= 3.4) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor FC Fortran compiler command FCFLAGS Fortran compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF FastJet configure 3.0.6 generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by FastJet $as_me 3.0.6, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 $as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 $as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5 $as_echo "$as_me: error: unsafe absolute working directory name" >&2;} { (exit 1); exit 1; }; };; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5 $as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;} { (exit 1); exit 1; }; };; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 $as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 $as_echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:$LINENO: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 $as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='fastjet' VERSION='3.0.6' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} { $as_echo "$as_me:$LINENO: checking how to create a ustar tar archive" >&5 $as_echo_n "checking how to create a ustar tar archive... " >&6; } # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar plaintar pax cpio none' _am_tools=${am_cv_prog_tar_ustar-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do { echo "$as_me:$LINENO: $_am_tar --version" >&5 ($_am_tar --version) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && break done am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x ustar -w "$$tardir"' am__tar_='pax -L -x ustar -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H ustar -L' am__tar_='find "$tardir" -print | cpio -o -H ustar -L' am__untar='cpio -i -H ustar -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_ustar}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -rf conftest.dir if test -s conftest.tar; then { echo "$as_me:$LINENO: $am__untar &5 ($am__untar &5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } grep GrepMe conftest.dir/file >/dev/null 2>&1 && break fi done rm -rf conftest.dir if test "${am_cv_prog_tar_ustar+set}" = set; then $as_echo_n "(cached) " >&6 else am_cv_prog_tar_ustar=$_am_tool fi { $as_echo "$as_me:$LINENO: result: $am_cv_prog_tar_ustar" >&5 $as_echo "$am_cv_prog_tar_ustar" >&6; } if test "$prefix" = "$PWD"; then { { $as_echo "$as_me:$LINENO: error: Installation into the build directory is not supported: use a different --prefix argument" >&5 $as_echo "$as_me: error: Installation into the build directory is not supported: use a different --prefix argument" >&2;} { (exit 1); exit 1; }; } fi ac_config_headers="$ac_config_headers include/fastjet/config_raw.h:config.h.in" ac_config_commands="$ac_config_commands include/fastjet/config_auto.h" DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:$LINENO: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { $as_echo "$as_me:$LINENO: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 $as_echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi fi fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } { $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext { $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:$LINENO: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:$LINENO: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for int" >&5 $as_echo_n "checking for int... " >&6; } if test "${ac_cv_type_int+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_type_int=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof (int)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof ((int))) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_int=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 $as_echo "$ac_cv_type_int" >&6; } { $as_echo "$as_me:$LINENO: checking for long" >&5 $as_echo_n "checking for long... " >&6; } if test "${ac_cv_type_long+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_type_long=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof (long)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof ((long))) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 $as_echo "$ac_cv_type_long" >&6; } USE_CUSTOM_FLAGS="yes" if [ "x$CXXFLAGS" == "x" ]; then CXXFLAGS="-O3 -Wall" USE_CUSTOM_FLAGS="no" fi # test "x${CXXFLAGS+yes}" == "xyes" || CXXFLAGS="-O3 -Wall" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:$LINENO: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi cxx_progname=$(basename $CXX) cxx_dirname=$(dirname $CXX) # Extract the first word of "$cxx_progname", so it can be a program name with args. set dummy $cxx_progname; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_cxx_found+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$cxx_found"; then ac_cv_prog_cxx_found="$cxx_found" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_cxx_found="yes" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_cxx_found" && ac_cv_prog_cxx_found="no.$cxx_dirname$PATH_SEPARATOR$PATH" fi fi cxx_found=$ac_cv_prog_cxx_found if test -n "$cxx_found"; then { $as_echo "$as_me:$LINENO: result: $cxx_found" >&5 $as_echo "$cxx_found" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$cxx_found" == "xno"; then { { $as_echo "$as_me:$LINENO: error: No functional C++ compiler found" >&5 $as_echo "$as_me: error: No functional C++ compiler found" >&2;} { (exit 1); exit 1; }; } fi # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed $as_unset ac_script || ac_script= if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5 $as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed { $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi AM_CXXFLAGS="" { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi CONFIG_CXXFLAGS="" CONFIG_RUNPATH_FLAGS="" CONFIG_LIBS="" CONFIG_LIBS_PLUGINS="" CONFIG_LIBS_PLUGINS_STATIC="" # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then enableval=$enable_debug; ENABLE_DEBUG_FLAG="$enableval" else ENABLE_DEBUG_FLAG="yes" fi if [ "$ENABLE_DEBUG_FLAG" == "yes" ] ; then AM_CXXFLAGS=${AM_CXXFLAGS}" -g " { $as_echo "$as_me:$LINENO: checking if $CXX supports -Woverloaded-virtual flag" >&5 $as_echo_n "checking if $CXX supports -Woverloaded-virtual flag... " >&6; } SAVE_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-Woverloaded-virtual" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main(void){ return 0;} _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_overloaded_virtual_ok=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_overloaded_virtual_ok=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CXXFLAGS="$SAVE_CXXFLAGS" { $as_echo "$as_me:$LINENO: result: $ac_overloaded_virtual_ok" >&5 $as_echo "$ac_overloaded_virtual_ok" >&6; } if [ "x${ac_overloaded_virtual_ok}" == "xyes" ]; then AM_CXXFLAGS=${AM_CXXFLAGS}" -Woverloaded-virtual " fi fi # Check whether --enable-extra-warnings was given. if test "${enable_extra_warnings+set}" = set; then enableval=$enable_extra_warnings; ENABLE_EXTRA_WARNINGS_FLAG="$enableval" else ENABLE_EXTRA_WARNINGS_FLAG="no" fi if [ "$ENABLE_EXTRA_WARNINGS_FLAG" == "yes" ] ; then AM_CXXFLAGS=${AM_CXXFLAGS}" -ansi -pedantic -Wextra -Wshadow " fi # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi HAS_SHARED=${enable_shared} for ac_header in execinfo.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for cos in -lm" >&5 $as_echo_n "checking for cos in -lm... " >&6; } if test "${ac_cv_lib_m_cos+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char cos (); int main () { return cos (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_m_cos=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_cos=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_cos" >&5 $as_echo "$ac_cv_lib_m_cos" >&6; } if test "x$ac_cv_lib_m_cos" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF LIBS="-lm $LIBS" fi CONFIG_CXXFLAGS="" CONFIG_LIBS=${CONFIG_LIBS}" -lm " CGAL_CPPFLAGS="" CGAL_LIBS="" # Check whether --enable-cgal was given. if test "${enable_cgal+set}" = set; then enableval=$enable_cgal; ENABLE_CGAL_FLAG="$enableval" else ENABLE_CGAL_FLAG="no" fi if [ "x${ENABLE_CGAL_FLAG}" == "xyes" ] ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:$LINENO: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 $as_echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu acx_cgal_found=no acx_cgal_default_makefile=no # Check whether --with-cgalmakefile was given. if test "${with_cgalmakefile+set}" = set; then withval=$with_cgalmakefile; fi # Check whether --with-cgaldir was given. if test "${with_cgaldir+set}" = set; then withval=$with_cgaldir; fi case $with_cgalmakefile in yes | "") if test x${CGAL_MAKEFILE} = x ; then # if no installation dir is explicitly specified, try a default makefile if test \! -z "$with_cgaldir"; then CGAL_MAKEFILE="" else CGAL_MAKEFILE="/usr/share/cgal/cgal.mk" fi fi acx_cgal_default_makefile=yes; ;; no) acx_cgal_found=disable ;; -* | */* | *.a | *.so | *.so.* | *.o) CGAL_MAKEFILE="$with_cgalmakefile" ;; *) CGAL_MAKEFILE="$with_cgalmakefile" ;; esac if test "$acx_cgal_found" == no; then { $as_echo "$as_me:$LINENO: checking CGAL_MAKEFILE" >&5 $as_echo_n "checking CGAL_MAKEFILE... " >&6; } if test \! -z "$CGAL_MAKEFILE"; then if test -e "$CGAL_MAKEFILE"; then tname=`mktemp /tmp/cgal_makefile_dsrXXXXXX` cat > $tname << _ACEOF include $CGAL_MAKEFILE cppflags: @echo \$(CGAL_CXXFLAGS) cxxflags: @echo ldflags: @echo \$(CGAL_LDFLAGS) _ACEOF CGAL_CPPFLAGS="`make -s -f $tname cppflags`" CGAL_CXXFLAGS="`make -s -f $tname cxxflags`" CGAL_LDFLAGST="`make -s -f $tname ldflags`" for i in $CGAL_LDFLAGST; do if test `echo $i| grep -c ^-l`; then CGAL_LIBS="$CGAL_LIBS $i" else CGAL_LDFLAGS="$CGAL_LDFLAGS $i" fi done rm -f $tname { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } acx_cgal_found=yes else { $as_echo "$as_me:$LINENO: result: inexistent" >&5 $as_echo "inexistent" >&6; } if test "$acx_cgal_default_makefile" == no; then { { $as_echo "$as_me:$LINENO: error: CGAL_MAKEFILE defined as $CGAL_MAKEFILE, but the makefile does not exist." >&5 $as_echo "$as_me: error: CGAL_MAKEFILE defined as $CGAL_MAKEFILE, but the makefile does not exist." >&2;} { (exit 1); exit 1; }; } fi fi else { $as_echo "$as_me:$LINENO: result: not specified" >&5 $as_echo "not specified" >&6; } fi fi if test "$acx_cgal_found" == no; then ADDITIONAL_CGAL_FLAGS="" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:$LINENO: checking whether C++ compiler accepts -frounding-math" >&5 $as_echo_n "checking whether C++ compiler accepts -frounding-math... " >&6; } if test "${ax_cv_cxx_flags__frounding_math+set}" = set; then $as_echo_n "(cached) " >&6 else ax_save_FLAGS=$CXXFLAGS CXXFLAGS="-frounding-math" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ax_cv_cxx_flags__frounding_math=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ax_cv_cxx_flags__frounding_math=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CXXFLAGS=$ax_save_FLAGS fi eval ax_check_compiler_flags=$ax_cv_cxx_flags__frounding_math { $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then ADDITIONAL_CGAL_FLAGS=${ADDITIONAL_CGAL_FLAGS}" -frounding-math" else : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu save_LIBS="$LIBS" save_LDFLAGS="$LDFLAGS" save_CXXFLAGS="$CXXFLAGS" save_CPPFLAGS="$CPPFLAGS" CGAL_CXXFLAGS="" CGAL_CPPFLAGS="" CGAL_LDFLAGS="" CGAL_LIBS="" if test \! -z "$with_cgaldir"; then { $as_echo "$as_me:$LINENO: checking CGAL in ${with_cgaldir}" >&5 $as_echo_n "checking CGAL in ${with_cgaldir}... " >&6; } LDFLAGS="${LDFLAGS} -L${with_cgaldir}/lib -Wl,-rpath,${with_cgaldir}/lib" CXXFLAGS="${CXXFLAGS} -I${with_cgaldir}/include $ADDITIONAL_CGAL_FLAGS" CPPFLAGS="${CPPFLAGS} -I${with_cgaldir}/include $ADDITIONAL_CGAL_FLAGS" CGAL_CPPFLAGS="-I${with_cgaldir}/include" CGAL_CXXFLAGS="-I${with_cgaldir}/include" CGAL_LIBS="-L${with_cgaldir}/lib -Wl,-rpath,${with_cgaldir}/lib" fi CXXFLAGS=${CXXFLAGS}" $ADDITIONAL_CGAL_FLAGS" CPPFLAGS=${CPPFLAGS}" $ADDITIONAL_CGAL_FLAGS" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test "${ac_cv_header_CGAL_Exact_predicates_inexact_constructions_kernel_h+set}" = set; then { $as_echo "$as_me:$LINENO: checking for CGAL/Exact_predicates_inexact_constructions_kernel.h" >&5 $as_echo_n "checking for CGAL/Exact_predicates_inexact_constructions_kernel.h... " >&6; } if test "${ac_cv_header_CGAL_Exact_predicates_inexact_constructions_kernel_h+set}" = set; then $as_echo_n "(cached) " >&6 fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_CGAL_Exact_predicates_inexact_constructions_kernel_h" >&5 $as_echo "$ac_cv_header_CGAL_Exact_predicates_inexact_constructions_kernel_h" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking CGAL/Exact_predicates_inexact_constructions_kernel.h usability" >&5 $as_echo_n "checking CGAL/Exact_predicates_inexact_constructions_kernel.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking CGAL/Exact_predicates_inexact_constructions_kernel.h presence" >&5 $as_echo_n "checking CGAL/Exact_predicates_inexact_constructions_kernel.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: CGAL/Exact_predicates_inexact_constructions_kernel.h: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for CGAL/Exact_predicates_inexact_constructions_kernel.h" >&5 $as_echo_n "checking for CGAL/Exact_predicates_inexact_constructions_kernel.h... " >&6; } if test "${ac_cv_header_CGAL_Exact_predicates_inexact_constructions_kernel_h+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_header_CGAL_Exact_predicates_inexact_constructions_kernel_h=$ac_header_preproc fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_CGAL_Exact_predicates_inexact_constructions_kernel_h" >&5 $as_echo "$ac_cv_header_CGAL_Exact_predicates_inexact_constructions_kernel_h" >&6; } fi if test "x$ac_cv_header_CGAL_Exact_predicates_inexact_constructions_kernel_h" = x""yes; then cgal_have_header=yes else cgal_have_header=no fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test "$cgal_have_header" == yes; then CGAL_CPPFLAGS="${CGAL_CPPFLAGS} $ADDITIONAL_CGAL_FLAGS" CGAL_CXXFLAGS="${CGAL_CXXFLAGS} $ADDITIONAL_CGAL_FLAGS" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:$LINENO: checking for main in -lCGAL" >&5 $as_echo_n "checking for main in -lCGAL... " >&6; } if test "${ac_cv_lib_CGAL_main+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lCGAL $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_CGAL_main=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_CGAL_main=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_CGAL_main" >&5 $as_echo "$ac_cv_lib_CGAL_main" >&6; } if test "x$ac_cv_lib_CGAL_main" = x""yes; then cgal_have_lib=yes else cgal_have_lib=no fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test "$cgal_have_lib" == yes; then CGAL_LIBS=${CGAL_LIBS}" -lCGAL" { $as_echo "$as_me:$LINENO: checking for main in -lmpfr" >&5 $as_echo_n "checking for main in -lmpfr... " >&6; } if test "${ac_cv_lib_mpfr_main+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpfr $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_mpfr_main=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_mpfr_main=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mpfr_main" >&5 $as_echo "$ac_cv_lib_mpfr_main" >&6; } if test "x$ac_cv_lib_mpfr_main" = x""yes; then CGAL_LIBS="$CGAL_LIBS -lmpfr" fi { $as_echo "$as_me:$LINENO: checking for main in -lgmp" >&5 $as_echo_n "checking for main in -lgmp... " >&6; } if test "${ac_cv_lib_gmp_main+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgmp $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_gmp_main=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_gmp_main=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_gmp_main" >&5 $as_echo "$ac_cv_lib_gmp_main" >&6; } if test "x$ac_cv_lib_gmp_main" = x""yes; then CGAL_LIBS="$CGAL_LIBS -lgmp" fi { $as_echo "$as_me:$LINENO: checking for main in -lgmpxx" >&5 $as_echo_n "checking for main in -lgmpxx... " >&6; } if test "${ac_cv_lib_gmpxx_main+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgmpxx $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_gmpxx_main=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_gmpxx_main=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_gmpxx_main" >&5 $as_echo "$ac_cv_lib_gmpxx_main" >&6; } if test "x$ac_cv_lib_gmpxx_main" = x""yes; then CGAL_LIBS="$CGAL_LIBS -lgmpxx" fi acx_cgal_found=yes fi fi LIBS="$save_LIBS" LDFLAGS="$save_LDFLAGS" CXXFLAGS="$save_CXXFLAGS" CPPFLAGS="$save_CPPFLAGS" if test "$acx_cgal_found" == no; then CGAL_CPPFLAGS="" CGAL_CXXFLAGS="" CGAL_LDFLAGS="" CGAL_LIBS="" fi fi { $as_echo "$as_me:$LINENO: checking CGAL" >&5 $as_echo_n "checking CGAL... " >&6; } if test "$acx_cgal_found" == yes; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; }; else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; }; { { $as_echo "$as_me:$LINENO: error: CGAL explicitly requested and not found or not functional" >&5 $as_echo "$as_me: error: CGAL explicitly requested and not found or not functional" >&2;} { (exit 1); exit 1; }; } fi fi if [ "x$ENABLE_CGAL_FLAG" == "xyes" ] ; then AM_CXXFLAGS=${AM_CXXFLAGS}" $CGAL_CPPFLAGS " CONFIG_LIBS=${CONFIG_LIBS}" $CGAL_LDFLAGS $CGAL_LIBS " else AM_CXXFLAGS=${AM_CXXFLAGS}" -DDROP_CGAL " fi { $as_echo "$as_me:$LINENO: checking if $CXX supports -Wl,--enable-new-dtags flag" >&5 $as_echo_n "checking if $CXX supports -Wl,--enable-new-dtags flag... " >&6; } SAVE_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-Werror -Wl,--enable-new-dtags" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main(void){ return 0;} _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_enable_new_dtags_ok=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_enable_new_dtags_ok=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CXXFLAGS="$SAVE_CXXFLAGS" { $as_echo "$as_me:$LINENO: result: $ac_enable_new_dtags_ok" >&5 $as_echo "$ac_enable_new_dtags_ok" >&6; } HAS_RUNPATH_SUPPORT="no" CONFIG_RUNPATH_FLAGS="" if [ "x${ac_enable_new_dtags_ok}" == "xyes" ]; then HAS_RUNPATH_SUPPORT="yes" CONFIG_RUNPATH_FLAGS="-Wl,--enable-new-dtags" fi ac_config_files="$ac_config_files plugins/Makefile" CONFIG_LIBS_PLUGINS="" CONFIG_LIBS_PLUGINS_STATIC="" DEFAULT_ENABLE_SISCONE="yes" DEFAULT_ENABLE_CDFCONES="yes" DEFAULT_ENABLE_PXCONE="no" DEFAULT_ENABLE_D0RUNIICONE="no" DEFAULT_ENABLE_NESTEDDEFS="yes" DEFAULT_ENABLE_TRACKJET="no" DEFAULT_ENABLE_ATLASCONE="no" DEFAULT_ENABLE_CMSITERATIVECONE="no" DEFAULT_ENABLE_EECAMBRIDGE="yes" DEFAULT_ENABLE_JADE="yes" DEFAULT_ENABLE_D0RUNICONE="no" DEFAULT_ENABLE_GRIDJET="yes" { $as_echo "$as_me:$LINENO: checking whether to build all plugins" >&5 $as_echo_n "checking whether to build all plugins... " >&6; } # Check whether --enable-allplugins was given. if test "${enable_allplugins+set}" = set; then enableval=$enable_allplugins; ENABLE_ALLPLUGINS="$enableval" else ENABLE_ALLPLUGINS="not set" fi if [ "x$ENABLE_ALLPLUGINS" == "xyes" ] ; then DEFAULT_ENABLE_SISCONE="yes" DEFAULT_ENABLE_CDFCONES="yes" DEFAULT_ENABLE_PXCONE="yes" DEFAULT_ENABLE_D0RUNIICONE="yes" DEFAULT_ENABLE_NESTEDDEFS="yes" DEFAULT_ENABLE_TRACKJET="yes" DEFAULT_ENABLE_ATLASCONE="yes" DEFAULT_ENABLE_CMSITERATIVECONE="yes" DEFAULT_ENABLE_EECAMBRIDGE="yes" DEFAULT_ENABLE_JADE="yes" DEFAULT_ENABLE_D0RUNICONE="yes" DEFAULT_ENABLE_GRIDJET="yes" fi if [ "x$ENABLE_ALLPLUGINS" == "xno" ] ; then DEFAULT_ENABLE_SISCONE="no" DEFAULT_ENABLE_CDFCONES="no" DEFAULT_ENABLE_PXCONE="no" DEFAULT_ENABLE_D0RUNIICONE="no" DEFAULT_ENABLE_NESTEDDEFS="no" DEFAULT_ENABLE_TRACKJET="no" DEFAULT_ENABLE_ATLASCONE="no" DEFAULT_ENABLE_CMSITERATIVECONE="no" DEFAULT_ENABLE_EECAMBRIDGE="no" DEFAULT_ENABLE_JADE="no" DEFAULT_ENABLE_D0RUNICONE="no" DEFAULT_ENABLE_GRIDJET="no" fi { $as_echo "$as_me:$LINENO: result: $ENABLE_ALLPLUGINS" >&5 $as_echo "$ENABLE_ALLPLUGINS" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build all CXX plugins" >&5 $as_echo_n "checking whether to build all CXX plugins... " >&6; } # Check whether --enable-allcxxplugins was given. if test "${enable_allcxxplugins+set}" = set; then enableval=$enable_allcxxplugins; ENABLE_ALLCXXPLUGINS="$enableval" else ENABLE_ALLCXXPLUGINS="not set" fi if [ "x$ENABLE_ALLCXXPLUGINS" == "xyes" ] ; then DEFAULT_ENABLE_SISCONE="yes" DEFAULT_ENABLE_CDFCONES="yes" DEFAULT_ENABLE_D0RUNIICONE="yes" DEFAULT_ENABLE_NESTEDDEFS="yes" DEFAULT_ENABLE_TRACKJET="yes" DEFAULT_ENABLE_ATLASCONE="yes" DEFAULT_ENABLE_CMSITERATIVECONE="yes" DEFAULT_ENABLE_EECAMBRIDGE="yes" DEFAULT_ENABLE_JADE="yes" DEFAULT_ENABLE_D0RUNICONE="yes" DEFAULT_ENABLE_GRIDJET="yes" fi if [ "x$ENABLE_ALLCXXPLUGINS" == "xno" ] ; then DEFAULT_ENABLE_SISCONE="no" DEFAULT_ENABLE_CDFCONES="no" DEFAULT_ENABLE_D0RUNIICONE="no" DEFAULT_ENABLE_NESTEDDEFS="no" DEFAULT_ENABLE_TRACKJET="no" DEFAULT_ENABLE_ATLASCONE="no" DEFAULT_ENABLE_CMSITERATIVECONE="no" DEFAULT_ENABLE_EECAMBRIDGE="no" DEFAULT_ENABLE_JADE="no" DEFAULT_ENABLE_D0RUNICONE="no" DEFAULT_ENABLE_GRIDJET="no" fi { $as_echo "$as_me:$LINENO: result: $ENABLE_ALLCXXPLUGINS" >&5 $as_echo "$ENABLE_ALLCXXPLUGINS" >&6; } LIST_ALL_PLUGINS="" # Check whether --enable-monolithic was given. if test "${enable_monolithic+set}" = set; then enableval=$enable_monolithic; case "${enableval}" in yes) monolithic=yes ;; no) monolithic=no ;; *) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-monolithic" >&5 $as_echo "$as_me: error: bad value ${enableval} for --enable-monolithic" >&2;} { (exit 1); exit 1; }; } ;; esac else monolithic=yes fi if test x$monolithic = xyes; then MONOLITHIC_PLUGINS_TRUE= MONOLITHIC_PLUGINS_FALSE='#' else MONOLITHIC_PLUGINS_TRUE='#' MONOLITHIC_PLUGINS_FALSE= fi if [ "x$monolithic" == "xyes" ] ; then CONFIG_LIBS_PLUGINS=" -lfastjetplugins " CONFIG_LIBS_PLUGINS_STATIC=" \${installationdir}/lib/libfastjetplugins.a " fi { $as_echo "$as_me:$LINENO: checking whether to build plugin SISCone" >&5 $as_echo_n "checking whether to build plugin SISCone... " >&6; } # Check whether --enable-siscone was given. if test "${enable_siscone+set}" = set; then enableval=$enable_siscone; ENABLE_SISCONE="$enableval" else ENABLE_SISCONE="${DEFAULT_ENABLE_SISCONE}" fi if [ "x$ENABLE_SISCONE" == "xyes" ] ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_PLUGIN_SISCONE /**/ _ACEOF if [ "x$monolithic" != "xyes" ] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lSISConePlugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libSISConePlugin.a " fi CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lsiscone_spherical -lsiscone" CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libsiscone.a \${installationdir}/lib/libsiscone_spherical.a" LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" SISCone" else : fi ac_config_files="$ac_config_files plugins/SISCone/Makefile plugins/SISCone/fastjet/Makefile" if test x$ENABLE_SISCONE = xyes; then BUILD_PLUGIN_SISCONE_TRUE= BUILD_PLUGIN_SISCONE_FALSE='#' else BUILD_PLUGIN_SISCONE_TRUE='#' BUILD_PLUGIN_SISCONE_FALSE= fi { $as_echo "$as_me:$LINENO: result: ${ENABLE_SISCONE}" >&5 $as_echo "${ENABLE_SISCONE}" >&6; } subdirs="$subdirs plugins/SISCone/siscone" { $as_echo "$as_me:$LINENO: checking whether to build plugin CDFCones" >&5 $as_echo_n "checking whether to build plugin CDFCones... " >&6; } # Check whether --enable-cdfcones was given. if test "${enable_cdfcones+set}" = set; then enableval=$enable_cdfcones; ENABLE_CDFCONES="$enableval" else ENABLE_CDFCONES="${DEFAULT_ENABLE_CDFCONES}" fi if [ "x$ENABLE_CDFCONES" == "xyes" ] ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_PLUGIN_CDFCONES /**/ _ACEOF if [ "x$monolithic" != "xyes" ] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lCDFConesPlugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libCDFConesPlugin.a " fi : LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" CDFCones" else : fi ac_config_files="$ac_config_files plugins/CDFCones/Makefile plugins/CDFCones/fastjet/Makefile" if test x$ENABLE_CDFCONES = xyes; then BUILD_PLUGIN_CDFCONES_TRUE= BUILD_PLUGIN_CDFCONES_FALSE='#' else BUILD_PLUGIN_CDFCONES_TRUE='#' BUILD_PLUGIN_CDFCONES_FALSE= fi { $as_echo "$as_me:$LINENO: result: ${ENABLE_CDFCONES}" >&5 $as_echo "${ENABLE_CDFCONES}" >&6; } ac_config_files="$ac_config_files plugins/CDFCones/CDFcode/Makefile" { $as_echo "$as_me:$LINENO: checking whether to build plugin PxCone" >&5 $as_echo_n "checking whether to build plugin PxCone... " >&6; } # Check whether --enable-pxcone was given. if test "${enable_pxcone+set}" = set; then enableval=$enable_pxcone; ENABLE_PXCONE="$enableval" else ENABLE_PXCONE="${DEFAULT_ENABLE_PXCONE}" fi if [ "x$ENABLE_PXCONE" == "xyes" ] ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_PLUGIN_PXCONE /**/ _ACEOF if [ "x$monolithic" != "xyes" ] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lPxConePlugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libPxConePlugin.a " fi : LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" PxCone" else : fi ac_config_files="$ac_config_files plugins/PxCone/Makefile plugins/PxCone/fastjet/Makefile" if test x$ENABLE_PXCONE = xyes; then BUILD_PLUGIN_PXCONE_TRUE= BUILD_PLUGIN_PXCONE_FALSE='#' else BUILD_PLUGIN_PXCONE_TRUE='#' BUILD_PLUGIN_PXCONE_FALSE= fi { $as_echo "$as_me:$LINENO: result: ${ENABLE_PXCONE}" >&5 $as_echo "${ENABLE_PXCONE}" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build plugin D0RunIICone" >&5 $as_echo_n "checking whether to build plugin D0RunIICone... " >&6; } # Check whether --enable-d0runiicone was given. if test "${enable_d0runiicone+set}" = set; then enableval=$enable_d0runiicone; ENABLE_D0RUNIICONE="$enableval" else ENABLE_D0RUNIICONE="${DEFAULT_ENABLE_D0RUNIICONE}" fi if [ "x$ENABLE_D0RUNIICONE" == "xyes" ] ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_PLUGIN_D0RUNIICONE /**/ _ACEOF if [ "x$monolithic" != "xyes" ] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lD0RunIIConePlugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libD0RunIIConePlugin.a " fi : LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" D0RunIICone" else : fi ac_config_files="$ac_config_files plugins/D0RunIICone/Makefile plugins/D0RunIICone/fastjet/Makefile" if test x$ENABLE_D0RUNIICONE = xyes; then BUILD_PLUGIN_D0RUNIICONE_TRUE= BUILD_PLUGIN_D0RUNIICONE_FALSE='#' else BUILD_PLUGIN_D0RUNIICONE_TRUE='#' BUILD_PLUGIN_D0RUNIICONE_FALSE= fi { $as_echo "$as_me:$LINENO: result: ${ENABLE_D0RUNIICONE}" >&5 $as_echo "${ENABLE_D0RUNIICONE}" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build plugin NestedDefs" >&5 $as_echo_n "checking whether to build plugin NestedDefs... " >&6; } # Check whether --enable-nesteddefs was given. if test "${enable_nesteddefs+set}" = set; then enableval=$enable_nesteddefs; ENABLE_NESTEDDEFS="$enableval" else ENABLE_NESTEDDEFS="${DEFAULT_ENABLE_NESTEDDEFS}" fi if [ "x$ENABLE_NESTEDDEFS" == "xyes" ] ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_PLUGIN_NESTEDDEFS /**/ _ACEOF if [ "x$monolithic" != "xyes" ] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lNestedDefsPlugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libNestedDefsPlugin.a " fi : LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" NestedDefs" else : fi ac_config_files="$ac_config_files plugins/NestedDefs/Makefile plugins/NestedDefs/fastjet/Makefile" if test x$ENABLE_NESTEDDEFS = xyes; then BUILD_PLUGIN_NESTEDDEFS_TRUE= BUILD_PLUGIN_NESTEDDEFS_FALSE='#' else BUILD_PLUGIN_NESTEDDEFS_TRUE='#' BUILD_PLUGIN_NESTEDDEFS_FALSE= fi { $as_echo "$as_me:$LINENO: result: ${ENABLE_NESTEDDEFS}" >&5 $as_echo "${ENABLE_NESTEDDEFS}" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build plugin TrackJet" >&5 $as_echo_n "checking whether to build plugin TrackJet... " >&6; } # Check whether --enable-trackjet was given. if test "${enable_trackjet+set}" = set; then enableval=$enable_trackjet; ENABLE_TRACKJET="$enableval" else ENABLE_TRACKJET="${DEFAULT_ENABLE_TRACKJET}" fi if [ "x$ENABLE_TRACKJET" == "xyes" ] ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_PLUGIN_TRACKJET /**/ _ACEOF if [ "x$monolithic" != "xyes" ] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lTrackJetPlugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libTrackJetPlugin.a " fi : LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" TrackJet" else : fi ac_config_files="$ac_config_files plugins/TrackJet/Makefile plugins/TrackJet/fastjet/Makefile" if test x$ENABLE_TRACKJET = xyes; then BUILD_PLUGIN_TRACKJET_TRUE= BUILD_PLUGIN_TRACKJET_FALSE='#' else BUILD_PLUGIN_TRACKJET_TRUE='#' BUILD_PLUGIN_TRACKJET_FALSE= fi { $as_echo "$as_me:$LINENO: result: ${ENABLE_TRACKJET}" >&5 $as_echo "${ENABLE_TRACKJET}" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build plugin ATLASCone" >&5 $as_echo_n "checking whether to build plugin ATLASCone... " >&6; } # Check whether --enable-atlascone was given. if test "${enable_atlascone+set}" = set; then enableval=$enable_atlascone; ENABLE_ATLASCONE="$enableval" else ENABLE_ATLASCONE="${DEFAULT_ENABLE_ATLASCONE}" fi if [ "x$ENABLE_ATLASCONE" == "xyes" ] ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_PLUGIN_ATLASCONE /**/ _ACEOF if [ "x$monolithic" != "xyes" ] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lATLASConePlugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libATLASConePlugin.a " fi : LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" ATLASCone" else : fi ac_config_files="$ac_config_files plugins/ATLASCone/Makefile plugins/ATLASCone/fastjet/Makefile" if test x$ENABLE_ATLASCONE = xyes; then BUILD_PLUGIN_ATLASCONE_TRUE= BUILD_PLUGIN_ATLASCONE_FALSE='#' else BUILD_PLUGIN_ATLASCONE_TRUE='#' BUILD_PLUGIN_ATLASCONE_FALSE= fi { $as_echo "$as_me:$LINENO: result: ${ENABLE_ATLASCONE}" >&5 $as_echo "${ENABLE_ATLASCONE}" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build plugin CMSIterativeCone" >&5 $as_echo_n "checking whether to build plugin CMSIterativeCone... " >&6; } # Check whether --enable-cmsiterativecone was given. if test "${enable_cmsiterativecone+set}" = set; then enableval=$enable_cmsiterativecone; ENABLE_CMSITERATIVECONE="$enableval" else ENABLE_CMSITERATIVECONE="${DEFAULT_ENABLE_CMSITERATIVECONE}" fi if [ "x$ENABLE_CMSITERATIVECONE" == "xyes" ] ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_PLUGIN_CMSITERATIVECONE /**/ _ACEOF if [ "x$monolithic" != "xyes" ] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lCMSIterativeConePlugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libCMSIterativeConePlugin.a " fi : LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" CMSIterativeCone" else : fi ac_config_files="$ac_config_files plugins/CMSIterativeCone/Makefile plugins/CMSIterativeCone/fastjet/Makefile" if test x$ENABLE_CMSITERATIVECONE = xyes; then BUILD_PLUGIN_CMSITERATIVECONE_TRUE= BUILD_PLUGIN_CMSITERATIVECONE_FALSE='#' else BUILD_PLUGIN_CMSITERATIVECONE_TRUE='#' BUILD_PLUGIN_CMSITERATIVECONE_FALSE= fi { $as_echo "$as_me:$LINENO: result: ${ENABLE_CMSITERATIVECONE}" >&5 $as_echo "${ENABLE_CMSITERATIVECONE}" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build plugin EECambridge" >&5 $as_echo_n "checking whether to build plugin EECambridge... " >&6; } # Check whether --enable-eecambridge was given. if test "${enable_eecambridge+set}" = set; then enableval=$enable_eecambridge; ENABLE_EECAMBRIDGE="$enableval" else ENABLE_EECAMBRIDGE="${DEFAULT_ENABLE_EECAMBRIDGE}" fi if [ "x$ENABLE_EECAMBRIDGE" == "xyes" ] ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_PLUGIN_EECAMBRIDGE /**/ _ACEOF if [ "x$monolithic" != "xyes" ] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lEECambridgePlugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libEECambridgePlugin.a " fi : LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" EECambridge" else : fi ac_config_files="$ac_config_files plugins/EECambridge/Makefile plugins/EECambridge/fastjet/Makefile" if test x$ENABLE_EECAMBRIDGE = xyes; then BUILD_PLUGIN_EECAMBRIDGE_TRUE= BUILD_PLUGIN_EECAMBRIDGE_FALSE='#' else BUILD_PLUGIN_EECAMBRIDGE_TRUE='#' BUILD_PLUGIN_EECAMBRIDGE_FALSE= fi { $as_echo "$as_me:$LINENO: result: ${ENABLE_EECAMBRIDGE}" >&5 $as_echo "${ENABLE_EECAMBRIDGE}" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build plugin Jade" >&5 $as_echo_n "checking whether to build plugin Jade... " >&6; } # Check whether --enable-jade was given. if test "${enable_jade+set}" = set; then enableval=$enable_jade; ENABLE_JADE="$enableval" else ENABLE_JADE="${DEFAULT_ENABLE_JADE}" fi if [ "x$ENABLE_JADE" == "xyes" ] ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_PLUGIN_JADE /**/ _ACEOF if [ "x$monolithic" != "xyes" ] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lJadePlugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libJadePlugin.a " fi : LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" Jade" else : fi ac_config_files="$ac_config_files plugins/Jade/Makefile plugins/Jade/fastjet/Makefile" if test x$ENABLE_JADE = xyes; then BUILD_PLUGIN_JADE_TRUE= BUILD_PLUGIN_JADE_FALSE='#' else BUILD_PLUGIN_JADE_TRUE='#' BUILD_PLUGIN_JADE_FALSE= fi { $as_echo "$as_me:$LINENO: result: ${ENABLE_JADE}" >&5 $as_echo "${ENABLE_JADE}" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build plugin D0RunICone" >&5 $as_echo_n "checking whether to build plugin D0RunICone... " >&6; } # Check whether --enable-d0runicone was given. if test "${enable_d0runicone+set}" = set; then enableval=$enable_d0runicone; ENABLE_D0RUNICONE="$enableval" else ENABLE_D0RUNICONE="${DEFAULT_ENABLE_D0RUNICONE}" fi if [ "x$ENABLE_D0RUNICONE" == "xyes" ] ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_PLUGIN_D0RUNICONE /**/ _ACEOF if [ "x$monolithic" != "xyes" ] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lD0RunIConePlugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libD0RunIConePlugin.a " fi : LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" D0RunICone" else : fi ac_config_files="$ac_config_files plugins/D0RunICone/Makefile plugins/D0RunICone/fastjet/Makefile" if test x$ENABLE_D0RUNICONE = xyes; then BUILD_PLUGIN_D0RUNICONE_TRUE= BUILD_PLUGIN_D0RUNICONE_FALSE='#' else BUILD_PLUGIN_D0RUNICONE_TRUE='#' BUILD_PLUGIN_D0RUNICONE_FALSE= fi { $as_echo "$as_me:$LINENO: result: ${ENABLE_D0RUNICONE}" >&5 $as_echo "${ENABLE_D0RUNICONE}" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build plugin GridJet" >&5 $as_echo_n "checking whether to build plugin GridJet... " >&6; } # Check whether --enable-gridjet was given. if test "${enable_gridjet+set}" = set; then enableval=$enable_gridjet; ENABLE_GRIDJET="$enableval" else ENABLE_GRIDJET="${DEFAULT_ENABLE_GRIDJET}" fi if [ "x$ENABLE_GRIDJET" == "xyes" ] ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_PLUGIN_GRIDJET /**/ _ACEOF if [ "x$monolithic" != "xyes" ] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lGridJetPlugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libGridJetPlugin.a " fi : LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" GridJet" else : fi ac_config_files="$ac_config_files plugins/GridJet/Makefile plugins/GridJet/fastjet/Makefile" if test x$ENABLE_GRIDJET = xyes; then BUILD_PLUGIN_GRIDJET_TRUE= BUILD_PLUGIN_GRIDJET_FALSE='#' else BUILD_PLUGIN_GRIDJET_TRUE='#' BUILD_PLUGIN_GRIDJET_FALSE= fi { $as_echo "$as_me:$LINENO: result: ${ENABLE_GRIDJET}" >&5 $as_echo "${ENABLE_GRIDJET}" >&6; } case `pwd` in *\ * | *\ *) { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6b' macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 $as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { $as_echo "$as_me:$LINENO: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 $as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 $as_echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:$LINENO: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 $as_echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed $as_unset ac_script || ac_script= if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5 $as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:$LINENO: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 $as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:8196: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:8199: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:8202: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:$LINENO: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:$LINENO: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:$LINENO: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:$LINENO: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 9396 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_cv_cc_needs_belf=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:$LINENO: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_cv_ld_exported_symbols_list=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_ld_exported_symbols_list=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac for ac_header in dlfcn.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:$LINENO: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:$LINENO: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} _lt_caught_CXX_error=yes; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-static was given. if test "${enable_static+set}" = set; then enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:$LINENO: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:$LINENO: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:11472: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:11476: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:11811: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:11815: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:11916: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:11920: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:11971: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:11975: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat >conftest.$ac_ext <<_ACEOF int foo(void) {} _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then shlibpath_overrides_runpath=yes fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_dl_dlopen=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) { $as_echo "$as_me:$LINENO: checking for shl_load" >&5 $as_echo_n "checking for shl_load... " >&6; } if test "${ac_cv_func_shl_load+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_shl_load || defined __stub___shl_load choke me #endif int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_func_shl_load=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 $as_echo "$ac_cv_func_shl_load" >&6; } if test "x$ac_cv_func_shl_load" = x""yes; then lt_cv_dlopen="shl_load" else { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_dld_shl_load=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else { $as_echo "$as_me:$LINENO: checking for dlopen" >&5 $as_echo_n "checking for dlopen... " >&6; } if test "${ac_cv_func_dlopen+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_dlopen || defined __stub___dlopen choke me #endif int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_func_dlopen=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 $as_echo "$ac_cv_func_dlopen" >&6; } if test "x$ac_cv_func_dlopen" = x""yes; then lt_cv_dlopen="dlopen" else { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_dl_dlopen=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_svld_dlopen=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_dld_dld_link=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 14774 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 14870 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:$LINENO: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 $as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5]* | *pgcpp\ [1-5]*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= { $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 $as_echo "$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16890: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:16894: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16989: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:16993: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:17041: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:17045: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' { $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 $as_echo "$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then shlibpath_overrides_runpath=yes fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_commands="$ac_config_commands libtool" # Only expand once: if [ "x$ENABLE_PXCONE" == "xyes" ] ; then if test "x$FCFLAGS" == "x"; then FCFLAGS="-O2" fi ## Try to respect users' Fortran compiler variables if test "x$FC" == "x"; then if test "x$F77" != "x"; then FC="$F77" fi fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_FC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$FC"; then ac_cv_prog_FC="$FC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_FC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi FC=$ac_cv_prog_FC if test -n "$FC"; then { $as_echo "$as_me:$LINENO: result: $FC" >&5 $as_echo "$FC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$FC" && break done fi if test -z "$FC"; then ac_ct_FC=$FC for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_FC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_FC"; then ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_FC="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_FC=$ac_cv_prog_ac_ct_FC if test -n "$ac_ct_FC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_FC" >&5 $as_echo "$ac_ct_FC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_FC" && break done if test "x$ac_ct_FC" = x; then FC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac FC=$ac_ct_FC fi fi # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for Fortran compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { $as_echo "$as_me:$LINENO: checking whether we are using the GNU Fortran compiler" >&5 $as_echo_n "checking whether we are using the GNU Fortran compiler... " >&6; } if test "${ac_cv_fc_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_fc_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_fc_compiler_gnu" >&5 $as_echo "$ac_cv_fc_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FCFLAGS+set} ac_save_FFLAGS=$FCFLAGS FCFLAGS= { $as_echo "$as_me:$LINENO: checking whether $FC accepts -g" >&5 $as_echo_n "checking whether $FC accepts -g... " >&6; } if test "${ac_cv_prog_fc_g+set}" = set; then $as_echo_n "(cached) " >&6 else FCFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_fc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_fc_g=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_fc_g" >&5 $as_echo "$ac_cv_prog_fc_g" >&6; } if test "$ac_test_FFLAGS" = set; then FCFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_fc_g = yes; then if test "x$ac_cv_fc_compiler_gnu" = xyes; then FCFLAGS="-g -O2" else FCFLAGS="-g" fi else if test "x$ac_cv_fc_compiler_gnu" = xyes; then FCFLAGS="-O2" else FCFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_FC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$FC"; then ac_cv_prog_FC="$FC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_FC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi FC=$ac_cv_prog_FC if test -n "$FC"; then { $as_echo "$as_me:$LINENO: result: $FC" >&5 $as_echo "$FC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$FC" && break done fi if test -z "$FC"; then ac_ct_FC=$FC for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_FC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_FC"; then ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_FC="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_FC=$ac_cv_prog_ac_ct_FC if test -n "$ac_ct_FC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_FC" >&5 $as_echo "$ac_ct_FC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_FC" && break done if test "x$ac_ct_FC" = x; then FC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac FC=$ac_ct_FC fi fi # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for Fortran compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { $as_echo "$as_me:$LINENO: checking whether we are using the GNU Fortran compiler" >&5 $as_echo_n "checking whether we are using the GNU Fortran compiler... " >&6; } if test "${ac_cv_fc_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_fc_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_fc_compiler_gnu" >&5 $as_echo "$ac_cv_fc_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FCFLAGS+set} ac_save_FFLAGS=$FCFLAGS FCFLAGS= { $as_echo "$as_me:$LINENO: checking whether $FC accepts -g" >&5 $as_echo_n "checking whether $FC accepts -g... " >&6; } if test "${ac_cv_prog_fc_g+set}" = set; then $as_echo_n "(cached) " >&6 else FCFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_fc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_fc_g=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_fc_g" >&5 $as_echo "$ac_cv_prog_fc_g" >&6; } if test "$ac_test_FFLAGS" = set; then FCFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_fc_g = yes; then if test "x$ac_cv_fc_compiler_gnu" = xyes; then FCFLAGS="-g -O2" else FCFLAGS="-g" fi else if test "x$ac_cv_fc_compiler_gnu" = xyes; then FCFLAGS="-O2" else FCFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu archive_cmds_need_lc_FC=no allow_undefined_flag_FC= always_export_symbols_FC=no archive_expsym_cmds_FC= export_dynamic_flag_spec_FC= hardcode_direct_FC=no hardcode_direct_absolute_FC=no hardcode_libdir_flag_spec_FC= hardcode_libdir_flag_spec_ld_FC= hardcode_libdir_separator_FC= hardcode_minus_L_FC=no hardcode_automatic_FC=no inherit_rpath_FC=no module_cmds_FC= module_expsym_cmds_FC= link_all_deplibs_FC=unknown old_archive_cmds_FC=$old_archive_cmds no_undefined_flag_FC= whole_archive_flag_spec_FC= enable_shared_with_static_runtimes_FC=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o objext_FC=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu compiler_FC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` if test -n "$compiler"; then { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:$LINENO: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } GCC_FC="$ac_cv_fc_compiler_gnu" LD_FC="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_FC= postdep_objects_FC= predeps_FC= postdeps_FC= compiler_lib_search_path_FC= cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_FC"; then compiler_lib_search_path_FC="${prev}${p}" else compiler_lib_search_path_FC="${compiler_lib_search_path_FC} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_FC"; then postdeps_FC="${prev}${p}" else postdeps_FC="${postdeps_FC} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_FC"; then predep_objects_FC="$p" else predep_objects_FC="$predep_objects_FC $p" fi else if test -z "$postdep_objects_FC"; then postdep_objects_FC="$p" else postdep_objects_FC="$postdep_objects_FC $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling FC test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken case " $postdeps_FC " in *" -lc "*) archive_cmds_need_lc_FC=no ;; esac compiler_lib_search_dirs_FC= if test -n "${compiler_lib_search_path_FC}"; then compiler_lib_search_dirs_FC=`echo " ${compiler_lib_search_path_FC}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_FC= lt_prog_compiler_pic_FC= lt_prog_compiler_static_FC= { $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_FC='-Wl,' lt_prog_compiler_static_FC='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_FC='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_FC='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_FC='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_FC='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_FC='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic_FC='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_FC=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_FC='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_FC=-Kconform_pic fi ;; *) lt_prog_compiler_pic_FC='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_FC='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_FC='-Bstatic' else lt_prog_compiler_static_FC='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_FC='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_FC='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_FC='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_FC='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_FC='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_FC='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl_FC='-Wl,' lt_prog_compiler_pic_FC='-KPIC' lt_prog_compiler_static_FC='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl_FC='-Wl,' lt_prog_compiler_pic_FC='-fPIC' lt_prog_compiler_static_FC='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl_FC='-Wl,' lt_prog_compiler_pic_FC='--shared' lt_prog_compiler_static_FC='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_FC='-Wl,' lt_prog_compiler_pic_FC='-fpic' lt_prog_compiler_static_FC='-Bstatic' ;; ccc*) lt_prog_compiler_wl_FC='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_FC='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl_FC='-Wl,' lt_prog_compiler_pic_FC='-qpic' lt_prog_compiler_static_FC='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic_FC='-KPIC' lt_prog_compiler_static_FC='-Bstatic' lt_prog_compiler_wl_FC='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_FC='-KPIC' lt_prog_compiler_static_FC='-Bstatic' lt_prog_compiler_wl_FC='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic_FC='-KPIC' lt_prog_compiler_static_FC='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_FC='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_FC='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_FC='-non_shared' ;; rdos*) lt_prog_compiler_static_FC='-non_shared' ;; solaris*) lt_prog_compiler_pic_FC='-KPIC' lt_prog_compiler_static_FC='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_FC='-Qoption ld ';; *) lt_prog_compiler_wl_FC='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_FC='-Qoption ld ' lt_prog_compiler_pic_FC='-PIC' lt_prog_compiler_static_FC='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_FC='-Wl,' lt_prog_compiler_pic_FC='-KPIC' lt_prog_compiler_static_FC='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_FC='-Kconform_pic' lt_prog_compiler_static_FC='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_FC='-Wl,' lt_prog_compiler_pic_FC='-KPIC' lt_prog_compiler_static_FC='-Bstatic' ;; unicos*) lt_prog_compiler_wl_FC='-Wl,' lt_prog_compiler_can_build_shared_FC=no ;; uts4*) lt_prog_compiler_pic_FC='-pic' lt_prog_compiler_static_FC='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_FC=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_FC= ;; *) lt_prog_compiler_pic_FC="$lt_prog_compiler_pic_FC" ;; esac { $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_FC" >&5 $as_echo "$lt_prog_compiler_pic_FC" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_FC"; then { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_FC works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_FC works... " >&6; } if test "${lt_cv_prog_compiler_pic_works_FC+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_FC=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_FC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:19141: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:19145: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_FC=yes fi fi $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_FC" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_FC" >&6; } if test x"$lt_cv_prog_compiler_pic_works_FC" = xyes; then case $lt_prog_compiler_pic_FC in "" | " "*) ;; *) lt_prog_compiler_pic_FC=" $lt_prog_compiler_pic_FC" ;; esac else lt_prog_compiler_pic_FC= lt_prog_compiler_can_build_shared_FC=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_FC eval lt_tmp_static_flag=\"$lt_prog_compiler_static_FC\" { $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works_FC+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_FC=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_FC=yes fi else lt_cv_prog_compiler_static_works_FC=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_FC" >&5 $as_echo "$lt_cv_prog_compiler_static_works_FC" >&6; } if test x"$lt_cv_prog_compiler_static_works_FC" = xyes; then : else lt_prog_compiler_static_FC= fi { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_FC+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_FC=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:19240: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:19244: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_FC=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_FC" >&5 $as_echo "$lt_cv_prog_compiler_c_o_FC" >&6; } { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_FC+set}" = set; then $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_FC=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:19292: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:19296: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_FC=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_FC" >&5 $as_echo "$lt_cv_prog_compiler_c_o_FC" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_FC" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag_FC= always_export_symbols_FC=no archive_cmds_FC= archive_expsym_cmds_FC= compiler_needs_object_FC=no enable_shared_with_static_runtimes_FC=no export_dynamic_flag_spec_FC= export_symbols_cmds_FC='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic_FC=no hardcode_direct_FC=no hardcode_direct_absolute_FC=no hardcode_libdir_flag_spec_FC= hardcode_libdir_flag_spec_ld_FC= hardcode_libdir_separator_FC= hardcode_minus_L_FC=no hardcode_shlibpath_var_FC=unsupported inherit_rpath_FC=no link_all_deplibs_FC=unknown module_cmds_FC= module_expsym_cmds_FC= old_archive_from_new_cmds_FC= old_archive_from_expsyms_cmds_FC= thread_safe_flag_spec_FC= whole_archive_flag_spec_FC= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_FC= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_FC='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_FC=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_FC='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_FC="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_FC= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_FC=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_FC='' ;; m68k) archive_cmds_FC='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_FC='-L$libdir' hardcode_minus_L_FC=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_FC=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_FC='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_FC=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, FC) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_FC='-L$libdir' allow_undefined_flag_FC=unsupported always_export_symbols_FC=no enable_shared_with_static_runtimes_FC=yes export_symbols_cmds_FC='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_FC='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_FC=no fi ;; interix[3-9]*) hardcode_direct_FC=no hardcode_shlibpath_var_FC=no hardcode_libdir_flag_spec_FC='${wl}-rpath,$libdir' export_dynamic_flag_spec_FC='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_FC='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec_FC= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec_FC='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_FC=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds_FC='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_FC='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec_FC='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec_FC= hardcode_libdir_flag_spec_ld_FC='-rpath $libdir' archive_cmds_FC='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_FC='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs_FC=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_FC='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs_FC=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_FC=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_FC=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir' archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_FC=no fi ;; esac ;; sunos4*) archive_cmds_FC='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_FC=yes hardcode_shlibpath_var_FC=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_FC=no fi ;; esac if test "$ld_shlibs_FC" = no; then runpath_var= hardcode_libdir_flag_spec_FC= export_dynamic_flag_spec_FC= whole_archive_flag_spec_FC= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_FC=unsupported always_export_symbols_FC=yes archive_expsym_cmds_FC='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_FC=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_FC=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_FC='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_FC='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_FC='' hardcode_direct_FC=yes hardcode_direct_absolute_FC=yes hardcode_libdir_separator_FC=':' link_all_deplibs_FC=yes file_list_spec_FC='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_FC=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_FC=yes hardcode_libdir_flag_spec_FC='-L$libdir' hardcode_libdir_separator_FC= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_FC='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_FC=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_FC='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_FC='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_FC='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_FC='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_FC="-z nodefs" archive_expsym_cmds_FC="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_FC='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_FC=' ${wl}-bernotok' allow_undefined_flag_FC=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_FC='$convenience' archive_cmds_need_lc_FC=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_FC="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_FC='' ;; m68k) archive_cmds_FC='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_FC='-L$libdir' hardcode_minus_L_FC=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec_FC=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_FC=' ' allow_undefined_flag_FC=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_FC='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds_FC='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_FC='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_FC='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_FC=yes ;; darwin* | rhapsody*) archive_cmds_need_lc_FC=no hardcode_direct_FC=no hardcode_automatic_FC=yes hardcode_shlibpath_var_FC=unsupported whole_archive_flag_spec_FC='' link_all_deplibs_FC=yes allow_undefined_flag_FC="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds_FC="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_FC="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_FC="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs_FC=no fi ;; dgux*) archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_FC='-L$libdir' hardcode_shlibpath_var_FC=no ;; freebsd1*) ld_shlibs_FC=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_FC='-R$libdir' hardcode_direct_FC=yes hardcode_shlibpath_var_FC=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_FC=yes hardcode_minus_L_FC=yes hardcode_shlibpath_var_FC=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds_FC='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_FC='-R$libdir' hardcode_direct_FC=yes hardcode_shlibpath_var_FC=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_FC='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_FC='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_FC='${wl}+b ${wl}$libdir' hardcode_libdir_separator_FC=: hardcode_direct_FC=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_FC=yes export_dynamic_flag_spec_FC='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_FC='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_FC='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_FC='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld_FC='+b $libdir' hardcode_libdir_separator_FC=: hardcode_direct_FC=yes hardcode_direct_absolute_FC=yes export_dynamic_flag_spec_FC='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_FC=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_FC='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_FC='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_FC='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_FC='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_FC='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_FC='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_FC='${wl}+b ${wl}$libdir' hardcode_libdir_separator_FC=: case $host_cpu in hppa*64*|ia64*) hardcode_direct_FC=no hardcode_shlibpath_var_FC=no ;; *) hardcode_direct_FC=yes hardcode_direct_absolute_FC=yes export_dynamic_flag_spec_FC='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_FC=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat >conftest.$ac_ext <<_ACEOF int foo(void) {} _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then archive_expsym_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc_FC='no' hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_FC=: inherit_rpath_FC=yes link_all_deplibs_FC=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_FC='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_FC='-R$libdir' hardcode_direct_FC=yes hardcode_shlibpath_var_FC=no ;; newsos6) archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_FC=yes hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_FC=: hardcode_shlibpath_var_FC=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_FC=yes hardcode_shlibpath_var_FC=no hardcode_direct_absolute_FC=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_FC='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_FC='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_FC='${wl}-rpath,$libdir' export_dynamic_flag_spec_FC='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_FC='-R$libdir' ;; *) archive_cmds_FC='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_FC='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs_FC=no fi ;; os2*) hardcode_libdir_flag_spec_FC='-L$libdir' hardcode_minus_L_FC=yes allow_undefined_flag_FC=unsupported archive_cmds_FC='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds_FC='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_FC=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_FC='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_FC=' -expect_unresolved \*' archive_cmds_FC='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc_FC='no' hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_FC=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_FC=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_FC='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_FC=' -expect_unresolved \*' archive_cmds_FC='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_FC='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_FC='-rpath $libdir' fi archive_cmds_need_lc_FC='no' hardcode_libdir_separator_FC=: ;; solaris*) no_undefined_flag_FC=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_FC='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_FC='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds_FC='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_FC='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds_FC='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_FC='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec_FC='-R$libdir' hardcode_shlibpath_var_FC=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec_FC='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec_FC='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs_FC=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_FC='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_FC='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_FC='-L$libdir' hardcode_direct_FC=yes hardcode_minus_L_FC=yes hardcode_shlibpath_var_FC=no ;; sysv4) case $host_vendor in sni) archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_FC=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_FC='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_FC='$CC -r -o $output$reload_objs' hardcode_direct_FC=no ;; motorola) archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_FC=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_FC=no ;; sysv4.3*) archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_FC=no export_dynamic_flag_spec_FC='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_FC=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_FC=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_FC='${wl}-z,text' archive_cmds_need_lc_FC=no hardcode_shlibpath_var_FC=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_FC='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_FC='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_FC='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_FC='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_FC='${wl}-z,text' allow_undefined_flag_FC='${wl}-z,nodefs' archive_cmds_need_lc_FC=no hardcode_shlibpath_var_FC=no hardcode_libdir_flag_spec_FC='${wl}-R,$libdir' hardcode_libdir_separator_FC=':' link_all_deplibs_FC=yes export_dynamic_flag_spec_FC='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_FC='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_FC='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_FC='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_FC='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_FC='-L$libdir' hardcode_shlibpath_var_FC=no ;; *) ld_shlibs_FC=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec_FC='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:$LINENO: result: $ld_shlibs_FC" >&5 $as_echo "$ld_shlibs_FC" >&6; } test "$ld_shlibs_FC" = no && can_build_shared=no with_gnu_ld_FC=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_FC" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_FC=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_FC in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_FC pic_flag=$lt_prog_compiler_pic_FC compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_FC allow_undefined_flag_FC= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_FC 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_FC 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_FC=no else archive_cmds_need_lc_FC=yes fi allow_undefined_flag_FC=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_FC" >&5 $as_echo "$archive_cmds_need_lc_FC" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_FC\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_FC\"" cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then shlibpath_overrides_runpath=yes fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_FC= if test -n "$hardcode_libdir_flag_spec_FC" || test -n "$runpath_var_FC" || test "X$hardcode_automatic_FC" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_FC" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, FC)" != no && test "$hardcode_minus_L_FC" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_FC=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_FC=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_FC=unsupported fi { $as_echo "$as_me:$LINENO: result: $hardcode_action_FC" >&5 $as_echo "$hardcode_action_FC" >&6; } if test "$hardcode_action_FC" = relink || test "$inherit_rpath_FC" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test "x$FC" == "x"; then { { $as_echo "$as_me:$LINENO: error: Fortran compiler required to build PxCone but not found or not functional" >&5 $as_echo "$as_me: error: Fortran compiler required to build PxCone but not found or not functional" >&2;} { (exit 1); exit 1; }; } fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to get verbose linking output from $FC" >&5 $as_echo_n "checking how to get verbose linking output from $FC... " >&6; } if test "${ac_cv_prog_fc_v+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_fc_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FCFLAGS FCFLAGS="$FCFLAGS $ac_verb" eval "set x $ac_link" shift $as_echo "$as_me:$LINENO: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_fc_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:' | grep -v "^[_$as_cr_Letters][_$as_cr_alnum]*="` $as_echo "$ac_fc_v_output" >&5 FCFLAGS=$ac_save_FFLAGS rm -rf conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_fc_v_output="`echo $ac_fc_v_output | grep 'LPATH is:' | sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_fc_v_output" # FIXME: we keep getting bitten by quoted arguments; a more general fix # that detects unbalanced quotes in FLIBS should be implemented # and (ugh) tested at some point. case $ac_fc_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_fc_v_output=`echo $ac_fc_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;; # Portland Group compiler has singly- or doubly-quoted -cmdline argument # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4. # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2". *-cmdline\ * | *-ignore\ * | *-def\ *) ac_fc_v_output=`echo $ac_fc_v_output | sed "\ s/-cmdline *'[^']*'/ /g; s/-cmdline *\"[^\"]*\"/ /g s/-ignore *'[^']*'/ /g; s/-ignore *\"[^\"]*\"/ /g s/-def *'[^']*'/ /g; s/-def *\"[^\"]*\"/ /g"` ;; # If we are using Cray Fortran then delete quotes. *cft90*) ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"//g'` ;; esac # look for -l* and *.a constructs in the output for ac_arg in $ac_fc_v_output; do case $ac_arg in [\\/]*.a | ?:[\\/]*.a | -[lLRu]*) ac_cv_prog_fc_v=$ac_verb break 2 ;; esac done done if test -z "$ac_cv_prog_fc_v"; then { $as_echo "$as_me:$LINENO: WARNING: cannot determine how to obtain linking information from $FC" >&5 $as_echo "$as_me: WARNING: cannot determine how to obtain linking information from $FC" >&2;} fi else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { $as_echo "$as_me:$LINENO: WARNING: compilation failed" >&5 $as_echo "$as_me: WARNING: compilation failed" >&2;} fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_fc_v" >&5 $as_echo "$ac_cv_prog_fc_v" >&6; } { $as_echo "$as_me:$LINENO: checking for Fortran libraries of $FC" >&5 $as_echo_n "checking for Fortran libraries of $FC... " >&6; } if test "${ac_cv_fc_libs+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$FCLIBS" != "x"; then ac_cv_fc_libs="$FCLIBS" # Let the user override the test. else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FCFLAGS FCFLAGS="$FCFLAGS $ac_cv_prog_fc_v" eval "set x $ac_link" shift $as_echo "$as_me:$LINENO: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_fc_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:' | grep -v "^[_$as_cr_Letters][_$as_cr_alnum]*="` $as_echo "$ac_fc_v_output" >&5 FCFLAGS=$ac_save_FFLAGS rm -rf conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_fc_v_output="`echo $ac_fc_v_output | grep 'LPATH is:' | sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_fc_v_output" # FIXME: we keep getting bitten by quoted arguments; a more general fix # that detects unbalanced quotes in FLIBS should be implemented # and (ugh) tested at some point. case $ac_fc_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_fc_v_output=`echo $ac_fc_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;; # Portland Group compiler has singly- or doubly-quoted -cmdline argument # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4. # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2". *-cmdline\ * | *-ignore\ * | *-def\ *) ac_fc_v_output=`echo $ac_fc_v_output | sed "\ s/-cmdline *'[^']*'/ /g; s/-cmdline *\"[^\"]*\"/ /g s/-ignore *'[^']*'/ /g; s/-ignore *\"[^\"]*\"/ /g s/-def *'[^']*'/ /g; s/-def *\"[^\"]*\"/ /g"` ;; # If we are using Cray Fortran then delete quotes. *cft90*) ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"//g'` ;; esac ac_cv_fc_libs= # Save positional arguments (if any) ac_save_positional="$@" set X $ac_fc_v_output while test $# != 1; do shift ac_arg=$1 case $ac_arg in [\\/]*.a | ?:[\\/]*.a) ac_exists=false for ac_i in $ac_cv_fc_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" fi ;; -bI:*) ac_exists=false for ac_i in $ac_cv_fc_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_fc_libs="$ac_cv_fc_libs -Xlinker $ac_link_opt" done else ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" fi fi ;; # Ignore these flags. -lang* | -lcrt*.o | -lc | -lgcc* | -lSystem | -libmil | -LANG:=* | -LIST:* | -LNO:*) ;; -lkernel32) test x"$CYGWIN" != xyes && ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" ;; -[LRuYz]) # These flags, when seen by themselves, take an argument. # We remove the space between option and argument and re-iterate # unless we find an empty arg or a new option (starting with -) case $2 in "" | -*);; *) ac_arg="$ac_arg$2" shift; shift set X $ac_arg "$@" ;; esac ;; -YP,*) for ac_j in `$as_echo "$ac_arg" | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_fc_libs; do if test x"$ac_j" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_arg="$ac_arg $ac_j" ac_cv_fc_libs="$ac_cv_fc_libs $ac_j" fi done ;; -[lLR]*) ac_exists=false for ac_i in $ac_cv_fc_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" fi ;; -zallextract*| -zdefaultextract) ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" ;; # Ignore everything else. esac done # restore positional arguments set X $ac_save_positional; shift # We only consider "LD_RUN_PATH" on Solaris systems. If this is seen, # then we insist that the "run path" must be an absolute path (i.e. it # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) ac_ld_run_path=`$as_echo "$ac_fc_v_output" | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_ld_run_path; do ac_cv_fc_libs="$ac_cv_fc_libs -Xlinker $ac_link_opt" done else ac_cv_fc_libs="$ac_cv_fc_libs $ac_ld_run_path" fi ;; esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" fi { $as_echo "$as_me:$LINENO: result: $ac_cv_fc_libs" >&5 $as_echo "$ac_cv_fc_libs" >&6; } FCLIBS="$ac_cv_fc_libs" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu F77=$FC AM_FFLAGS=$AM_FCFLAGS FFLAGS="$FFLAGS $FCFLAGS" FLIBS="$FLIBS $FCLIBS" CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" "${FLIBS} CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" "${FLIBS} fi if [ "x$USE_CUSTOM_FLAGS" == "xno" ]; then AM_CXXFLAGS=${CXXFLAGS}" "${AM_CXXFLAGS} CXXFLAGS="" fi if [ "x$ENABLE_D0RUNIICONE" == "xyes" ] ; then # check if the compiler supports -fno-inline { $as_echo "$as_me:$LINENO: checking if $CXX supports -fno-inline" >&5 $as_echo_n "checking if $CXX supports -fno-inline... " >&6; } SAVE_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-Werror -fno-inline" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main(void){ return 0;} _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_support_no_inline=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_support_no_inline=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CXXFLAGS="$SAVE_CXXFLAGS" { $as_echo "$as_me:$LINENO: result: $ac_support_no_inline" >&5 $as_echo "$ac_support_no_inline" >&6; } D0_CXXFLAGS="" if [ "x${ac_support_no_inline}" == "xyes" ]; then D0_CXXFLAGS=${AM_CXXFLAGS}" -fno-inline" else # in case of multiple -O options, the last one prevails D0_CXXFLAGS=${AM_CXXFLAGS}" -O0" fi fi ac_config_files="$ac_config_files tools/Makefile tools/fastjet/Makefile tools/fastjet/tools/Makefile" ac_config_files="$ac_config_files example/Makefile example/data/Makefile example/root/Makefile" ac_config_files="$ac_config_files doc/Makefile doc/figs/Makefile" ac_config_files="$ac_config_files fastjet-config:fastjet-config.in" ac_config_files="$ac_config_files fortran_wrapper/Makefile" ac_config_files="$ac_config_files Makefile src/Makefile include/Makefile include/fastjet/Makefile include/fastjet/internal/Makefile" CONFIG_SUMMARY="" CONFIG_SUMMARY+="Configuration summary:\n" CONFIG_SUMMARY+="----------------------\n" if [ "x${prefix}" == "xNONE" ] ; then CONFIG_SUMMARY+=" Installation directory /usr/local\n" else CONFIG_SUMMARY+=" Installation directory "${prefix}"\n" fi CONFIG_SUMMARY+=" Shared libraries "${enable_shared}"\n" CONFIG_SUMMARY+=" Static libraries "${enable_static}"\n" CONFIG_SUMMARY+=" Debug flag "$ENABLE_DEBUG_FLAG"\n" CONFIG_SUMMARY+=" CGAL support "${ENABLE_CGAL_FLAG}"\n" CONFIG_SUMMARY+=" Plugins: EECambridge "${ENABLE_EECAMBRIDGE}"\n" CONFIG_SUMMARY+=" Jade "${ENABLE_JADE}"\n" CONFIG_SUMMARY+=" NestedDefs "${ENABLE_NESTEDDEFS}"\n" CONFIG_SUMMARY+=" SISCone "${ENABLE_SISCONE}"\n" CONFIG_SUMMARY+=" CDFCones "${ENABLE_CDFCONES}"\n" CONFIG_SUMMARY+=" D0RunICone "${ENABLE_D0RUNICONE}"\n" CONFIG_SUMMARY+=" D0RunIICone "${ENABLE_D0RUNIICONE}"\n" CONFIG_SUMMARY+=" ATLASCone "${ENABLE_ATLASCONE}"\n" CONFIG_SUMMARY+=" CMSIterativeCone "${ENABLE_CMSITERATIVECONE}"\n" CONFIG_SUMMARY+=" PxCone "${ENABLE_PXCONE}"\n" CONFIG_SUMMARY+=" TrackJet "${ENABLE_TRACKJET}"\n" CONFIG_SUMMARY+=" GridJet "${ENABLE_GRIDJET}"\n" CONFIG_SUMMARY+=" Monolithic plugins lib "$monolithic"\n" CONFIGURE_INVOCATION="$0 $ac_configure_args" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MONOLITHIC_PLUGINS_TRUE}" && test -z "${MONOLITHIC_PLUGINS_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"MONOLITHIC_PLUGINS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"MONOLITHIC_PLUGINS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PLUGIN_SISCONE_TRUE}" && test -z "${BUILD_PLUGIN_SISCONE_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_PLUGIN_SISCONE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"BUILD_PLUGIN_SISCONE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PLUGIN_CDFCONES_TRUE}" && test -z "${BUILD_PLUGIN_CDFCONES_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_PLUGIN_CDFCONES\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"BUILD_PLUGIN_CDFCONES\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PLUGIN_PXCONE_TRUE}" && test -z "${BUILD_PLUGIN_PXCONE_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_PLUGIN_PXCONE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"BUILD_PLUGIN_PXCONE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PLUGIN_D0RUNIICONE_TRUE}" && test -z "${BUILD_PLUGIN_D0RUNIICONE_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_PLUGIN_D0RUNIICONE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"BUILD_PLUGIN_D0RUNIICONE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PLUGIN_NESTEDDEFS_TRUE}" && test -z "${BUILD_PLUGIN_NESTEDDEFS_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_PLUGIN_NESTEDDEFS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"BUILD_PLUGIN_NESTEDDEFS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PLUGIN_TRACKJET_TRUE}" && test -z "${BUILD_PLUGIN_TRACKJET_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_PLUGIN_TRACKJET\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"BUILD_PLUGIN_TRACKJET\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PLUGIN_ATLASCONE_TRUE}" && test -z "${BUILD_PLUGIN_ATLASCONE_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_PLUGIN_ATLASCONE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"BUILD_PLUGIN_ATLASCONE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PLUGIN_CMSITERATIVECONE_TRUE}" && test -z "${BUILD_PLUGIN_CMSITERATIVECONE_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_PLUGIN_CMSITERATIVECONE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"BUILD_PLUGIN_CMSITERATIVECONE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PLUGIN_EECAMBRIDGE_TRUE}" && test -z "${BUILD_PLUGIN_EECAMBRIDGE_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_PLUGIN_EECAMBRIDGE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"BUILD_PLUGIN_EECAMBRIDGE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PLUGIN_JADE_TRUE}" && test -z "${BUILD_PLUGIN_JADE_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_PLUGIN_JADE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"BUILD_PLUGIN_JADE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PLUGIN_D0RUNICONE_TRUE}" && test -z "${BUILD_PLUGIN_D0RUNICONE_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_PLUGIN_D0RUNICONE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"BUILD_PLUGIN_D0RUNICONE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PLUGIN_GRIDJET_TRUE}" && test -z "${BUILD_PLUGIN_GRIDJET_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_PLUGIN_GRIDJET\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"BUILD_PLUGIN_GRIDJET\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 $as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by FastJet $as_me 3.0.6, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ FastJet config.status 3.0.6 configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { $as_echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { $as_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # PACKAGE="$PACKAGE" AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' LD_FC='`$ECHO "X$LD_FC" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds_FC='`$ECHO "X$old_archive_cmds_FC" | $Xsed -e "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_FC='`$ECHO "X$compiler_FC" | $Xsed -e "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' GCC_FC='`$ECHO "X$GCC_FC" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_FC='`$ECHO "X$lt_prog_compiler_no_builtin_flag_FC" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl_FC='`$ECHO "X$lt_prog_compiler_wl_FC" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic_FC='`$ECHO "X$lt_prog_compiler_pic_FC" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static_FC='`$ECHO "X$lt_prog_compiler_static_FC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_FC='`$ECHO "X$lt_cv_prog_compiler_c_o_FC" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc_FC='`$ECHO "X$archive_cmds_need_lc_FC" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_FC='`$ECHO "X$enable_shared_with_static_runtimes_FC" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec_FC='`$ECHO "X$export_dynamic_flag_spec_FC" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec_FC='`$ECHO "X$whole_archive_flag_spec_FC" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object_FC='`$ECHO "X$compiler_needs_object_FC" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds_FC='`$ECHO "X$old_archive_from_new_cmds_FC" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_FC='`$ECHO "X$old_archive_from_expsyms_cmds_FC" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_FC='`$ECHO "X$archive_cmds_FC" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds_FC='`$ECHO "X$archive_expsym_cmds_FC" | $Xsed -e "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_cmds_FC='`$ECHO "X$module_cmds_FC" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds_FC='`$ECHO "X$module_expsym_cmds_FC" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld_FC='`$ECHO "X$with_gnu_ld_FC" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag_FC='`$ECHO "X$allow_undefined_flag_FC" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag_FC='`$ECHO "X$no_undefined_flag_FC" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_FC='`$ECHO "X$hardcode_libdir_flag_spec_FC" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_FC='`$ECHO "X$hardcode_libdir_flag_spec_ld_FC" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator_FC='`$ECHO "X$hardcode_libdir_separator_FC" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_FC='`$ECHO "X$hardcode_direct_FC" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute_FC='`$ECHO "X$hardcode_direct_absolute_FC" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L_FC='`$ECHO "X$hardcode_minus_L_FC" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var_FC='`$ECHO "X$hardcode_shlibpath_var_FC" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic_FC='`$ECHO "X$hardcode_automatic_FC" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath_FC='`$ECHO "X$inherit_rpath_FC" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs_FC='`$ECHO "X$link_all_deplibs_FC" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path_FC='`$ECHO "X$fix_srcfile_path_FC" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols_FC='`$ECHO "X$always_export_symbols_FC" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds_FC='`$ECHO "X$export_symbols_cmds_FC" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms_FC='`$ECHO "X$exclude_expsyms_FC" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms_FC='`$ECHO "X$include_expsyms_FC" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds_FC='`$ECHO "X$prelink_cmds_FC" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec_FC='`$ECHO "X$file_list_spec_FC" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action_FC='`$ECHO "X$hardcode_action_FC" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs_FC='`$ECHO "X$compiler_lib_search_dirs_FC" | $Xsed -e "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' predep_objects_FC='`$ECHO "X$predep_objects_FC" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects_FC='`$ECHO "X$postdep_objects_FC" | $Xsed -e "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' predeps_FC='`$ECHO "X$predeps_FC" | $Xsed -e "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdeps_FC='`$ECHO "X$postdeps_FC" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path_FC='`$ECHO "X$compiler_lib_search_path_FC" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ LD_FC \ compiler_CXX \ compiler_FC \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_no_builtin_flag_FC \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_wl_FC \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_pic_FC \ lt_prog_compiler_static_CXX \ lt_prog_compiler_static_FC \ lt_cv_prog_compiler_c_o_CXX \ lt_cv_prog_compiler_c_o_FC \ export_dynamic_flag_spec_CXX \ export_dynamic_flag_spec_FC \ whole_archive_flag_spec_CXX \ whole_archive_flag_spec_FC \ compiler_needs_object_CXX \ compiler_needs_object_FC \ with_gnu_ld_CXX \ with_gnu_ld_FC \ allow_undefined_flag_CXX \ allow_undefined_flag_FC \ no_undefined_flag_CXX \ no_undefined_flag_FC \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_FC \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_flag_spec_ld_FC \ hardcode_libdir_separator_CXX \ hardcode_libdir_separator_FC \ fix_srcfile_path_CXX \ fix_srcfile_path_FC \ exclude_expsyms_CXX \ exclude_expsyms_FC \ include_expsyms_CXX \ include_expsyms_FC \ file_list_spec_CXX \ file_list_spec_FC \ compiler_lib_search_dirs_CXX \ compiler_lib_search_dirs_FC \ predep_objects_CXX \ predep_objects_FC \ postdep_objects_CXX \ postdep_objects_FC \ predeps_CXX \ predeps_FC \ postdeps_CXX \ postdeps_FC \ compiler_lib_search_path_CXX \ compiler_lib_search_path_FC; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ old_archive_cmds_CXX \ old_archive_cmds_FC \ old_archive_from_new_cmds_CXX \ old_archive_from_new_cmds_FC \ old_archive_from_expsyms_cmds_CXX \ old_archive_from_expsyms_cmds_FC \ archive_cmds_CXX \ archive_cmds_FC \ archive_expsym_cmds_CXX \ archive_expsym_cmds_FC \ module_cmds_CXX \ module_cmds_FC \ module_expsym_cmds_CXX \ module_expsym_cmds_FC \ export_symbols_cmds_CXX \ export_symbols_cmds_FC \ prelink_cmds_CXX \ prelink_cmds_FC; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "include/fastjet/config_raw.h") CONFIG_HEADERS="$CONFIG_HEADERS include/fastjet/config_raw.h:config.h.in" ;; "include/fastjet/config_auto.h") CONFIG_COMMANDS="$CONFIG_COMMANDS include/fastjet/config_auto.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "plugins/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Makefile" ;; "plugins/SISCone/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/SISCone/Makefile" ;; "plugins/SISCone/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/SISCone/fastjet/Makefile" ;; "plugins/CDFCones/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/CDFCones/Makefile" ;; "plugins/CDFCones/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/CDFCones/fastjet/Makefile" ;; "plugins/CDFCones/CDFcode/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/CDFCones/CDFcode/Makefile" ;; "plugins/PxCone/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/PxCone/Makefile" ;; "plugins/PxCone/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/PxCone/fastjet/Makefile" ;; "plugins/D0RunIICone/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/D0RunIICone/Makefile" ;; "plugins/D0RunIICone/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/D0RunIICone/fastjet/Makefile" ;; "plugins/NestedDefs/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/NestedDefs/Makefile" ;; "plugins/NestedDefs/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/NestedDefs/fastjet/Makefile" ;; "plugins/TrackJet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/TrackJet/Makefile" ;; "plugins/TrackJet/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/TrackJet/fastjet/Makefile" ;; "plugins/ATLASCone/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/ATLASCone/Makefile" ;; "plugins/ATLASCone/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/ATLASCone/fastjet/Makefile" ;; "plugins/CMSIterativeCone/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/CMSIterativeCone/Makefile" ;; "plugins/CMSIterativeCone/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/CMSIterativeCone/fastjet/Makefile" ;; "plugins/EECambridge/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/EECambridge/Makefile" ;; "plugins/EECambridge/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/EECambridge/fastjet/Makefile" ;; "plugins/Jade/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Jade/Makefile" ;; "plugins/Jade/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Jade/fastjet/Makefile" ;; "plugins/D0RunICone/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/D0RunICone/Makefile" ;; "plugins/D0RunICone/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/D0RunICone/fastjet/Makefile" ;; "plugins/GridJet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/GridJet/Makefile" ;; "plugins/GridJet/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/GridJet/fastjet/Makefile" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; "tools/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES tools/fastjet/Makefile" ;; "tools/fastjet/tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/fastjet/tools/Makefile" ;; "example/Makefile") CONFIG_FILES="$CONFIG_FILES example/Makefile" ;; "example/data/Makefile") CONFIG_FILES="$CONFIG_FILES example/data/Makefile" ;; "example/root/Makefile") CONFIG_FILES="$CONFIG_FILES example/root/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/figs/Makefile") CONFIG_FILES="$CONFIG_FILES doc/figs/Makefile" ;; "fastjet-config") CONFIG_FILES="$CONFIG_FILES fastjet-config:fastjet-config.in" ;; "fortran_wrapper/Makefile") CONFIG_FILES="$CONFIG_FILES fortran_wrapper/Makefile" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; "include/fastjet/Makefile") CONFIG_FILES="$CONFIG_FILES include/fastjet/Makefile" ;; "include/fastjet/internal/Makefile") CONFIG_FILES="$CONFIG_FILES include/fastjet/internal/Makefile" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 $as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 $as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 $as_echo "$as_me: error: could not setup config headers machinery" >&2;} { (exit 1); exit 1; }; } fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 $as_echo "$as_me: error: could not create -" >&2;} { (exit 1); exit 1; }; } fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "include/fastjet/config_auto.h":C) ac_prefix_conf_OUT=`echo include/fastjet/config_auto.h` ac_prefix_conf_DEF=`echo _$ac_prefix_conf_OUT | sed -e "y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:" -e "s/[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g"` ac_prefix_conf_PKG=`echo FASTJET` ac_prefix_conf_LOW=`echo _$ac_prefix_conf_PKG | sed -e "y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:"` ac_prefix_conf_UPP=`echo $ac_prefix_conf_PKG | sed -e "y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:" -e "/^[0123456789]/s/^/_/"` ac_prefix_conf_INP=`echo "include/fastjet/config_raw.h" | sed -e 's/ *//'` if test ".$ac_prefix_conf_INP" = "."; then for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue case "$ac_file" in *.h) ac_prefix_conf_INP=$ac_file ;; *) esac test ".$ac_prefix_conf_INP" != "." && break done fi if test ".$ac_prefix_conf_INP" = "."; then case "$ac_prefix_conf_OUT" in */*) ac_prefix_conf_INP=`basename "$ac_prefix_conf_OUT"` ;; *-*) ac_prefix_conf_INP=`echo "$ac_prefix_conf_OUT" | sed -e "s/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*-//"` ;; *) ac_prefix_conf_INP=config.h ;; esac fi if test -z "$ac_prefix_conf_PKG" ; then { { $as_echo "$as_me:$LINENO: error: no prefix for _PREFIX_PKG_CONFIG_H" >&5 $as_echo "$as_me: error: no prefix for _PREFIX_PKG_CONFIG_H" >&2;} { (exit 1); exit 1; }; } else if test ! -f "$ac_prefix_conf_INP" ; then if test -f "$srcdir/$ac_prefix_conf_INP" ; then ac_prefix_conf_INP="$srcdir/$ac_prefix_conf_INP" fi fi { $as_echo "$as_me:$LINENO: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&5 $as_echo "$as_me: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&6;} if test -f $ac_prefix_conf_INP ; then echo "s/^#undef *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]\\)/#undef $ac_prefix_conf_UPP""_\\1/" > conftest.prefix echo "s/^#undef *\\([abcdefghijklmnopqrstuvwxyz]\\)/#undef $ac_prefix_conf_LOW""_\\1/" >> conftest.prefix echo "s/^#define *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_UPP""_\\1 \\" >> conftest.prefix echo "#define $ac_prefix_conf_UPP""_\\1 \\2 \\" >> conftest.prefix echo "#endif/" >>conftest.prefix echo "s/^#define *\\([abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_LOW""_\\1 \\" >> conftest.prefix echo "#define $ac_prefix_conf_LOW""_\\1 \\2 \\" >> conftest.prefix echo "#endif/" >> conftest.prefix # now executing _script on _DEF input to create _OUT output file echo "#ifndef $ac_prefix_conf_DEF" >$tmp/pconfig.h echo "#define $ac_prefix_conf_DEF 1" >>$tmp/pconfig.h echo ' ' >>$tmp/pconfig.h echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h sed -f conftest.prefix $ac_prefix_conf_INP >>$tmp/pconfig.h echo ' ' >>$tmp/pconfig.h echo '/* once:' $ac_prefix_conf_DEF '*/' >>$tmp/pconfig.h echo "#endif" >>$tmp/pconfig.h if cmp -s $ac_prefix_conf_OUT $tmp/pconfig.h 2>/dev/null; then { $as_echo "$as_me:$LINENO: $ac_prefix_conf_OUT is unchanged" >&5 $as_echo "$as_me: $ac_prefix_conf_OUT is unchanged" >&6;} else ac_dir=`$as_dirname -- "$ac_prefix_conf_OUT" || $as_expr X"$ac_prefix_conf_OUT" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_prefix_conf_OUT" : 'X\(//\)[^/]' \| \ X"$ac_prefix_conf_OUT" : 'X\(//\)$' \| \ X"$ac_prefix_conf_OUT" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_prefix_conf_OUT" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } rm -f "$ac_prefix_conf_OUT" mv $tmp/pconfig.h "$ac_prefix_conf_OUT" fi cp conftest.prefix _configs.sed else { { $as_echo "$as_me:$LINENO: error: input file $ac_prefix_conf_INP does not exist - skip generating $ac_prefix_conf_OUT" >&5 $as_echo "$as_me: error: input file $ac_prefix_conf_INP does not exist - skip generating $ac_prefix_conf_OUT" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.* fi ;; "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX FC " # ### BEGIN LIBTOOL CONFIG # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: FC # The linker used to build libraries. LD=$lt_LD_FC # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_FC # A language specific compiler. CC=$lt_compiler_FC # Is the compiler the GNU compiler? with_gcc=$GCC_FC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_FC # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_FC # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_FC # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_FC # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_FC # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_FC # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_FC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_FC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_FC # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_FC # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_FC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_FC # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_FC archive_expsym_cmds=$lt_archive_expsym_cmds_FC # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_FC module_expsym_cmds=$lt_module_expsym_cmds_FC # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_FC # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_FC # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_FC # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_FC # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_FC # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_FC # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_FC # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_FC # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_FC # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_FC # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_FC # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_FC # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_FC # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path_FC # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_FC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_FC # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_FC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_FC # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_FC # Specify filename containing input files. file_list_spec=$lt_file_list_spec_FC # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_FC # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_FC # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_FC postdep_objects=$lt_postdep_objects_FC predeps=$lt_predeps_FC postdeps=$lt_postdeps_FC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_FC # ### END LIBTOOL TAG CONFIG: FC _LT_EOF ;; "fastjet-config":F) chmod u+x fastjet-config ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 $as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi # # CONFIG_SUBDIRS section. # if test "$no_recursion" != yes; then # Remove --cache-file, --srcdir, and --disable-option-checking arguments # so they do not pile up. ac_sub_configure_args= ac_prev= eval "set x $ac_configure_args" shift for ac_arg do if test -n "$ac_prev"; then ac_prev= continue fi case $ac_arg in -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ | --c=*) ;; --config-cache | -C) ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) ;; --disable-option-checking) ;; *) case $ac_arg in *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac ac_sub_configure_args="$ac_sub_configure_args '$ac_arg'" ;; esac done # Always prepend --prefix to ensure using the same prefix # in subdir configurations. ac_arg="--prefix=$prefix" case $ac_arg in *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" # Pass --silent if test "$silent" = yes; then ac_sub_configure_args="--silent $ac_sub_configure_args" fi # Always prepend --disable-option-checking to silence warnings, since # different subdirs can have different --enable and --with options. ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" ac_popdir=`pwd` for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue # Do not complain, so a configure script can configure whichever # parts of a large source tree are present. test -d "$srcdir/$ac_dir" || continue ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" $as_echo "$as_me:$LINENO: $ac_msg" >&5 $as_echo "$ac_msg" >&6 { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" # Check for guested configure; otherwise get Cygnus style configure. if test -f "$ac_srcdir/configure.gnu"; then ac_sub_configure=$ac_srcdir/configure.gnu elif test -f "$ac_srcdir/configure"; then ac_sub_configure=$ac_srcdir/configure elif test -f "$ac_srcdir/configure.in"; then # This should be Cygnus configure. ac_sub_configure=$ac_aux_dir/configure else { $as_echo "$as_me:$LINENO: WARNING: no configuration information is in $ac_dir" >&5 $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} ac_sub_configure= fi # The recursion is here. if test -n "$ac_sub_configure"; then # Make the cache file name correct relative to the subdirectory. case $cache_file in [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; *) # Relative name. ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; esac { $as_echo "$as_me:$LINENO: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} # The eval makes quoting arguments work. eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || { { $as_echo "$as_me:$LINENO: error: $ac_sub_configure failed for $ac_dir" >&5 $as_echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;} { (exit 1); exit 1; }; } fi cd "$ac_popdir" done fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi printf "$CONFIG_SUMMARY" echo "---------------------------------------------------" echo " IMPORTANT NOTICE TO FASTJET USERS " echo " " echo " When using the FastJet library, you can retrieve " echo " compilation and link flags using fastjet-config. " echo " Type 'fastjet-config --help' for more information " echo "---------------------------------------------------" fastjet-3.0.6+dfsg.orig/test-compare.sh0000755000175000017500000002075011766120142016200 0ustar sunsun#!/bin/bash # This file aims at comparing the output of the different algorithms # with the benchmark results stored in test-algorithms-orig.dat # # To do that, we'll follow the following recipe: # - get the list of available algorithms # Note that at the same time, we'll build the info to clear the # original output later on # - run the various algorithms using fastjet_timing_plugins # send the output to a tmp file # - clear orig and tmp files # - compare them # # Specific notes: # - Tested algorithms: # kt, cam, antikt, ee_kt, ee_cam, ee_antikt, # siscone, siscone_spheri, jetclu, midpoint, pxcone, # d0runiicone, trackjet # - What needs to be cleared in the orig file: # . the lines starting with ":" for the algorithms # that won't be used # . the lines starting with # # . the lines containing "version" (version number) # . the lines containing "strategy" (strategy night differ) # . the lines containing ":#" (comments for the used algs) # . the lines containing "SISCone" (version number) # . the lines containing "CGAL" (not necessarily available) # - What needs to be cleared in the test file: # . all comment lined starting with '#' # . the lines containing "version" (version number) # . the lines containing "strategy" (strategy night differ) # . the lines containing "SISCone" (version number) # . the lines containing "CGAL" (not necessarily available) # - For native algs, we'll fix the strategy so that the output # matches (Best could be dangerous in case CGAL gets used) # - additional things tested: the output of fastjet_example and # fastjet_areas that will be placed at the beginning of the file # - for algs that are not in the plugin Plugin, specify an # additional tag using # : # - additional parameters for 'fastjet_timing_plugins' can be # specified using ',' to separate them # - another event file can be specified using @ # important: only the name of teh file has to be specified # and it has to be in example/data/ # # if srcdir is not defined, set it to . # this allows to run outside of make check if test -z ${srcdir}; then echo "setting srcdir to ." srcdir="." fi #====================================================================== # first check that the windows include file has the correct # version number. Strictly speaking not something that # should be done in make check, but should help guarantee # that we do not release a copy with the wrong windows version # number packname=`grep '^ *AC_INIT' ${srcdir}/configure.ac | sed -e 's/AC_INIT(//' -e 's/\[//g' -e 's/\]//g' -e 's/)//'` packver=`echo $packname | sed 's/.*,//g'` winver=`grep VERSION ${srcdir}/include/fastjet/config_win.h | sed 's/.*VERSION *"//' | sed 's/"//'` if [[ $winver != $packver ]]; then echo "ERROR: config_win.h version number not compatible with true version number" exit 1 fi #====================================================================== # check that # fastjet-config --cxxflags --libs # returns the same as # fastjet-config --cxxflags; fastjet-config --libs arguments_full=`./fastjet-config --cxxflags --libs | sed 's/\n/ /'` arguments_flags=`./fastjet-config --cxxflags | sed 's/\n/ /'` arguments_libs=`./fastjet-config --libs | sed 's/\n/ /'` arguments_recon=${arguments_flags}" "${arguments_libs} if [[ "$arguments_full" != "$arguments_recon" ]]; then echo "ERROR: fastjet-config --cxxflags --libs does not combine fastjet-config --cxxflags and fastjet-config --libs" echo " fastjet-config --cxxflags : "$arguments_flags echo " fastjet-config --libs : "$arguments_libs echo " fastjet-config --cxxflags --libs: "$arguments_full exit 1 fi #====================================================================== # now run the real tests # first build the list of algs to run echo ----------------------------------------------------------- echo "Checking which algorithms are available for testing" echo ----------------------------------------------------------- tested_algs="kt cam antikt genkt,1.0 genkt,0.0 genkt,-1.0 eekt,-excld,2.0@single-ee-event.dat eegenkt,1.0@single-ee-event.dat eegenkt,0.0@single-ee-event.dat eegenkt,-1.0@single-ee-event.dat" untested_algs="" Rvalues="0.4 0.7 1.0" extra_args="-incl 0.0" echo ":#" > clear_patterns.orig echo "^#" >> clear_patterns.orig echo "version" >> clear_patterns.orig echo "strategy" >> clear_patterns.orig echo "CGAL" >> clear_patterns.orig echo "SISCone" >> clear_patterns.orig # avoids problems w version numbers echo "pxcone: +[a-zA-Z*]" >> clear_patterns.orig # special treatment for PxCone whose fortran output echo "pxcone: *$" >> clear_patterns.orig # occurs in non-predicatble position (flushing issue) echo "WARNING" >> clear_patterns.orig # occurs in non-predicatble position (flushing issue) cp clear_patterns.orig clear_patterns.tmp # note: algs specified as alg:name mean that 'name' has to be checked for the # availability of 'alg' for plugin_tag in siscone sisconespheri:siscone jetclu:cdfcones midpoint:cdfcones pxcone d0runiicone trackjet atlascone cmsiterativecone eecambridge@single-ee-event.dat:eecambridge eecambridge,-ycut,0.01@single-ee-event.dat:eecambridge jade,-excly,0.01@single-ee-event.dat:jade d0runipre96cone:d0runicone d0runicone:d0runicone gridjet ; do plugin=${plugin_tag%%:*} tag=${plugin_tag##*:} tag_upper=`echo ${tag} | tr a-z A-Z` if [[ -n `grep "define FASTJET_ENABLE_PLUGIN_${tag_upper}" include/fastjet/config_auto.h` ]]; then tested_algs=${tested_algs}" "${plugin} else untested_algs=${untested_algs}" "${plugin} echo "^${plugin}:" >> clear_patterns.orig fi done # build the output to be compared wityh the original one ## for regenerating the orig output: echo "blahblahthiswillneverhappen" > clear_patterns.tmp echo ----------------------------------------------------------- echo "Running 'fastjet_example < data/single_event.dat'" echo ----------------------------------------------------------- example/fastjet_example < ${srcdir}/example/data/single-event.dat | grep -v -E -f clear_patterns.tmp > output.tmp echo echo ----------------------------------------------------------- echo "Running 'fastjet_areas < data/single_event.dat'" echo ----------------------------------------------------------- example/fastjet_areas < ${srcdir}/example/data/single-event.dat | grep -v -E -f clear_patterns.tmp >> output.tmp # run the algorithms to be tested echo ----------------------------------------------------------- echo "Running 'fastjet_timing_plugins "${extra_args}" < data/single_event.dat' on all algs" echo " tested : "${tested_algs} echo " untested:" ${untested_algs} echo " R values: "${Rvalues} echo ----------------------------------------------------------- for alg in ${tested_algs}; do # check if we have to run on a separate event # Note that this is specified using @ alg_part=${alg%%@*} if [ "${#alg}" -eq "${#alg_part}" ]; then event_part="single-event.dat" else event_part=${alg##*@} fi # additional parameters for 'fastjet_timing_plugins' can be specified using ',' to separate them. # we thus have to replace ',' by ' ' when we run fastjet_timing_plugins for R in ${Rvalues}; do example/fastjet_timing_plugins -${alg_part//,/ } ${extra_args} -r ${R} < ${srcdir}/example/data/${event_part} 2>&1 \ | awk "{print \"${alg}:\"\$0}" \ | grep -v -E -f clear_patterns.tmp \ >> output.tmp ## | awk "{if (\$2 == \"exclusive\"){ exit;}; print \"${alg}:\"\$0}" >> output.tmp done done ## for regenerating the orig output: cp output.tmp test-script-output-orig.txt echo echo ----------------------------------------------------------- echo "Comparing output from these runs (test-script-output.txt) " echo "to the expected output (test-script-output-orig.txt)" echo ----------------------------------------------------------- # clear the original output for comment lines and untested algorithms grep -v -E -f clear_patterns.orig ${srcdir}/test-script-output-orig.txt > output_orig.tmp # 4. perform the diff DIFF=`diff output.tmp output_orig.tmp` diff output.tmp output_orig.tmp > test-script-output.tmp # 5. show result echo "Tested plugins: "${tested_plugins} if [[ -n $DIFF ]]; then cat test-script-output.tmp exit 1; else echo Results are identical rm test-script-output.tmp rm clear_patterns.orig rm clear_patterns.tmp rm output.tmp output_orig.tmp fi fastjet-3.0.6+dfsg.orig/BUGS0000644000175000017500000001200111766120142013707 0ustar sunsunKnown bugs ---------- 1. the CGAL N ln N methods cannot handle coincident points. Events with more than one particle having identical rapidity,phi values should be clustered with an alternative strategy. If this poses a severe issue to someone, it will be fixed. 2. For N log(N) strategies requiring CGAL, in rare case of near degeneracies, the program may abort with the following error message: terminate called after throwing an instance of 'CGAL::Assertion_exception' what(): CGAL ERROR: assertion violation! Expr: false File: .../include/CGAL/Triangulation_2.h This is due to an excessively conservative check in versions 3.7, 3.8, and 3.9-beta1 of CGAL that has been fixed in CGAL-3.9. Note also that versions<=3.6.1 do not show that behaviour. If you encounter this problem, please switch to an appropriate version of CGAL. [thanks to the CGAL development team and to Olivier Devillers in particular for the quick fix.] 3. Filter and Pruner may lead to a crash in the following contorted situation: 1) they're constructed with just a radius or jet algorithm 2) the original jet involves a user-allocated recombiner 3) delete_recombiner_when_unused() has been called for the original jet's definition, jet_def 4) the original jet's cluster sequence has gone out of scope 5) the user then attempts to obtain the recombiner from the filtered jet (as may occur, e.g., if one tries to refilter or prune it). ---------------------------------------------------------------------- Other issues to be aware of --------------------------- 1. Some algorithms can have ambiguities in the clustering steps and we do not guarantee that different internal clustering strategies (or different fastjet versions) will always resolve the ambiguities identically. This issue doesn't arise with normal particle inputs. However: - Some (older) versions of Pythia sometimes produce massive particles with pt=0; phi is then ill-defined, while the rapidity is finite and we make no guarantees about how we treat the particle. - inputs that lie on a perfect grid in rapidity-phi (e.g. one interpretation of a calorimeter) cause many interparticle distances to be identical. In the kt, Cambridge/Aachen and anti-kt algorithms, many dij can therefore also be identical. The choice of which dij to take is then ambiguous and what fastjet actually does may depend on: the compiler, the machine architecture (because of rounding errors), the fastjet version. Physically this issue should not change the jets much. Nevertheless, one might choose to break any degeneracy explicity, e.g. using information from the location of energy deposits in each calorimeter tower, so that the inputs are not on a perfect grid. 2. For some of the plugins (listed below), the result of the clustering depends on how "sort" treats equal entities. Since this is supposedly undefined, FastJet has no control over the different results that one may obtain using those plugins. - The ATLAS-Cone plugin: At the beginning of the stable-cone search, the input particles are sorted in Et. In that sort, particles with an Et difference below 0.001 are considered as having the same Et (see line 80 of Jet.hh), resulting in the undefined behaviour mentioned above. A consequence of this is that, if 2 input particles have too similar an Et, the stable cone search will consider them in an undefined order. If the 2 resulting stable cones are too close (deta<0.05, dphi<0.05) one will be accepted and the other rejected. Which one depends on the ordering and is thus undefined. If the 2 stable cones do not have the same constituents this could affect the result of the clustering. - In the TrackJet plugin, input particles are sorted in Et. If two particles have the same Et (within machine precision), the order in which they will be considered is undefined. Note however that to have exactly the same pt, the particles are very likely to be back-to-back. In that case, only the order of the clustering will be affected but not the final jets. Relative to the original code, we have replaced the use of 'sort' with 'stable_sort' so that in case of such a degeneracy the order will be the same as that of the original particles and no random behaviour is to be expected. Note however that the issue could still arise if one changes the ordering of the input particles. 3. Copy of ClusterSequenceArea (and the other CS area-related classes) is not fully implemented. ---------------------------------------------------------------------- Probably solved --------------- 1. Compilation issues have been reported under windows with the VC7.1 compiler. We have incorporated fixes proposed by Ivan Belyaev for this, but do not have access to an appropriate machine to test it ourselves. (NB: it in any case works with cygwin). fastjet-3.0.6+dfsg.orig/Doxyfile0000644000175000017500000020661512233505737014761 0ustar sunsun# Doxyfile 1.7.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = FastJet # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 3.0.6 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = include/ tools/ plugins/ATLASCone/ plugins/CDFCones/ plugins/CMSIterativeCone/ plugins/D0RunICone/ plugins/D0RunIICone/ plugins/EECambridge/ plugins/Jade/ plugins/NestedDefs/ plugins/PxCone/ plugins/SISCone/ plugins/TrackJet/ plugins/GridJet/ # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = NO # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = YES # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = NO # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = src/ include/ include/fastjet include/fastjet/internal tools/ tools/fastjet/tools example plugins/ATLASCone plugins/ATLASCone/fastjet plugins/CMSIterativeCone plugins/CMSIterativeCone/fastjet plugins/CDFCones plugins/CDFCones/fastjet plugins/D0RunIICone plugins/D0RunIICone/fastjet plugins/D0RunICone plugins/D0RunICone/fastjet plugins/EECambridge plugins/EECambridge/fastjet plugins/Jade plugins/Jade/fastjet plugins/NestedDefs plugins/NestedDefs/fastjet plugins/SISCone plugins/SISCone/fastjet plugins/PxCone plugins/PxCone/fastjet plugins/TrackJet plugins/TrackJet/fastjet plugins/GridJet plugins/GridJet/fastjet . # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = *.c *.cc *.cxx *.cpp *.c++ \ *.h *.hh *.hxx *.hpp *.h++ \ *.ii *.ixx *.ipp *.i++ *.icc \ *.php *.php3 *.inc *.m *.py *.f90 *.f \ NEWS # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = NO # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvances is that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = include/ # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans.ttf # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 2 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = YES # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES fastjet-3.0.6+dfsg.orig/makefile.static0000644000175000017500000001050611766120142016222 0ustar sunsun# fastjet/Makefile # set this to "yes" if you have the CGAL library installed and want # to have the N ln N clustering option. In this case you should make # sure that the CGAL_MAKEFILE environment variable is defined and points # to the CGAL Makefile (which defines various flags) # of the CGAL_DIRECTORY to know how to find the headers and lib. # (see below) #USE_CGAL = yes USE_CGAL = no # CGAL is based on a kernel for representing numbers -- setting # USE_CGAL_SIMPLE_KERNEL to yes causes compilation to use a simpler # kernel, which is about 20% faster, but may not be as robust. USE_CGAL_SIMPLE_KERNEL = no # uncomment this to remove all assertions (mainly from CGAL) -- this # increaes the speed by about 10% (but leaves out many safety checks # that are useful if you plan on doing anything "unusual") #CXXFLAGS += -DNDEBUG # this tells the example programs to search just for "XYZPlugin.hh" # rather than "fastjet/XYZPlugin.hh" # WAS USED ONLY DURING DEVEL #CXXFLAGS += -DPLUGINS_NOT_IN_FASTJET # when uncommented, keeps debugging information in object file # (negligble impact on speed \sim 1%) CXXFLAGS += -g CXXPEDANTIC = -pedantic -ansi -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses # use the folowing 2 lines if you want CGAL flags to be obtained # from a Makefile CGAL_MAKEFILE = /usr/share/cgal/cgal.mk CGAL_DIRECTORY = # use the folowing 2 lines if you want CGAL flags to be obtained # from the given directory # Note: if you don't specify a dir, a default location is assumed ## CGAL_MAKEFILE = ## CGAL_DIRECTORY = /usr/local # flags that will be needed for linking from examples/ LDFLAGS+=-L../lib -lfastjet # if you compile the pxcone plugin, you will need a fortran compiler # you will also need to manually edit include/fastjet/config.h (or # src/genconfig.sh) to reflect the existence of pxcone. FC = g77 FFLAGS = -O3 # for linking C++ with fortran, you must specify where to find # the relevant fortan libraries; in the example below, G77LIBDIR is # an environment variable that has been set by the user previously. # It points to the directory which contains libg2c.a # alternatively, try uncommenting the line below #G77LIBDIR = $(shell dirname `locate libg2c.a | head -1`) #F77LIB = -L$(G77LIBDIR) -lg2c F77LIB = $(G77LIBDIR)/libg2c.a # Things needed when compiling with ktjet -- adjust to correspond # to your own setup (remember to "make double" the KtJet library) KTJET_INCLUDE = -DKTDOUBLEPRECISION -I../../ktjet -I../../clhep/include KTJET_LIBRARY = -L../../ktjet/lib -lKtEvent -L../../clhep/lib -lCLHEP -lm #-------------------------------------------------------------------- # other config stuff cppExtension := .cc # File extension of source files CPPFLAGS += # List flags to pass to C/C++ preprocessor CXXFLAGS += -O3 -Wall # List flags to pass to C++ compiler LDFLAGS += # List flags to pass to linker LDLIBS += # List additional system libraries to link with ifeq ($(USE_CGAL),no) # this directs the code to drop the parts that depend on CGAL INCLUDE += -DDROP_CGAL else ifneq ($(CGAL_MAKEFILE),) #---------------------------------------------------------------------# # stuff to get CGAL working # #**** # the following line includes the CGAL_MAKEFILE which defines # various flags needed for linking and compiling with CGAL # $CGAL_MAKEFILE is an environment variable which you should # set to the location of that Makefile, as indicated # at the end of the CGAL installation process. include $(CGAL_MAKEFILE) # CGAL flags are usually held in variables with CGAL-specific names; # copy those flags into variables with standard names CXXFLAGS += $(CGAL_CXXFLAGS) $(LONG_NAME_PROBLEM_CXXFLAGS) #INCLUDE += -I$(CGAL_INCL_DIR) LIBPATH += $(CGAL_LIBPATH) LDFLAGS += $(LONG_NAME_PROBLEM_LDFLAGS) $(CGAL_LDFLAGS) CXX = $(CGAL_CXX) #NB auto makefile stuff will fail without g++ ifeq ($(USE_CGAL_SIMPLE_KERNEL),yes) INCLUDE += -DCGAL_SIMPLE_KERNEL endif else ifneq ($(CGAL_DIRECTORY),) INCLUDE += -I$(CGAL_DIRECTORY)/include LDFLAGS += -L$(CGAL_DIRECTORY)/lib endif CXXFLAGS += -frounding-math LDFLAGS += -lm -lCGAL endif endif %.o: %.cc $(CXX) $(CXXFLAGS) $(INCLUDE) -c $< # will the following work???!!! #lib: # echo hello # cd src; make; cd .. fastjet-3.0.6+dfsg.orig/m4/0000755000175000017500000000000012233507300013545 5ustar sunsunfastjet-3.0.6+dfsg.orig/m4/ltoptions.m40000644000175000017500000002724212130050345016047 0ustar sunsun# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) fastjet-3.0.6+dfsg.orig/m4/lt~obsolete.m40000644000175000017500000001311312130050345016356 0ustar sunsun# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) fastjet-3.0.6+dfsg.orig/m4/libtool.m40000644000175000017500000077341112130050345015466 0ustar sunsun# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. if test "$no_create" != yes; then lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF [$]* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) fastjet-3.0.6+dfsg.orig/m4/ltversion.m40000644000175000017500000000127712130050345016041 0ustar sunsun# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3017 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6b]) m4_define([LT_PACKAGE_REVISION], [1.3017]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b' macro_revision='1.3017' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) fastjet-3.0.6+dfsg.orig/m4/plugin.m40000644000175000017500000002171211766120140015313 0ustar sunsundnl INIT_PLUGINS dnl initialise the default plugin behaviours AC_DEFUN([ACX_INIT_PLUGINS], [ dnl default plugin settings DEFAULT_ENABLE_SISCONE="yes" DEFAULT_ENABLE_CDFCONES="yes" DEFAULT_ENABLE_PXCONE="no" DEFAULT_ENABLE_D0RUNIICONE="no" DEFAULT_ENABLE_NESTEDDEFS="yes" DEFAULT_ENABLE_TRACKJET="no" DEFAULT_ENABLE_ATLASCONE="no" DEFAULT_ENABLE_CMSITERATIVECONE="no" DEFAULT_ENABLE_EECAMBRIDGE="yes" DEFAULT_ENABLE_JADE="yes" DEFAULT_ENABLE_D0RUNICONE="no" DEFAULT_ENABLE_GRIDJET="yes" dnl end of default plugin settings --- don't modify this line dnl declare the plugins for the config header AH_TEMPLATE(ENABLE_PLUGIN_SISCONE, [checks if the SISCone plugin is enabled]) AH_TEMPLATE(ENABLE_PLUGIN_CDFCONES, [checks if the CDFCones plugin is enabled]) AH_TEMPLATE(ENABLE_PLUGIN_PXCONE, [checks if the PxCone plugin is enabled]) AH_TEMPLATE(ENABLE_PLUGIN_D0RUNIICONE, [checks if the D0RunIICone plugin is enabled]) AH_TEMPLATE(ENABLE_PLUGIN_NESTEDDEFS, [checks if the NestedDefs plugin is enabled]) AH_TEMPLATE(ENABLE_PLUGIN_TRACKJET, [checks if the TrackJet plugin is enabled]) AH_TEMPLATE(ENABLE_PLUGIN_ATLASCONE, [checks if the ATLASCone plugin is enabled]) AH_TEMPLATE(ENABLE_PLUGIN_CMSITERATIVECONE, [checks if the CMSIterativeCone plugin is enabled]) AH_TEMPLATE(ENABLE_PLUGIN_EECAMBRIDGE, [checks if the EECambridge plugin is enabled]) AH_TEMPLATE(ENABLE_PLUGIN_JADE, [checks if the Jade plugin is enabled]) AH_TEMPLATE(ENABLE_PLUGIN_D0RUNICONE, [checks if the D0RunICone plugin is enabled]) AH_TEMPLATE(ENABLE_PLUGIN_GRIDJET, [checks if the GridJet plugin is enabled]) dnl end of declare the plugins for the config header --- don't modify this line ]) dnl Allow to enable all the plugins at a go dnl Note: we do actually only change the default values, so that it allows for things like dnl ./configure --enable-allplugins --disable-pxcone dnl will enable everything but PxCone dnl Note: --disable-allplugins is automatically defined by autoconf dnl Therefore, we implement it so as it does what it is supposed to do i.e. disable dnl all the plugins. Again, --disable-allplugins --enable-siscone shall work and dnl just enable the SISCone plugin AC_DEFUN([ACX_CHECK_ALLPLUGINS], [ AC_MSG_CHECKING([whether to build all plugins]) AC_ARG_ENABLE(allplugins, [ --enable-allplugins enables all the FastJet plugins (default=no)], [ENABLE_ALLPLUGINS="$enableval"], [ENABLE_ALLPLUGINS="not set"]) if [[ "x$ENABLE_ALLPLUGINS" == "xyes" ]] ; then dnl set all default plugin settings to yes DEFAULT_ENABLE_SISCONE="yes" DEFAULT_ENABLE_CDFCONES="yes" DEFAULT_ENABLE_PXCONE="yes" DEFAULT_ENABLE_D0RUNIICONE="yes" DEFAULT_ENABLE_NESTEDDEFS="yes" DEFAULT_ENABLE_TRACKJET="yes" DEFAULT_ENABLE_ATLASCONE="yes" DEFAULT_ENABLE_CMSITERATIVECONE="yes" DEFAULT_ENABLE_EECAMBRIDGE="yes" DEFAULT_ENABLE_JADE="yes" DEFAULT_ENABLE_D0RUNICONE="yes" DEFAULT_ENABLE_GRIDJET="yes" dnl end of set all default plugin settings to yes --- don't modify this line fi if [[ "x$ENABLE_ALLPLUGINS" == "xno" ]] ; then dnl set all default plugin settings to no DEFAULT_ENABLE_SISCONE="no" DEFAULT_ENABLE_CDFCONES="no" DEFAULT_ENABLE_PXCONE="no" DEFAULT_ENABLE_D0RUNIICONE="no" DEFAULT_ENABLE_NESTEDDEFS="no" DEFAULT_ENABLE_TRACKJET="no" DEFAULT_ENABLE_ATLASCONE="no" DEFAULT_ENABLE_CMSITERATIVECONE="no" DEFAULT_ENABLE_EECAMBRIDGE="no" DEFAULT_ENABLE_JADE="no" DEFAULT_ENABLE_D0RUNICONE="no" DEFAULT_ENABLE_GRIDJET="no" dnl end of set all default plugin settings to no --- don't modify this line fi AC_MSG_RESULT($ENABLE_ALLPLUGINS) ]) dnl Allow to enable all the CXX plugins at a go dnl Note: we do actually only change the default values, so that it allows for things like dnl ./configure --enable-allcxxplugins --disable-cdfcones dnl will enable everything but PxCone dnl Note: --disable-allplugins is automatically defined by autoconf dnl Therefore, we implement it so as it does what it is supposed to do i.e. disable dnl all the plugins. Again, --disable-allcxxplugins --enable-siscone shall work and dnl just enable the SISCone plugin AC_DEFUN([ACX_CHECK_ALLCXXPLUGINS], [ AC_MSG_CHECKING([whether to build all CXX plugins]) AC_ARG_ENABLE(allcxxplugins, [ --enable-allcxxplugins enables all the CXX FastJet plugins (default=no)], [ENABLE_ALLCXXPLUGINS="$enableval"], [ENABLE_ALLCXXPLUGINS="not set"]) if [[ "x$ENABLE_ALLCXXPLUGINS" == "xyes" ]] ; then dnl set all default cxx plugin settings to yes DEFAULT_ENABLE_SISCONE="yes" DEFAULT_ENABLE_CDFCONES="yes" DEFAULT_ENABLE_D0RUNIICONE="yes" DEFAULT_ENABLE_NESTEDDEFS="yes" DEFAULT_ENABLE_TRACKJET="yes" DEFAULT_ENABLE_ATLASCONE="yes" DEFAULT_ENABLE_CMSITERATIVECONE="yes" DEFAULT_ENABLE_EECAMBRIDGE="yes" DEFAULT_ENABLE_JADE="yes" DEFAULT_ENABLE_D0RUNICONE="yes" DEFAULT_ENABLE_GRIDJET="yes" dnl end of set all default cxx plugin settings to yes --- don't modify this line fi if [[ "x$ENABLE_ALLCXXPLUGINS" == "xno" ]] ; then dnl set all default cxx plugin settings to no DEFAULT_ENABLE_SISCONE="no" DEFAULT_ENABLE_CDFCONES="no" DEFAULT_ENABLE_D0RUNIICONE="no" DEFAULT_ENABLE_NESTEDDEFS="no" DEFAULT_ENABLE_TRACKJET="no" DEFAULT_ENABLE_ATLASCONE="no" DEFAULT_ENABLE_CMSITERATIVECONE="no" DEFAULT_ENABLE_EECAMBRIDGE="no" DEFAULT_ENABLE_JADE="no" DEFAULT_ENABLE_D0RUNICONE="no" DEFAULT_ENABLE_GRIDJET="no" dnl end of set all default cxx plugin settings to no --- don't modify this line fi AC_MSG_RESULT($ENABLE_ALLCXXPLUGINS) ]) dnl CHECK PLUGIN dnl This script is meant to check if a plugin has to be enabled dnl It takes the following arguments dnl the name of the plugin (e.g. SISCone) dnl the name in lower case (e.g. siscone) dnl the name in upper case (e.g. SISCONE) dnl commands to execute if enabled dnl commands to execute if disabled dnl it sets the following vars dnl AC_DEFUN([ACX_CHECK_PLUGIN], [ AC_MSG_CHECKING([whether to build plugin $1]) AC_ARG_ENABLE($2, [ --enable-$2 enables the $1 plugin [[default=$4]]], [ENABLE_$3="$enableval"], [ENABLE_$3="${DEFAULT_ENABLE_$3}"]) if [[ "x$ENABLE_$3" == "xyes" ]] ; then AC_DEFINE(ENABLE_PLUGIN_$3, [], [The $1 plugin is enabled]) dnl set up the libs if [[ "x$monolithic" != "xyes" ]] ; then CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -l$1Plugin " CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/lib$1Plugin.a " fi dnl check if there is some provided commands to execute ifelse([$5],[],[:],[$5]) LIST_ALL_PLUGINS=${LIST_ALL_PLUGINS}" $1" else ifelse([$6],[],[:],[$6]) fi AC_CONFIG_FILES( plugins/$1/Makefile plugins/$1/fastjet/Makefile ) AM_CONDITIONAL(BUILD_PLUGIN_$3, test x$ENABLE_$3 = xyes) AC_MSG_RESULT(${ENABLE_$3}) ]) dnl PLUGIN_SUMMARY dnl show a brief summary of what is enabled and what is not AC_DEFUN([AC_PLUGIN_SUMMARY], [ dnl show the plugins summary dnl check if there is some provided commands to execute ifelse([$1],[],[ echo " Plugins: EECambridge "${ENABLE_EECAMBRIDGE} echo " Jade "${ENABLE_JADE} echo " NestedDefs "${ENABLE_NESTEDDEFS} echo " SISCone "${ENABLE_SISCONE} echo " CDFCones "${ENABLE_CDFCONES} echo " D0RunICone "${ENABLE_D0RUNICONE} echo " D0RunIICone "${ENABLE_D0RUNIICONE} echo " ATLASCone "${ENABLE_ATLASCONE} echo " CMSIterativeCone "${ENABLE_CMSITERATIVECONE} echo " PxCone "${ENABLE_PXCONE} echo " TrackJet "${ENABLE_TRACKJET} echo " GridJet "${ENABLE_GRIDJET} ],[ CONFIG_SUMMARY+=" Plugins: EECambridge "${ENABLE_EECAMBRIDGE}"\n" CONFIG_SUMMARY+=" Jade "${ENABLE_JADE}"\n" CONFIG_SUMMARY+=" NestedDefs "${ENABLE_NESTEDDEFS}"\n" CONFIG_SUMMARY+=" SISCone "${ENABLE_SISCONE}"\n" CONFIG_SUMMARY+=" CDFCones "${ENABLE_CDFCONES}"\n" CONFIG_SUMMARY+=" D0RunICone "${ENABLE_D0RUNICONE}"\n" CONFIG_SUMMARY+=" D0RunIICone "${ENABLE_D0RUNIICONE}"\n" CONFIG_SUMMARY+=" ATLASCone "${ENABLE_ATLASCONE}"\n" CONFIG_SUMMARY+=" CMSIterativeCone "${ENABLE_CMSITERATIVECONE}"\n" CONFIG_SUMMARY+=" PxCone "${ENABLE_PXCONE}"\n" CONFIG_SUMMARY+=" TrackJet "${ENABLE_TRACKJET}"\n" CONFIG_SUMMARY+=" GridJet "${ENABLE_GRIDJET}"\n" ]) dnl end of show the plugins summary --- don't modify this line ]) fastjet-3.0.6+dfsg.orig/m4/ax_prefix_config_h.m40000644000175000017500000002162211766120140017636 0ustar sunsun# =========================================================================== # http://autoconf-archive.cryp.to/ax_prefix_config_h.html # =========================================================================== # # SYNOPSIS # # AX_PREFIX_CONFIG_H [(OUTPUT-HEADER [,PREFIX [,ORIG-HEADER]])] # # DESCRIPTION # # This is a new variant from ac_prefix_config_ this one will use a # lowercase-prefix if the config-define was starting with a # lowercase-char, e.g. "#define const", "#define restrict", or "#define # off_t", (and this one can live in another directory, e.g. # testpkg/config.h therefore I decided to move the output-header to be the # first arg) # # takes the usual config.h generated header file; looks for each of the # generated "#define SOMEDEF" lines, and prefixes the defined name (ie. # makes it "#define PREFIX_SOMEDEF". The result is written to the output # config.header file. The PREFIX is converted to uppercase for the # conversions. # # Defaults: # # OUTPUT-HEADER = $PACKAGE-config.h # PREFIX = $PACKAGE # ORIG-HEADER, from AM_CONFIG_HEADER(config.h) # # Your configure.ac script should contain both macros in this order, and # unlike the earlier variations of this prefix-macro it is okay to place # the AX_PREFIX_CONFIG_H call before the AC_OUTPUT invokation. # # Example: # # AC_INIT(config.h.in) # config.h.in as created by "autoheader" # AM_INIT_AUTOMAKE(testpkg, 0.1.1) # makes #undef VERSION and PACKAGE # AM_CONFIG_HEADER(config.h) # prep config.h from config.h.in # AX_PREFIX_CONFIG_H(mylib/_config.h) # prep mylib/_config.h from it.. # AC_MEMORY_H # makes "#undef NEED_MEMORY_H" # AC_C_CONST_H # makes "#undef const" # AC_OUTPUT(Makefile) # creates the "config.h" now # # and also mylib/_config.h # # if the argument to AX_PREFIX_CONFIG_H would have been omitted then the # default outputfile would have been called simply "testpkg-config.h", but # even under the name "mylib/_config.h" it contains prefix-defines like # # #ifndef TESTPKG_VERSION # #define TESTPKG_VERSION "0.1.1" # #endif # #ifndef TESTPKG_NEED_MEMORY_H # #define TESTPKG_NEED_MEMORY_H 1 # #endif # #ifndef _testpkg_const # #define _testpkg_const _const # #endif # # and this "mylib/_config.h" can be installed along with other # header-files, which is most convenient when creating a shared library # (that has some headers) where some functionality is dependent on the # OS-features detected at compile-time. No need to invent some # "mylib-confdefs.h.in" manually. :-) # # Note that some AC_DEFINEs that end up in the config.h file are actually # self-referential - e.g. AC_C_INLINE, AC_C_CONST, and the AC_TYPE_OFF_T # say that they "will define inline|const|off_t if the system does not do # it by itself". You might want to clean up about these - consider an # extra mylib/conf.h that reads something like: # # #include # #ifndef _testpkg_const # #define _testpkg_const const # #endif # # and then start using _testpkg_const in the header files. That is also a # good thing to differentiate whether some library-user has starting to # take up with a different compiler, so perhaps it could read something # like this: # # #ifdef _MSC_VER # #include # #else # #include # #endif # #ifndef _testpkg_const # #define _testpkg_const const # #endif # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2008 Marten Svantesson # Copyright (c) 2008 Gerald Point # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_PREFIX_CONFIG_H],[dnl AC_BEFORE([AC_CONFIG_HEADERS],[$0])dnl AC_CONFIG_COMMANDS([ifelse($1,,$PACKAGE-config.h,$1)],[dnl AS_VAR_PUSHDEF([_OUT],[ac_prefix_conf_OUT])dnl AS_VAR_PUSHDEF([_DEF],[ac_prefix_conf_DEF])dnl AS_VAR_PUSHDEF([_PKG],[ac_prefix_conf_PKG])dnl AS_VAR_PUSHDEF([_LOW],[ac_prefix_conf_LOW])dnl AS_VAR_PUSHDEF([_UPP],[ac_prefix_conf_UPP])dnl AS_VAR_PUSHDEF([_INP],[ac_prefix_conf_INP])dnl m4_pushdef([_script],[conftest.prefix])dnl m4_pushdef([_symbol],[m4_cr_Letters[]m4_cr_digits[]_])dnl _OUT=`echo ifelse($1, , $PACKAGE-config.h, $1)` _DEF=`echo _$_OUT | sed -e "y:m4_cr_letters:m4_cr_LETTERS[]:" -e "s/@<:@^m4_cr_Letters@:>@/_/g"` _PKG=`echo ifelse($2, , $PACKAGE, $2)` _LOW=`echo _$_PKG | sed -e "y:m4_cr_LETTERS-:m4_cr_letters[]_:"` _UPP=`echo $_PKG | sed -e "y:m4_cr_letters-:m4_cr_LETTERS[]_:" -e "/^@<:@m4_cr_digits@:>@/s/^/_/"` _INP=`echo "ifelse($3,,,$3)" | sed -e 's/ *//'` if test ".$_INP" = "."; then for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue case "$ac_file" in *.h) _INP=$ac_file ;; *) esac test ".$_INP" != "." && break done fi if test ".$_INP" = "."; then case "$_OUT" in */*) _INP=`basename "$_OUT"` ;; *-*) _INP=`echo "$_OUT" | sed -e "s/@<:@_symbol@:>@*-//"` ;; *) _INP=config.h ;; esac fi if test -z "$_PKG" ; then AC_MSG_ERROR([no prefix for _PREFIX_PKG_CONFIG_H]) else if test ! -f "$_INP" ; then if test -f "$srcdir/$_INP" ; then _INP="$srcdir/$_INP" fi fi AC_MSG_NOTICE(creating $_OUT - prefix $_UPP for $_INP defines) if test -f $_INP ; then echo "s/^@%:@undef *\\(@<:@m4_cr_LETTERS[]_@:>@\\)/@%:@undef $_UPP""_\\1/" > _script echo "s/^@%:@undef *\\(@<:@m4_cr_letters@:>@\\)/@%:@undef $_LOW""_\\1/" >> _script echo "s/^@%:@def[]ine *\\(@<:@m4_cr_LETTERS[]_@:>@@<:@_symbol@:>@*\\)\\(.*\\)/@%:@ifndef $_UPP""_\\1 \\" >> _script echo "@%:@def[]ine $_UPP""_\\1 \\2 \\" >> _script echo "@%:@endif/" >>_script echo "s/^@%:@def[]ine *\\(@<:@m4_cr_letters@:>@@<:@_symbol@:>@*\\)\\(.*\\)/@%:@ifndef $_LOW""_\\1 \\" >> _script echo "@%:@define $_LOW""_\\1 \\2 \\" >> _script echo "@%:@endif/" >> _script # now executing _script on _DEF input to create _OUT output file echo "@%:@ifndef $_DEF" >$tmp/pconfig.h echo "@%:@def[]ine $_DEF 1" >>$tmp/pconfig.h echo ' ' >>$tmp/pconfig.h echo /'*' $_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h sed -f _script $_INP >>$tmp/pconfig.h echo ' ' >>$tmp/pconfig.h echo '/* once:' $_DEF '*/' >>$tmp/pconfig.h echo "@%:@endif" >>$tmp/pconfig.h if cmp -s $_OUT $tmp/pconfig.h 2>/dev/null; then AC_MSG_NOTICE([$_OUT is unchanged]) else ac_dir=`AS_DIRNAME(["$_OUT"])` AS_MKDIR_P(["$ac_dir"]) rm -f "$_OUT" mv $tmp/pconfig.h "$_OUT" fi cp _script _configs.sed else AC_MSG_ERROR([input file $_INP does not exist - skip generating $_OUT]) fi rm -f conftest.* fi m4_popdef([_symbol])dnl m4_popdef([_script])dnl AS_VAR_POPDEF([_INP])dnl AS_VAR_POPDEF([_UPP])dnl AS_VAR_POPDEF([_LOW])dnl AS_VAR_POPDEF([_PKG])dnl AS_VAR_POPDEF([_DEF])dnl AS_VAR_POPDEF([_OUT])dnl ],[PACKAGE="$PACKAGE"])]) dnl implementation note: a bug report (31.5.2005) from Marten Svantesson points dnl out a problem where `echo "\1"` results in a Control-A. The unix standard dnl http://www.opengroup.org/onlinepubs/000095399/utilities/echo.html dnl defines all backslash-sequences to be inherently non-portable asking dnl for replacement mit printf. Some old systems had problems with that dnl one either. However, the latest libtool (!) release does export an $ECHO dnl (and $echo) that does the right thing - just one question is left: what dnl was the first version to have it? Is it greater 2.58 ? fastjet-3.0.6+dfsg.orig/m4/compiler_flags.m40000644000175000017500000000213611766120140017002 0ustar sunsunAC_DEFUN([AX_CHECK_COMPILER_FLAGS], [AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX AC_MSG_CHECKING([whether _AC_LANG compiler accepts $1]) dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname: AS_LITERAL_IF([$1], [AC_CACHE_VAL(AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1), [ ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS _AC_LANG_PREFIX[]FLAGS="$1" AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=yes, AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=no) _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])], [ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS _AC_LANG_PREFIX[]FLAGS="$1" AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=yes, eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=no) _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS]) eval ax_check_compiler_flags=$AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1) AC_MSG_RESULT($ax_check_compiler_flags) if test "x$ax_check_compiler_flags" = xyes; then m4_default([$2], :) else m4_default([$3], :) fi ])dnl AX_CHECK_COMPILER_FLAGS fastjet-3.0.6+dfsg.orig/m4/ltsugar.m40000644000175000017500000001042412130050345015467 0ustar sunsun# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) fastjet-3.0.6+dfsg.orig/m4/CGAL.m40000644000175000017500000001706412127746207014542 0ustar sunsundnl CHECK CGAL BEGIN dnl This script takes too arguments, the action on success and the action on failure. dnl It first checks if a --with-cgalmakefile) value is passed. dnl If that fails, it checks if the CGAL_MAKEFILE environment variable dnl is defined. If that fails too, it seaches for CGAL in the standard places. dnl dnl If a Makefile is specified and not found, an error is returned dnl If the standard Makefile is not found, then one check for the dnl --with-cgaldir presence and check if CGAL can be found in standard places dnl dnl Note that in the last case, we use a predefined set of compiler and linker dnl arguments, a method that may fail. dnl dnl CGAL_CXXFLAGS, CGAL_CPPFLAGS, CGAL_LDFLAGS and CGAL_LIBS are all defined. AC_DEFUN([ACX_CHECK_CGAL], [ dnl Start by looking if a Makefile is given through --with-cgalmakefile acx_cgal_found=no acx_cgal_default_makefile=no AC_ARG_WITH(cgalmakefile, [AC_HELP_STRING([--with-cgalmakefile=makefile], [Use the following CGAL makefile (CGAL <= 3.3.x)])]) dnl ckeck if a directory is specified for CGAL dnl Note: this is of no effect if a Makefile is used AC_ARG_WITH(cgaldir, [AC_HELP_STRING([--with-cgaldir=dir], [Assume the given directory for CGAL (CGAL >= 3.4)])]) dnl define CGAL_MAKEFILE to be dnl 1. the value given to --with-cgalmakefile dnl 2. the environment var dnl 3. the default location: /usr/share/cgal/cgal.mk dnl in that order dnl Note: using --with-cgalmakefile=no disables CGAL. In our case this is redundant as dnl we already have a --enable-cgal option, but we keep it as it was in the dnl original code case $with_cgalmakefile in yes | "") dnl check if a env. var is defined if test x${CGAL_MAKEFILE} = x ; then # if no installation dir is explicitly specified, try a default makefile if test \! -z "$with_cgaldir"; then CGAL_MAKEFILE="" else CGAL_MAKEFILE="/usr/share/cgal/cgal.mk" fi fi acx_cgal_default_makefile=yes; ;; no) acx_cgal_found=disable ;; -* | */* | *.a | *.so | *.so.* | *.o) CGAL_MAKEFILE="$with_cgalmakefile" ;; *) CGAL_MAKEFILE="$with_cgalmakefile" ;; esac dnl check for the presence of the CGAL Makefile dnl if present, get the compilation and linker flags there if test "$acx_cgal_found" == no; then AC_MSG_CHECKING(CGAL_MAKEFILE) dnl check that a Makefile has been specified if test \! -z "$CGAL_MAKEFILE"; then dnl make sure the file exists if test -e "$CGAL_MAKEFILE"; then dnl to get the arguments, we'll just write a temporary Makefile dnl that "echo"s the CGAL_CXXFLAGS and CGAL_LDFLAGS variables upon request tname=`mktemp /tmp/cgal_makefile_dsrXXXXXX` cat > $tname << _ACEOF include $CGAL_MAKEFILE cppflags: @echo \$(CGAL_CXXFLAGS) cxxflags: @echo ldflags: @echo \$(CGAL_LDFLAGS) _ACEOF dnl get the compiler and preprocessor info CGAL_CPPFLAGS="`make -s -f $tname cppflags`" CGAL_CXXFLAGS="`make -s -f $tname cxxflags`" dnl for the libs, put the -l directives in CGAL_LIBS and the others in dnl CGAL_LDFLAGS CGAL_LDFLAGST="`make -s -f $tname ldflags`" for i in $CGAL_LDFLAGST; do if test `echo $i| grep -c ^-l`; then CGAL_LIBS="$CGAL_LIBS $i" else CGAL_LDFLAGS="$CGAL_LDFLAGS $i" fi done dnl remove the temporary Makefile and tell we succeeded rm -f $tname AC_MSG_RESULT(yes) acx_cgal_found=yes else dnl the Makefile does not exists dnl We only need to return an error if the Makefile was not the default one AC_MSG_RESULT(inexistent) if test "$acx_cgal_default_makefile" == no; then AC_ERROR([CGAL_MAKEFILE defined as $CGAL_MAKEFILE, but the makefile does not exist.]) fi fi else dnl the Makefile is invalid AC_MSG_RESULT(not specified) dnl dnl We only need to return an error if the Makefile was not the default one dnl if test "$acx_cgal_default_makefile" == no; then dnl AC_ERROR([CGAL_MAKEFILE defined as $CGAL_MAKEFILE, but the makefile does not exist.]) dnl fi fi fi dnl if CGAL hasn't been found yet and the Makefile search didn't return an error message dnl we check if we can get the arguments ourselves. This method leave the option to specify dnl a CGAL directory using the --with-cgaldir directive dnl If no dir are specified, CGLA will be searched in standard places if test "$acx_cgal_found" == no; then dnl check support for -frounding-math for the C++ compiler ADDITIONAL_CGAL_FLAGS="" AC_LANG_PUSH(C++) AX_CHECK_COMPILER_FLAGS([-frounding-math],[ADDITIONAL_CGAL_FLAGS=${ADDITIONAL_CGAL_FLAGS}" -frounding-math"]) AC_LANG_POP(C++) dnl First check if an installation dir has been supplied. dnl The current flags have to be saved temporarily save_LIBS="$LIBS" save_LDFLAGS="$LDFLAGS" save_CXXFLAGS="$CXXFLAGS" save_CPPFLAGS="$CPPFLAGS" CGAL_CXXFLAGS="" CGAL_CPPFLAGS="" CGAL_LDFLAGS="" CGAL_LIBS="" dnl check if a directory has bene specified dnl in that case, we need to add a -I and -L arg to CXXFLAGS and LDFLAGS dnl Note that the headers will be searched fo in ${cgaldir}/include dnl and the libs in ${cgaldir}/libs if test \! -z "$with_cgaldir"; then AC_MSG_CHECKING(CGAL in ${with_cgaldir}) LDFLAGS="${LDFLAGS} -L${with_cgaldir}/lib -Wl,-rpath,${with_cgaldir}/lib" CXXFLAGS="${CXXFLAGS} -I${with_cgaldir}/include $ADDITIONAL_CGAL_FLAGS" CPPFLAGS="${CPPFLAGS} -I${with_cgaldir}/include $ADDITIONAL_CGAL_FLAGS" CGAL_CPPFLAGS="-I${with_cgaldir}/include" CGAL_CXXFLAGS="-I${with_cgaldir}/include" CGAL_LIBS="-L${with_cgaldir}/lib -Wl,-rpath,${with_cgaldir}/lib" fi CXXFLAGS=${CXXFLAGS}" $ADDITIONAL_CGAL_FLAGS" CPPFLAGS=${CPPFLAGS}" $ADDITIONAL_CGAL_FLAGS" dnl search the CGAL headers dnl dnl set temporarily the check language to C++ dnl The default choice otherwise in C whih is usually fine apart from dnl the tests related to CGAL which have c-like header names and fail dnl with gcc. The switch to g++ allows CGAL to be detected if it is dnl not detected through a Makefile. dnl dnl Note that one can temporarily change lang. By using dnl AC_LANG_PUSH(language) dnl followed by dnl AC_LANG_POP(language) AC_LANG_PUSH(C++) AC_CHECK_HEADER([CGAL/Exact_predicates_inexact_constructions_kernel.h], [cgal_have_header=yes], [cgal_have_header=no]) AC_LANG_POP(C++) dnl if the headers have been found, check for the libs if test "$cgal_have_header" == yes; then CGAL_CPPFLAGS="${CGAL_CPPFLAGS} $ADDITIONAL_CGAL_FLAGS" CGAL_CXXFLAGS="${CGAL_CXXFLAGS} $ADDITIONAL_CGAL_FLAGS" AC_LANG_PUSH(C++) AC_CHECK_LIB(CGAL, main, cgal_have_lib=yes, cgal_have_lib=no) AC_LANG_POP(C++) if test "$cgal_have_lib" == yes; then CGAL_LIBS=${CGAL_LIBS}" -lCGAL" AC_CHECK_LIB(mpfr, main, [CGAL_LIBS="$CGAL_LIBS -lmpfr"]) AC_CHECK_LIB(gmp, main, [CGAL_LIBS="$CGAL_LIBS -lgmp"]) AC_CHECK_LIB(gmpxx, main, [CGAL_LIBS="$CGAL_LIBS -lgmpxx"]) dnl AC_CHECK_LIB(CGALcore++, main, [CGAL_LIBS="$CGAL_LIBS -lCGALcore++"]) dnl we can finally claim we've found CGAL! acx_cgal_found=yes fi fi dnl if the lib has not been found, reset the saved vars to their original values LIBS="$save_LIBS" LDFLAGS="$save_LDFLAGS" CXXFLAGS="$save_CXXFLAGS" CPPFLAGS="$save_CPPFLAGS" if test "$acx_cgal_found" == no; then CGAL_CPPFLAGS="" CGAL_CXXFLAGS="" CGAL_LDFLAGS="" CGAL_LIBS="" fi fi AC_MSG_CHECKING(CGAL) if test "$acx_cgal_found" == yes; then AC_MSG_RESULT(yes); $1 else AC_MSG_RESULT(no); $2 fi]) dnl CHECK CGAL END fastjet-3.0.6+dfsg.orig/README0000644000175000017500000000600211766120142014110 0ustar sunsun---------------------------------------------------------------------- FastJet ------- The FastJet package, written by Matteo Cacciari and Gavin Salam and Gregory Soyez, provides a fast implementation of several longitudinally invariant sequential recombination jet algorithms, in particular the longitudinally invariant kt jet algorithm, the inclusive longitudinally invariant version of the Cambridge/Aachen jet-algorithm, and the inclusive anti-kt algorithm. The implementation is based on the geometrical methods described in M. Cacciari and G.P. Salam, Phys. Lett. B 641 (2006) 57 [hep-ph/0512210]. The full FastJet manual is available as doc/fastjet-doc.tex and also as arXiv:1111.6097. Means are also provided for accessing external jet-algorithm software via a common (plugin) interface and the package notably includes SISCone, an infrared safe seedless stable-cone type algorithm introduced in G.P. Salam and G. Soyez, JHEP 0705 (2007) 086 [arXiv:0704.0292]. Various tools are also provided related to jet areas and subtraction. They can be used with any infrared safe jet algorithm, both native and plugin. The ideas behind them are described in M. Cacciari, G.P. Salam, Phys.Lett.B 659 (2008) 119 [arXiv:0707.1378], and M. Cacciari, G.P. Salam and G. Soyez, JHEP 0804 (2008) 005 [arXiv:0802.1188] Tools are also provided to facilitate jet substructure analyses. ---------------------------------------------------------------------- Installation ------------ Installation instructions are provided in the INSTALL file. Note that to benefit from NlnN implementation (relevant for a number of particles N greater than 15000 roughly) of the kt (and anti-kt) jet algorithm , you will need to download CGAL from http://www.cgal.org/ and compile it before compiling the FastJet library. The NlnN implementation of the Cambridge/Aachen jet-algorithm is independent of CGAL. Automatic documentation can be generated by running the doxygen command (if not installed on your system see www.doxygen.org) in the main directory. It will create the html/ and latex/ directories containing detailed documentation of all classes etc.. More standard documentation is to be found in the doc/ directory. ---------------------------------------------------------------------- Directory structure ------------------- doc/ Documentation src/ the .cc files for the FastJet library include/ the include (.hh) files for the FastJet library example/ contains example programs (list them with "ls -1 [0-9]*.cc") example/data/ contains files with data for example events example/root/ an example root script to show jets as calorimeter towers plugins/ the various plugin jet algorithms tools/ location for a number of the tools (substructure, etc.) fortran_wrapper/ an illustration of how to use fastjet from fortran ---------------------------------------------------------------------- Known bugs ---------- See the BUGS file as well as the web page, http://fastjet.fr/ for information discovered subsequent to the release. fastjet-3.0.6+dfsg.orig/configure.ac0000644000175000017500000004357212233505737015542 0ustar sunsunAC_INIT([FastJet],[3.0.6]) AC_CONFIG_SRCDIR([src/JetDefinition.cc]) AM_INIT_AUTOMAKE(tar-ustar) dnl Make sure users can't install in build directory if test "$prefix" = "$PWD"; then AC_MSG_ERROR([Installation into the build directory is not supported: use a different --prefix argument]) fi dnl (un_comment the following lines if you want to use autoheader dnl and also (un_comment the call to autoheader in autogen.sh dnl dnl Notes: dnl - the first macro needs to place the files in the correct dnl dir in order to have the correct -I options for the remote build dnl - see Makefile.am for distcleaning AX_PREFIX_CONFIG_H leftovers AC_CONFIG_HEADERS(include/fastjet/config_raw.h:config.h.in) AX_PREFIX_CONFIG_H(include/fastjet/config_auto.h,FASTJET,include/fastjet/config_raw.h) dnl check autoconf version dnl dnl 2011-07-07 tested explicitly to be working with dnl autoconf-2.59 (lxplus) dnl autoconf-2.61 (karnak) dnl autoconf-2.65 (ipht) dnl autoconf-2.68 (virtual&lpthe) dnl dnl 2013-03-30, updated and tested it works with dnl autoconf-2.63 + automake 1.11 (tycho SLC6) dnl autoconf-2.69 + automake 1.13 (gavin's laptop with macports) dnl dnl NB: it is broken on lxplus (SLC5, autoconf 2.59 + automake 1.9), dnl but lxplus will soon migrate to SLC6. For now dnl autogen can be run on lxplus6, links to automake-1.11 dnl files replaced with copies and then used on lxplus5 AC_PREREQ(2.63) dnl load our M4 macro directory dnl - this is recommended by latest versions of libtoolize dnl - this is equivalent to adding ACLOCAL_AMFLAGS = -I m4 in Makefile.am dnl - the libtoolize manpage says that for the moment it's more dnl portable to keep using ACLOCAL_AMFLAGS. dnl - the autoconf manual mentions that since we use 'aclocal -I m4' dnl we need ACLOCAL_AMFLAGS anyway dnl as a consequence, we don't use AC_CONFIG_MACRO_DIR for the moment dnl Question: is it compatible with older versions of libtool? dnl AC_CONFIG_MACRO_DIR([m4]) dnl check basic types AC_CHECK_TYPE(int) AC_CHECK_TYPE(long) dnl------------------------------------------------------------------- dnl if the user has not set CXXFLAGS, then set our own default dnl------------------------------------------------------------------- USE_CUSTOM_FLAGS="yes" if [[ "x$CXXFLAGS" == "x" ]]; then CXXFLAGS="-O3 -Wall" USE_CUSTOM_FLAGS="no" fi # test "x${CXXFLAGS+yes}" == "xyes" || CXXFLAGS="-O3 -Wall" dnl------------------------------------------------------------------- dnl check useful programs dnl------------------------------------------------------------------- AC_PROG_CXX dnl ensure CXX presence cxx_progname=$(basename $CXX) cxx_dirname=$(dirname $CXX) AC_CHECK_PROG([cxx_found],[$cxx_progname],[yes],[no].[$cxx_dirname$PATH_SEPARATOR$PATH]) if test "x$cxx_found" == "xno"; then AC_MSG_ERROR([No functional C++ compiler found]) fi AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_SED AC_PROG_MAKE_SET AM_CXXFLAGS="" dnl check standard C headers AC_STDC_HEADERS dnl set the default destination directory AC_PREFIX_DEFAULT(/usr/local) dnl------------------------------------------------------------------- dnl initialize compilation and link flags to set in fastjet-config dnl------------------------------------------------------------------- CONFIG_CXXFLAGS="" CONFIG_RUNPATH_FLAGS="" CONFIG_LIBS="" CONFIG_LIBS_PLUGINS="" CONFIG_LIBS_PLUGINS_STATIC="" dnl------------------------------------------------------------------- dnl deal with debug option dnl------------------------------------------------------------------- dnl if the debug flag is set, build with -g dnl default is "yes" AC_ARG_ENABLE(debug, [ --enable-debug Turn on debug compiler information [default=yes]], [ENABLE_DEBUG_FLAG="$enableval"], [ENABLE_DEBUG_FLAG="yes"]) if [[ "$ENABLE_DEBUG_FLAG" == "yes" ]] ; then AM_CXXFLAGS=${AM_CXXFLAGS}" -g " dnl------------------------------------------------------------------- dnl check if the compiler supports -Woverloaded-virtual dnl------------------------------------------------------------------- AC_MSG_CHECKING([if $CXX supports -Woverloaded-virtual flag]) SAVE_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-Woverloaded-virtual" AC_LANG_PUSH(C++) AC_COMPILE_IFELSE([AC_LANG_SOURCE([int main(void){ return 0;}])], [ac_overloaded_virtual_ok=yes],[ac_overloaded_virtual_ok=no]) AC_LANG_POP(C++) CXXFLAGS="$SAVE_CXXFLAGS" AC_MSG_RESULT([$ac_overloaded_virtual_ok]) if [[ "x${ac_overloaded_virtual_ok}" == "xyes" ]]; then AM_CXXFLAGS=${AM_CXXFLAGS}" -Woverloaded-virtual " fi fi dnl check if one wants a high level of warnings AC_ARG_ENABLE(extra-warnings, [ --enable-extra-warnings Turn on additional compiler warnings [default=no]], [ENABLE_EXTRA_WARNINGS_FLAG="$enableval"], [ENABLE_EXTRA_WARNINGS_FLAG="no"]) if [[ "$ENABLE_EXTRA_WARNINGS_FLAG" == "yes" ]] ; then AM_CXXFLAGS=${AM_CXXFLAGS}" -ansi -pedantic -Wextra -Wshadow " fi dnl------------------------------------------------------------------- dnl deal with the choice of shared/static libs dnl------------------------------------------------------------------- dnl build the shared lib by default dnl even though they're enabled by default, AM_ENABLE_SHARED has to dnl be called so that ${enable_shared} is set to 'yes' instead of '' AM_ENABLE_SHARED dnl dnl comment the previous line and uncomment this one if you want shared dnl libs to be disabled by default dnl AM_DISABLE_SHARED HAS_SHARED=${enable_shared} dnl------------------------------------------------------------------- dnl check headers dnl------------------------------------------------------------------- dnl execinfo.h (use in Error.cc to have the backtrace) AC_CHECK_HEADERS(execinfo.h) dnl------------------------------------------------------------------- dnl check libraries dnl------------------------------------------------------------------- dnl math lib AC_CHECK_LIB(m, cos) CONFIG_CXXFLAGS="" CONFIG_LIBS=${CONFIG_LIBS}" -lm " dnl------------------------------------------------------------------- dnl deal with CGAL dnl------------------------------------------------------------------- CGAL_CPPFLAGS="" CGAL_LIBS="" dnl first check if the user wants to use CGAL dnl default value is "no" dnl Note that CGAL compilation flags are considered as required dnl so we do store them in "AM_CXXFLAGS" AC_ARG_ENABLE(cgal, [ --enable-cgal enables link with the CGAL library [default=no]], [ENABLE_CGAL_FLAG="$enableval"], [ENABLE_CGAL_FLAG="no"]) dnl if asked for, check if the CGAL library can be used if [[ "x${ENABLE_CGAL_FLAG}" == "xyes" ]] ; then dnl if the search for CGAL has been explicitly asked and not found, return an error dnl ACX_CHECK_CGAL([],[ENABLE_CGAL_FLAG="no"]) ACX_CHECK_CGAL([],AC_MSG_ERROR([CGAL explicitly requested and not found or not functional])) fi dnl update compilation/link flags for the CGAL lib if [[ "x$ENABLE_CGAL_FLAG" == "xyes" ]] ; then AM_CXXFLAGS=${AM_CXXFLAGS}" $CGAL_CPPFLAGS " CONFIG_LIBS=${CONFIG_LIBS}" $CGAL_LDFLAGS $CGAL_LIBS " else AM_CXXFLAGS=${AM_CXXFLAGS}" -DDROP_CGAL " dnl CONFIG_CXXFLAGS=${CONFIG_CXXFLAGS}" -DDROP_CGAL " fi AC_SUBST(CGAL_CPPFLAGS) AC_SUBST(CGAL_LIBS) dnl------------------------------------------------------------------- dnl check if the linker supports --enable-new-dtags (rpath-related) dnl------------------------------------------------------------------- AC_MSG_CHECKING([if $CXX supports -Wl,--enable-new-dtags flag]) SAVE_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-Werror -Wl,--enable-new-dtags" AC_LANG_PUSH(C++) AC_LINK_IFELSE([AC_LANG_SOURCE([int main(void){ return 0;}])], [ac_enable_new_dtags_ok=yes],[ac_enable_new_dtags_ok=no]) AC_LANG_POP(C++) CXXFLAGS="$SAVE_CXXFLAGS" AC_MSG_RESULT([$ac_enable_new_dtags_ok]) HAS_RUNPATH_SUPPORT="no" CONFIG_RUNPATH_FLAGS="" dnl if test x"$ac_enable_new_dtags_ok" = x"yes"; then if [[ "x${ac_enable_new_dtags_ok}" == "xyes" ]]; then HAS_RUNPATH_SUPPORT="yes" CONFIG_RUNPATH_FLAGS="-Wl,--enable-new-dtags" fi AC_SUBST(HAS_RUNPATH_SUPPORT) AC_SUBST(CONFIG_RUNPATH_FLAGS) dnl substitutions AC_SUBST(AM_CXXFLAGS) dnl create the substitutions variables for the configuration script AC_SUBST(PACKAGE_VERSION) AC_SUBST(HAS_SHARED) dnl------------------------------------------------------------------- dnl plugin section dnl dnl each plugin can be enabled or disabled dnl We also define a ENABLED_PLUGIN_ in config.h when plugin dnl is enabled dnl WARNING: for make dist reasons all Makefiles MUST be created dnl dnl See m4/plugins.m4 to see what is enabled by default dnl------------------------------------------------------------------- dnl general AC_CONFIG_FILES( plugins/Makefile ) CONFIG_LIBS_PLUGINS="" CONFIG_LIBS_PLUGINS_STATIC="" dnl deal with a couple of arguments to allow a whole bunch of plugins at a time ACX_INIT_PLUGINS ACX_CHECK_ALLPLUGINS ACX_CHECK_ALLCXXPLUGINS dnl initialise the list of allowed plugins dnl This is meant to enable fastjet-config --list-plugins LIST_ALL_PLUGINS="" dnl allow to build all plugins in the same lib AC_ARG_ENABLE(monolithic, [ --enable-monolithic Build all the (compiled) plugins in a single lib [default=yes]], [case "${enableval}" in yes) monolithic=yes ;; no) monolithic=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-monolithic) ;; esac],[monolithic=yes]) AM_CONDITIONAL(MONOLITHIC_PLUGINS, test x$monolithic = xyes) if [[ "x$monolithic" == "xyes" ]] ; then CONFIG_LIBS_PLUGINS=" -lfastjetplugins " CONFIG_LIBS_PLUGINS_STATIC=" \${installationdir}/lib/libfastjetplugins.a " fi dnl SISCone ACX_CHECK_PLUGIN(SISCone, siscone, SISCONE, yes, [CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" -lsiscone_spherical -lsiscone" CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" \${installationdir}/lib/libsiscone.a \${installationdir}/lib/libsiscone_spherical.a"]) AC_CONFIG_SUBDIRS(plugins/SISCone/siscone) dnl alternatively, to build SISCone directly from the FastJet build dnl system, comment out the previoous lines and uncomment the ones dnl below. Note that the main drawback of that method is that the dnl SISCone version number need to be hardcoded in config.h.siscone.in dnl AM_CONFIG_HEADER(config.siscone.in.h:plugins/SISCone/siscone/siscone/config.h.in) dnl AC_CONFIG_FILES(plugins/SISCone/siscone/Makefile plugins/SISCone/siscone/siscone/Makefile plugins/SISCone/siscone/siscone/spherical/Makefile plugins/SISCone/siscone/examples/Makefile plugins/SISCone/siscone/examples/events/Makefile) dnl CDFCones ACX_CHECK_PLUGIN(CDFCones, cdfcones, CDFCONES, yes) AC_CONFIG_FILES(plugins/CDFCones/CDFcode/Makefile) dnl PxCone ACX_CHECK_PLUGIN(PxCone, pxcone, PXCONE, no) dnl D0RunIICone ACX_CHECK_PLUGIN(D0RunIICone, d0runiicone, D0RUNIICONE, no) dnl NestedDefs ACX_CHECK_PLUGIN(NestedDefs, nesteddefs, NESTEDDEFS, yes) dnl TrackJet ACX_CHECK_PLUGIN(TrackJet, trackjet, TRACKJET, no) dnl ATLASCone ACX_CHECK_PLUGIN(ATLASCone, atlascone, ATLASCONE, no) dnl CMSIterativeCone ACX_CHECK_PLUGIN(CMSIterativeCone, cmsiterativecone, CMSITERATIVECONE, no) dnl EECambridge ACX_CHECK_PLUGIN(EECambridge, eecambridge, EECAMBRIDGE, yes) dnl Jade ACX_CHECK_PLUGIN(Jade, jade, JADE, yes) dnl D0RunICone ACX_CHECK_PLUGIN(D0RunICone, d0runicone, D0RUNICONE, no) dnl GridJet ACX_CHECK_PLUGIN(GridJet, gridjet, GRIDJET, yes) dnl end of plugin section --- don't modify this line dnl------------------------------------------------------------------- dnl enable libtool (has to be done after the previous lib checks!) dnl------------------------------------------------------------------- AC_PROG_LIBTOOL dnl------------------------------------------------------------------- dnl add Fortran flags if any plugin that needs it is enabled dnl------------------------------------------------------------------- if [[ "x$ENABLE_PXCONE" == "xyes" ]] ; then dnl set up the fortran compiler and libs if test "x$FCFLAGS" == "x"; then FCFLAGS="-O2" fi ## Try to respect users' Fortran compiler variables if test "x$FC" == "x"; then if test "x$F77" != "x"; then FC="$F77" fi fi AC_PROG_FC if test "x$FC" == "x"; then AC_MSG_ERROR([Fortran compiler required to build PxCone but not found or not functional]) fi AC_FC_LIBRARY_LDFLAGS F77=$FC AM_FFLAGS=$AM_FCFLAGS FFLAGS="$FFLAGS $FCFLAGS" FLIBS="$FLIBS $FCLIBS" AC_SUBST(FCFLAGS) AC_SUBST(FFLAGS) AC_SUBST(FLIBS) AC_SUBST(F77) AC_SUBST(AM_FFLAGS) AC_SUBST(AM_FCFLAGS) CONFIG_LIBS_PLUGINS=${CONFIG_LIBS_PLUGINS}" "${FLIBS} CONFIG_LIBS_PLUGINS_STATIC=${CONFIG_LIBS_PLUGINS_STATIC}" "${FLIBS} fi dnl------------------------------------------------------------------- dnl be a bit clearer and use only AM_CXXFLAGS dnl WARNING: this it totally unnecessary! Except for the D0 plugin: dnl since the CXXFLAGS are placed after the AM_CXXFLAGS in dnl the command line, a potential -O0 would be spoiled by dnl the -O3 in CXXFLAGS. By putting CXXFLAGS in AM_CXXFLAGS dnl we have a better control on the order dnl------------------------------------------------------------------ if [[ "x$USE_CUSTOM_FLAGS" == "xno" ]]; then AM_CXXFLAGS=${CXXFLAGS}" "${AM_CXXFLAGS} CXXFLAGS="" fi dnl------------------------------------------------------------------ dnl there is a problem with optimisation of the D0 code. dnl One of the solutions to this issue is to disble inlie functions dnl We ony do that if the compiler supports the option, otherwise, dnl we disable optimisation for that plugin dnl------------------------------------------------------------------ if [[ "x$ENABLE_D0RUNIICONE" == "xyes" ]] ; then # check if the compiler supports -fno-inline AC_MSG_CHECKING([if $CXX supports -fno-inline]) SAVE_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-Werror -fno-inline" AC_LANG_PUSH(C++) AC_LINK_IFELSE([AC_LANG_SOURCE([int main(void){ return 0;}])], [ac_support_no_inline=yes],[ac_support_no_inline=no]) AC_LANG_POP(C++) CXXFLAGS="$SAVE_CXXFLAGS" AC_MSG_RESULT([$ac_support_no_inline]) D0_CXXFLAGS="" dnl if test x"$ac_enable_new_dtags_ok" = x"yes"; then if [[ "x${ac_support_no_inline}" == "xyes" ]]; then D0_CXXFLAGS=${AM_CXXFLAGS}" -fno-inline" else # in case of multiple -O options, the last one prevails D0_CXXFLAGS=${AM_CXXFLAGS}" -O0" fi AC_SUBST(D0_CXXFLAGS) fi dnl------------------------------------------------------------------- dnl substitutions useful to know what we have to do in fastjet-config dnl------------------------------------------------------------------- AC_SUBST(CONFIG_LIBS_PLUGINS) AC_SUBST(CONFIG_LIBS_PLUGINS_STATIC) AC_SUBST(CONFIG_CXXFLAGS) AC_SUBST(CONFIG_LIBS) AC_SUBST(CONFIG_RUNPATH_FLAGS) AC_SUBST(LIST_ALL_PLUGINS) dnl------------------------------------------------------------------- dnl tools section dnl------------------------------------------------------------------- AC_CONFIG_FILES( tools/Makefile tools/fastjet/Makefile tools/fastjet/tools/Makefile ) dnl------------------------------------------------------------------- dnl make sure examples dir is there dnl------------------------------------------------------------------- AC_CONFIG_FILES( example/Makefile example/data/Makefile example/root/Makefile ) dnl------------------------------------------------------------------- dnl and the documentation dnl------------------------------------------------------------------- AC_CONFIG_FILES( doc/Makefile doc/figs/Makefile ) dnl------------------------------------------------------------------- dnl configuration script dnl------------------------------------------------------------------- AC_CONFIG_FILES([fastjet-config:fastjet-config.in], [chmod u+x fastjet-config]) dnl------------------------------------------------------------------- dnl sample fortran wrapper dnl------------------------------------------------------------------- AC_CONFIG_FILES( fortran_wrapper/Makefile ) dnl------------------------------------------------------------------- dnl main library outputs dnl------------------------------------------------------------------- AC_CONFIG_FILES( Makefile src/Makefile include/Makefile include/fastjet/Makefile include/fastjet/internal/Makefile ) dnl------------------------------------------------------------------- dnl give a nice summary of the config dnl------------------------------------------------------------------- dnl echo "" dnl echo "Configuration summary:" dnl echo "----------------------" dnl echo " Installation directory "${prefix} dnl echo " Shared libraries "${enable_shared} dnl echo " Static libraries "${enable_static} dnl echo " Debug flag "$ENABLE_DEBUG_FLAG dnl echo " CGAL support "${ENABLE_CGAL_FLAG} dnl AC_PLUGIN_SUMMARY dnl echo " Monolithic plugins lib "$monolithic CONFIG_SUMMARY="" CONFIG_SUMMARY+="Configuration summary:\n" CONFIG_SUMMARY+="----------------------\n" if [[ "x${prefix}" == "xNONE" ]] ; then CONFIG_SUMMARY+=" Installation directory /usr/local\n" else CONFIG_SUMMARY+=" Installation directory "${prefix}"\n" fi CONFIG_SUMMARY+=" Shared libraries "${enable_shared}"\n" CONFIG_SUMMARY+=" Static libraries "${enable_static}"\n" CONFIG_SUMMARY+=" Debug flag "$ENABLE_DEBUG_FLAG"\n" CONFIG_SUMMARY+=" CGAL support "${ENABLE_CGAL_FLAG}"\n" AC_PLUGIN_SUMMARY([yes]) CONFIG_SUMMARY+=" Monolithic plugins lib "$monolithic"\n" AC_SUBST(CONFIG_SUMMARY) CONFIGURE_INVOCATION="$0 $ac_configure_args" AC_SUBST(CONFIGURE_INVOCATION) dnl------------------------------------------------------------------- dnl finish with a nice message dnl------------------------------------------------------------------- AC_OUTPUT printf "$CONFIG_SUMMARY" echo "---------------------------------------------------" echo " IMPORTANT NOTICE TO FASTJET USERS " echo " " echo " When using the FastJet library, you can retrieve " echo " compilation and link flags using fastjet-config. " echo " Type 'fastjet-config --help' for more information " echo "---------------------------------------------------" fastjet-3.0.6+dfsg.orig/NEWS0000644000175000017500000010502312233506510013727 0ustar sunsunRelease Notes for fastjet ------------------------- ================================================================ Summary of changes from v3.0.5 -> v3.0.6: 2013-10-29 ================================================================ This is a minor maintenance release. Main changes: * fixed compilation issues for two plugins under OS X 10.9 (Mavericks) * fixed incorrect warnings in JHTopTagger, MassDropTagger and an example * GridJetPlugin now has extra enquiry functions ================================================================ Summary of changes from v3.0.4 -> v3.0.5: 2013-09-16 ================================================================ This is a minor maintenance release. Main changes: * modified include guards, to solve coexistence issue for fjcore * resolved (bogus) compiler warning about uninitialised variables * added an example event file that was missing from the distribution ================================================================ Summary of changes from v3.0.3 -> v3.0.4: 2013-06-05 ================================================================ This is a minor maintenance release. Changes include: * dummy init of PseudoJet rapidity to avoid warnings with some configs. * minor code structure adjustments to allow for release of fjcore * inclusion of SISCone 2.0.6 ================================================================ Summary of changes from v3.0.2 -> v3.0.3: 26/06/12 ================================================================ This is a bug-fix release, fixing * compilation issues with g++-4.7 and clang * issue of missing documentation figures in the tarball * issue with the --enable-extra-warnings flag in configure ================================================================ Summary of changes from v3.0.1 -> v3.0.2: 17/01/12 ================================================================ This is a bug-fix release, including * small fixes to the build system and fastjet-config * further licence clarifications * user can force early printing of banner with ClusterSequence::print_banner() * included SISCone 2.0.5 (with small modifications to the build system) ================================================================ Summary of changes from v3.0.0 -> v3.0.1: 25/11/11 ================================================================ Version 3.0.1 includes further reorganisation of the manual (version to appear on arXiv), and a number of small additional changes, including : * PseudoJet now also has a pt() member function for transverse momentum * minor speed improvements (very low N + strategy choice for N ~ 20-50) * elimination of many compilation warnings found with -Wextra -Wshadow * clarification of licenses for many of the plugins + new plugin banners * fixed a memory leak in the ATLASConePlugin ================================================================ Summary of changes from v2.4.4 -> v3.0.0: 09/10/11 ================================================================ Changes relative to the 2.4.x series include: Addition of FastJet tools: * Filtering, trimming, pruning and a few boosted object taggers as part of a new native "Transformers" framework for post-clustering manipulation of jets * New background estimation and subtraction interface, with JetMedianBackgroundEstimator, GridMedianBackgroundEstimator and Subtractor. New functionality: * Enhancement of the PseudoJet class so that jets are now aware of their internal structure (e.g. one can use jet.constituents()). * It is possible to associate arbitrary user information with a PseudoJet. * Selectors, which allow easy communication of cuts across different functions Other changes: * Improved doxygen and examples * aids for easier memory management * elimination of the R v3.0.0: 09 October 2011 ================================================================ New features: - addition of Pruner class - control of Error and warning output, including public LimitedWarning class - addition of SelectorIsZero - ClusterSequence::childless_pseudojets() Bug fixes and other changes - JetMedianBackgroundEstimator::set_particles(...) no longer resets other parameters - fixed issue with persistency of internal recombiner in Filter - removed deprecated ClusterSequence constructor with R (rather than jet def) and also CS::set_jet_algorithm(...), CS::set_jet_def(...) ================================================================ Summary of changes from v3.0alpha3 -> v3.0beta1: 10 August 2011 ================================================================ New features - Reorganised background estimation to have a JetMedianBackgroundEstimator and a GridMedianBackgroundEstimator (derived from BackgroundEstimatorBase) [v3.0alpha3 programs should replace BackgroundEstimator -> JetMedianBackgroundEstimator, and use a new order of constructor arguments] - Added the GridJetPlugin - added a TopTaggerBase and a Johns Hopkins top tagger (JHTopTagger) - to JetDefinition added delete_plugin_when_unused(), delete_recombiner_when_unused() - improved Filter (for area and recombiner support, also works with a subtractor) - added a --config flag to fastjet-config Bug fixes and other changes - some speed gains in the default recombiner - TrackJet and ATLASCone now use stable_sort (can change results; makes results stable across machine architectures & compilers, cf BUGS) - fixed bugs in Voronoi areas (as in v.2.4.4) - fixed bugs in handling of empty areas in background estimator (as in 2.4.4) - renamed SelectorMXXX -> SelectorMassXXX - renamed NSubjettinessTagger -> RestFrameNSubjettinessTagger - exclusive_[sub]jets(njets) now consistenty throws an error if it can't deliver njets; exclusive_[sub]jets_upto(njets) gives up to njets - deprecated ClusterSequenceWithArea and ActiveAreaSpec (ClusterSequenceWithArea no longer available from ClusterSequenceArea.hh header) - deprecated RangeDefinition & CircularRange; use Selector instead - reorganisation of substantial parts of the manual ================================================================ Summary of changes from v3.0alpha2 -> v3.0alpha3: 03 June 2011 ================================================================ New features - Added a series of "Transformer"s in tools/: * Subtractor: subtract the jet using a BackgroundEstimator * Boost/Unboost: boosts/unboosts a jet * MassDropTagger: look for a mass drop in the jet substructure * NSubjettinessTagger: 2-pronged tagger based on rest-frame 2-subjettiness * CASubJetTagger: 2-pronged tagger based on maximal distance in jet history * Filter updated from alpha2 (bug fixes & new constructors) NB: examples 11 (boosted Higgs) and 12 (Filter) illustrate usage. - CS::delete_self_when_unused() allows it to handle its own memory management - GhostedAreaSpec can take a Selector to help specify ghost placement - added a FunctionOfPseudoJet base class to help standardise tool interfaces - ClusterSequence::transfer_from_sequence now allows for a FunctionOfPseudoJet argument to transform (e.g. boost) the jets from an old sequence as they are transferred to the new one - fortran interface now has basic area functionality Changes to features introduced in alpha2 and alpha1: - Numerous changes to BackgroundEstimator * it allows manual encoding of rapidity dependence; * it can calculate density of quantities other than pt; * it has additional constructors, plus methods to reset its ClusterSequence, etc. * its sigma() now properly handles finite numbers of jets (+ other bug fixes). - jet.pieces() for a jet from a clustering now returns the two parents - various changes to behaviour of a jet's structural calls; see new table in doc - PseudoJet::extra_properties<...>() -> PseudoJet::structure_of<...>() (cf example 12) - join(...) can now include a recombiner argument; it also now supports areas - Selector::count(jets) to know how many pass a cut (also new: Selector::sift) Other changes - by default a PseudoJet is constructed with zero momentum - by default a JetDefinition has an undefined_jet_algorithm - efficiency improvements in PtYPhiM and ghost generation - all uses of RangeDefinition now replaced by Selector. Old interfaces retained, but deprecated. - added an example (09) to illustrate how to add user-info to a PseudoJet - doxygen output now configured with an internal search engine Bug fixes - the default recombiner used to set the user_index to the non-default value of 0. Now it sets it to the default (-1). - fixed crashes of VoronoiAreas for particles on a grid (also in 2.4.3) ================================================================ Summary of changes from v3.0alpha1 -> v3.0alpha2: 10 March 2011 ================================================================ New features: - two jets, a and b can now be joined: PseudoJet c = join(a,b), intended to facilitate packaging the result of substructure tools; individual pieces can be recovered with c.pieces(); - New PseudoJetStructureBase class, to help implement such features - New fastjet/tools/Filter.hh provides a unified interface to filtering and trimming - New very preliminary fastjet/tools/BackgroundEstimator.hh to provide a more flexible interface to estimation of backgrounds (removal of hardest jets, etc.). - a few extra Selectors Changes to features introduced in alpha1: - Selector is now in fastjet/Selector.hh (no longer fastjet/tools/...) - Selector::relocate(...) and is_relocatable() renamed to Selector::set_reference(...) and takes_reference() - PseudoJet::ExtraInfo has been renamed PseudoJet::UserInfoBase and corresponding access functions are now called set_user_info(...), etc. Other changes and fixes - some legacy headers removed - bug fixes in NlnNCam strategies for R>pi =========================================================== Summary of changes from v2.4.X -> v3.0alpha1: 27 January 2011 =========================================================== This is an alpha release, previewing some of the new features that are expected to be available in FastJet version 3. Interfaces of new features may yet evolve. New features: - Several extensions to PseudoJet: * it now knows what ClusterSequence it belongs to * info about internals of jets can be accessed e.g. as jet.constituents() * it now has a virtual destructor + other support for classes derived from PseudoJet * new facilities for associating user info with a jet (see PseudoJet::ExtraInfo) * some of these features make use of a new SharedPtr class (intended mainly for advanced users) similar to C++0x std::shared_ptr * calculation of phi and rapidity (cached) only on request - R can now be taken larger than pi/2 for natively coded jet algorithms - Addition of "Selector" tools through #include "fastjet/tools/Selector.hh" - New plugin for D0RunICone (code contributed by Lars Sonnenschein) - Improvements to fortran wrapper (access to SISCone, jet constituents, etc.) Bug fixes: - fixed issue with inconsistent returned sign in PseudoJet::delta_phi_to(...) Other notable changes: - Revamping of examples - by default all plugins are now packaged into libfastjetplugins. Note that "external" libraries like libsiscone are still separate. - Significant improvements to doxygen documentation =========================================================== Summary of changes from v2.4.1 -> v2.4.2: 26 February 2010 =========================================================== - exclusive_ymerge_max(...) was not working; now fixed - the D0RunIIConePlugin gave segfaults for some parameters; now fixed - the D0RunIIConePlugin gave different results on 32/64 bit machines; optimisation flags now changed just for D0 code so that 32 bit gives same results as 64 bit. - changes to configure.ac to better handle fortran compiler checks - removed some orphan/redundant code that was generating compilation warnings - added an "--enable-monolithic" option to ./configure which causes all plugins to be placed in a single library (except SISCone) - added a "--list-plugins" option to fastjet-config ======================================================= Summary of changes from v2.4.0 -> v2.4.1: 29 May 2009 ======================================================= Fixes to the build system ------------------------- - Included SISCone 2.0.1 (shared libs now enabled by default in SISCone too, and other small fixes) - Fixed platform-dependent failures during make check - Fixed gcc 4.4 compatibility issues (missing headers) - Fixed a problem on Mac OS X with the arguments provided by "fastjet-config --libs" (--rpath versus -rpath). - fastjet-config has new optional arguments (--rpath=no, --runpath) related to finding shared libraries at runtime on linux. Run fastjet-config without any arguments for more info. To instead use static libraries, either configure with the --disable-shared option, or use fastjet-config with the --shared=no option. - fastjet-config can now take --cxxflags and --libs in a single invocation - With --cxxflags, fastjet-config now returns the minimal required set of arguments - Various other small mods (better fortran support, standardisation, ...) [thanks to Andy Buckley and David Grellscheid for suggestions] Also ---- - Added a fortran wrapper for pp sequential recombination algorithms - Fixed issue in median rho estimation when some jets have zero area - Expanded descriptions that are returned by ATLAS/TrackJet/CMS plugins - Warnings are no longer given when using exclusive jets with Cam/Aachen and certain e+e- algorithms (the warnings were misleading) - Small fixes to the manual ======================================================= Summary of changes from v2.3.X -> v2.4.0: 17 April 2009 ======================================================= New pp algorithms ----------------- - added implementation of generalised kt algorithm (genkt_algorithm) for pp - added D0RunIICone plugin [--enable-d0runiicone at configure time] - added ATLASCone Plugin [--enable-atlascone at configure time] - added CMSIterativeConePlugin [--enable-cmsiterativecone at configure time] - added TrackJet Plugin (used by CDF in UE studies) [--enable-trackjet at configure time] Introduction of e+e- algorithms ------------------------------- - added an implementation of the e+e- kt algorithm (ee_kt_algorithm), - added EECambridgePlugin for the (original) e+e- Cambridge algorithm - added JADEPlugin for the JADE algorithm (see the ChangeLog or header file for details) - added SISConeSphericalPlugin [enabled by default] for SISCone in e+e- and other spherical environments. - native implementation of generalised kt algorithm for e+e- (ee_genkt_algorithm) [also provides access to e+e- form of anti-kt alg, conical jets on a sphere] - added JadePlugin for the e+e- Jade algorithm Meta-algorithms ---------------- - added NestedDefs plugin for daisy-chaining multiple jet definitions [still under testing; API may change in the future] New functionality ----------------- - added subjet functions for viewing jet at particular dcut, etc. - added access to exclusive jets based on ycut as well as dcut (for e+e-) - added support for asymmetric rapidity ranges in GhostedAreaSpec - added support for a CircularRange (derived from RangeDefinition) for use in background estimation - added class NNH to help users implement algorithms with user-chosen distance measure (see JadePlugin for an example) Interface modifications ----------------------- - removed default value of 0.5 for overlap_threshold in CDFMidPointPlugin, CDFJetCluPlugin and SISConePlugin constructors *** may break backwards compatibility *** - a JetDefinition(jet_alg) constructor, without an R value, is no longer legal, except when jet_alg is ee_kt_algorithm (it has no R). *** may break backwards compatibility *** - in SISCone, new way of accessing the information about pass at which a jet was found (old method retained for 2.4, but now deprecated) Configure modifications ----------------------- - added --enable-allplugins and --enable-allcxxplugins options, to avoid having to specify a long list of individual plugins - shared libraries are now enabled by default Bugs fixed ---------- - fixed missing support for periodicity in azimuth in RangeDefinition class Other modifications ----------------------- - added support for CGAL 3.4 (for non-standard locations, specify --with-cgaldir at configure time) - removed restriction that fastjet throws exception on empty events - added an example that illustrates the use of subjet techniques for a boosted Higgs->b+bbar search Still to come ------------- - add CMSIterativeCone Plugin ======================================================================= Summary of changes from v2.3.3 -> v2.3.4 (bug fix release): 15 Aug 2008 ========================================================== - fixed infinite-loop bug in JetClu plugin on certain rare events - fixed compatibility issues of certain example programs with g++-4.3 - incorporated SISCone 1.3.3 with similar g++-4.3 fixes ======================================================================= Summary of changes from v2.3.2 -> v2.3.3 (bug fix release): 28 Apr 2008 ========================================================== - fixed missing installation of .../config_auto.h - fixed missing typename in .../SearchTree.hh ======================================================================= Summary of changes from v2.3.1 -> v2.3.2 (bug fix release): 03 Apr 2008 ========================================================== - fixes to propagation of CXXFLAGS through the build chain - small change in Voronoi area code to fix crashes on regular (calorimeter) layouts of momenta - small change in active areas code to fix crashes on algorithms that do not cluster all particles - eliminated "using namespace std" that had accidentally been left in certain area header files - incorporation of SISCone 1.3.2 with fixes for inappropriate public symbols and to build framework ====================================================================== Summary of changes from v2.3.0 -> v2.3.1 (bug fix release) ========================================================== - Fixed compilation issues under windows VC7.1 (reported by I. Belyaev); also included SISCone 1.3.1 with similar fixes. - Fixed speed issue under optimized compilation of CDF MidPoint plugin for 32 bit architectures that had arisen subsequent to the switch to autotools with its common optimization settings. - Fixed "make check" failure with the --disable-siscone option. - Fixed crash in exclusive_dmerge(njets) for njets=0 (reported by P. Lenzi) ====================================================================== Summary of changes from v2.1.0 (previous stable release) to v2.3.0 =================================== - added the anti-kt algorithm (LPTHE-07-03), which is a sequential recombination algorithm that gives conical jets. - Added Passive and Voronoi areas, and new common class for accessing all types of areas, ClusterSequenceArea. - switched to autotools for compilation and installation: ./configure --prefix=... make make check [optional] make install NB: users should no longer include fastjet-2.x.y/Makefile when building their own programs, and instead should use g++ -c file.cc `fastjet-config --cxxflags` g++ file.o `fastjet-config --libs --plugins` - plugin include files are now to be accessed with fastjet/ in front of them, i.e. #include "fastjet/SISConePlugin.hh" A simple #include "SISConePlugin.hh" is now obsolete but will continue to work through 2.x - Added RangeDefinition class to provide more flexibility in UE/pileup estimation. - New facilities for navigating the cluster sequence (has_parents, has_child and has_partner members of ClusterSequence) - other bug fixes and small enhancements (including SISCone-1.3.0, improvements to plugin facilities). See individual beta-releases below for more information, as well as the ChangeLog. ====================================================================== Changes from v2.2beta0 to v2.3-beta0 =================================== - switched to autotools for compilation and installation; - old build procedure still available for now, with files called makefile.static (make -f makefile.static); test-script.sh has been renamed test-static.sh and builds and tests using the old procedure. - plugins include files are now to be accessed with fastjet/ in front of them, i.e. #include "fastjet/SISConePlugin.hh" For backwards compatibility, the old access method will continue to work throughout v2.x, i.e. #include "SISConePlugin.hh" - added PseudoJet::reset(...) functions to reset the contents of a PseudoJet. - added fastjet_version_string() - added a function PtYPhiM(...) that returns a PseudoJet with the given py, rapidity , phi and mass. Defined in PseudoJet.hh - added a directory fortran_wrapper/ to illustrate how to access fastjet from fortran - some small bug fixes in the CDF midpoint code ====================================================================== Changes from v2.1.0 to v2.2beta0 =============================== - added the anti-kt algorithm (LPTHE-07-03) - Provided a new common class for accessing all different types of areas: ClusterSequenceArea. - added functionality for Passive areas and Voronoi areas. Areas are now defined much in the same way as jets, via an AreaDefinition, which is passed as an argument to ClusterSequenceArea. NB: the Voronoi area uses Fortune's sweepline code for calculating the Voronoi diagram and so does not require CGAL to be installed (it still is needed for NlnN kt clustering). - Added class RangeDefinition which allows detailed definitions of the rapidity-azimuth ranges over which to study jet areas and possibly perform noise subtraction - added facilities for navigating the cluster sequence (has_parents, has_child and has_partner members of ClusterSequence) - changed plugin base class, so that it now includes R() virtual member, and modified the various plugins to account for this. - modified the plugin interface to provide facilities to help with passive areas. - included SISCone-1.2.0 rather than 1.1.1. - adapted SISCone plugin to the 1.2.0 release of SISCone -- main changes are facilities and improvements related areas: some speed improvements on the split-merge (relevant for active areas) and a fairly efficient way of running passive areas. - added ClusterSequence::print_jets_for_root(...) and a corresponding root script (example/root/jet-plots.C), so as to provide a crude visualisation tool. ====================================================================== Summary of main changes from v2.0.0 to v2.1.0 ============================================= - added plugin structure for external jet finders. - included plugins for SISCone, CDFMidPoint, CDFJetClu, PxCone (with extensions for MidPoint and bug fixes for PxCone relative to public codes). - introduced option of control over recombination scheme, with a RecombinationScheme enum, which applies also to area_4vector. - added description() member function to JetDefinition class, so that you can get a (string) summary of what you're running! - changed the default number of repeats in ActiveAreaSpec to 1 (which is sufficient for most purposes). For further details, see the changes listed in detail below. ====================================================================== Changes from v2.1.0b4 to v2.1.0 =============================== - corrected bug in test-script.sh - removed PxCone from default tests and from plugins/usage_examples/many_algs_example.cc (to avoid fortran compilation issues). ====================================================================== Changes from v2.1.0b3 to v2.1.0b4 ================================= FastJet modifications --------------------- - default number of repeats for the active area specification has been changed from 5 to 1 (the latter goes fast, but note that it provides a zero error estimate for the area). Plugin modifications -------------------- - adapted plugin to accomodate new scale for use in the SISCone split-merge (pttilde), with a corresponding change of interface. Changed default number of passes for SISCone to 0. - Added the pttilde scale choice to the CDF plugin. ====================================================================== Changes from v2.1.0b2 to v2.1.0b3 ================================= FastJet enhancements -------------------- - methods for estimating the underlying now have the option of using area_4vector rather than the plain area FastJet bug fixes ----------------- - area_4vector is now calculated with the same recombination scheme as the jets themselves - massless recombination schemes now work correctly on particles with zero momentum - PseudoJet::phi_std() returned wrong result for phi < pi -- thanks to Oscar Stal for pointing this out. Plugin modifications -------------------- - the plugin mechanism now allows a plugin to add "extra" information to the ClusterSequence, essentially by providing an auto_ptr to a class derived from (the new) ClusterSequence::Extras; an example of this has been implemented with siscone (SISConeExtras) which allows a user to access the initial (stable) protocones. - included new siscone version (1.1) which uses transverse mass (mt) rather than pt in the split-merge procedure, to address an IR problem in events where the hadronic part conserves momentum -- this can have an effect on some physical distributions; the siscone update also addresses issues with collinear safety and co-circular points. - included bug fixes to pxcone regarding 2pi periodicity when recombining momenta - modified the version of the CDF midpoint cone code so as to allow it to use mt and Et as the parameters in the split--merge step. ====================================================================== Changes from v2.1.0b1 to v2.1.0b2 ================================= Bug fixes --------- - included new siscone version which solves the memory-leak problem Other changes ------------- - added sample output from the test-script as test-script-output-orig.txt ====================================================================== Changes from v2.1.0b0 to v2.1.0b1 ========================= New features: ------------- - added the SISCone plugin and the beta version of the siscone code (authored by Soyez & Salam) Bug fixes --------- - removed extraneous semicolons after functions that were causing problems on some compilers. Other additions --------------- - Added COPYING file with GPL license ====================================================================== Changes from v2.0 to v2.1 (beta0) ========================= New features: ------------- - introduced option of control over recombination scheme, with a RecombinationScheme enum (a variable of this type should be provided to the JetDefinition constructor) and also the possibility of an externally defined recombination scheme. - introduced a "plugin" facility for alternative jet finders, via an abstract base class class JetDefinition::Plugin Plugins are to be provided as classes derived from this, implementing the relevant virtual functions (see manual and examples for further info). - introduced "description" member function for the JetDefinition class, which returns a (std::string) textual description of the algorithm defined. - provided plugins for CDF JetClu, CDF Midpoint, PxCone code; the plugins, the code they interface to and example programs are to be found in the new plugins/ directory. - added ClusterSequence::unclustered_particles() a vector containing the unclustered particles (relevant for some plugin algorithms). Minor additions --------------- - introduced PseudoJet::squared_distance (does same as "plain_distance") Notational changes: ------------------- - in the documentation, replaced eta -> y, to make it clear that it's rapidity and not pseudorapidity that is being used throughout. Some internal code continues to use variables called "eta" -- but these are actually proper rapidity. ====================================================================== Changes from v1.0 to v2.0 ========================= New features: ------------- - the longitudinally invariant inclusive Cambridge/Aachen jet finder has been added. Note that the exclusive jets extraction for the Cambridge jet-finder does not provide the definition as given in the original Cambridge paper. See the documentation for further details - classes have been introduced for running jet clustering and simultaneously collecting information about the area of each jet. The base class specifying the functionality is class ClusterSequenceWithArea; itself derived from ClusterSequence. Two derived classes that provide the actual areas functionality are: class ClusterSequenceActiveArea; class ClusterSequenceActiveAreaExplicitGhosts; To construct them, one also needs to specify how one wishes the area to be calculated, via a class class ActiveAreaSpec; New optimizations: ------------------ - new clustering strategies have been added: N2MinHeapTiled : like N2Tiled, except that the non-geometric part has been replaced with a N ln N algorithm (overall the strategy still scales as N^2, but with a smaller coefficient) NlnNCam, NlnNCam2pi2R, NlnNCam4pi: NlnN strategies specific to the Cambridge/Aachen jet-finder -- the fastest of them is NlnNCam. Depending on the size of the event and of the CPU cache it may be up to 2.5 times faster than the CGAL-based NlnN strategy. Experiment on your own hardware and events to establish whether the speed gain is significant. These strategies are based on the work on dynamic Closest Pair problems by Timothy Chan. Best : (was present before) now attempts to select best among N2Plain, N2Tiled, N2MinHeapTiled, NlnN. As the best option for a given N may depend on R and the event structure, you are advised to experiment with individual strategies if the last few tens of percent in speed are critical. Updates to user interface ------------------------- While the v1 interface to fastjet has been maintained for backwards compatibility, for new developments in v2 and related forthcoming work, a new interface is provided as follows: - User accessible classes and enums have had the "Fj" prefix removed and are instead now in namespace fastjet; the corresponding include files are in the include/fastjet directory. So, for example instead of #include "FjClusterSequence.hh" //... FjClusterSequence clust_seq(...) one now uses the following #include "fastjet/ClusterSequence.hh" //... fastjet::ClusterSequence clust_seq(...) If typing "fastjet::" the whole time seems too long-winded, you can abbreviate "fastjet" as "fj" with namespace fj = fastjet; or eliminate the need for it altogether with using namespace fastjet; - a new class, fastjet::JetDefinition, has been introduced for holding the details of the jet finder (which one, value of R, etc...) that is to be used in a given clustering. #include "fastjet/JetDefinition.hh" #include "fastjet/ClusterSequence.hh" //... double R = 0.7; // define jet algorithm fastjet::JetDefinition jet_def(fastjet::kt_algorithm, R); // get the cluster sequence for a vector of 4-momenta and the // given jet definition fastjet::ClusterSequence clust_seq(momenta, jet_def); - some errors that previously were assertions now throw an fastjet::Error -- exception. A fully uniform handling of exceptions is currently some way away however and users for whom this is an important issue should contact the authors. fastjet-3.0.6+dfsg.orig/example/0000755000175000017500000000000012233507304014664 5ustar sunsunfastjet-3.0.6+dfsg.orig/example/11-filter.cc0000644000175000017500000002023012233477116016703 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example11 11 - use of filtering /// /// fastjet example program to illustrate the use of the /// fastjet::Filter class /// /// We apply different filter examples to either the hardest jet of /// the given event, or to the composition of the two hardest jets: /// /// - two examples of a filter keeping a fixed number of subjets (as /// in arXiv:0802.2470) /// - a "trimmer" i.e. a filter keeping subjets carrying at least a given /// fraction of the pt of the jet (arXiv:0912.1342). /// - two examples of filter in combination with background subtraction /// /// run it with : ./11-filter < data/single-event.dat /// /// Source code: 11-filter.cc //---------------------------------------------------------------------- //STARTHEADER // $Id: 11-filter.cc 3249 2013-10-28 15:06:25Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include #include #include #include #include "fastjet/tools/Filter.hh" // the following includes are only needed when combining filtering with subtraction #include "fastjet/tools/GridMedianBackgroundEstimator.hh" #include "fastjet/ClusterSequenceArea.hh" #include "fastjet/tools/Subtractor.hh" #include // needed for io using namespace fastjet; using namespace std; // a function returning // min(Rmax, deltaR_factor * deltaR(j1,j2)) // where j1 and j2 are the 2 subjets of j // if the jet does not have 2 exactly pieces, Rmax is used. class DynamicRfilt : public FunctionOfPseudoJet{ public: // default ctor DynamicRfilt(double Rmax, double deltaR_factor) : _Rmax(Rmax), _deltaR_factor(deltaR_factor){} // action of the function double result(const PseudoJet &j) const{ if (! j.has_pieces()) return _Rmax; vector pieces = j.pieces(); if (pieces.size() != 2) return _Rmax; double deltaR = pieces[0].delta_R(pieces[1]); return min(_Rmax, _deltaR_factor * deltaR); } private: double _Rmax, _deltaR_factor; }; /// an example program showing how to use Filter in FastJet int main(){ // read in input particles //---------------------------------------------------------- vector input_particles; double px, py , pz, E; while (cin >> px >> py >> pz >> E) { // create a PseudoJet with these components and put it onto // back of the input_particles vector input_particles.push_back(PseudoJet(px,py,pz,E)); } // get the resulting jets ordered in pt //---------------------------------------------------------- JetDefinition jet_def(cambridge_algorithm, 1.2); // the use of a ClusterSequenceArea (instead of a plain ClusterSequence) // is only needed because we will later combine filtering with area-based // subtraction ClusterSequenceArea clust_seq(input_particles, jet_def, AreaDefinition(active_area_explicit_ghosts)); vector inclusive_jets = sorted_by_pt(clust_seq.inclusive_jets(5.0)); // label the columns printf("%5s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt"); // print out the details for each jet for (unsigned int i = 0; i < inclusive_jets.size(); i++) { printf("%5u %15.8f %15.8f %15.8f\n", i, inclusive_jets[i].rap(), inclusive_jets[i].phi(), inclusive_jets[i].perp()); } // simple test to avoid that the example below crashes: // make sure there is at least 3 jets above our 5 GeV if (inclusive_jets.size()<3){ cout << "Please provide an event with at least 3 jets above 5 GeV" << endl; return 1; } // the sample PseudoJet that we will filter // - the hardest jet of the event // - the composition of the second and third hardest jets /// (this shows that the Filter can also be applied to a composite jet) //---------------------------------------------------------- vector candidates; candidates.push_back(inclusive_jets[0]); candidates.push_back(join(inclusive_jets[1],inclusive_jets[2])); // create 5 filters //---------------------------------------------------------- vector filters; // 1. // the Cambridge/Aachen filter with Rfilt=0.3 (simpliefied version of arXiv:0802.2470) filters.push_back(Filter(JetDefinition(cambridge_algorithm, 0.3), SelectorNHardest(3))); // 2. // the Cambridge/Aachen filter with Rfilt=min(0.3, 0.5*Rbb) as in arXiv:0802.2470 SharedPtr dynamic_Rfilt(new DynamicRfilt(0.3, 0.5)); filters.push_back(Filter(dynamic_Rfilt.get(), SelectorNHardest(3))); // 3. // Filtering with a pt cut as for trimming (arXiv:0912.1342) filters.push_back(Filter(JetDefinition(kt_algorithm, 0.2), SelectorPtFractionMin(0.03))); // 4. // First example of filtering with subtraction of the background: provide rho // First, estimate the background for the given event GridMedianBackgroundEstimator bkgd(4.5, 0.55); // uses particles up to |y|=4.5 bkgd.set_particles(input_particles); double rho = bkgd.rho(); // Then, define the filter filters.push_back(Filter(JetDefinition(cambridge_algorithm, 0.3), SelectorNHardest(3), rho)); // 5. // Second example of filtering with subtraction of the background: set a subtractor // First, define a subtractor from a background estimator Subtractor subtractor(&bkgd); // Then, define the filter Filter filt(JetDefinition(cambridge_algorithm, 0.3), SelectorNHardest(3)); // Finally, tell the filter about the subtractor filt.set_subtractor(&subtractor); filters.push_back(filt); // apply the various filters to the test PseudoJet // and show the result //---------------------------------------------------------- // print out original jet candidates cout << "\nOriginal jets that will be filtered: " << endl; for (vector::iterator jit=candidates.begin(); jit!=candidates.end(); jit++){ const PseudoJet & c = *jit; cout << " rap = " << c.rap() << ", phi = " << c.phi() << ", pt = " << c.perp() << " [" << c.description() << "]" << endl; } // loop on filters for (vector::iterator it=filters.begin(); it!=filters.end(); it++){ const Filter & f = *it; cout << "\nUsing filter: " << f.description() << endl; // loop on jet candidates for (vector::iterator jit=candidates.begin(); jit!=candidates.end(); jit++){ const PseudoJet & c = *jit; // apply filter f to jet c PseudoJet j = f(c); // access properties specific to the Filter // // We first make sure that the jet indeed has a structure // compatible with the result of a Filter (using // has_structure_of()), and then retrieve the pieces rejected by the // filter (using structure_of()) assert(j.has_structure_of()); const Filter::StructureType & fj_struct = j.structure_of(); // write out result cout << " rap = " << j.rap() << ", phi = " << j.phi() << ", pt = " << j.perp() << " [kept: " << j.pieces().size() << ", rejected: " << fj_struct.rejected().size() << "]" << endl; } } return 0; } fastjet-3.0.6+dfsg.orig/example/fastjet_areas.cc0000644000175000017500000001310111766120142020003 0ustar sunsun //STARTHEADER // $Id: fastjet_areas.cc 2704 2011-11-16 11:11:10Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER //---------------------------------------------------------------------- // fastjet areas example program. // // Compile it with: make fastjet_areas // run it with : ./fastjet_areas < data/single-event.dat // //---------------------------------------------------------------------- #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequenceArea.hh" #include "fastjet/ClusterSequencePassiveArea.hh" // get info on how fastjet was configured #include "fastjet/config.h" #ifdef ENABLE_PLUGIN_SISCONE #include "fastjet/SISConePlugin.hh" #endif #include // needed for io #include // needed for internal io #include using namespace std; // a declaration of a function that pretty prints a list of jets void print_jets (const vector &); /// an example program showing how to use fastjet int main () { vector input_particles; // read in input particles double px, py , pz, E; while (cin >> px >> py >> pz >> E) { // create a fastjet::PseudoJet with these components and put it onto // back of the input_particles vector input_particles.push_back(fastjet::PseudoJet(px,py,pz,E)); } // create an object that represents your choice of jet algorithm, and // the associated parameters double Rparam = 1.0; fastjet::Strategy strategy = fastjet::Best; fastjet::JetDefinition jet_def(fastjet::kt_algorithm, Rparam, strategy); //fastjet::JetDefinition jet_def(fastjet::cambridge_algorithm, Rparam, strategy); //fastjet::JetDefinition jet_def(fastjet::antikt_algorithm, Rparam, strategy); //fastjet::JetDefinition jet_def(new fastjet::SISConePlugin(Rparam,0.75)); // create an object that specifies how we to define the area fastjet::AreaDefinition area_def; bool use_voronoi = false; if (!use_voronoi) { double ghost_etamax = 6.0; double ghost_area = 0.01; int active_area_repeats = 1; // now create the object that holds info about ghosts, and from that // get an area definition fastjet::GhostedAreaSpec ghost_spec(ghost_etamax, active_area_repeats, ghost_area); area_def = fastjet::AreaDefinition(fastjet::active_area,ghost_spec); //area_def = fastjet::AreaDefinition(fastjet::passive_area,ghost_spec); } else { double effective_Rfact = 1.0; area_def = fastjet::VoronoiAreaSpec(effective_Rfact); } // run the jet clustering with the above jet definition fastjet::ClusterSequenceArea clust_seq(input_particles, jet_def, area_def); // you can also run the individual area classes directly //fastjet::ClusterSequencePassiveArea clust_seq(input_particles, jet_def, // area_def.ghost_spec()); // you may want to find out how much area in a given range (|y| 5 GeV, sorted by pt double ptmin = 5.0; vector inclusive_jets = clust_seq.inclusive_jets(ptmin); // print them out cout << "Printing inclusive jets with pt > "<< ptmin<<" GeV\n"; cout << "---------------------------------------\n"; print_jets(inclusive_jets); cout << endl; cout << "Number of unclustered particles: " << clust_seq.unclustered_particles().size() << endl; } //---------------------------------------------------------------------- /// a function that pretty prints a list of jets void print_jets (const vector & unsorted_jets) { // sort jets into increasing pt vector jets = sorted_by_pt(unsorted_jets); printf(" ijet rap phi Pt area +- err\n"); for (unsigned int j = 0; j < jets.size(); j++) { double area = jets[j].area(); double area_error = jets[j].area_error(); printf("%5u %9.5f %8.5f %10.3f %8.3f +- %6.3f\n",j,jets[j].rap(), jets[j].phi(),jets[j].perp(), area, area_error); } } fastjet-3.0.6+dfsg.orig/example/fastjet_example.cc0000644000175000017500000001212711766120142020352 0ustar sunsun/// \file /// \page Examples FastJet examples /// /// The FastJet examples have been organised by order of complexity, /// starting by the simplest case and introducing features one after /// another. /// - \subpage Example01 /// - \subpage Example02 /// - \subpage Example03 /// - \subpage Example04 /// - \subpage Example05 /// - \subpage Example06 /// - \subpage Example07 (\subpage Example07old "old version") /// - \subpage Example08 /// - \subpage Example09 /// - \subpage Example10 /// - \subpage Example11 /// - \subpage Example12 (\subpage Example12old "old version") /// - \subpage Example13 /// - \subpage Example14 //STARTHEADER // $Id: fastjet_example.cc 2684 2011-11-14 07:41:44Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER //---------------------------------------------------------------------- // fastjet example program. // // Compile it with: make fastjet_example // run it with : ./fastjet_example < data/single-event.dat // // People who are familiar with the ktjet package are encouraged to // compare this file to the ktjet_example.cc program which does the // same thing in the ktjet framework. //---------------------------------------------------------------------- #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequence.hh" #include // needed for io #include // needed for internal io #include #include using namespace std; // a declaration of a function that pretty prints a list of jets void print_jets (const vector &); /// an example program showing how to use fastjet int main () { vector input_particles; // Read in input particles double px, py , pz, E; while (cin >> px >> py >> pz >> E) { // create a fastjet::PseudoJet with these components and put it onto // back of the input_particles vector input_particles.push_back(fastjet::PseudoJet(px,py,pz,E)); } // create an object that represents your choice of jet algorithm and // the associated parameters double Rparam = 1.0; fastjet::Strategy strategy = fastjet::Best; fastjet::RecombinationScheme recomb_scheme = fastjet::E_scheme; fastjet::JetDefinition jet_def(fastjet::kt_algorithm, Rparam, recomb_scheme, strategy); // run the jet clustering with the above jet definition fastjet::ClusterSequence clust_seq(input_particles, jet_def); // tell the user what was done cout << "Ran " << jet_def.description() << endl; cout << "Strategy adopted by FastJet was "<< clust_seq.strategy_string()< 5 GeV double ptmin = 5.0; vector inclusive_jets = clust_seq.inclusive_jets(ptmin); // print them out cout << "Printing inclusive jets with pt > "<< ptmin<<" GeV\n"; cout << "---------------------------------------\n"; print_jets(inclusive_jets); cout << endl; // extract the exclusive jets with dcut = 25 GeV^2 double dcut = 25.0; vector exclusive_jets = clust_seq.exclusive_jets(dcut); // print them out cout << "Printing exclusive jets with dcut = "<< dcut<<" GeV^2\n"; cout << "--------------------------------------------\n"; print_jets(exclusive_jets); } //---------------------------------------------------------------------- /// a function that pretty prints a list of jets void print_jets (const vector & jets) { // sort jets into increasing pt vector sorted_jets = sorted_by_pt(jets); // label the columns printf("%5s %15s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt", "n constituents"); // print out the details for each jet for (unsigned int i = 0; i < sorted_jets.size(); i++) { // the following is not super efficient since it creates an // intermediate constituents vector int n_constituents = sorted_jets[i].constituents().size(); printf("%5u %15.8f %15.8f %15.8f %8u\n", i, sorted_jets[i].rap(), sorted_jets[i].phi(), sorted_jets[i].perp(), n_constituents); } } fastjet-3.0.6+dfsg.orig/example/04-constituents.cc0000644000175000017500000001062311766120142020161 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example04 04 - accessing clustering information in a PseudoJet /// /// illustrate how a jet can carry information about its clustering /// /// We do it by associating a user index to each of the input particles /// and show what particles are in each jets (above 5 GeV) /// /// We also illustrate a few other features about how a fastjet::PseudoJet /// can access its underlying structure. /// /// run it with : ./04-constituents < data/single-event.dat /// /// Source code: 04-constituents.cc //---------------------------------------------------------------------- //STARTHEADER // $Id: 04-constituents.cc 2704 2011-11-16 11:11:10Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequence.hh" #include // needed for io #include // needed for io using namespace std; /// an example program showing how to use fastjet int main(){ // read in input particles //---------------------------------------------------------- vector input_particles; valarray fourvec(4); int index=0; while (cin >> fourvec[0] >> fourvec[1] >> fourvec[2] >> fourvec[3]) { // create a particle with the approprite 4-momentum and // set its user index to keep track of its index. // you can construct a PseudoJet from any object that allows subscripts // from [0] .. [3] (the last one must be the energy) fastjet::PseudoJet particle(fourvec); particle.set_user_index(index); input_particles.push_back(particle); index++; } // create a jet definition: // a jet algorithm with a given radius parameter //---------------------------------------------------------- double R = 0.6; fastjet::JetDefinition jet_def(fastjet::kt_algorithm, R); // run the jet clustering with the above jet definition //---------------------------------------------------------- fastjet::ClusterSequence clust_seq(input_particles, jet_def); // get the resulting jets ordered in pt //---------------------------------------------------------- double ptmin = 5.0; vector inclusive_jets = sorted_by_pt(clust_seq.inclusive_jets(ptmin)); // tell the user what was done // - the description of the algorithm used // - extract the inclusive jets with pt > 5 GeV // show the output as // {index, rap, phi, pt, number of constituents} //---------------------------------------------------------- cout << "Ran " << jet_def.description() << endl << endl; // label the columns printf("%5s %15s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt", "n constituents"); printf(" indices of constituents\n\n"); // print out the details for each jet for (unsigned int i = 0; i < inclusive_jets.size(); i++) { // get the constituents of the jet vector constituents = inclusive_jets[i].constituents(); printf("%5u %15.8f %15.8f %15.8f %8u\n", i, inclusive_jets[i].rap(), inclusive_jets[i].phi(), inclusive_jets[i].perp(), (unsigned int) constituents.size()); printf(" "); for (unsigned int j=0; j. //---------------------------------------------------------------------- //ENDHEADER #include #include #include #include #include "fastjet/tools/Filter.hh" #include "fastjet/tools/Pruner.hh" #include // needed for io using namespace fastjet; using namespace std; /// an example program showing how to use Filter and Pruner in FastJet int main(){ // read in input particles //---------------------------------------------------------- vector input_particles; double px, py , pz, E; while (cin >> px >> py >> pz >> E) { // create a PseudoJet with these components and put it onto // back of the input_particles vector input_particles.push_back(PseudoJet(px,py,pz,E)); } // get the resulting jets ordered in pt //---------------------------------------------------------- JetDefinition jet_def(cambridge_algorithm, 1.5); ClusterSequence clust_seq(input_particles, jet_def); vector inclusive_jets = sorted_by_pt(clust_seq.inclusive_jets(5.0)); // label the columns printf("%5s %15s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt", "mass"); // print out the details for each jet for (unsigned int i = 0; i < inclusive_jets.size(); i++) { printf("%5u %15.8f %15.8f %15.8f %15.8f\n", i, inclusive_jets[i].rap(), inclusive_jets[i].phi(), inclusive_jets[i].perp(),inclusive_jets[i].m()); } // simple test to avoid that the example below crashes: // make sure there is at least 3 jets above our 5 GeV if (inclusive_jets.size()<2){ cout << "Please provide an event with at least 2 jets above 5 GeV" << endl; return 1; } // We will groom the two hardest jets of the event //---------------------------------------------------------- vector candidates = SelectorNHardest(2)(inclusive_jets); // create 3 groomers //---------------------------------------------------------- vector groomers; // 1. // the Cambridge/Aachen filter with Rfilt=0.3 // (simplified version of arXiv:0802.2470) double Rfilt = 0.3; unsigned int nfilt = 3; groomers.push_back(new Filter(JetDefinition(cambridge_algorithm, Rfilt), SelectorNHardest(nfilt) ) ); // 2. // Filtering with a pt cut as for trimming (arXiv:0912.1342) double Rtrim = 0.2; double ptfrac = 0.03; groomers.push_back(new Filter(JetDefinition(kt_algorithm, Rtrim), SelectorPtFractionMin(ptfrac) ) ); // 3. // Pruning (arXiv:0903.5081) double zcut = 0.1; double rcut_factor = 0.5; groomers.push_back(new Pruner(cambridge_algorithm, zcut, rcut_factor)); // apply the various groomers to the test PseudoJet's // and show the result //---------------------------------------------------------- // print out original jet candidates cout << "\nOriginal jets that will be grooomed: " << endl; for (vector::iterator jit=candidates.begin(); jit!=candidates.end(); jit++){ const PseudoJet & c = *jit; cout << " rap = " << c.rap() << ", phi = " << c.phi() << ", pt = " << c.perp() << ", mass = " << c.m() << " [" << c.description() << "]" << endl; } // loop on groomers for (unsigned int i=0; i < groomers.size(); i++){ const Transformer & f = *groomers[i]; cout << "\nUsing groomer: " << f.description() << endl; // loop on jet candidates for (vector::iterator jit=candidates.begin(); jit!=candidates.end(); jit++){ const PseudoJet & c = *jit; // apply groomer f to jet c PseudoJet j = f(c); // access properties specific to the given transformer // // We first make sure that the jet indeed has a structure // compatible with the result of a Filter or Pruner (using // has_structure_of()), and then retrieve the pieces rejected by the // groomer (using structure_of()) int n_rejected; if (j.has_structure_of()) { const Filter::StructureType & fj_struct = j.structure_of(); n_rejected = fj_struct.rejected().size(); }else { assert(j.has_structure_of()); // make sure const Pruner::StructureType & fj_struct = j.structure_of(); n_rejected = fj_struct.rejected().size(); } // write out result cout << " rap = " << j.rap() << ", phi = " << j.phi() << ", pt = " << j.perp() << " mass = " << j.m() << " [kept: " << j.pieces().size() << ", rejected: " << n_rejected << "]" << endl; } } // a bit of memory cleaning for (unsigned int i=0; i < groomers.size(); i++) delete groomers[i]; return 0; } fastjet-3.0.6+dfsg.orig/example/ktjet_example.cc0000644000175000017500000000626011766120142020034 0ustar sunsun//---------------------------------------------------------------------- // ktjet example program that should do the same thing as the // fastjet_example program (as of 3 Feb 2006) // // NB: the ../Makefile may need to be modified to set proper // paths for access to the CLHEP and KtJet libraries. //---------------------------------------------------------------------- #include // needed for io #include // needed for internal io #include /** Need to include these KtJet Headers */ #include "KtJet/KtEvent.h" #include "KtJet/KtLorentzVector.h" using namespace std; using namespace KtJet; // a declaration of a function that pretty prints a list of jets void print_jets (const vector &); /// an example program showing how the fastjet_example program would /// be translated for use with ktjet. int main (int argc, char ** argv) { vector input_particles; // read in input particles double px, py , pz, E; while (cin >> px >> py >> pz >> E) { // create a KtLorentzVector with these components and put it onto // back of the input_particles vector input_particles.push_back(KtLorentzVector(px,py,pz,E)); } // run the inclusive jet clustering in PP mode using the covariant // E-scheme for recobination (type=4, angle=2, recom=1, rparameter=1.0) double Rparam = 1.0; KtEvent clust_seq(input_particles,4,2,1,Rparam); // extract the inclusive jets with pt > 5 GeV, sorted by pt double ptmin = 5.0; vector temporary_jets = clust_seq.getJetsPt(); vector inclusive_jets; for (unsigned int i = 0; i < temporary_jets.size(); i++) { if (temporary_jets[i].perp() >= ptmin) { inclusive_jets.push_back(temporary_jets[i]);} else {break;} } // print them out cout << "Printing inclusive jets with pt > "<< ptmin<<" GeV\n"; cout << "---------------------------------------\n"; print_jets(inclusive_jets); cout << endl; // Extract the exclusive jets with dcut = 25 GeV^2. double dcut = 25.0; // Note that KtJet's definition of dij differs from Ellis&Soper (and // fastjet) in the case where Rparam /= 1.0 (though in this case one // should perhaps not be using the exclusive kt algorithm in any case). clust_seq.findJetsD(dcut * Rparam*Rparam); vector exclusive_jets = clust_seq.getJetsPt(); // print them out cout << "Printing exclusive jets with dcut = "<< dcut<<" GeV^2\n"; cout << "--------------------------------------------\n"; print_jets(exclusive_jets); } //---------------------------------------------------------------------- // a function that pretty prints a list of jets void print_jets (const vector & jets) { // label the columns printf("%5s %15s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt", "n constituents"); // print out the details for each jet for (unsigned int i = 0; i < jets.size(); i++) { int n_constituents = jets[i].getConstituents().size(); double phi = jets[i].phi(); if (phi < 0.0) {phi += 6.283185307179586476925286766559005768394;} printf("%5u %15.8f %15.8f %15.8f %8u\n", i, jets[i].rapidity(), phi, jets[i].perp(), n_constituents); } } fastjet-3.0.6+dfsg.orig/example/03-plugin.cc0000644000175000017500000001123111766120142016710 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example03 03 - using plugins /// /// fastjet plugins example program: /// we illustrate the plugin usage /// here, we use the SISCone plugin though different choices are possible /// see the output of 'fastjet-config --list-plugins' for more details /// /// Note that when using plugins, the code needs to be linked against /// the libfastjetplugins library (with the default monolithic /// build. For non-monolithic build, individual libraries have to be /// used for each plugin). /// This is ensured in practice by calling /// fastjet-config --libs --plugins /// /// run it with : ./03-plugin < data/single-event.dat /// /// Source code: 03-plugin.cc //---------------------------------------------------------------------- //STARTHEADER // $Id: 03-plugin.cc 2684 2011-11-14 07:41:44Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequence.hh" #include // needed for io #include // needed for io // include the SISCone plugin header if enabled #include "fastjet/config.h" #ifdef FASTJET_ENABLE_PLUGIN_SISCONE #include "fastjet/SISConePlugin.hh" #else #warning "SISCone plugin not enabled. Skipping the example" #endif // FASTJET_ENABLE_PLUGIN_SISCONE using namespace std; int main(){ #ifdef FASTJET_ENABLE_PLUGIN_SISCONE // read in input particles //---------------------------------------------------------- vector input_particles; double px, py , pz, E; while (cin >> px >> py >> pz >> E) { // create a fastjet::PseudoJet with these components and put it onto // back of the input_particles vector input_particles.push_back(fastjet::PseudoJet(px,py,pz,E)); } // create a jet definition fron a plugin. // It basically requires declaring a JetDefinition from a pointer to // the plugin // // we will use the SISCone plugin here. Its (mandatory) parameters // are a cone radius and an overlap threshold, plus other optional // parameters // // for other plugin, see individual documentations for a description // of their parameters // // the list of available plugins for a given build of FastJet can be // obtained using // fastjet-config --list-plugins // from the command line. //---------------------------------------------------------- double cone_radius = 0.7; double overlap_threshold = 0.75; fastjet::SISConePlugin siscone(cone_radius, overlap_threshold); fastjet::JetDefinition jet_def(& siscone); // run the jet clustering with the above jet definition //---------------------------------------------------------- fastjet::ClusterSequence clust_seq(input_particles, jet_def); // get the resulting jets ordered in pt //---------------------------------------------------------- double ptmin = 5.0; vector inclusive_jets = sorted_by_pt(clust_seq.inclusive_jets(ptmin)); // tell the user what was done // - the description of the algorithm used // - extract the inclusive jets with pt > 5 GeV // show the output as // {index, rap, phi, pt} //---------------------------------------------------------- cout << "Ran " << jet_def.description() << endl; // label the columns printf("%5s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt"); // print out the details for each jet for (unsigned int i = 0; i < inclusive_jets.size(); i++) { printf("%5u %15.8f %15.8f %15.8f\n", i, inclusive_jets[i].rap(), inclusive_jets[i].phi(), inclusive_jets[i].perp()); } #endif return 0; } fastjet-3.0.6+dfsg.orig/example/fastjet_timing_plugins.cc0000644000175000017500000010662012215412442021746 0ustar sunsun//STARTHEADER // $Id: fastjet_timing_plugins.cc 3209 2013-09-15 20:03:30Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER //---------------------------------------------------------------------- /// fastjet_timing.cc: Program to help time and test the fastjet package /// /// It reads files containing multiple events in the format /// p1x p1y p1z E1 /// p2x p2y p2z E2 /// ... /// #END /// /// An example input file containing 10 events is included as /// data/Pythia-PtMin1000-LHC-10ev.dat /// /// Usage: /// fastjet_timing [-strategy NUMBER] [-repeat nrepeats] [-massive] \ /// [-combine nevents] [-r Rparameter] [-incl ptmin] [...] \ /// < data_file /// /// where the clustering can be repeated to aid timing and multiple /// events can be combined to get to larger multiplicities. Some options: /// /// Options for reading /// ------------------- /// /// -nev n number of events to run /// /// -combine n for combining multiple events from the data file in order /// to get a single high-multipicity event to run. /// /// -massless read in only the 3-momenta and deduce energies assuming /// that particles are massless /// /// -dense adds dense ghost coverage /// /// -repeat n repeats each event n times /// /// -nhardest n keep only the n hardest particles in the event /// /// -file name read from the corresponding file rather than stdin. /// (The file will be reopened for each new jet alg.; in /// constrast, if you use stdin, each new alg will take a /// new event). /// /// Output Options /// -------------- /// /// -incl ptmin output of all inclusive jets with pt > ptmin is obtained /// with the -incl option. /// /// -repeat-incl ptmin /// same as -incl ptmin but do it for each repetition /// of the clustering /// /// -excld dcut output of all exclusive jets as obtained in a clustering /// with dcut /// /// -excly ycut output of all exclusive jets as obtained in a clustering /// with ycut /// /// -excln n output of clustering to n exclusive jets /// /// -ee-print print things as px,py,pz,E /// /// -get-all-dij print out all dij values /// -get-all-yij print out all yij values /// /// -const show jet constituents (works with excl jets) /// /// -write for writing out detailed clustering sequence (valuable /// for testing purposes) /// /// -unique_write writes out the sequence of dij's according to the /// "unique_history_order" (useful for verifying consistency /// between different clustering strategies). /// /// -root file sends output to file that can be read in with the script in /// root/ so as to show a lego-plot of the event /// /// -cones show extra info about internal steps for SISCone /// /// -area calculate areas. Additional options include /// -area:active /// -area:passive /// -area:explicit /// -area:voronoi Rfact /// -area:repeat nrepeat /// -ghost-area area /// -ghost-maxrap maxrap /// -area:fj2 place ghosts as in fj2 /// /// -bkgd calculate the background density. Additional options include /// -bkgd:csab use the old ClusterSequenceAreaBase methods /// -bkgd:jetmedian use the new JetMedianBackgroundEstimator class /// -bkgd:fj2 force jetmedian to calculate sigma as in fj2 /// -bkgd:gridmedian use GridMedianBackgroundEstimator with grid up to ghost_maxrap-ktR and grid spacing of 2ktR /// /// Algorithms /// ---------- /// -all-algs runs all algorithms /// /// -kt switch to the longitudinally invariant kt algorithm /// Note: this is the default one. /// /// -cam switch to the inclusive Cambridge/Aachen algorithm -- /// note that the option -excld dcut provides a clustering /// up to the dcut which is the minimum squared /// distance between any pair of jets. /// /// -antikt switch to the anti-kt clustering algorithm /// /// -genkt switch to the genkt algorithm /// you can provide the parameter of the alg as an argument to /// -genkt (1 by default) /// /// -eekt switch to the e+e- kt algorithm /// /// -eegenkt switch to the genkt algorithm /// you can provide the parameter of the alg as an argument to /// -ee_genkt (1 by default) /// /// plugins (don't delete this line) /// /// -pxcone switch to the PxCone jet algorithm /// /// -siscone switch to the SISCone jet algorithm (seedless cones) /// -sisconespheri switch to the Spherical SISCone jet algorithm (seedless cones) /// /// -midpoint switch to CDF's midpoint code /// -jetclu switch to CDF's jetclu code /// /// -d0runipre96cone switch to the D0RunIpre96Cone plugin /// -d0runicone switch to the D0RunICone plugin /// /// -d0runiicone switch to D0's run II midpoint cone /// /// -trackjet switch to the TrackJet plugin /// /// -atlascone switch to the ATLASCone plugin /// /// -eecambridge switch to the EECambridge plugin /// /// -jade switch to the Jade plugin /// /// -cmsiterativecone switch to the CMSIterativeCone plugin /// /// -gridjet switch to the GridJet plugin /// /// end of plugins (don't delete this line) /// /// /// Options for running algs /// ------------------------ /// /// -r sets the radius of the jet algorithm (default = 1.0) /// /// -overlap | -f sets the overlap fraction in cone algs with split-merge /// /// -seed sets the seed threshold /// /// -strategy N indicate stratgey from the enum fastjet::Strategy (see /// fastjet/JetDefinition.hh). /// #include "fastjet/ClusterSequenceArea.hh" #include "fastjet/tools/JetMedianBackgroundEstimator.hh" #include "fastjet/tools/GridMedianBackgroundEstimator.hh" #include "fastjet/Selector.hh" #include #include #include #include #include #include //#include // for size_t #include "CmdLine.hh" // get info on how fastjet was configured #include "fastjet/config.h" // include the installed plugins (don't delete this line) #ifdef FASTJET_ENABLE_PLUGIN_SISCONE #include "fastjet/SISConePlugin.hh" #include "fastjet/SISConeSphericalPlugin.hh" #endif #ifdef FASTJET_ENABLE_PLUGIN_CDFCONES #include "fastjet/CDFMidPointPlugin.hh" #include "fastjet/CDFJetCluPlugin.hh" #endif #ifdef FASTJET_ENABLE_PLUGIN_PXCONE #include "fastjet/PxConePlugin.hh" #endif #ifdef FASTJET_ENABLE_PLUGIN_D0RUNIICONE #include "fastjet/D0RunIIConePlugin.hh" #endif #ifdef FASTJET_ENABLE_PLUGIN_TRACKJET #include "fastjet/TrackJetPlugin.hh" #endif #ifdef FASTJET_ENABLE_PLUGIN_ATLASCONE #include "fastjet/ATLASConePlugin.hh" #endif #ifdef FASTJET_ENABLE_PLUGIN_EECAMBRIDGE #include "fastjet/EECambridgePlugin.hh" #endif #ifdef FASTJET_ENABLE_PLUGIN_JADE #include "fastjet/JadePlugin.hh" #endif #ifdef FASTJET_ENABLE_PLUGIN_CMSITERATIVECONE #include "fastjet/CMSIterativeConePlugin.hh" #endif #ifdef FASTJET_ENABLE_PLUGIN_D0RUNICONE #include "fastjet/D0RunIpre96ConePlugin.hh" #include "fastjet/D0RunIConePlugin.hh" #endif #ifdef FASTJET_ENABLE_PLUGIN_GRIDJET #include "fastjet/GridJetPlugin.hh" #endif // end of installed plugins inclusion (don't delete this line) using namespace std; // to avoid excessive typing, define an abbreviation for the // fastjet namespace namespace fj = fastjet; inline double pow2(const double x) {return x*x;} // pretty print the jets and their subjets void print_jets_and_sub (const vector & jets, double dcut); string rootfile; CmdLine * cmdline_p; bool do_areas; /// sort and pretty print jets, with exact behaviour depending on /// whether ee_print is true or not bool ee_print = false; void print_jets(const vector & jets, bool show_const = false); bool found_unavailable = false; void is_unavailable(const string & algname) { cerr << algname << " requested, but not available for this compilation" << endl; found_unavailable = true; //exit(0); } /// a program to test and time a range of algorithms as implemented or /// wrapped in fastjet int main (int argc, char ** argv) { fj::ClusterSequence::print_banner(); CmdLine cmdline(argc,argv); cmdline_p = &cmdline; // allow the use to specify the fj::Strategy either through the // -clever or the -strategy options (both will take numerical // values); the latter will override the former. fj::Strategy strategy = fj::Strategy(cmdline.int_val("-strategy", cmdline.int_val("-clever", fj::Best))); int repeat = cmdline.int_val("-repeat",1); int combine = cmdline.int_val("-combine",1); bool write = cmdline.present("-write"); bool unique_write = cmdline.present("-unique_write"); bool hydjet = cmdline.present("-hydjet"); double ktR = cmdline.double_val("-r",1.0); ktR = cmdline.double_val("-R",ktR); // allow -r and -R double inclkt = cmdline.double_val("-incl",-1.0); double repeatinclkt = cmdline.double_val("-repeat-incl",-1.0); int excln = cmdline.int_val ("-excln",-1); double excld = cmdline.double_val("-excld",-1.0); double excly = cmdline.double_val("-excly",-1.0); ee_print = cmdline.present("-ee-print"); bool get_all_dij = cmdline.present("-get-all-dij"); bool get_all_yij = cmdline.present("-get-all-yij"); double subdcut = cmdline.double_val("-subdcut",-1.0); double rapmax = cmdline.double_val("-rapmax",1.0e305); if (cmdline.present("-etamax")) { cerr << "WARNING: -etamax options actually sets maximum rapidity (and overrides -rapmax)\n"; rapmax = cmdline.double_val("-etamax"); } bool show_constituents = cmdline.present("-const"); bool massless = cmdline.present("-massless"); int nev = cmdline.int_val("-nev",1); bool add_dense_coverage = cmdline.present("-dense"); double ghost_maxrap = cmdline.value("-ghost-maxrap",5.0); bool all_algs = cmdline.present("-all-algs"); fj::Selector particles_sel = (cmdline.present("-nhardest")) ? fj::SelectorNHardest(cmdline.value("-nhardest")) : fj::SelectorIdentity(); do_areas = cmdline.present("-area"); fj::AreaDefinition area_def; if (do_areas) { assert(!write); // it's incompatible fj::GhostedAreaSpec ghost_spec(ghost_maxrap, cmdline.value("-area:repeat", 1), cmdline.value("-ghost-area", 0.01)); if (cmdline.present("-area:fj2")) ghost_spec.set_fj2_placement(true); if (cmdline.present("-area:explicit")) { area_def = fj::AreaDefinition(fj::active_area_explicit_ghosts, ghost_spec); } else if (cmdline.present("-area:passive")) { area_def = fj::AreaDefinition(fj::passive_area, ghost_spec); } else if (cmdline.present("-area:voronoi")) { double Rfact = cmdline.value("-area:voronoi"); area_def = fj::AreaDefinition(fj::voronoi_area, fj::VoronoiAreaSpec(Rfact)); } else { cmdline.present("-area:active"); // allow, but do not require, arg area_def = fj::AreaDefinition(fj::active_area, ghost_spec); } } bool do_bkgd = cmdline.present("-bkgd"); // background estimation bool do_bkgd_csab = false, do_bkgd_jetmedian = false, do_bkgd_fj2 = false; bool do_bkgd_gridmedian = false; fj::Selector bkgd_range; if (do_bkgd) { bkgd_range = fj::SelectorAbsRapMax(ghost_maxrap - ktR); if (cmdline.present("-bkgd:csab")) {do_bkgd_csab = true;} else if (cmdline.present("-bkgd:jetmedian")) {do_bkgd_jetmedian = true; do_bkgd_fj2 = cmdline.present("-bkgd:fj2"); } else if (cmdline.present("-bkgd:gridmedian")) {do_bkgd_gridmedian = true; } else { throw fj::Error("with the -bkgd option, some particular background must be specified (csab or jetmedian)"); } assert(do_areas || do_bkgd_gridmedian); } bool show_cones = cmdline.present("-cones"); // only works for siscone // for cone algorithms // allow -f and -overlap double overlap_threshold = cmdline.double_val("-overlap",0.5); overlap_threshold = cmdline.double_val("-f",overlap_threshold); double seed_threshold = cmdline.double_val("-seed",1.0); // for ee algorithms, allow to specify ycut double ycut = cmdline.double_val("-ycut",0.08); // for printing jets to a file for reading by root rootfile = cmdline.value("-root",""); // out default scheme is the E_scheme fj::RecombinationScheme scheme = fj::E_scheme; // The following option causes the Cambridge algo to be used. // Note that currently the only output that works sensibly here is // "-incl 0" vector jet_defs; if (all_algs || cmdline.present("-cam") || cmdline.present("-CA")) { jet_defs.push_back( fj::JetDefinition(fj::cambridge_algorithm, ktR, scheme, strategy)); } if (all_algs || cmdline.present("-antikt")) { jet_defs.push_back( fj::JetDefinition(fj::antikt_algorithm, ktR, scheme, strategy)); } if (all_algs || cmdline.present("-genkt")) { double p; if (cmdline.present("-genkt")) p = cmdline.value("-genkt"); else p = -0.5; jet_defs.push_back( fj::JetDefinition(fj::genkt_algorithm, ktR, p, scheme, strategy)); } if (all_algs || cmdline.present("-eekt")) { jet_defs.push_back( fj::JetDefinition(fj::ee_kt_algorithm)); } if (all_algs || cmdline.present("-eegenkt")) { double p; if (cmdline.present("-eegenkt")) p = cmdline.value("-eegenkt"); else p = -0.5; jet_defs.push_back( fj::JetDefinition(fj::ee_genkt_algorithm, ktR, p, scheme, strategy)); // checking if one asks to run a plugin (don't delete this line) } if (all_algs || cmdline.present("-midpoint")) { #ifdef FASTJET_ENABLE_PLUGIN_CDFCONES typedef fj::CDFMidPointPlugin MPPlug; // for brevity double cone_area_fraction = 1.0; int max_pair_size = 2; int max_iterations = 100; MPPlug::SplitMergeScale sm_scale = MPPlug::SM_pt; if (cmdline.present("-sm-pttilde")) sm_scale = MPPlug::SM_pttilde; if (cmdline.present("-sm-pt")) sm_scale = MPPlug::SM_pt; // default if (cmdline.present("-sm-mt")) sm_scale = MPPlug::SM_mt; if (cmdline.present("-sm-Et")) sm_scale = MPPlug::SM_Et; jet_defs.push_back( fj::JetDefinition( new fj::CDFMidPointPlugin ( seed_threshold, ktR, cone_area_fraction, max_pair_size, max_iterations, overlap_threshold, sm_scale))); #else // FASTJET_ENABLE_PLUGIN_CDFCONES is_unavailable("MidPoint"); #endif // FASTJET_ENABLE_PLUGIN_CDFCONES } if (all_algs || cmdline.present("-pxcone")) { #ifdef FASTJET_ENABLE_PLUGIN_PXCONE double min_jet_energy = 5.0; jet_defs.push_back( fj::JetDefinition( new fj::PxConePlugin ( ktR, min_jet_energy, overlap_threshold))); #else // FASTJET_ENABLE_PLUGIN_PXCONE is_unavailable("PxCone"); #endif // FASTJET_ENABLE_PLUGIN_PXCONE } if (all_algs || cmdline.present("-jetclu")) { #ifdef FASTJET_ENABLE_PLUGIN_CDFCONES jet_defs.push_back( fj::JetDefinition( new fj::CDFJetCluPlugin ( ktR, overlap_threshold, seed_threshold))); #else // FASTJET_ENABLE_PLUGIN_CDFCONES is_unavailable("JetClu"); #endif // FASTJET_ENABLE_PLUGIN_CDFCONES } if (all_algs || cmdline.present("-siscone") || cmdline.present("-sisconespheri")) { #ifdef FASTJET_ENABLE_PLUGIN_SISCONE typedef fj::SISConePlugin SISPlug; // for brevity int npass = cmdline.value("-npass",0); if (all_algs || cmdline.present("-siscone")) { double sisptmin = cmdline.value("-sisptmin",0.0); SISPlug * plugin = new SISPlug (ktR, overlap_threshold,npass,sisptmin); if (cmdline.present("-sm-pt")) plugin->set_split_merge_scale(SISPlug::SM_pt); if (cmdline.present("-sm-mt")) plugin->set_split_merge_scale(SISPlug::SM_mt); if (cmdline.present("-sm-Et")) plugin->set_split_merge_scale(SISPlug::SM_Et); if (cmdline.present("-sm-pttilde")) plugin->set_split_merge_scale(SISPlug::SM_pttilde); // cause it to use the jet-definition's own recombiner plugin->set_use_jet_def_recombiner(true); jet_defs.push_back( fj::JetDefinition(plugin)); } if (all_algs || cmdline.present("-sisconespheri")) { double sisEmin = cmdline.value("-sisEmin",0.0); fj::SISConeSphericalPlugin * plugin = new fj::SISConeSphericalPlugin(ktR, overlap_threshold,npass,sisEmin); if (cmdline.present("-ghost-sep")) { plugin->set_ghost_separation_scale(cmdline.value("-ghost-sep")); } jet_defs.push_back( fj::JetDefinition(plugin)); } #else // FASTJET_ENABLE_PLUGIN_SISCONE is_unavailable("SISCone"); #endif // FASTJET_ENABLE_PLUGIN_SISCONE } if (all_algs || cmdline.present("-d0runiicone")) { #ifdef FASTJET_ENABLE_PLUGIN_D0RUNIICONE double min_jet_Et = 6.0; // was 8 GeV in earlier work jet_defs.push_back( fj::JetDefinition(new fj::D0RunIIConePlugin(ktR,min_jet_Et))); #else // FASTJET_ENABLE_PLUGIN_D0RUNIICONE is_unavailable("D0RunIICone"); #endif // FASTJET_ENABLE_PLUGIN_D0RUNIICONE } if (all_algs || cmdline.present("-trackjet")) { #ifdef FASTJET_ENABLE_PLUGIN_TRACKJET jet_defs.push_back( fj::JetDefinition(new fj::TrackJetPlugin(ktR))); #else // FASTJET_ENABLE_PLUGIN_TRACKJET is_unavailable("TrackJet"); #endif // FASTJET_ENABLE_PLUGIN_TRACKJET } if (all_algs || cmdline.present("-atlascone")) { #ifdef FASTJET_ENABLE_PLUGIN_ATLASCONE jet_defs.push_back( fj::JetDefinition(new fj::ATLASConePlugin(ktR))); #else // FASTJET_ENABLE_PLUGIN_ATLASCONE is_unavailable("ATLASCone"); #endif // FASTJET_ENABLE_PLUGIN_ATLASCONE } if (all_algs || cmdline.present("-eecambridge")) { #ifdef FASTJET_ENABLE_PLUGIN_EECAMBRIDGE jet_defs.push_back( fj::JetDefinition(new fj::EECambridgePlugin(ycut))); #else // FASTJET_ENABLE_PLUGIN_EECAMBRIDGE is_unavailable("EECambridge"); #endif // FASTJET_ENABLE_PLUGIN_EECAMBRIDGE } if (all_algs || cmdline.present("-jade")) { #ifdef FASTJET_ENABLE_PLUGIN_JADE jet_defs.push_back( fj::JetDefinition(new fj::JadePlugin())); #else // FASTJET_ENABLE_PLUGIN_JADE is_unavailable("Jade"); #endif // FASTJET_ENABLE_PLUGIN_JADE } if (all_algs || cmdline.present("-cmsiterativecone")) { #ifdef FASTJET_ENABLE_PLUGIN_CMSITERATIVECONE jet_defs.push_back( fj::JetDefinition(new fj::CMSIterativeConePlugin(ktR,seed_threshold))); #else // FASTJET_ENABLE_PLUGIN_CMSITERATIVECONE is_unavailable("CMSIterativeCone"); #endif // FASTJET_ENABLE_PLUGIN_CMSITERATIVECONE } if (all_algs || cmdline.present("-d0runipre96cone")) { #ifdef FASTJET_ENABLE_PLUGIN_D0RUNICONE jet_defs.push_back( fj::JetDefinition(new fj::D0RunIpre96ConePlugin(ktR, seed_threshold, overlap_threshold))); #else // FASTJET_ENABLE_PLUGIN_D0RUNICONE is_unavailable("D0RunIpre96Cone"); #endif // FASTJET_ENABLE_PLUGIN_D0RUNICONE } if (all_algs || cmdline.present("-d0runicone")) { #ifdef FASTJET_ENABLE_PLUGIN_D0RUNICONE jet_defs.push_back( fj::JetDefinition(new fj::D0RunIConePlugin(ktR, seed_threshold, overlap_threshold))); #else // FASTJET_ENABLE_PLUGIN_D0RUNICONE is_unavailable("D0RunICone"); #endif // FASTJET_ENABLE_PLUGIN_D0RUNICONE } if (all_algs || cmdline.present("-gridjet")) { #ifdef FASTJET_ENABLE_PLUGIN_GRIDJET // we want a grid_ymax of 5.0, but when using R=0.4 (i.e. grid // spacing of 0.8), this leads to 12.5 grid cells; depending on // whether this is 12.499999999999 or 12.5000000....1 this gets // converted either to 12 or 13, making the results sensitive to // rounding errors. // // Instead we therefore take 4.9999999999, which avoids this problem. double grid_ymax = 4.9999999999; jet_defs.push_back( fj::JetDefinition(new fj::GridJetPlugin(grid_ymax, ktR*2.0))); #else // FASTJET_ENABLE_PLUGIN_GRIDJET is_unavailable("GridJet"); #endif // FASTJET_ENABLE_PLUGIN_GRIDJET // end of checking if one asks to run a plugin (don't delete this line) } if (all_algs || cmdline.present("-kt") || (jet_defs.size() == 0 && !found_unavailable)) { jet_defs.push_back( fj::JetDefinition(fj::kt_algorithm, ktR, strategy)); } string filename = cmdline.value("-file", ""); if (!cmdline.all_options_used()) {cerr << "Error: some options were not recognized"< jets; vector particles; string line; int ndone = 0; while (getline(*istr, line)) { //cout << line< fourvec(4); if (hydjet) { // special reading from hydjet.txt event record (though actually // this is supposed to be a standard pythia event record, so // being able to read from it is perhaps not so bad an idea...) int ii, istat,id,m1,m2,d1,d2; double mass; linestream >> ii>> istat >> id >> m1 >> m2 >> d1 >> d2 >> fourvec[0] >> fourvec[1] >> fourvec[2] >> mass; // current file contains mass of particle as 4th entry if (istat == 1) { fourvec[3] = sqrt(+pow2(fourvec[0])+pow2(fourvec[1]) +pow2(fourvec[2])+pow2(mass)); } } else { if (massless) { linestream >> fourvec[0] >> fourvec[1] >> fourvec[2]; fourvec[3] = sqrt(pow2(fourvec[0])+pow2(fourvec[1])+pow2(fourvec[2]));} else { linestream >> fourvec[0] >> fourvec[1] >> fourvec[2] >> fourvec[3]; } } fj::PseudoJet psjet(fourvec); if (abs(psjet.rap()) < rapmax) {particles.push_back(psjet);} } // add a fake underlying event which is very soft, uniformly distributed // in eta,phi so as to allow one to reconstruct the area that is associated // with each jet. if (add_dense_coverage) { fj::GhostedAreaSpec ghosted_area_spec(ghost_maxrap); //fj::GhostedAreaSpec ghosted_area_spec(-2.0,4.0); // asymmetric range // for plots, reduce the scatter default of 1, to avoid "holes" // in the subsequent calorimeter view ghosted_area_spec.set_grid_scatter(0.5); ghosted_area_spec.add_ghosts(particles); //----- old code ------------------ // srand(2); // int nphi = 60; // int neta = 100; // double kt = 1e-1; // for (int iphi = 0; iphi clust_seq; if (do_areas) { clust_seq.reset(new fj::ClusterSequenceArea(particles,jet_def,area_def)); } else { clust_seq.reset(new fj::ClusterSequence(particles,jet_def,write)); } // repetitive output if (repeatinclkt >= 0.0) { vector jets_local = sorted_by_pt(clust_seq->inclusive_jets(repeatinclkt)); } if (irepeat != 0) {continue;} cout << "iev "<= 0.0) { vector jets_local = sorted_by_pt(clust_seq->inclusive_jets(inclkt)); print_jets(jets_local, show_constituents); } if (excln > 0) { cout << "Printing "<exclusive_jets(excln), show_constituents); } if (excld > 0.0) { cout << "Printing exclusive jets for d = "<exclusive_jets(excld), show_constituents); } if (excly > 0.0) { cout << "Printing exclusive jets for ycut = "<exclusive_jets_ycut(excly), show_constituents); } if (get_all_dij) { for (int i = nparticles-1; i >= 0; i--) { printf("d for n = %4d -> %4d is %14.5e\n", i+1, i, clust_seq->exclusive_dmerge(i)); } } if (get_all_yij) { for (int i = nparticles-1; i >= 0; i--) { printf("y for n = %4d -> %4d is %14.5e\n", i+1, i, clust_seq->exclusive_ymerge(i)); } } // have the option of printing out the subjets (at scale dcut) of // each inclusive jet if (subdcut >= 0.0) { print_jets_and_sub(clust_seq->inclusive_jets(), subdcut); } // useful for testing that recombination sequences are unique if (unique_write) { vector unique_history = clust_seq->unique_history_order(); // construct the inverse of the above mapping vector inv_unique_history(clust_seq->history().size()); for (unsigned int i = 0; i < unique_history.size(); i++) { inv_unique_history[unique_history[i]] = i;} for (unsigned int i = 0; i < unique_history.size(); i++) { fj::ClusterSequence::history_element el = clust_seq->history()[unique_history[i]]; int uhp1 = el.parent1>=0 ? inv_unique_history[el.parent1] : el.parent1; int uhp2 = el.parent2>=0 ? inv_unique_history[el.parent2] : el.parent2; printf("%7d u %15.8e %7d u %7d u\n",i,el.dij,uhp1, uhp2); } } #ifdef FASTJET_ENABLE_PLUGIN_SISCONE // provide some complementary information for SISCone if (show_cones) { const fj::SISConeExtras * extras = dynamic_cast(clust_seq->extras()); if (extras == 0) throw fastjet::Error("extras object for SISCone was null (this can happen with certain area types)"); cout << "most ambiguous split (difference in squared dist) = " << extras->most_ambiguous_split() << endl; vector stable_cones(extras->stable_cones()); stable_cones = sorted_by_rapidity(stable_cones); for (unsigned int i = 0; i < stable_cones.size(); i++) { //if (stable_cones[i].phi() < 5.0 && stable_cones[i].phi() > 4.0) { printf("%5u %15.8f %15.8f %15.8f\n", i,stable_cones[i].rap(),stable_cones[i].phi(), stable_cones[i].perp() ); //} } // also show passes for jets vector sisjets = clust_seq->inclusive_jets(); printf("\n%15s %15s %15s %12s %8s %8s\n","rap","phi","pt","user-index","pass","nconst"); for (unsigned i = 0; i < sisjets.size(); i++) { printf("%15.8f %15.8f %15.8f %12d %8d %8u\n", sisjets[i].rap(), sisjets[i].phi(), sisjets[i].perp(), sisjets[i].user_index(), extras->pass(sisjets[i]), (unsigned int) clust_seq->constituents(sisjets[i]).size() ); } } #endif // FASTJET_ENABLE_PLUGIN_SISCONE if (do_bkgd) { double rho, sigma, mean_area, empty_area, n_empty_jets; fj::ClusterSequenceAreaBase * csab = dynamic_cast(clust_seq.get()); if (do_bkgd_csab) { csab->get_median_rho_and_sigma(bkgd_range, true, rho, sigma, mean_area); empty_area = csab->empty_area(bkgd_range); n_empty_jets = csab->n_empty_jets(bkgd_range); } else if (do_bkgd_jetmedian) { fj::JetMedianBackgroundEstimator bge(bkgd_range); bge.set_provide_fj2_sigma(do_bkgd_fj2); bge.set_cluster_sequence(*csab); rho = bge.rho(); sigma = bge.sigma(); mean_area = bge.mean_area(); empty_area = bge.empty_area(); n_empty_jets = bge.n_empty_jets(); } else { assert(do_bkgd_gridmedian); double rapmin, rapmax; bkgd_range.get_rapidity_extent(rapmin, rapmax); fj::GridMedianBackgroundEstimator bge(rapmax, 2*ktR); bge.set_particles(particles); rho = bge.rho(); sigma = bge.sigma(); mean_area = bge.mean_area(); empty_area = 0; n_empty_jets = 0; } cout << " rho = " << rho << ", sigma = " << sigma << ", mean_area = " << mean_area << ", empty_area = " << empty_area << ", n_empty_jets = " << n_empty_jets << endl; } } // try catch (fastjet::Error fjerr) { cout << "Caught fastjet error, exiting gracefully" << endl; exit(0); } } // irepeat } // iev // if we've instantiated a plugin, delete it if (jet_def.strategy()==fj::plugin_strategy){ delete jet_def.plugin(); } // close any file that we've opened if (istr != &cin) delete istr; } // jet_defs } //------ HELPER ROUTINES ----------------------------------------------- /// print a single jet void print_jet (const fj::PseudoJet & jet) { unsigned int n_constituents = jet.constituents().size(); printf("%15.8f %15.8f %15.8f %8u\n", jet.rap(), jet.phi(), jet.perp(), n_constituents); } //---------------------------------------------------------------------- void print_jets(const vector & jets_in, bool show_constituents) { vector jets; if (ee_print) { jets = sorted_by_E(jets_in); for (unsigned int j = 0; j < jets.size(); j++) { printf("%5u %15.8f %15.8f %15.8f %15.8f\n", j,jets[j].px(),jets[j].py(),jets[j].pz(),jets[j].E()); if (show_constituents) { vector const_jets = jets[j].constituents(); for (unsigned int k = 0; k < const_jets.size(); k++) { printf(" jet%03u %15.8f %15.8f %15.8f %15.8f\n",j,const_jets[k].px(), const_jets[k].py(),const_jets[k].pz(),const_jets[k].E()); } cout << "\n\n"; } } } else { jets = sorted_by_pt(jets_in); for (unsigned int j = 0; j < jets.size(); j++) { printf("%5u %15.8f %15.8f %15.8f", j,jets[j].rap(),jets[j].phi(),jets[j].perp()); // also print out the scalar area and the perp component of the // 4-vector (just enough to check a reasonable 4-vector?) if (do_areas) printf(" %15.8f %15.8f", jets[j].area(), jets[j].area_4vector().perp()); cout << "\n"; if (show_constituents) { vector const_jets = jets[j].constituents(); for (unsigned int k = 0; k < const_jets.size(); k++) { printf(" jet%03u %15.8f %15.8f %15.8f %5d\n",j,const_jets[k].rap(), const_jets[k].phi(),sqrt(const_jets[k].kt2()), const_jets[k].cluster_hist_index()); } cout << "\n\n"; } } } if (rootfile != "") { ofstream ostr(rootfile.c_str()); ostr << "# " << cmdline_p->command_line() << endl; ostr << "# output for root" << endl; assert(jets.size() > 0); jets[0].validated_cs()->print_jets_for_root(jets,ostr); } } //----- SUBJETS -------------------------------------------------------- /// a function that pretty prints a list of jets and the subjets for each /// one void print_jets_and_sub (const vector & jets, double dcut) { // sort jets into increasing pt vector sorted_jets = sorted_by_pt(jets); // label the columns printf("Printing jets and their subjets with subdcut = %10.5f\n",dcut); printf("%5s %15s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt", "n constituents"); // have various kinds of subjet finding, to test consistency among them enum SubType {internal, newclust_dcut, newclust_R}; SubType subtype = internal; //SubType subtype = newclust_dcut; //SubType subtype = newclust_R; // print out the details for each jet //for (unsigned int i = 0; i < sorted_jets.size(); i++) { for (vector::const_iterator jet = sorted_jets.begin(); jet != sorted_jets.end(); jet++) { const fj::JetDefinition & jet_def = jet->validated_cs()->jet_def(); // if jet pt^2 < dcut with kt alg, then some methods of // getting subjets will return nothing -- so skip the jet if (jet_def.jet_algorithm() == fj::kt_algorithm && jet->perp2() < dcut) continue; printf("%5u ",(unsigned int) (jet - sorted_jets.begin())); print_jet(*jet); vector subjets; fj::ClusterSequence * cspoint; if (subtype == internal) { cspoint = 0; subjets = jet->exclusive_subjets(dcut); double ddnp1 = jet->exclusive_subdmerge_max(subjets.size()); double ddn = jet->exclusive_subdmerge_max(subjets.size()-1); cout << " for " << ddnp1 << " < d < " << ddn << " one has " << endl; } else if (subtype == newclust_dcut) { cspoint = new fj::ClusterSequence(jet->constituents(), jet_def); subjets = cspoint->exclusive_jets(dcut); } else if (subtype == newclust_R) { assert(jet_def.jet_algorithm() == fj::cambridge_algorithm); fj::JetDefinition subjd(jet_def.jet_algorithm(), jet_def.R()*sqrt(dcut)); cspoint = new fj::ClusterSequence(jet->constituents(), subjd); subjets = cspoint->inclusive_jets(); } else { cerr << "unrecognized subtype for subjet finding" << endl; exit(-1); } subjets = sorted_by_pt(subjets); for (unsigned int j = 0; j < subjets.size(); j++) { printf(" -sub-%02u ",j); print_jet(subjets[j]); } if (cspoint != 0) delete cspoint; //fj::ClusterSequence subseq(clust_seq->constituents(sorted_jets[i]), // fj::JetDefinition(fj::cambridge_algorithm, 0.4)); //vector subjets = sorted_by_pt(subseq.inclusive_jets()); //for (unsigned int j = 0; j < subjets.size(); j++) { // printf(" -sub-%02u ",j); // print_jet(subseq, subjets[j]); //} } } fastjet-3.0.6+dfsg.orig/example/09-user_info.cc0000644000175000017500000002547011766120142017423 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example09 09 - adding user information to a fastjet::PseudoJet /// /// This example illustrates how it is possible to associate /// user-defined information to a fastjet::PseudoJet (beyond the /// simple user index), using a class derived from /// fastjet::UserInfoBase. /// /// Note that in this example we have chosen to use this /// user-defined information to obtain properties of the constituents /// of the reconstructed jet (e.g. if the event is made of a hard /// interaction and pileup, what part of the reconstructed jet comes /// from the hard interaction). To do that, we also show how to /// introduce a user-defined fastjet::Selector. For some applications, /// it might also be useful to define new recombination schemes using /// the extra information. /// /// run it with : ./09-user_info < data/Pythia-dijet-ptmin100-lhc-pileup-1ev.dat /// /// (Note that this event consists of many sub-events, the first one /// being the "hard" interaction and the following being minbias /// events composing the pileup. It has the specificity that it also /// contains the PDG id of the particles) /// /// Source code: 09-user_info.cc //---------------------------------------------------------------------- //STARTHEADER // $Id: 09-user_info.cc 2692 2011-11-14 16:27:44Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequence.hh" #include "fastjet/Selector.hh" #include // needed for io #include // needed for io #include // needed for io using namespace std; using namespace fastjet; //------------------------------------------------------------------------ // the user information // // To associate extra information to a PseudoJet, one first has to // create a class, derived from UserInfoBase, that contains // that information. // // In our simple example, we shall use 2 informations // - the PDG id associated with the particle // - the "vertex number" associated with the particle class MyUserInfo : public PseudoJet::UserInfoBase{ public: // default ctor // - pdg_id the PDG id of the particle // - vertex_number theid of the vertex it originates from MyUserInfo(const int & pdg_id_in, const int & vertex_number_in) : _pdg_id(pdg_id_in), _vertex_number(vertex_number_in){} /// access to the PDG id int pdg_id() const { return _pdg_id;} /// access to the vertex number int vertex_number() const { return _vertex_number;} protected: int _pdg_id; // the associated pdg id int _vertex_number; // the associated vertex number }; //------------------------------------------------------------------------ // Select pi0 and photons // // This shows how we can build a Selector that uses the user-defined // information to select particles that are either pi0's or photons // (we choose this purely for simplicity). // // To create a user-defined Selector, the first step is to // create its associated "worker" class, i.e. to derive a class from // SelectorWorker. Then (see below), we just write a function // (SelectorIsPi0Gamma()) that creates a Selector with the // appropriate worker class. class SW_IsPi0Gamma : public SelectorWorker{ public: // default ctor SW_IsPi0Gamma(){} // the selector's description string description() const{ return "neutral pions or photons"; } // keeps the ones that have the pdg id of the pi0 bool pass(const PseudoJet &p) const{ // This is how we access the extra information associated with the // particles we test. // p.user_info() // returns a reference to the user-defined information (of type // MyUserInfo, as mentioned explicitly). It ensures automatically // that there is an associated user info compatible with the // requested type (and throws an error if it is not the case) // // We can then access the "pdg_id" member of MyUserInfo to // extract the targeted information. const int & pdgid = p.user_info().pdg_id(); return (pdgid == 111) || (pdgid == 22); } }; // the function that allows to write simply // Selector sel = SelectorIsPi0Gamma(); Selector SelectorIsPi0Gamma(){ return Selector(new SW_IsPi0Gamma()); } //------------------------------------------------------------------------ // Select particles from a given vertex number // // This is the same kind of construct as just above except that we // select on particles that are originated from a given vertex. The // test event has been structured as a superposition of sub-events // (the 0th being the hard interaction) and each particle will be // associated a vertex number. This Selector allows to select // particles corresponding to a given vertex number. // // As in the previous case, we start with the worker class and then // write a function for the Selector itself. class SW_VertexNumber : public SelectorWorker{ public: // ctor from the vertex we want to keep SW_VertexNumber(const int & vertex_number) : _vertex_number(vertex_number){} // the selector's description string description() const{ ostringstream oss; oss << "vertex number " << _vertex_number; return oss.str(); } // keeps the ones that have the correct vertex number bool pass(const PseudoJet &p) const{ // This is how we access the extra information associated with the // particles we test. // p.user_info() // returns a reference to the user-defined information (of type // MyUserInfo, as mentioned explicitly). It ensures automatically // that there is an associated user info compatible with the // requested type (and throws an error if it is not the case) // // We can then access the "vertex_number" member of MyUserInfo to // extract the targeted information. return p.user_info().vertex_number()==_vertex_number; } private: int _vertex_number; // the vertex number we're selecting }; // The function that allows to write e.g. // Selector sel = !SelectorVertexNumber(0); // to select particles from all vertices except the 0th. Selector SelectorVertexNumber(const int & vertex_number){ return Selector(new SW_VertexNumber(vertex_number)); } //------------------------------------------------------------------------ // The example code associating user-info to the particles in the event int main(){ // read in input particles //---------------------------------------------------------- vector input_particles; double px, py , pz, E; string str; int vertex_number=-1; int pdg_id = 21; while (getline(cin, str)){ // if the line does not start with #, it's a particle // read its momentum and pdg id if (str[0] != '#'){ istringstream iss(str); if (! (iss >> px >> py >> pz >> E >> pdg_id)){ cerr << "Wrong file format: particles must be specified with" << endl; cerr << " px py pz E pdg_id" << endl; } // first create a PseudoJet with the correct momentum PseudoJet p(px,py,pz,E); // associate to that our user-defined extra information // which is done using // PseudoJet::set_user_info() // // IMPORTANT NOTE: set_user_info(...) takes a pointer as an // argument. It will "own" that pointer i.e. will delete it when // all the PseudoJet's using it will be deleted. // // NB: once you've done p.set_user_info(my_user_info_ptr), you must // not call p2.set_user_info(my_user_info_ptr) with the same pointer // because p and p2 will both attempt to delete it when they go out // of scope causing a double-free corruption error. Instead do // p2.user_info_shared_ptr() = p.user_info_shared_ptr(); p.set_user_info(new MyUserInfo(pdg_id, vertex_number)); PseudoJet p2; // defined only to make the above documentation consistent! input_particles.push_back(p); continue; } // check if we start a new sub-event if ((str.length()>=9) && (str.compare(0,9,"#SUBSTART")==0)){ vertex_number++; } } // create a jet definition: // a jet algorithm with a given radius parameter //---------------------------------------------------------- double R = 0.6; JetDefinition jet_def(antikt_algorithm, R); // run the jet clustering with the above jet definition //---------------------------------------------------------- ClusterSequence clust_seq(input_particles, jet_def); // get the resulting jets ordered in pt //---------------------------------------------------------- double ptmin = 25.0; vector inclusive_jets = sorted_by_pt(clust_seq.inclusive_jets(ptmin)); // tell the user what was done // - the description of the algorithm used // - extract the inclusive jets with pt > 5 GeV // show the output as // {index, rap, phi, pt} //---------------------------------------------------------- cout << "Ran " << jet_def.description() << endl; // label the columns printf("%5s %15s %15s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt", "pt_hard", "pt_pi0+gamma"); // a selection on the 1st vertex Selector sel_vtx0 = SelectorVertexNumber(0); // a selection on the pi0 Selector sel_pi0gamma = SelectorIsPi0Gamma(); // print out the details for each jet for (unsigned int i = 0; i < inclusive_jets.size(); i++) { const PseudoJet & full = inclusive_jets[i]; const vector constituents = full.constituents(); // get the contribution from the 1st vertex PseudoJet hard = join(sel_vtx0(constituents)); // get the contribution from the pi0's PseudoJet pi0gamma = join(sel_pi0gamma(constituents)); // print the result printf("%5u %15.8f %15.8f %15.8f %15.8f %15.8f\n", i, full.rap(), full.phi(), full.perp(), hard.perp(), pi0gamma.perp()); } return 0; } fastjet-3.0.6+dfsg.orig/example/05-eplus_eminus.cc0000644000175000017500000000742711766120142020140 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example05 05 - using e+e- algorithms /// /// illustrate the use of e^+ e^- algorithms /// /// They mostly differ from the pp algorithm by the fact that rather /// than using a radius parameter and inclusive jets, they use /// exclusive jets in one of the following ways: /// - a fixed number of them /// - with a dcut /// - with a ycut /// /// Note that natively, FastJet includes the kt (ee_kt_algorithm) and /// genkt (ee_genkt_algorithm) algorithms. Others (like Cambridge for /// e+ e-, Jade or SISCone in spherical coordinates) are available as /// plugins (see 03-plugin.cc) /// /// run it with : ./05-eplus_eminus < data/single-ee-event.dat /// /// Source code: 05-eplus_eminus.cc //---------------------------------------------------------------------- //STARTHEADER // $Id: 05-eplus_eminus.cc 2684 2011-11-14 07:41:44Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequence.hh" #include // needed for io #include // needed for io using namespace std; /// an example program showing how to use fastjet int main(){ // read in input particles //---------------------------------------------------------- vector input_particles; double px, py , pz, E; while (cin >> px >> py >> pz >> E) { // create a fastjet::PseudoJet with these components and put it onto // back of the input_particles vector input_particles.push_back(fastjet::PseudoJet(px,py,pz,E)); } // create a jet definition for the kt algorithm (note that one // should not specify an R value here) //---------------------------------------------------------- fastjet::JetDefinition jet_def(fastjet::ee_kt_algorithm); // run the jet clustering with the above jet definition //---------------------------------------------------------- fastjet::ClusterSequence clust_seq(input_particles, jet_def); // get 3 exclusive jets //---------------------------------------------------------- int n = 3; vector exclusive_jets = clust_seq.exclusive_jets(n); // tell the user what was done // - the description of the algorithm used // - extract the inclusive jets with pt > 5 GeV // show the output as // {index, rap, phi, pt, number of constituents} //---------------------------------------------------------- cout << "Ran " << jet_def.description() << endl; // label the columns printf("%5s %15s\n","jet #", "E"); // print out the details for each jet for (unsigned int i = 0; i < exclusive_jets.size(); i++) { printf("%5u %15.8f\n", i, exclusive_jets[i].perp()); } return 0; } fastjet-3.0.6+dfsg.orig/example/10-subjets.cc0000644000175000017500000001043411766120142017073 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example10 10 - extracting subjets /// /// fastjet example program to show how to access subjets; /// /// See also 12-boosted_higgs.cc to see the use of subjets for /// identifying boosted higgs (and other objects) /// /// run it with : ./10-subjets < data/single-event.dat /// /// Source code: 10-subjets.cc //---------------------------------------------------------------------- //STARTHEADER // $Id: 10-subjets.cc 2742 2011-11-22 22:27:08Z salam $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequence.hh" #include // needed for io #include // needed for io using namespace std; using namespace fastjet; int main(){ // read in input particles //---------------------------------------------------------- vector input_particles; double px, py , pz, E; while (cin >> px >> py >> pz >> E) { // create a PseudoJet with these components and put it onto // back of the input_particles vector input_particles.push_back(PseudoJet(px,py,pz,E)); } // create a jet definition: // for subjet studies, Cambridge/Aachen is the natural algorithm //---------------------------------------------------------- double R = 1.0; JetDefinition jet_def(cambridge_algorithm, R); // run the jet clustering with the above jet definition // and get the jets above 5 GeV //---------------------------------------------------------- ClusterSequence clust_seq(input_particles, jet_def); double ptmin = 6.0; vector inclusive_jets = sorted_by_pt(clust_seq.inclusive_jets(ptmin)); // extract the subjets at a smaller angular scale (Rsub=0.5) // // This is done by using ClusterSequence::exclusive_subjets(dcut): // for the Cambridge/Aachen algorithm, running with R and then // asking for exclusive subjets with dcut should give the same // subjets as rerunning the algorithm with R'=R*sqrt(dcut) on the // jet's constituents. // // At the same time we output a summary of what has been done and the // resulting subjets //---------------------------------------------------------- double Rsub = 0.5; double dcut = pow(Rsub/R,2); // a "header" for the output cout << "Ran " << jet_def.description() << endl; cout << "Showing the jets above " << ptmin << " GeV" << endl; cout << "And their subjets for Rsub = " << Rsub << endl; printf("%10s %15s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt", "n constituents"); // show the jets and their subjets for (unsigned int i = 0; i < inclusive_jets.size(); i++) { // get the subjets vector subjets = sorted_by_pt(inclusive_jets[i].exclusive_subjets(dcut)); cout << endl; // print the jet and its subjets printf("%5u %15.8f %15.8f %15.8f %8d\n", i, inclusive_jets[i].rap(), inclusive_jets[i].phi(), inclusive_jets[i].perp(), int(inclusive_jets[i].constituents().size())); for (unsigned int j=0; j .L jet-plots.C+ /// root> showjets(filename [, label]) /// #include #include #include #include #include #include "TLatex.h" #include "TROOT.h" #include "TCanvas.h" #include "TH2.h" #include "THStack.h" #include "TStyle.h" #include "TPaveLabel.h" #include "TColor.h" using namespace std; class JetHist { private: vector _jets; TH2D * _background; string _comment; public: static double default_etamax; static int default_nbins; JetHist(const string & filename, double etamax=default_etamax, int nbins=default_nbins); ~JetHist(); string comment() {return _comment;} THStack stack; TH2D * jet(int i) {return i>= 0 ? _jets[i] : _background;} }; double JetHist::default_etamax = 6.0; int JetHist::default_nbins = 40; // y: 2*nbins; phi: nbins // get jet "histograms" from filename which is expected to be made of repeated // blocks as follows: // jet# eta phi pt ... // ipart eta phi pt // ipart eta phi pt // ... // #END JetHist::JetHist (const string & filename, double etamax, int nbins) { ifstream file(filename.c_str()); string line; //double etamax=6; //double etamax=5; double phimax = 2*3.14159265; //int nbins=40; // construct a histogram for the background to the jets ostringstream bname; bname << filename <<"-background"; _background = new TH2D(bname.str().c_str(),bname.str().c_str(), 2*nbins,-etamax,etamax,nbins,0.0,phimax); //_background = new TH2D(bname.str().c_str(),bname.str().c_str(), // 2*nbins,-etamax,etamax,2,0.0,phimax); _background->SetFillColor(kWhite); // these were supposed to have labelled the axes, but it doesn't work. _background->GetXaxis()->SetTitle("#eta"); _background->GetYaxis()->SetTitle("#phi"); _background->GetZaxis()->SetTitle("p_{#perp}"); stack.Add(_background); while (getline(file,line)) { if (line.substr(0,1) != " ") { // all interesting lines start with space? // extract a comment if there is one if (line.substr(0,2) == "# ") { _comment = line.substr(2,line.length()-2); } continue; } ostringstream name; name << filename<<"-jet-"<< _jets.size(); TH2D * hist = new TH2D(name.str().c_str(),name.str().c_str(), 2*nbins,-etamax,etamax,nbins,0.0,phimax); int i; double eta, phi, pt; //cout << filename <<": jet "<<_jets.size()<> i >> eta >> phi >> pt; //cout << i << " "<Fill(eta,phi,pt); // fill at phi,eta with weight pt // workaround for bug in stacks: fill all lower elements of the stack // with a fake amount -- this, miraculously will lead to correct coloring // of the top of the stack! //for (unsigned int j = 0; j < _jets.size(); j++) { // _jets[j]->Fill(phi,eta,1e-7); //} } // give it a colour (whatever that means...) //hist->SetFillColor(_jets.size()); int njet = _jets.size(); //hist->SetFillColor(njet+2); hist->SetFillColor(njet%50+2); // %50 seems tomake to diff to many-jet case //if (njet == 0) hist->SetFillColor(kRed); //else if (njet == 1) hist->SetFillColor(kBlue); //else hist->SetFillColor(kGreen); // add it to the list of jets (so we can delete it later...) _jets.push_back(hist); // put it onto the stack stack.Add(hist); //if (njet == 2) break; //break; } } // clean up -------------- JetHist::~JetHist () { for (unsigned int i = 0; i < _jets.size(); i++) { delete _jets[i]; } delete _background; } //---------------------------------------------------------------------- /// set up a reasonable bunch of colours void set_default_colours(TCanvas * lego) { gStyle->SetOptStat(0); gStyle->SetPalette(1); gStyle->SetCanvasColor(1); gStyle->SetFrameFillColor(0); Int_t cancolor = 0; lego->SetFillColor(cancolor); int ngrey = 3; for (int ir = 0; ir < ngrey; ir++) { for (int ig = 0; ig < ngrey; ig++) { for (int ib = 0; ib < ngrey; ib++) { int icol = 7+ir + ngrey *ig + ngrey*ngrey * ib; TColor * color=(TColor*)(gROOT->GetListOfColors()->At(icol)); if (icol == 7) { // avoid white -- put grey instead color->SetRGB(0.5,0.5,0.5); } else { color->SetRGB(1-ir*1.0/ngrey,1-ig*1.0/ngrey,1-ib*1.0/ngrey); } } } } } //---------------------------------------------------------------------- /// show the jets contained in filename (as produced by /// ClusterSequence::print_jets_for_root()), with an optional label TCanvas * showjets (const char * filename, const char * label = 0) { // display the various 2-d drawing options gROOT->Reset(); // set up canvas TCanvas * lego = new TCanvas("lego","lego options",400,50,800,600); lego->SetTheta(30.0); lego->SetPhi(20.0); // orientation used for plots in subtraction paper //lego->SetTheta(62.15); //lego->SetPhi(9.15); ////vector col set_default_colours(lego); TPaveLabel pl; JetHist * jets = new JetHist(filename); jets->stack.Draw("lego1"); // cyl does not work with 5.16 if (label != 0) { Float_t x1=0.63, y1=0.875, x2=0.95, y2=0.925; pl.DrawPaveLabel(x1,y1,x2,y2,label,"brNDC"); } else if (jets->comment() != "") { Float_t x1=0.15, y1=0.875, x2=0.95, y2=0.925; pl.DrawPaveLabel(x1,y1,x2,y2,jets->comment().c_str(),"brNDC"); } // normal histogram labels not working, so draw them by hand TLatex l; l.SetTextAlign(22); l.SetTextSize(0.05); //l.DrawLatex(0.0,0.85,"anti-k_{t}, R=1"); l.SetTextSize(0.04); l.DrawLatex(0.20,-0.98,"y"); l.SetTextAlign(32); l.DrawLatex(-0.7,0.8,"p_{t} [GeV]"); l.DrawLatex(-0.6,-0.78,"#phi"); // do not delete jets -- otherwise you lose everything!; return lego; /// lego->Update(); } fastjet-3.0.6+dfsg.orig/example/root/Makefile.am0000644000175000017500000000003111766120141017675 0ustar sunsunEXTRA_DIST = jet-plots.C fastjet-3.0.6+dfsg.orig/example/01-basic.cc0000644000175000017500000000701211766120142016473 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example01 01 - basic usage example /// /// fastjet basic example program: /// simplest illustration of the usage of the basic classes: /// fastjet::PseudoJet, fastjet::JetDefinition and /// fastjet::ClusterSequence /// /// run it with : ./01-basic < data/single-event.dat /// /// Source code: 01-basic.cc //---------------------------------------------------------------------- //STARTHEADER // $Id: 01-basic.cc 2684 2011-11-14 07:41:44Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequence.hh" #include // needed for io #include // needed for io using namespace std; /// an example program showing how to use fastjet int main(){ // read in input particles //---------------------------------------------------------- vector input_particles; double px, py , pz, E; while (cin >> px >> py >> pz >> E) { // create a fastjet::PseudoJet with these components and put it onto // back of the input_particles vector input_particles.push_back(fastjet::PseudoJet(px,py,pz,E)); } // create a jet definition: // a jet algorithm with a given radius parameter //---------------------------------------------------------- double R = 0.6; fastjet::JetDefinition jet_def(fastjet::antikt_algorithm, R); // run the jet clustering with the above jet definition //---------------------------------------------------------- fastjet::ClusterSequence clust_seq(input_particles, jet_def); // get the resulting jets ordered in pt //---------------------------------------------------------- double ptmin = 5.0; vector inclusive_jets = sorted_by_pt(clust_seq.inclusive_jets(ptmin)); // tell the user what was done // - the description of the algorithm used // - extract the inclusive jets with pt > 5 GeV // show the output as // {index, rap, phi, pt} //---------------------------------------------------------- cout << "Ran " << jet_def.description() << endl; // label the columns printf("%5s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt"); // print out the details for each jet for (unsigned int i = 0; i < inclusive_jets.size(); i++) { printf("%5u %15.8f %15.8f %15.8f\n", i, inclusive_jets[i].rap(), inclusive_jets[i].phi(), inclusive_jets[i].perp()); } return 0; } fastjet-3.0.6+dfsg.orig/example/Makefile.in0000644000175000017500000022357012233506213016740 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # for the time being allow these things to be distributed but without # any particular help to go with them? This should change at some point VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = fastjet_example$(EXEEXT) fastjet_areas$(EXEEXT) \ fastjet_timing_plugins$(EXEEXT) 01-basic$(EXEEXT) \ 02-jetdef$(EXEEXT) 04-constituents$(EXEEXT) \ 05-eplus_eminus$(EXEEXT) 06-area$(EXEEXT) \ 07-subtraction$(EXEEXT) 08-selector$(EXEEXT) \ 09-user_info$(EXEEXT) 10-subjets$(EXEEXT) 11-filter$(EXEEXT) \ 12-boosted_higgs$(EXEEXT) 13-boosted_top$(EXEEXT) \ 14-groomers$(EXEEXT) $(am__EXEEXT_1) check_PROGRAMS = fastjet_example$(EXEEXT) fastjet_areas$(EXEEXT) # illustrates the usage of plugins @BUILD_PLUGIN_SISCONE_TRUE@am__append_1 = 03-plugin @BUILD_PLUGIN_SISCONE_FALSE@am__append_2 = 03-plugin.cc @BUILD_PLUGIN_SISCONE_TRUE@am__append_3 = -I$(srcdir)/../plugins/SISCone -I$(srcdir)/../plugins/SISCone/siscone @BUILD_PLUGIN_SISCONE_TRUE@am__append_4 = ../plugins/SISCone/libSISConePlugin.la ../plugins/SISCone/siscone/siscone/libsiscone.la ../plugins/SISCone/siscone/siscone/spherical/libsiscone_spherical.la @BUILD_PLUGIN_SISCONE_TRUE@am__append_5 = -I$(srcdir)/../plugins/SISCone -I$(srcdir)/../plugins/SISCone/siscone @BUILD_PLUGIN_SISCONE_TRUE@am__append_6 = ../plugins/SISCone/libSISConePlugin.la ../plugins/SISCone/siscone/siscone/libsiscone.la ../plugins/SISCone/siscone/siscone/spherical/libsiscone_spherical.la @BUILD_PLUGIN_CDFCONES_TRUE@am__append_7 = -I$(srcdir)/../plugins/CDFCones @BUILD_PLUGIN_CDFCONES_TRUE@am__append_8 = ../plugins/CDFCones/libCDFConesPlugin.la ../plugins/CDFCones/CDFcode/libCDFcode.la @BUILD_PLUGIN_PXCONE_TRUE@am__append_9 = -I$(srcdir)/../plugins/PxCone @BUILD_PLUGIN_PXCONE_TRUE@am__append_10 = ../plugins/PxCone/libPxConePlugin.la $(FLIBS) @BUILD_PLUGIN_D0RUNIICONE_TRUE@am__append_11 = -I$(srcdir)/../plugins/D0RunIICone @BUILD_PLUGIN_D0RUNIICONE_TRUE@am__append_12 = ../plugins/D0RunIICone/libD0RunIIConePlugin.la $(FLIBS) @BUILD_PLUGIN_TRACKJET_TRUE@am__append_13 = -I$(srcdir)/../plugins/TrackJet @BUILD_PLUGIN_TRACKJET_TRUE@am__append_14 = ../plugins/TrackJet/libTrackJetPlugin.la @BUILD_PLUGIN_ATLASCONE_TRUE@am__append_15 = -I$(srcdir)/../plugins/ATLASCone @BUILD_PLUGIN_ATLASCONE_TRUE@am__append_16 = ../plugins/ATLASCone/libATLASConePlugin.la @BUILD_PLUGIN_EECAMBRIDGE_TRUE@am__append_17 = -I$(srcdir)/../plugins/EECambridge @BUILD_PLUGIN_EECAMBRIDGE_TRUE@am__append_18 = ../plugins/EECambridge/libEECambridgePlugin.la @BUILD_PLUGIN_JADE_TRUE@am__append_19 = -I$(srcdir)/../plugins/Jade @BUILD_PLUGIN_JADE_TRUE@am__append_20 = ../plugins/Jade/libJadePlugin.la @BUILD_PLUGIN_CMSITERATIVECONE_TRUE@am__append_21 = -I$(srcdir)/../plugins/CMSIterativeCone @BUILD_PLUGIN_CMSITERATIVECONE_TRUE@am__append_22 = ../plugins/CMSIterativeCone/libCMSIterativeConePlugin.la @BUILD_PLUGIN_D0RUNICONE_TRUE@am__append_23 = -I${srcdir}/../plugins/D0RunICone @BUILD_PLUGIN_D0RUNICONE_TRUE@am__append_24 = ../plugins/D0RunICone/libD0RunIConePlugin.la @BUILD_PLUGIN_GRIDJET_TRUE@am__append_25 = -I${srcdir}/../plugins/GridJet @BUILD_PLUGIN_GRIDJET_TRUE@am__append_26 = ../plugins/GridJet/libGridJetPlugin.la subdir = example DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @BUILD_PLUGIN_SISCONE_TRUE@am__EXEEXT_1 = 03-plugin$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) am_01_basic_OBJECTS = 01-01-basic.$(OBJEXT) 01_basic_OBJECTS = $(am_01_basic_OBJECTS) am__DEPENDENCIES_1 = 01_basic_DEPENDENCIES = ../src/libfastjet.la $(am__DEPENDENCIES_1) 01_basic_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(01_basic_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_02_jetdef_OBJECTS = 02-02-jetdef.$(OBJEXT) 02_jetdef_OBJECTS = $(am_02_jetdef_OBJECTS) 02_jetdef_DEPENDENCIES = ../src/libfastjet.la $(am__DEPENDENCIES_1) 02_jetdef_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(02_jetdef_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am__03_plugin_SOURCES_DIST = 03-plugin.cc @BUILD_PLUGIN_SISCONE_TRUE@am_03_plugin_OBJECTS = \ @BUILD_PLUGIN_SISCONE_TRUE@ 03_plugin-03-plugin.$(OBJEXT) 03_plugin_OBJECTS = $(am_03_plugin_OBJECTS) @BUILD_PLUGIN_SISCONE_TRUE@03_plugin_DEPENDENCIES = \ @BUILD_PLUGIN_SISCONE_TRUE@ ../src/libfastjet.la \ @BUILD_PLUGIN_SISCONE_TRUE@ $(am__DEPENDENCIES_1) \ @BUILD_PLUGIN_SISCONE_TRUE@ ../plugins/SISCone/libSISConePlugin.la \ @BUILD_PLUGIN_SISCONE_TRUE@ ../plugins/SISCone/siscone/siscone/libsiscone.la \ @BUILD_PLUGIN_SISCONE_TRUE@ ../plugins/SISCone/siscone/siscone/spherical/libsiscone_spherical.la 03_plugin_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(03_plugin_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_04_constituents_OBJECTS = 04-04-constituents.$(OBJEXT) 04_constituents_OBJECTS = $(am_04_constituents_OBJECTS) 04_constituents_DEPENDENCIES = ../src/libfastjet.la \ $(am__DEPENDENCIES_1) 04_constituents_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(04_constituents_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ am_05_eplus_eminus_OBJECTS = 05-05-eplus_eminus.$(OBJEXT) 05_eplus_eminus_OBJECTS = $(am_05_eplus_eminus_OBJECTS) 05_eplus_eminus_DEPENDENCIES = ../src/libfastjet.la \ $(am__DEPENDENCIES_1) 05_eplus_eminus_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(05_eplus_eminus_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ am_06_area_OBJECTS = 06-06-area.$(OBJEXT) 06_area_OBJECTS = $(am_06_area_OBJECTS) 06_area_DEPENDENCIES = ../src/libfastjet.la $(am__DEPENDENCIES_1) 06_area_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(06_area_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_07_subtraction_OBJECTS = 07-07-subtraction.$(OBJEXT) 07_subtraction_OBJECTS = $(am_07_subtraction_OBJECTS) 07_subtraction_DEPENDENCIES = ../tools/libfastjettools.la \ ../src/libfastjet.la $(am__DEPENDENCIES_1) 07_subtraction_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(07_subtraction_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ am_08_selector_OBJECTS = 08-08-selector.$(OBJEXT) 08_selector_OBJECTS = $(am_08_selector_OBJECTS) 08_selector_DEPENDENCIES = ../src/libfastjet.la $(am__DEPENDENCIES_1) 08_selector_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(08_selector_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_09_user_info_OBJECTS = 09-09-user_info.$(OBJEXT) 09_user_info_OBJECTS = $(am_09_user_info_OBJECTS) 09_user_info_DEPENDENCIES = ../tools/libfastjettools.la \ ../src/libfastjet.la $(am__DEPENDENCIES_1) 09_user_info_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(09_user_info_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_10_subjets_OBJECTS = 10-10-subjets.$(OBJEXT) 10_subjets_OBJECTS = $(am_10_subjets_OBJECTS) 10_subjets_DEPENDENCIES = ../src/libfastjet.la $(am__DEPENDENCIES_1) 10_subjets_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(10_subjets_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_11_filter_OBJECTS = 11-11-filter.$(OBJEXT) 11_filter_OBJECTS = $(am_11_filter_OBJECTS) 11_filter_DEPENDENCIES = ../tools/libfastjettools.la \ ../src/libfastjet.la $(am__DEPENDENCIES_1) 11_filter_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(11_filter_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_12_boosted_higgs_OBJECTS = 12-12-boosted_higgs.$(OBJEXT) 12_boosted_higgs_OBJECTS = $(am_12_boosted_higgs_OBJECTS) 12_boosted_higgs_DEPENDENCIES = ../tools/libfastjettools.la \ ../src/libfastjet.la $(am__DEPENDENCIES_1) 12_boosted_higgs_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(12_boosted_higgs_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ am_13_boosted_top_OBJECTS = 13-13-boosted_top.$(OBJEXT) 13_boosted_top_OBJECTS = $(am_13_boosted_top_OBJECTS) 13_boosted_top_DEPENDENCIES = ../tools/libfastjettools.la \ ../src/libfastjet.la $(am__DEPENDENCIES_1) 13_boosted_top_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(13_boosted_top_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ am_14_groomers_OBJECTS = 14-14-groomers.$(OBJEXT) 14_groomers_OBJECTS = $(am_14_groomers_OBJECTS) 14_groomers_DEPENDENCIES = ../tools/libfastjettools.la \ ../src/libfastjet.la $(am__DEPENDENCIES_1) 14_groomers_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(14_groomers_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_fastjet_areas_OBJECTS = fastjet_areas-fastjet_areas.$(OBJEXT) fastjet_areas_OBJECTS = $(am_fastjet_areas_OBJECTS) fastjet_areas_DEPENDENCIES = ../src/libfastjet.la \ $(am__DEPENDENCIES_1) $(am__append_4) fastjet_areas_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(fastjet_areas_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_fastjet_example_OBJECTS = \ fastjet_example-fastjet_example.$(OBJEXT) fastjet_example_OBJECTS = $(am_fastjet_example_OBJECTS) fastjet_example_DEPENDENCIES = ../src/libfastjet.la \ $(am__DEPENDENCIES_1) fastjet_example_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(fastjet_example_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ am_fastjet_timing_plugins_OBJECTS = \ fastjet_timing_plugins-fastjet_timing_plugins.$(OBJEXT) \ fastjet_timing_plugins-CmdLine.$(OBJEXT) fastjet_timing_plugins_OBJECTS = $(am_fastjet_timing_plugins_OBJECTS) @BUILD_PLUGIN_PXCONE_TRUE@am__DEPENDENCIES_2 = ../plugins/PxCone/libPxConePlugin.la \ @BUILD_PLUGIN_PXCONE_TRUE@ $(am__DEPENDENCIES_1) @BUILD_PLUGIN_D0RUNIICONE_TRUE@am__DEPENDENCIES_3 = ../plugins/D0RunIICone/libD0RunIIConePlugin.la \ @BUILD_PLUGIN_D0RUNIICONE_TRUE@ $(am__DEPENDENCIES_1) fastjet_timing_plugins_DEPENDENCIES = ../src/libfastjet.la \ $(am__DEPENDENCIES_1) ../tools/libfastjettools.la \ $(am__append_6) $(am__append_8) $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_3) $(am__append_14) $(am__append_16) \ $(am__append_18) $(am__append_20) $(am__append_22) \ $(am__append_24) $(am__append_26) fastjet_timing_plugins_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(fastjet_timing_plugins_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/fastjet depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(01_basic_SOURCES) $(02_jetdef_SOURCES) \ $(03_plugin_SOURCES) $(04_constituents_SOURCES) \ $(05_eplus_eminus_SOURCES) $(06_area_SOURCES) \ $(07_subtraction_SOURCES) $(08_selector_SOURCES) \ $(09_user_info_SOURCES) $(10_subjets_SOURCES) \ $(11_filter_SOURCES) $(12_boosted_higgs_SOURCES) \ $(13_boosted_top_SOURCES) $(14_groomers_SOURCES) \ $(fastjet_areas_SOURCES) $(fastjet_example_SOURCES) \ $(fastjet_timing_plugins_SOURCES) DIST_SOURCES = $(01_basic_SOURCES) $(02_jetdef_SOURCES) \ $(am__03_plugin_SOURCES_DIST) $(04_constituents_SOURCES) \ $(05_eplus_eminus_SOURCES) $(06_area_SOURCES) \ $(07_subtraction_SOURCES) $(08_selector_SOURCES) \ $(09_user_info_SOURCES) $(10_subjets_SOURCES) \ $(11_filter_SOURCES) $(12_boosted_higgs_SOURCES) \ $(13_boosted_top_SOURCES) $(14_groomers_SOURCES) \ $(fastjet_areas_SOURCES) $(fastjet_example_SOURCES) \ $(fastjet_timing_plugins_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = data root EXTRA_DIST = Makefile.alt ktjet_example.cc ktjet_timing.cc CmdLine.hh \ makefile.static $(am__append_2) # basic usage example 01_basic_SOURCES = 01-basic.cc 01_basic_SHORTNAME = 01 01_basic_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 01_basic_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # further illustrates the usage of jet definitions 02_jetdef_SOURCES = 02-jetdef.cc 02_jetdef_SHORTNAME = 02 02_jetdef_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 02_jetdef_LDADD = ../src/libfastjet.la $(CGAL_LIBS) @BUILD_PLUGIN_SISCONE_TRUE@03_plugin_SOURCES = 03-plugin.cc #03_plugin_SHORTNAME = 03 @BUILD_PLUGIN_SISCONE_TRUE@03_plugin_CXXFLAGS = $(AM_CXXFLAGS) \ @BUILD_PLUGIN_SISCONE_TRUE@ $(CGAL_CPPFLAGS) \ @BUILD_PLUGIN_SISCONE_TRUE@ -I$(srcdir)/../include \ @BUILD_PLUGIN_SISCONE_TRUE@ -I$(srcdir)/../plugins/SISCone \ @BUILD_PLUGIN_SISCONE_TRUE@ -I$(srcdir)/../plugins/SISCone/siscone @BUILD_PLUGIN_SISCONE_TRUE@03_plugin_LDADD = ../src/libfastjet.la \ @BUILD_PLUGIN_SISCONE_TRUE@ $(CGAL_LIBS) \ @BUILD_PLUGIN_SISCONE_TRUE@ ../plugins/SISCone/libSISConePlugin.la \ @BUILD_PLUGIN_SISCONE_TRUE@ ../plugins/SISCone/siscone/siscone/libsiscone.la \ @BUILD_PLUGIN_SISCONE_TRUE@ ../plugins/SISCone/siscone/siscone/spherical/libsiscone_spherical.la # illustrate the access to the constituents 04_constituents_SOURCES = 04-constituents.cc 04_constituents_SHORTNAME = 04 04_constituents_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 04_constituents_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # illustrate clustering in e+e- collisions 05_eplus_eminus_SOURCES = 05-eplus_eminus.cc 05_eplus_eminus_SHORTNAME = 05 05_eplus_eminus_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 05_eplus_eminus_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # illustrate the computation of jet areas 06_area_SOURCES = 06-area.cc 06_area_SHORTNAME = 06 06_area_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 06_area_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # illustrate the background subtraction using jet areas 07_subtraction_SOURCES = 07-subtraction.cc 07_subtraction_SHORTNAME = 07 07_subtraction_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 07_subtraction_LDADD = ../tools/libfastjettools.la ../src/libfastjet.la $(CGAL_LIBS) # illustrate the use of Selector's 08_selector_SOURCES = 08-selector.cc 08_selector_SHORTNAME = 08 08_selector_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 08_selector_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # illustrate how to associate user information to the jets 09_user_info_SOURCES = 09-user_info.cc 09_user_info_SHORTNAME = 09 09_user_info_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 09_user_info_LDADD = ../tools/libfastjettools.la ../src/libfastjet.la $(CGAL_LIBS) # illustrate how to access subjets 10_subjets_SOURCES = 10-subjets.cc 10_subjets_SHORTNAME = 10 10_subjets_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 10_subjets_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # illustrate the use of Filter 11_filter_SOURCES = 11-filter.cc 11_filter_SHORTNAME = 11 11_filter_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 11_filter_LDADD = ../tools/libfastjettools.la ../src/libfastjet.la $(CGAL_LIBS) # illustrate how to tag boosted higgs 12_boosted_higgs_SOURCES = 12-boosted_higgs.cc 12_boosted_higgs_SHORTNAME = 12 12_boosted_higgs_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 12_boosted_higgs_LDADD = ../tools/libfastjettools.la ../src/libfastjet.la $(CGAL_LIBS) # illustrate how to tag boosted top 13_boosted_top_SOURCES = 13-boosted_top.cc 13_boosted_top_SHORTNAME = 13 13_boosted_top_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 13_boosted_top_LDADD = ../tools/libfastjettools.la ../src/libfastjet.la $(CGAL_LIBS) # illustrate how to use various groomers in a unified manner 14_groomers_SOURCES = 14-groomers.cc 14_groomers_SHORTNAME = 14 14_groomers_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 14_groomers_LDADD = ../tools/libfastjettools.la ../src/libfastjet.la $(CGAL_LIBS) # backward-compatible + make-check-related things fastjet_example_SOURCES = fastjet_example.cc fastjet_example_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include fastjet_example_LDADD = ../src/libfastjet.la $(CGAL_LIBS) fastjet_areas_SOURCES = fastjet_areas.cc fastjet_areas_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) \ -I$(srcdir)/../include $(am__append_3) fastjet_areas_LDADD = ../src/libfastjet.la $(CGAL_LIBS) \ $(am__append_4) fastjet_timing_plugins_SOURCES = fastjet_timing_plugins.cc CmdLine.cc fastjet_timing_plugins_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) \ -I$(srcdir)/../include -I$(srcdir)/../tools $(am__append_5) \ $(am__append_7) $(am__append_9) $(am__append_11) \ $(am__append_13) $(am__append_15) $(am__append_17) \ $(am__append_19) $(am__append_21) $(am__append_23) \ $(am__append_25) fastjet_timing_plugins_LDADD = ../src/libfastjet.la $(CGAL_LIBS) \ ../tools/libfastjettools.la $(am__append_6) $(am__append_8) \ $(am__append_10) $(am__append_12) $(am__append_14) \ $(am__append_16) $(am__append_18) $(am__append_20) \ $(am__append_22) $(am__append_24) $(am__append_26) all: all-recursive .SUFFIXES: .SUFFIXES: .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu example/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu example/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list 01-basic$(EXEEXT): $(01_basic_OBJECTS) $(01_basic_DEPENDENCIES) @rm -f 01-basic$(EXEEXT) $(01_basic_LINK) $(01_basic_OBJECTS) $(01_basic_LDADD) $(LIBS) 02-jetdef$(EXEEXT): $(02_jetdef_OBJECTS) $(02_jetdef_DEPENDENCIES) @rm -f 02-jetdef$(EXEEXT) $(02_jetdef_LINK) $(02_jetdef_OBJECTS) $(02_jetdef_LDADD) $(LIBS) 03-plugin$(EXEEXT): $(03_plugin_OBJECTS) $(03_plugin_DEPENDENCIES) @rm -f 03-plugin$(EXEEXT) $(03_plugin_LINK) $(03_plugin_OBJECTS) $(03_plugin_LDADD) $(LIBS) 04-constituents$(EXEEXT): $(04_constituents_OBJECTS) $(04_constituents_DEPENDENCIES) @rm -f 04-constituents$(EXEEXT) $(04_constituents_LINK) $(04_constituents_OBJECTS) $(04_constituents_LDADD) $(LIBS) 05-eplus_eminus$(EXEEXT): $(05_eplus_eminus_OBJECTS) $(05_eplus_eminus_DEPENDENCIES) @rm -f 05-eplus_eminus$(EXEEXT) $(05_eplus_eminus_LINK) $(05_eplus_eminus_OBJECTS) $(05_eplus_eminus_LDADD) $(LIBS) 06-area$(EXEEXT): $(06_area_OBJECTS) $(06_area_DEPENDENCIES) @rm -f 06-area$(EXEEXT) $(06_area_LINK) $(06_area_OBJECTS) $(06_area_LDADD) $(LIBS) 07-subtraction$(EXEEXT): $(07_subtraction_OBJECTS) $(07_subtraction_DEPENDENCIES) @rm -f 07-subtraction$(EXEEXT) $(07_subtraction_LINK) $(07_subtraction_OBJECTS) $(07_subtraction_LDADD) $(LIBS) 08-selector$(EXEEXT): $(08_selector_OBJECTS) $(08_selector_DEPENDENCIES) @rm -f 08-selector$(EXEEXT) $(08_selector_LINK) $(08_selector_OBJECTS) $(08_selector_LDADD) $(LIBS) 09-user_info$(EXEEXT): $(09_user_info_OBJECTS) $(09_user_info_DEPENDENCIES) @rm -f 09-user_info$(EXEEXT) $(09_user_info_LINK) $(09_user_info_OBJECTS) $(09_user_info_LDADD) $(LIBS) 10-subjets$(EXEEXT): $(10_subjets_OBJECTS) $(10_subjets_DEPENDENCIES) @rm -f 10-subjets$(EXEEXT) $(10_subjets_LINK) $(10_subjets_OBJECTS) $(10_subjets_LDADD) $(LIBS) 11-filter$(EXEEXT): $(11_filter_OBJECTS) $(11_filter_DEPENDENCIES) @rm -f 11-filter$(EXEEXT) $(11_filter_LINK) $(11_filter_OBJECTS) $(11_filter_LDADD) $(LIBS) 12-boosted_higgs$(EXEEXT): $(12_boosted_higgs_OBJECTS) $(12_boosted_higgs_DEPENDENCIES) @rm -f 12-boosted_higgs$(EXEEXT) $(12_boosted_higgs_LINK) $(12_boosted_higgs_OBJECTS) $(12_boosted_higgs_LDADD) $(LIBS) 13-boosted_top$(EXEEXT): $(13_boosted_top_OBJECTS) $(13_boosted_top_DEPENDENCIES) @rm -f 13-boosted_top$(EXEEXT) $(13_boosted_top_LINK) $(13_boosted_top_OBJECTS) $(13_boosted_top_LDADD) $(LIBS) 14-groomers$(EXEEXT): $(14_groomers_OBJECTS) $(14_groomers_DEPENDENCIES) @rm -f 14-groomers$(EXEEXT) $(14_groomers_LINK) $(14_groomers_OBJECTS) $(14_groomers_LDADD) $(LIBS) fastjet_areas$(EXEEXT): $(fastjet_areas_OBJECTS) $(fastjet_areas_DEPENDENCIES) @rm -f fastjet_areas$(EXEEXT) $(fastjet_areas_LINK) $(fastjet_areas_OBJECTS) $(fastjet_areas_LDADD) $(LIBS) fastjet_example$(EXEEXT): $(fastjet_example_OBJECTS) $(fastjet_example_DEPENDENCIES) @rm -f fastjet_example$(EXEEXT) $(fastjet_example_LINK) $(fastjet_example_OBJECTS) $(fastjet_example_LDADD) $(LIBS) fastjet_timing_plugins$(EXEEXT): $(fastjet_timing_plugins_OBJECTS) $(fastjet_timing_plugins_DEPENDENCIES) @rm -f fastjet_timing_plugins$(EXEEXT) $(fastjet_timing_plugins_LINK) $(fastjet_timing_plugins_OBJECTS) $(fastjet_timing_plugins_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/01-01-basic.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/02-02-jetdef.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/03_plugin-03-plugin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/04-04-constituents.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/05-05-eplus_eminus.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/06-06-area.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/07-07-subtraction.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/08-08-selector.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/09-09-user_info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/10-10-subjets.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/11-11-filter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/12-12-boosted_higgs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/13-13-boosted_top.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/14-14-groomers.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fastjet_areas-fastjet_areas.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fastjet_example-fastjet_example.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fastjet_timing_plugins-CmdLine.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fastjet_timing_plugins-fastjet_timing_plugins.Po@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< 01-01-basic.o: 01-basic.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(01_basic_CXXFLAGS) $(CXXFLAGS) -MT 01-01-basic.o -MD -MP -MF $(DEPDIR)/01-01-basic.Tpo -c -o 01-01-basic.o `test -f '01-basic.cc' || echo '$(srcdir)/'`01-basic.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/01-01-basic.Tpo $(DEPDIR)/01-01-basic.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='01-basic.cc' object='01-01-basic.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(01_basic_CXXFLAGS) $(CXXFLAGS) -c -o 01-01-basic.o `test -f '01-basic.cc' || echo '$(srcdir)/'`01-basic.cc 01-01-basic.obj: 01-basic.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(01_basic_CXXFLAGS) $(CXXFLAGS) -MT 01-01-basic.obj -MD -MP -MF $(DEPDIR)/01-01-basic.Tpo -c -o 01-01-basic.obj `if test -f '01-basic.cc'; then $(CYGPATH_W) '01-basic.cc'; else $(CYGPATH_W) '$(srcdir)/01-basic.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/01-01-basic.Tpo $(DEPDIR)/01-01-basic.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='01-basic.cc' object='01-01-basic.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(01_basic_CXXFLAGS) $(CXXFLAGS) -c -o 01-01-basic.obj `if test -f '01-basic.cc'; then $(CYGPATH_W) '01-basic.cc'; else $(CYGPATH_W) '$(srcdir)/01-basic.cc'; fi` 02-02-jetdef.o: 02-jetdef.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(02_jetdef_CXXFLAGS) $(CXXFLAGS) -MT 02-02-jetdef.o -MD -MP -MF $(DEPDIR)/02-02-jetdef.Tpo -c -o 02-02-jetdef.o `test -f '02-jetdef.cc' || echo '$(srcdir)/'`02-jetdef.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/02-02-jetdef.Tpo $(DEPDIR)/02-02-jetdef.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='02-jetdef.cc' object='02-02-jetdef.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(02_jetdef_CXXFLAGS) $(CXXFLAGS) -c -o 02-02-jetdef.o `test -f '02-jetdef.cc' || echo '$(srcdir)/'`02-jetdef.cc 02-02-jetdef.obj: 02-jetdef.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(02_jetdef_CXXFLAGS) $(CXXFLAGS) -MT 02-02-jetdef.obj -MD -MP -MF $(DEPDIR)/02-02-jetdef.Tpo -c -o 02-02-jetdef.obj `if test -f '02-jetdef.cc'; then $(CYGPATH_W) '02-jetdef.cc'; else $(CYGPATH_W) '$(srcdir)/02-jetdef.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/02-02-jetdef.Tpo $(DEPDIR)/02-02-jetdef.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='02-jetdef.cc' object='02-02-jetdef.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(02_jetdef_CXXFLAGS) $(CXXFLAGS) -c -o 02-02-jetdef.obj `if test -f '02-jetdef.cc'; then $(CYGPATH_W) '02-jetdef.cc'; else $(CYGPATH_W) '$(srcdir)/02-jetdef.cc'; fi` 03_plugin-03-plugin.o: 03-plugin.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(03_plugin_CXXFLAGS) $(CXXFLAGS) -MT 03_plugin-03-plugin.o -MD -MP -MF $(DEPDIR)/03_plugin-03-plugin.Tpo -c -o 03_plugin-03-plugin.o `test -f '03-plugin.cc' || echo '$(srcdir)/'`03-plugin.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/03_plugin-03-plugin.Tpo $(DEPDIR)/03_plugin-03-plugin.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='03-plugin.cc' object='03_plugin-03-plugin.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(03_plugin_CXXFLAGS) $(CXXFLAGS) -c -o 03_plugin-03-plugin.o `test -f '03-plugin.cc' || echo '$(srcdir)/'`03-plugin.cc 03_plugin-03-plugin.obj: 03-plugin.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(03_plugin_CXXFLAGS) $(CXXFLAGS) -MT 03_plugin-03-plugin.obj -MD -MP -MF $(DEPDIR)/03_plugin-03-plugin.Tpo -c -o 03_plugin-03-plugin.obj `if test -f '03-plugin.cc'; then $(CYGPATH_W) '03-plugin.cc'; else $(CYGPATH_W) '$(srcdir)/03-plugin.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/03_plugin-03-plugin.Tpo $(DEPDIR)/03_plugin-03-plugin.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='03-plugin.cc' object='03_plugin-03-plugin.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(03_plugin_CXXFLAGS) $(CXXFLAGS) -c -o 03_plugin-03-plugin.obj `if test -f '03-plugin.cc'; then $(CYGPATH_W) '03-plugin.cc'; else $(CYGPATH_W) '$(srcdir)/03-plugin.cc'; fi` 04-04-constituents.o: 04-constituents.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(04_constituents_CXXFLAGS) $(CXXFLAGS) -MT 04-04-constituents.o -MD -MP -MF $(DEPDIR)/04-04-constituents.Tpo -c -o 04-04-constituents.o `test -f '04-constituents.cc' || echo '$(srcdir)/'`04-constituents.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/04-04-constituents.Tpo $(DEPDIR)/04-04-constituents.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='04-constituents.cc' object='04-04-constituents.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(04_constituents_CXXFLAGS) $(CXXFLAGS) -c -o 04-04-constituents.o `test -f '04-constituents.cc' || echo '$(srcdir)/'`04-constituents.cc 04-04-constituents.obj: 04-constituents.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(04_constituents_CXXFLAGS) $(CXXFLAGS) -MT 04-04-constituents.obj -MD -MP -MF $(DEPDIR)/04-04-constituents.Tpo -c -o 04-04-constituents.obj `if test -f '04-constituents.cc'; then $(CYGPATH_W) '04-constituents.cc'; else $(CYGPATH_W) '$(srcdir)/04-constituents.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/04-04-constituents.Tpo $(DEPDIR)/04-04-constituents.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='04-constituents.cc' object='04-04-constituents.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(04_constituents_CXXFLAGS) $(CXXFLAGS) -c -o 04-04-constituents.obj `if test -f '04-constituents.cc'; then $(CYGPATH_W) '04-constituents.cc'; else $(CYGPATH_W) '$(srcdir)/04-constituents.cc'; fi` 05-05-eplus_eminus.o: 05-eplus_eminus.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(05_eplus_eminus_CXXFLAGS) $(CXXFLAGS) -MT 05-05-eplus_eminus.o -MD -MP -MF $(DEPDIR)/05-05-eplus_eminus.Tpo -c -o 05-05-eplus_eminus.o `test -f '05-eplus_eminus.cc' || echo '$(srcdir)/'`05-eplus_eminus.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/05-05-eplus_eminus.Tpo $(DEPDIR)/05-05-eplus_eminus.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='05-eplus_eminus.cc' object='05-05-eplus_eminus.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(05_eplus_eminus_CXXFLAGS) $(CXXFLAGS) -c -o 05-05-eplus_eminus.o `test -f '05-eplus_eminus.cc' || echo '$(srcdir)/'`05-eplus_eminus.cc 05-05-eplus_eminus.obj: 05-eplus_eminus.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(05_eplus_eminus_CXXFLAGS) $(CXXFLAGS) -MT 05-05-eplus_eminus.obj -MD -MP -MF $(DEPDIR)/05-05-eplus_eminus.Tpo -c -o 05-05-eplus_eminus.obj `if test -f '05-eplus_eminus.cc'; then $(CYGPATH_W) '05-eplus_eminus.cc'; else $(CYGPATH_W) '$(srcdir)/05-eplus_eminus.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/05-05-eplus_eminus.Tpo $(DEPDIR)/05-05-eplus_eminus.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='05-eplus_eminus.cc' object='05-05-eplus_eminus.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(05_eplus_eminus_CXXFLAGS) $(CXXFLAGS) -c -o 05-05-eplus_eminus.obj `if test -f '05-eplus_eminus.cc'; then $(CYGPATH_W) '05-eplus_eminus.cc'; else $(CYGPATH_W) '$(srcdir)/05-eplus_eminus.cc'; fi` 06-06-area.o: 06-area.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(06_area_CXXFLAGS) $(CXXFLAGS) -MT 06-06-area.o -MD -MP -MF $(DEPDIR)/06-06-area.Tpo -c -o 06-06-area.o `test -f '06-area.cc' || echo '$(srcdir)/'`06-area.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/06-06-area.Tpo $(DEPDIR)/06-06-area.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='06-area.cc' object='06-06-area.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(06_area_CXXFLAGS) $(CXXFLAGS) -c -o 06-06-area.o `test -f '06-area.cc' || echo '$(srcdir)/'`06-area.cc 06-06-area.obj: 06-area.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(06_area_CXXFLAGS) $(CXXFLAGS) -MT 06-06-area.obj -MD -MP -MF $(DEPDIR)/06-06-area.Tpo -c -o 06-06-area.obj `if test -f '06-area.cc'; then $(CYGPATH_W) '06-area.cc'; else $(CYGPATH_W) '$(srcdir)/06-area.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/06-06-area.Tpo $(DEPDIR)/06-06-area.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='06-area.cc' object='06-06-area.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(06_area_CXXFLAGS) $(CXXFLAGS) -c -o 06-06-area.obj `if test -f '06-area.cc'; then $(CYGPATH_W) '06-area.cc'; else $(CYGPATH_W) '$(srcdir)/06-area.cc'; fi` 07-07-subtraction.o: 07-subtraction.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(07_subtraction_CXXFLAGS) $(CXXFLAGS) -MT 07-07-subtraction.o -MD -MP -MF $(DEPDIR)/07-07-subtraction.Tpo -c -o 07-07-subtraction.o `test -f '07-subtraction.cc' || echo '$(srcdir)/'`07-subtraction.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/07-07-subtraction.Tpo $(DEPDIR)/07-07-subtraction.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='07-subtraction.cc' object='07-07-subtraction.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(07_subtraction_CXXFLAGS) $(CXXFLAGS) -c -o 07-07-subtraction.o `test -f '07-subtraction.cc' || echo '$(srcdir)/'`07-subtraction.cc 07-07-subtraction.obj: 07-subtraction.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(07_subtraction_CXXFLAGS) $(CXXFLAGS) -MT 07-07-subtraction.obj -MD -MP -MF $(DEPDIR)/07-07-subtraction.Tpo -c -o 07-07-subtraction.obj `if test -f '07-subtraction.cc'; then $(CYGPATH_W) '07-subtraction.cc'; else $(CYGPATH_W) '$(srcdir)/07-subtraction.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/07-07-subtraction.Tpo $(DEPDIR)/07-07-subtraction.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='07-subtraction.cc' object='07-07-subtraction.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(07_subtraction_CXXFLAGS) $(CXXFLAGS) -c -o 07-07-subtraction.obj `if test -f '07-subtraction.cc'; then $(CYGPATH_W) '07-subtraction.cc'; else $(CYGPATH_W) '$(srcdir)/07-subtraction.cc'; fi` 08-08-selector.o: 08-selector.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(08_selector_CXXFLAGS) $(CXXFLAGS) -MT 08-08-selector.o -MD -MP -MF $(DEPDIR)/08-08-selector.Tpo -c -o 08-08-selector.o `test -f '08-selector.cc' || echo '$(srcdir)/'`08-selector.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/08-08-selector.Tpo $(DEPDIR)/08-08-selector.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='08-selector.cc' object='08-08-selector.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(08_selector_CXXFLAGS) $(CXXFLAGS) -c -o 08-08-selector.o `test -f '08-selector.cc' || echo '$(srcdir)/'`08-selector.cc 08-08-selector.obj: 08-selector.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(08_selector_CXXFLAGS) $(CXXFLAGS) -MT 08-08-selector.obj -MD -MP -MF $(DEPDIR)/08-08-selector.Tpo -c -o 08-08-selector.obj `if test -f '08-selector.cc'; then $(CYGPATH_W) '08-selector.cc'; else $(CYGPATH_W) '$(srcdir)/08-selector.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/08-08-selector.Tpo $(DEPDIR)/08-08-selector.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='08-selector.cc' object='08-08-selector.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(08_selector_CXXFLAGS) $(CXXFLAGS) -c -o 08-08-selector.obj `if test -f '08-selector.cc'; then $(CYGPATH_W) '08-selector.cc'; else $(CYGPATH_W) '$(srcdir)/08-selector.cc'; fi` 09-09-user_info.o: 09-user_info.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(09_user_info_CXXFLAGS) $(CXXFLAGS) -MT 09-09-user_info.o -MD -MP -MF $(DEPDIR)/09-09-user_info.Tpo -c -o 09-09-user_info.o `test -f '09-user_info.cc' || echo '$(srcdir)/'`09-user_info.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/09-09-user_info.Tpo $(DEPDIR)/09-09-user_info.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='09-user_info.cc' object='09-09-user_info.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(09_user_info_CXXFLAGS) $(CXXFLAGS) -c -o 09-09-user_info.o `test -f '09-user_info.cc' || echo '$(srcdir)/'`09-user_info.cc 09-09-user_info.obj: 09-user_info.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(09_user_info_CXXFLAGS) $(CXXFLAGS) -MT 09-09-user_info.obj -MD -MP -MF $(DEPDIR)/09-09-user_info.Tpo -c -o 09-09-user_info.obj `if test -f '09-user_info.cc'; then $(CYGPATH_W) '09-user_info.cc'; else $(CYGPATH_W) '$(srcdir)/09-user_info.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/09-09-user_info.Tpo $(DEPDIR)/09-09-user_info.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='09-user_info.cc' object='09-09-user_info.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(09_user_info_CXXFLAGS) $(CXXFLAGS) -c -o 09-09-user_info.obj `if test -f '09-user_info.cc'; then $(CYGPATH_W) '09-user_info.cc'; else $(CYGPATH_W) '$(srcdir)/09-user_info.cc'; fi` 10-10-subjets.o: 10-subjets.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(10_subjets_CXXFLAGS) $(CXXFLAGS) -MT 10-10-subjets.o -MD -MP -MF $(DEPDIR)/10-10-subjets.Tpo -c -o 10-10-subjets.o `test -f '10-subjets.cc' || echo '$(srcdir)/'`10-subjets.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/10-10-subjets.Tpo $(DEPDIR)/10-10-subjets.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='10-subjets.cc' object='10-10-subjets.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(10_subjets_CXXFLAGS) $(CXXFLAGS) -c -o 10-10-subjets.o `test -f '10-subjets.cc' || echo '$(srcdir)/'`10-subjets.cc 10-10-subjets.obj: 10-subjets.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(10_subjets_CXXFLAGS) $(CXXFLAGS) -MT 10-10-subjets.obj -MD -MP -MF $(DEPDIR)/10-10-subjets.Tpo -c -o 10-10-subjets.obj `if test -f '10-subjets.cc'; then $(CYGPATH_W) '10-subjets.cc'; else $(CYGPATH_W) '$(srcdir)/10-subjets.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/10-10-subjets.Tpo $(DEPDIR)/10-10-subjets.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='10-subjets.cc' object='10-10-subjets.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(10_subjets_CXXFLAGS) $(CXXFLAGS) -c -o 10-10-subjets.obj `if test -f '10-subjets.cc'; then $(CYGPATH_W) '10-subjets.cc'; else $(CYGPATH_W) '$(srcdir)/10-subjets.cc'; fi` 11-11-filter.o: 11-filter.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(11_filter_CXXFLAGS) $(CXXFLAGS) -MT 11-11-filter.o -MD -MP -MF $(DEPDIR)/11-11-filter.Tpo -c -o 11-11-filter.o `test -f '11-filter.cc' || echo '$(srcdir)/'`11-filter.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/11-11-filter.Tpo $(DEPDIR)/11-11-filter.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='11-filter.cc' object='11-11-filter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(11_filter_CXXFLAGS) $(CXXFLAGS) -c -o 11-11-filter.o `test -f '11-filter.cc' || echo '$(srcdir)/'`11-filter.cc 11-11-filter.obj: 11-filter.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(11_filter_CXXFLAGS) $(CXXFLAGS) -MT 11-11-filter.obj -MD -MP -MF $(DEPDIR)/11-11-filter.Tpo -c -o 11-11-filter.obj `if test -f '11-filter.cc'; then $(CYGPATH_W) '11-filter.cc'; else $(CYGPATH_W) '$(srcdir)/11-filter.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/11-11-filter.Tpo $(DEPDIR)/11-11-filter.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='11-filter.cc' object='11-11-filter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(11_filter_CXXFLAGS) $(CXXFLAGS) -c -o 11-11-filter.obj `if test -f '11-filter.cc'; then $(CYGPATH_W) '11-filter.cc'; else $(CYGPATH_W) '$(srcdir)/11-filter.cc'; fi` 12-12-boosted_higgs.o: 12-boosted_higgs.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(12_boosted_higgs_CXXFLAGS) $(CXXFLAGS) -MT 12-12-boosted_higgs.o -MD -MP -MF $(DEPDIR)/12-12-boosted_higgs.Tpo -c -o 12-12-boosted_higgs.o `test -f '12-boosted_higgs.cc' || echo '$(srcdir)/'`12-boosted_higgs.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/12-12-boosted_higgs.Tpo $(DEPDIR)/12-12-boosted_higgs.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='12-boosted_higgs.cc' object='12-12-boosted_higgs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(12_boosted_higgs_CXXFLAGS) $(CXXFLAGS) -c -o 12-12-boosted_higgs.o `test -f '12-boosted_higgs.cc' || echo '$(srcdir)/'`12-boosted_higgs.cc 12-12-boosted_higgs.obj: 12-boosted_higgs.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(12_boosted_higgs_CXXFLAGS) $(CXXFLAGS) -MT 12-12-boosted_higgs.obj -MD -MP -MF $(DEPDIR)/12-12-boosted_higgs.Tpo -c -o 12-12-boosted_higgs.obj `if test -f '12-boosted_higgs.cc'; then $(CYGPATH_W) '12-boosted_higgs.cc'; else $(CYGPATH_W) '$(srcdir)/12-boosted_higgs.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/12-12-boosted_higgs.Tpo $(DEPDIR)/12-12-boosted_higgs.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='12-boosted_higgs.cc' object='12-12-boosted_higgs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(12_boosted_higgs_CXXFLAGS) $(CXXFLAGS) -c -o 12-12-boosted_higgs.obj `if test -f '12-boosted_higgs.cc'; then $(CYGPATH_W) '12-boosted_higgs.cc'; else $(CYGPATH_W) '$(srcdir)/12-boosted_higgs.cc'; fi` 13-13-boosted_top.o: 13-boosted_top.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(13_boosted_top_CXXFLAGS) $(CXXFLAGS) -MT 13-13-boosted_top.o -MD -MP -MF $(DEPDIR)/13-13-boosted_top.Tpo -c -o 13-13-boosted_top.o `test -f '13-boosted_top.cc' || echo '$(srcdir)/'`13-boosted_top.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/13-13-boosted_top.Tpo $(DEPDIR)/13-13-boosted_top.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='13-boosted_top.cc' object='13-13-boosted_top.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(13_boosted_top_CXXFLAGS) $(CXXFLAGS) -c -o 13-13-boosted_top.o `test -f '13-boosted_top.cc' || echo '$(srcdir)/'`13-boosted_top.cc 13-13-boosted_top.obj: 13-boosted_top.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(13_boosted_top_CXXFLAGS) $(CXXFLAGS) -MT 13-13-boosted_top.obj -MD -MP -MF $(DEPDIR)/13-13-boosted_top.Tpo -c -o 13-13-boosted_top.obj `if test -f '13-boosted_top.cc'; then $(CYGPATH_W) '13-boosted_top.cc'; else $(CYGPATH_W) '$(srcdir)/13-boosted_top.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/13-13-boosted_top.Tpo $(DEPDIR)/13-13-boosted_top.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='13-boosted_top.cc' object='13-13-boosted_top.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(13_boosted_top_CXXFLAGS) $(CXXFLAGS) -c -o 13-13-boosted_top.obj `if test -f '13-boosted_top.cc'; then $(CYGPATH_W) '13-boosted_top.cc'; else $(CYGPATH_W) '$(srcdir)/13-boosted_top.cc'; fi` 14-14-groomers.o: 14-groomers.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(14_groomers_CXXFLAGS) $(CXXFLAGS) -MT 14-14-groomers.o -MD -MP -MF $(DEPDIR)/14-14-groomers.Tpo -c -o 14-14-groomers.o `test -f '14-groomers.cc' || echo '$(srcdir)/'`14-groomers.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/14-14-groomers.Tpo $(DEPDIR)/14-14-groomers.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='14-groomers.cc' object='14-14-groomers.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(14_groomers_CXXFLAGS) $(CXXFLAGS) -c -o 14-14-groomers.o `test -f '14-groomers.cc' || echo '$(srcdir)/'`14-groomers.cc 14-14-groomers.obj: 14-groomers.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(14_groomers_CXXFLAGS) $(CXXFLAGS) -MT 14-14-groomers.obj -MD -MP -MF $(DEPDIR)/14-14-groomers.Tpo -c -o 14-14-groomers.obj `if test -f '14-groomers.cc'; then $(CYGPATH_W) '14-groomers.cc'; else $(CYGPATH_W) '$(srcdir)/14-groomers.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/14-14-groomers.Tpo $(DEPDIR)/14-14-groomers.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='14-groomers.cc' object='14-14-groomers.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(14_groomers_CXXFLAGS) $(CXXFLAGS) -c -o 14-14-groomers.obj `if test -f '14-groomers.cc'; then $(CYGPATH_W) '14-groomers.cc'; else $(CYGPATH_W) '$(srcdir)/14-groomers.cc'; fi` fastjet_areas-fastjet_areas.o: fastjet_areas.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_areas_CXXFLAGS) $(CXXFLAGS) -MT fastjet_areas-fastjet_areas.o -MD -MP -MF $(DEPDIR)/fastjet_areas-fastjet_areas.Tpo -c -o fastjet_areas-fastjet_areas.o `test -f 'fastjet_areas.cc' || echo '$(srcdir)/'`fastjet_areas.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/fastjet_areas-fastjet_areas.Tpo $(DEPDIR)/fastjet_areas-fastjet_areas.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fastjet_areas.cc' object='fastjet_areas-fastjet_areas.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_areas_CXXFLAGS) $(CXXFLAGS) -c -o fastjet_areas-fastjet_areas.o `test -f 'fastjet_areas.cc' || echo '$(srcdir)/'`fastjet_areas.cc fastjet_areas-fastjet_areas.obj: fastjet_areas.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_areas_CXXFLAGS) $(CXXFLAGS) -MT fastjet_areas-fastjet_areas.obj -MD -MP -MF $(DEPDIR)/fastjet_areas-fastjet_areas.Tpo -c -o fastjet_areas-fastjet_areas.obj `if test -f 'fastjet_areas.cc'; then $(CYGPATH_W) 'fastjet_areas.cc'; else $(CYGPATH_W) '$(srcdir)/fastjet_areas.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/fastjet_areas-fastjet_areas.Tpo $(DEPDIR)/fastjet_areas-fastjet_areas.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fastjet_areas.cc' object='fastjet_areas-fastjet_areas.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_areas_CXXFLAGS) $(CXXFLAGS) -c -o fastjet_areas-fastjet_areas.obj `if test -f 'fastjet_areas.cc'; then $(CYGPATH_W) 'fastjet_areas.cc'; else $(CYGPATH_W) '$(srcdir)/fastjet_areas.cc'; fi` fastjet_example-fastjet_example.o: fastjet_example.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_example_CXXFLAGS) $(CXXFLAGS) -MT fastjet_example-fastjet_example.o -MD -MP -MF $(DEPDIR)/fastjet_example-fastjet_example.Tpo -c -o fastjet_example-fastjet_example.o `test -f 'fastjet_example.cc' || echo '$(srcdir)/'`fastjet_example.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/fastjet_example-fastjet_example.Tpo $(DEPDIR)/fastjet_example-fastjet_example.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fastjet_example.cc' object='fastjet_example-fastjet_example.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_example_CXXFLAGS) $(CXXFLAGS) -c -o fastjet_example-fastjet_example.o `test -f 'fastjet_example.cc' || echo '$(srcdir)/'`fastjet_example.cc fastjet_example-fastjet_example.obj: fastjet_example.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_example_CXXFLAGS) $(CXXFLAGS) -MT fastjet_example-fastjet_example.obj -MD -MP -MF $(DEPDIR)/fastjet_example-fastjet_example.Tpo -c -o fastjet_example-fastjet_example.obj `if test -f 'fastjet_example.cc'; then $(CYGPATH_W) 'fastjet_example.cc'; else $(CYGPATH_W) '$(srcdir)/fastjet_example.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/fastjet_example-fastjet_example.Tpo $(DEPDIR)/fastjet_example-fastjet_example.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fastjet_example.cc' object='fastjet_example-fastjet_example.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_example_CXXFLAGS) $(CXXFLAGS) -c -o fastjet_example-fastjet_example.obj `if test -f 'fastjet_example.cc'; then $(CYGPATH_W) 'fastjet_example.cc'; else $(CYGPATH_W) '$(srcdir)/fastjet_example.cc'; fi` fastjet_timing_plugins-fastjet_timing_plugins.o: fastjet_timing_plugins.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_timing_plugins_CXXFLAGS) $(CXXFLAGS) -MT fastjet_timing_plugins-fastjet_timing_plugins.o -MD -MP -MF $(DEPDIR)/fastjet_timing_plugins-fastjet_timing_plugins.Tpo -c -o fastjet_timing_plugins-fastjet_timing_plugins.o `test -f 'fastjet_timing_plugins.cc' || echo '$(srcdir)/'`fastjet_timing_plugins.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/fastjet_timing_plugins-fastjet_timing_plugins.Tpo $(DEPDIR)/fastjet_timing_plugins-fastjet_timing_plugins.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fastjet_timing_plugins.cc' object='fastjet_timing_plugins-fastjet_timing_plugins.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_timing_plugins_CXXFLAGS) $(CXXFLAGS) -c -o fastjet_timing_plugins-fastjet_timing_plugins.o `test -f 'fastjet_timing_plugins.cc' || echo '$(srcdir)/'`fastjet_timing_plugins.cc fastjet_timing_plugins-fastjet_timing_plugins.obj: fastjet_timing_plugins.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_timing_plugins_CXXFLAGS) $(CXXFLAGS) -MT fastjet_timing_plugins-fastjet_timing_plugins.obj -MD -MP -MF $(DEPDIR)/fastjet_timing_plugins-fastjet_timing_plugins.Tpo -c -o fastjet_timing_plugins-fastjet_timing_plugins.obj `if test -f 'fastjet_timing_plugins.cc'; then $(CYGPATH_W) 'fastjet_timing_plugins.cc'; else $(CYGPATH_W) '$(srcdir)/fastjet_timing_plugins.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/fastjet_timing_plugins-fastjet_timing_plugins.Tpo $(DEPDIR)/fastjet_timing_plugins-fastjet_timing_plugins.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fastjet_timing_plugins.cc' object='fastjet_timing_plugins-fastjet_timing_plugins.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_timing_plugins_CXXFLAGS) $(CXXFLAGS) -c -o fastjet_timing_plugins-fastjet_timing_plugins.obj `if test -f 'fastjet_timing_plugins.cc'; then $(CYGPATH_W) 'fastjet_timing_plugins.cc'; else $(CYGPATH_W) '$(srcdir)/fastjet_timing_plugins.cc'; fi` fastjet_timing_plugins-CmdLine.o: CmdLine.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_timing_plugins_CXXFLAGS) $(CXXFLAGS) -MT fastjet_timing_plugins-CmdLine.o -MD -MP -MF $(DEPDIR)/fastjet_timing_plugins-CmdLine.Tpo -c -o fastjet_timing_plugins-CmdLine.o `test -f 'CmdLine.cc' || echo '$(srcdir)/'`CmdLine.cc @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/fastjet_timing_plugins-CmdLine.Tpo $(DEPDIR)/fastjet_timing_plugins-CmdLine.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CmdLine.cc' object='fastjet_timing_plugins-CmdLine.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_timing_plugins_CXXFLAGS) $(CXXFLAGS) -c -o fastjet_timing_plugins-CmdLine.o `test -f 'CmdLine.cc' || echo '$(srcdir)/'`CmdLine.cc fastjet_timing_plugins-CmdLine.obj: CmdLine.cc @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_timing_plugins_CXXFLAGS) $(CXXFLAGS) -MT fastjet_timing_plugins-CmdLine.obj -MD -MP -MF $(DEPDIR)/fastjet_timing_plugins-CmdLine.Tpo -c -o fastjet_timing_plugins-CmdLine.obj `if test -f 'CmdLine.cc'; then $(CYGPATH_W) 'CmdLine.cc'; else $(CYGPATH_W) '$(srcdir)/CmdLine.cc'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/fastjet_timing_plugins-CmdLine.Tpo $(DEPDIR)/fastjet_timing_plugins-CmdLine.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='CmdLine.cc' object='fastjet_timing_plugins-CmdLine.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fastjet_timing_plugins_CXXFLAGS) $(CXXFLAGS) -c -o fastjet_timing_plugins-CmdLine.obj `if test -f 'CmdLine.cc'; then $(CYGPATH_W) 'CmdLine.cc'; else $(CYGPATH_W) '$(srcdir)/CmdLine.cc'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ clean-noinstPROGRAMS mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-checkPROGRAMS \ clean-generic clean-libtool clean-noinstPROGRAMS ctags \ ctags-recursive distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am # add entries for other plugins here #TESTS_ENVIRONMENT = $(SHELL) #TESTS = test-example.sh test-areas.sh # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/example/02-jetdef.cc0000644000175000017500000001173511766120142016663 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example02 02 - changing the jet definition /// /// fastjet basic example program: /// illustration of the usage of how to change the jet definition /// used for the clustering (see also fastjet::JetDefinition) /// /// run it with : ./02-jetdef < data/single-event.dat /// /// Source code: 02-jetdef.cc //---------------------------------------------------------------------- // //STARTHEADER // $Id: 02-jetdef.cc 2684 2011-11-14 07:41:44Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequence.hh" #include // needed for io #include // needed for io using namespace std; /// an example program showing how to use fastjet int main(){ // read in input particles //---------------------------------------------------------- vector input_particles; double px, py , pz, E; while (cin >> px >> py >> pz >> E) { // create a fastjet::PseudoJet with these components and put it onto // back of the input_particles vector input_particles.push_back(fastjet::PseudoJet(px,py,pz,E)); } // create a jet definition: // a jet algorithm with a given radius parameter //---------------------------------------------------------- // select a jet algorithm to use // // this could be one of // {kt_algorithm, cambridge_algorithm, antikt_algorithm, // genkt_algorithm, ee_kt_algorithm, ee_genkt_algorithm} // see example 03-plugin.cc for extra options using plugins // instead of naive algorithms) fastjet::JetAlgorithm jet_alg = fastjet::kt_algorithm; // when appropriate select a radius to use // // this would not be mandatory for e^+ e^- algorithms (see 05-eplus_eminus.cc) double R = 0.6; // select an __optional__ recombination scheme // // this could be one of // {E_scheme, pt_scheme, pt2_scheme, Et_scheme, Et2_scheme, BIpt_scheme, // BIpt2_scheme, external_sheme} // // Notes: // - for the usage of a user-defined recombination scheme // (external_scheme), see 11-boosted_higgs.cc // // By default, the E_scheme is used fastjet::RecombinationScheme recomb_scheme=fastjet::E_scheme; // select an __optional__ strategy // // this could be chosen among // {N2MinHeapTiled, N2Tiled, N2PoorTiled, N2Plain, N3Dumb, // Best, // NlnN, NlnN3pi, NlnN4pi, NlnNCam4pi, NlnNCam2pi2R, NlnNCam} // // By default, the Best strategy is chosen and we advise to keep // that default unless you are targeting a very specific usage. Note // also that the N log (N) strategies for algorithms other than // Cambridge/Aachen need CGAL support. fastjet::Strategy strategy = fastjet::Best; // create the JetDefinition from the above information fastjet::JetDefinition jet_def(jet_alg, R, recomb_scheme, strategy); // run the jet clustering with the above jet definition //---------------------------------------------------------- fastjet::ClusterSequence clust_seq(input_particles, jet_def); // get the resulting jets ordered in pt //---------------------------------------------------------- double ptmin = 5.0; vector inclusive_jets = sorted_by_pt(clust_seq.inclusive_jets(ptmin)); // tell the user what was done // - the description of the algorithm used // - extract the inclusive jets with pt > 5 GeV // show the output as // {index, rap, phi, pt} //---------------------------------------------------------- cout << "Ran " << jet_def.description() << endl; // label the columns printf("%5s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt"); // print out the details for each jet for (unsigned int i = 0; i < inclusive_jets.size(); i++) { printf("%5u %15.8f %15.8f %15.8f\n", i, inclusive_jets[i].rap(), inclusive_jets[i].phi(), inclusive_jets[i].perp()); } return 0; } fastjet-3.0.6+dfsg.orig/example/13-boosted_top.cc0000644000175000017500000001351711766120142017745 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example13 13 - boosted top tagging /// /// fastjet example program, illustration of carrying out boosted /// top subjet ID analysis using the Johns Hopkins top tagger as /// introduced in arXiv:0806.0848 (Kaplan, Rehermann, Schwartz /// and Tweedie) /// /// run it with : ./13-boosted_top < data/boosted_top_event.dat /// /// Source code: 13-boosted_top.cc //---------------------------------------------------------------------- //STARTHEADER // $Id: 13-boosted_top.cc 2684 2011-11-14 07:41:44Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include // needed for io #include // needed for internal io #include #include #include #include #include using namespace std; using namespace fastjet; //---------------------------------------------------------------------- // forward declaration for printing out info about a jet //---------------------------------------------------------------------- ostream & operator<<(ostream &, const PseudoJet &); //---------------------------------------------------------------------- // core of the program //---------------------------------------------------------------------- int main(){ vector particles; // read in data in format px py pz E b-tag [last of these is optional] // lines starting with "#" are considered as comments and discarded //---------------------------------------------------------- string line; while (getline(cin,line)) { if (line.substr(0,1) == "#") {continue;} istringstream linestream(line); double px,py,pz,E; linestream >> px >> py >> pz >> E; // construct the particle particles.push_back(PseudoJet(px,py,pz,E)); } // compute the parameters to be used through the analysis // ---------------------------------------------------------- double Et=0; for (unsigned int i=0; i2600){ R=0.4; delta_p=0.05; delta_r=0.19;} else if (Et>1600){ R=0.6; delta_p=0.05; delta_r=0.19;} else if (Et>1000){ R=0.8; delta_p=0.10; delta_r=0.19;} else{ cerr << "Et has to be at least 1 TeV"<< endl; return 1;} double ptmin = min(500.0, 0.7*Et/2); // find the jets // ---------------------------------------------------------- JetDefinition jet_def(cambridge_algorithm, R); ClusterSequence cs(particles, jet_def); vector jets = sorted_by_pt(cs.inclusive_jets()); cout << "Ran: " << jet_def.description() << endl << endl; cout << "2 Hardest jets: " << jets[0] << endl << " " << jets[1] << endl << endl; if (jets[0].perp()().W() << endl; cout << " | |_ W subjet 1: " << tagged.structure_of().W1() << endl; cout << " | |_ W subjet 2: " << tagged.structure_of().W2() << endl; cout << " | cos(theta_W) = " << tagged.structure_of().cos_theta_W() << endl; cout << " |_ non-W subjet: " << tagged.structure_of().non_W() << endl; } //---------------------------------------------------------------------- // does the actual work for printing out a jet //---------------------------------------------------------------------- ostream & operator<<(ostream & ostr, const PseudoJet & jet) { ostr << "pt, y, phi =" << setprecision(6) << " " << setw(9) << jet.perp() << " " << setw(9) << jet.rap() << " " << setw(9) << jet.phi() << ", mass = " << setw(9) << jet.m(); return ostr; } fastjet-3.0.6+dfsg.orig/example/CmdLine.hh0000644000175000017500000001267011766120142016527 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: CmdLine.hh // // Part of the CmdLine library // // // Copyright (c) 2007 Gavin Salam // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 1761 $// // $Date:: 2010-09-16 12:43:18 +0200 (Thu, 16 Sep 2010) $// /////////////////////////////////////////////////////////////////////////////// #ifndef __CMDLINE__ #define __CMDLINE__ #include #include #include #include using namespace std; /// \if internal_doc /// @ingroup internal /// \class CmdLine /// Class designed to deal with command-line arguments in a fashion similar /// to what was done in f90 iolib. /// /// Note that functionality might be slightly different? /// Currently do not implement access to arguments by index /// though data structure would in principle allow this quite easily. /// /// GPS 03/01/05 /// [NB: wonder if some of this might be more efficiently written /// with templates for different type that can be read in...] /// /// Other question: dealing with list of options is rather common /// occurrence -- command-line arguments, but also card files; maybe one /// could somehow use base/derived classes to share common functionality? /// \endif class CmdLine { mutable map __options; vector __arguments; mutable map __options_used; //string __progname; string __command_line; public : CmdLine() {}; /// initialise a CmdLine from a C-style array of command-line arguments CmdLine(const int argc, char** argv); /// initialise a CmdLine from a C++ vector of arguments CmdLine(const vector & args); /// true if the option is present bool present(const string & opt) const; /// true if the option is present and corresponds to a value bool present_and_set(const string & opt) const; /// return a reference to the vector of command-line arguments (0 is /// command). inline const vector & arguments() const {return __arguments;} /// returns the value of the argument converted to type T template T value(const string & opt) const; template T value(const string & opt, const T & defval) const; /// return the integer value corresponding to the given option int int_val(const string & opt) const; /// return the integer value corresponding to the given option or default if option is absent int int_val(const string & opt, const int & defval) const; /// return the double value corresponding to the given option double double_val(const string & opt) const; /// return the double value corresponding to the given option or default if option is absent double double_val(const string & opt, const double & defval) const; /// return the string value corresponding to the given option string string_val(const string & opt) const; /// return the string value corresponding to the given option or default if option is absent string string_val(const string & opt, const string & defval) const; /// return the full command line string command_line() const; /// return true if all options have been asked for at some point or other bool all_options_used() const; private: /// builds the internal structures needed to keep track of arguments and options void init(); /// report failure of conversion void _report_conversion_failure(const string & opt, const string & optstring) const; }; /// returns the value of the argument converted to type T template T CmdLine::value(const string & opt) const { T result; string optstring = string_val(opt); istringstream optstream(optstring); optstream >> result; if (optstream.fail()) _report_conversion_failure(opt, optstring); return result; } /// for the string case, just copy the string... template<> inline string CmdLine::value(const string & opt) const { return string_val(opt);} template T CmdLine::value(const string & opt, const T & defval) const { if (this->present_and_set(opt)) {return value(opt);} else {return defval;} } #endif fastjet-3.0.6+dfsg.orig/example/08-selector.cc0000644000175000017500000001173011766120142017243 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example08 08 - using the Selector tool /// /// fastjet sample program to illustrate the use of fastjet::Selector /// /// run it with : ./08-selector < data/single-event.dat /// /// Source code: 08-selector.cc //---------------------------------------------------------------------- //STARTHEADER // $Id: 08-selector.cc 2684 2011-11-14 07:41:44Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequence.hh" #include "fastjet/Selector.hh" #include // needed for io #include // needed for io using namespace std; using namespace fastjet; int main(){ // read in input particles //---------------------------------------------------------- vector input_particles; double px, py , pz, E; while (cin >> px >> py >> pz >> E) { // create a PseudoJet with these components and put it onto // the back of the input_particles vector input_particles.push_back(PseudoJet(px,py,pz,E)); } // Selector application #1: keep particles within a given acceptance // e.g. all particles with 1<|y|<2.5, and all particles with pt>1 for |y|<1 // (we include the (redundant) fastjet:: prefix just as a reminder that this // is the namespace where Selector is to be found). //---------------------------------------------------------- fastjet::Selector particle_selector = fastjet::SelectorAbsRapRange(1.0,2.5) || (fastjet::SelectorAbsRapMax(1.0) && fastjet::SelectorPtMin(1.0)); cout << input_particles.size() << " particles before selector" << endl; input_particles = particle_selector(input_particles); cout << input_particles.size() << " particles after selector" << endl; // create a jet definition: // a jet algorithm with a given radius parameter //---------------------------------------------------------- double R = 0.6; JetDefinition jet_def(kt_algorithm, R); // run the jet clustering with the above jet definition //---------------------------------------------------------- ClusterSequence clust_seq(input_particles, jet_def); // get the 5 hardest jets within |y|<2 // // Note that this nicely illustrates that you should watch out that // Selectors do not necessarily commute. // // The && operator behaves like a logical and, i.e. it keeps objects // that satisfy both criteria (independently). It does commute. // // The * operator applies Selectors successively (starting from the // rightmost one as in a usual operator product). Here, order may matter. //---------------------------------------------------------- Selector jet_selector = SelectorNHardest(5) * SelectorAbsRapMax(2.0); vector inclusive_jets = sorted_by_pt(jet_selector(clust_seq.inclusive_jets())); // tell the user what was done // - the description of the algorithm used // - the description of teh selectors used // - the jets // show the output as // {index, rap, phi, pt} //---------------------------------------------------------- double rapmin, rapmax; cout << "Ran " << jet_def.description() << endl; cout << "Selected particles: " << particle_selector.description() << endl; particle_selector.get_rapidity_extent(rapmin, rapmax); cout << " with a total rapidity range of [" << rapmin << ", " << rapmax << "]" << endl; cout << "Selected jets: " << jet_selector.description() << endl; jet_selector.get_rapidity_extent(rapmin, rapmax); cout << " with a total rapidity range of [" << rapmin << ", " << rapmax << "]" << endl; // label the columns printf("%5s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt"); // print out the details for each jet for (unsigned int i = 0; i < inclusive_jets.size(); i++) { printf("%5u %15.8f %15.8f %15.8f\n", i, inclusive_jets[i].rap(), inclusive_jets[i].phi(), inclusive_jets[i].perp()); } return 0; } fastjet-3.0.6+dfsg.orig/example/Makefile.alt0000644000175000017500000000223011766120142017101 0ustar sunsun# makefile to illustrate how to build things using includes and # libraries from a standard installation # find location of fastjet-config FASTJETCONFIG=fastjet-config # get appropriate flags CXXFLAGS = $(shell $(FASTJETCONFIG) --cxxflags) LDFLAGS = $(shell $(FASTJETCONFIG) --libs --plugins) fastjet_example: fastjet_example.o $(CXX) -o fastjet_example fastjet_example.o $(LDFLAGS) fastjet_example_v1_interface: fastjet_example_v1_interface.o $(CXX) -o fastjet_example_v1_interface fastjet_example_v1_interface.o $(LDFLAGS) fastjet_areas: fastjet_areas.o $(CXX) -o fastjet_areas fastjet_areas.o $(LDFLAGS) fastjet_areas_2.1.0: fastjet_areas_2.1.0.o $(CXX) -o fastjet_areas_2.1.0 fastjet_areas_2.1.0.o $(LDFLAGS) fastjet_subtraction: fastjet_subtraction.o $(CXX) -o fastjet_subtraction fastjet_subtraction.o $(LDFLAGS) fastjet_timing: fastjet_timing.o CmdLine.o $(CXX) -o fastjet_timing fastjet_timing.o CmdLine.o $(LDFLAGS) fastjet_timing_plugins: fastjet_timing_plugins.o CmdLine.o $(CXX) -o fastjet_timing_plugins fastjet_timing_plugins.o CmdLine.o $(LDFLAGS) clean: rm -f *.o depend: makedepend $(FASTJET_INCLUDE) -Y -- -- $(SRCS) fastjet-3.0.6+dfsg.orig/example/12-boosted_higgs.cc0000644000175000017500000002100711766120142020234 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example12 12 - boosted Higgs tagging /// /// fastjet example program, illustration of carrying out boosted /// Higgs subjet ID analysis /// /// It illustrates two kinds of functionality: /// /// - using a boosted higgs tagger /// - following information on a b-tag through the jet /// /// This kind of functionality was used in arXiv:0802.2470 /// (Butterworth, Davison, Rubin & Salam) for boosted Higgs searches, /// and related functionality was used in arXiv:0806.0848 (Kaplan, /// Rehermann, Schwartz & Tweedie) in searching for boosted tops /// (without b-tag assumptions). /// /// run it with : ./12-boosted_higgs < data/HZ-event-Hmass115.dat /// /// Source code: 12-boosted_higgs.cc //---------------------------------------------------------------------- //STARTHEADER // $Id: 12-boosted_higgs.cc 2684 2011-11-14 07:41:44Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include // needed for io #include // needed for internal io #include #include #include #include #include using namespace std; using namespace fastjet; //---------------------------------------------------------------------- // set up a class to give standard (by default E-scheme) // recombination, with additional tracking of flavour information in // the user_index. // // b-tagged particles are assumed to have their user_index set to 1, // and other particles should have user_index to 0. // // Watch out however that, by default, the user_index of a particle is // set to -1 and you may not have control over that (e.g. if you // compute the jet area using explicit ghosts, the ghosts will have a // default user_index of -1). For that reason, if one of the particle // being combined has a user index of -1, we assume it is not b-tagged // (i.e. we count it as 0 in the recombination) // // This will work for native algorithms, but not for all plugins //---------------------------------------------------------------------- typedef JetDefinition::DefaultRecombiner DefRecomb; class FlavourRecombiner : public DefRecomb { public: FlavourRecombiner(RecombinationScheme recomb_scheme = E_scheme) : DefRecomb(recomb_scheme) {}; virtual std::string description() const { return DefRecomb::description()+" (with user index addition)";} /// recombine pa and pb and put result into pab virtual void recombine(const PseudoJet & pa, const PseudoJet & pb, PseudoJet & pab) const { DefRecomb::recombine(pa,pb,pab); // Note: see the above discussion for the fact that we consider // negative user indices as "0" pab.set_user_index(max(pa.user_index(),0) + max(pb.user_index(),0)); } }; //---------------------------------------------------------------------- // forward declaration for printing out info about a jet //---------------------------------------------------------------------- ostream & operator<<(ostream &, const PseudoJet &); //---------------------------------------------------------------------- // core of the program //---------------------------------------------------------------------- int main(){ vector particles; // read in data in format px py pz E b-tag [last of these is optional] // lines starting with "#" are considered as comments and discarded //---------------------------------------------------------- string line; while (getline(cin,line)) { if (line.substr(0,1) == "#") {continue;} istringstream linestream(line); double px,py,pz,E; linestream >> px >> py >> pz >> E; // optionally read in btag information int btag; if (! (linestream >> btag)) btag = 0; // construct the particle PseudoJet particle(px,py,pz,E); particle.set_user_index(btag); // btag info goes in user index, for flavour tracking particles.push_back(particle); } // set up the jet finding // // This also shows how to use the "FlavourRecombiner" user-defined // recombiner // ---------------------------------------------------------- double R = 1.2; FlavourRecombiner flav_recombiner; // for tracking flavour JetDefinition jet_def(cambridge_algorithm, R, &flav_recombiner); // run the jet finding; find the hardest jet ClusterSequence cs(particles, jet_def); vector jets = sorted_by_pt(cs.inclusive_jets()); cout << "Ran: " << jet_def.description() << endl << endl; cout << "Hardest jet: " << jets[0] << endl << endl; // now do jet tagging using a mass drop tagger // // Note: if you prefer, you may as well use a CASubJetTagger // CASubJetTagger ca_tagger; // PseudoJet tagged = ca_tagger(jets[0]); // This requires including fastjet/tools/CASubJetTagger.hh // You also need to adapt the 2 lines below accessing // the extra structural information provided by the tagger //---------------------------------------------------------- MassDropTagger md_tagger(0.667, 0.09); PseudoJet tagged = md_tagger(jets[0]); if (tagged == 0){ cout << "No substructure found" << endl; return 0; } PseudoJet parent1 = tagged.pieces()[0]; PseudoJet parent2 = tagged.pieces()[1]; cout << "Found suitable pair of subjets: " << endl; cout << " " << parent1 << endl; cout << " " << parent2 << endl; cout << "Total = " << endl; cout << " " << tagged << endl; cout << "(mass drop = " << tagged.structure_of().mu() << ", y = " << tagged.structure_of().y() << ")" << endl << endl; // next we "filter" it, to remove UE & pileup contamination //---------------------------------------------------------- // // [there are two ways of doing this; here we directly use the // existing cluster sequence and find the exclusive subjets of // this_jet (i.e. work backwards within the cs starting from // this_jet); alternatively one can recluster just the // constituents of the jet] // // first get separation between the subjets (called Rbb -- assuming // it's a Higgs!) // // See example 11-filter.cc for another way of implementing the dynamic // Rfilt used below double Rbb = parent1.delta_R(parent2); double Rfilt = min(Rbb/2, 0.3); // somewhat arbitrary choice unsigned nfilt = 3; // number of pieces we'll take cout << "Subjet separation (Rbb) = " << Rbb << ", Rfilt = " << Rfilt << endl; Filter filter(JetDefinition(cambridge_algorithm, Rfilt, &flav_recombiner), SelectorNHardest(nfilt)); PseudoJet filtered = filter(tagged); // now print out the filtered jets and reconstruct total // at the same time const vector & filtered_pieces = filtered.pieces(); cout << "Filtered pieces are " << endl; for (unsigned i = 0; i < nfilt && i < filtered_pieces.size(); i++) { cout << " " << filtered_pieces[i] << endl; } cout << "Filtered total is " << endl; cout << " " << filtered << endl; } //---------------------------------------------------------------------- // does the actual work for printing out a jet //---------------------------------------------------------------------- ostream & operator<<(ostream & ostr, const PseudoJet & jet) { ostr << "pt, y, phi =" << " " << setw(10) << jet.perp() << " " << setw(6) << jet.rap() << " " << setw(6) << jet.phi() << ", mass = " << setw(10) << jet.m() << ", btag = " << jet.user_index(); return ostr; } fastjet-3.0.6+dfsg.orig/example/makefile.static0000644000175000017500000001724611766120142017665 0ustar sunsun# fastjet/example/makefile.static # include the Makefile in the top directory, which has the bits and pieces # needed to get CGAL working include ../makefile.static # make sure we use the pedantic flags here (defined in ../Makefile) CXXFLAGS += $(CXXPEDANTIC) FASTJET_INCLUDE = -I../include INCLUDE += $(FASTJET_INCLUDE) LDFLAGS += -L../lib -lfastjet CXXFLAGS += -Woverloaded-virtual # plugin includes here are temporary and subject to change... PLUGIN_INCLUDE = -I../plugins/GridJet -I../plugins/CDFCones -I../plugins/EECambridge -I../plugins/Jade -I../plugins/NestedDefs -I../plugins/SISCone PLUGIN_LIBRARY = -L../plugins/GridJet -lGridJetPlugin -L../plugins/CDFCones -L../plugins/EECambridge -L../plugins/Jade -L../plugins/NestedDefs -L../plugins/SISCone -lCDFConesPlugin -lEECambridgePlugin -lJadePlugin -lNestedDefsPlugin -lSISConePlugin -L../plugins/SISCone/siscone/siscone -lsiscone -L../plugins/SISCone/siscone/siscone/spherical -lsiscone_spherical #PLUGIN77_INCLUDE = $(PLUGIN_INCLUDE) -I../plugins/PxCone #PLUGIN77_LIBRARY = $(PLUGIN_LIBRARY) -L../plugins/PxCone -lPxConePlugin $(F77LIB) PLUGIN77_INCLUDE = $(PLUGIN_INCLUDE) PLUGIN77_LIBRARY = $(PLUGIN_LIBRARY) INCLUDE += $(PLUGIN77_INCLUDE) # Gavin sometimes likes to compile with google's tcmalloc and profiler # libraries: tcmalloc gives a faster malloc (about 10% speed # gain on the CGAL based algorithms), while the profiler is useful # for a faithful estimation of where the time is being spent #ifeq ($(shell whoami),salam) # LDFLAGS += -L/ada1/lpthe/salam/software/local/lib -ltcmalloc -lprofiler #endif SRCS = fastjet_example.cc ktjet_example.cc fastjet_timing.cc fastjet_timing_plugins.cc CmdLine.cc fastjet_subtraction.cc fastjet_areas.cc OBJS = $(patsubst %.cc,%.o,$(SRCS)) fastjet_example: fastjet_example.o ../lib/libfastjet.a $(CXX) -o fastjet_example fastjet_example.o $(LDFLAGS) fastjet_example_v1_interface: fastjet_example_v1_interface.o ../lib/libfastjet.a $(CXX) -o fastjet_example_v1_interface fastjet_example_v1_interface.o $(LDFLAGS) fastjet_areas: fastjet_areas.o ../lib/libfastjet.a $(CXX) -o fastjet_areas fastjet_areas.o $(LDFLAGS) $(PLUGIN_LIBRARY) fastjet_areas_2.1.0: fastjet_areas_2.1.0.o ../lib/libfastjet.a $(CXX) -o fastjet_areas_2.1.0 fastjet_areas_2.1.0.o $(LDFLAGS) $(PLUGIN_LIBRARY) fastjet_subtraction: fastjet_subtraction.o ../lib/libfastjet.a $(CXX) -o fastjet_subtraction fastjet_subtraction.o $(LDFLAGS) #fastjet_subtraction: fastjet_subtraction.o ../lib/libfastjet.a ../areas/ClusterSequencePassiveArea.o # $(CXX) -o fastjet_subtraction fastjet_subtraction.o ../areas/ClusterSequencePassiveArea.o $(LDFLAGS) # for the following to compile the KTJET_INCLUDE and KTJET_LIBRARY # variables must be set in ../Makefile ktjet_example: ktjet_example.o $(CXX) -o ktjet_example ktjet_example.o $(KTJET_LIBRARY) $(LDFLAGS) # explicit compilation so as to add ktjet libaries only for this file ktjet_example.o: ktjet_example.cc $(CXX) $(CXXFLAGS) $(INCLUDE) $(KTJET_INCLUDE) -c $< fastjet_timing: fastjet_timing.o CmdLine.o ../lib/libfastjet.a $(CXX) -o fastjet_timing fastjet_timing.o CmdLine.o $(LDFLAGS) fastjet_timing_plugins: fastjet_timing_plugins.o CmdLine.o ../lib/libfastjet.a $(CXX) -o fastjet_timing_plugins fastjet_timing_plugins.o CmdLine.o $(LDFLAGS) $(PLUGIN77_LIBRARY) # for the following to compile the KTJET_INCLUDE and KTJET_LIBRARY # variables must be set in ../Makefile ktjet_timing: ktjet_timing.o CmdLine.o $(CXX) -o ktjet_timing ktjet_timing.o CmdLine.o $(KTJET_LIBRARY) $(LDFLAGS) # explicit compilation so as to add ktjet libaries only for this file ktjet_timing.o: ktjet_timing.cc $(CXX) $(CXXFLAGS) $(INCLUDE) $(KTJET_INCLUDE) -c $< clean: rm -f *.o realclean: clean rm -f fastjet_example fastjet_timing ktjet_example ktjet_timing depend: makedepend -f makefile.static $(FASTJET_INCLUDE) -Y -- -- $(SRCS) # DO NOT DELETE fastjet_example.o: ../include/fastjet/PseudoJet.hh fastjet_example.o: ../include/fastjet/internal/numconsts.hh fastjet_example.o: ../include/fastjet/internal/base.hh fastjet_example.o: ../include/fastjet/ClusterSequence.hh fastjet_example.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh fastjet_example.o: ../include/fastjet/Error.hh fastjet_example.o: ../include/fastjet/JetDefinition.hh fastjet_timing.o: ../include/fastjet/PseudoJet.hh fastjet_timing.o: ../include/fastjet/internal/numconsts.hh fastjet_timing.o: ../include/fastjet/internal/base.hh fastjet_timing.o: ../include/fastjet/ClusterSequence.hh fastjet_timing.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh fastjet_timing.o: ../include/fastjet/Error.hh fastjet_timing.o: ../include/fastjet/JetDefinition.hh CmdLine.hh fastjet_timing_plugins.o: ../include/fastjet/PseudoJet.hh fastjet_timing_plugins.o: ../include/fastjet/internal/numconsts.hh fastjet_timing_plugins.o: ../include/fastjet/internal/base.hh fastjet_timing_plugins.o: ../include/fastjet/ClusterSequence.hh fastjet_timing_plugins.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh fastjet_timing_plugins.o: ../include/fastjet/Error.hh fastjet_timing_plugins.o: ../include/fastjet/JetDefinition.hh CmdLine.hh CmdLine.o: CmdLine.hh fastjet_subtraction.o: ../include/fastjet/PseudoJet.hh fastjet_subtraction.o: ../include/fastjet/internal/numconsts.hh fastjet_subtraction.o: ../include/fastjet/internal/base.hh fastjet_subtraction.o: ../include/fastjet/ClusterSequenceArea.hh fastjet_subtraction.o: ../include/fastjet/ClusterSequenceAreaBase.hh fastjet_subtraction.o: ../include/fastjet/ClusterSequence.hh fastjet_subtraction.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh fastjet_subtraction.o: ../include/fastjet/Error.hh fastjet_subtraction.o: ../include/fastjet/JetDefinition.hh fastjet_subtraction.o: ../include/fastjet/internal/LimitedWarning.hh fastjet_subtraction.o: ../include/fastjet/RangeDefinition.hh fastjet_subtraction.o: ../include/fastjet/ClusterSequenceActiveArea.hh fastjet_subtraction.o: ../include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh fastjet_subtraction.o: ../include/fastjet/GhostedAreaSpec.hh fastjet_subtraction.o: ../include/fastjet/internal/BasicRandom.hh fastjet_subtraction.o: ../include/fastjet/ActiveAreaSpec.hh fastjet_subtraction.o: ../include/fastjet/ClusterSequenceWithArea.hh fastjet_subtraction.o: ../include/fastjet/ClusterSequencePassiveArea.hh fastjet_subtraction.o: ../include/fastjet/ClusterSequence1GhostPassiveArea.hh fastjet_subtraction.o: ../include/fastjet/ClusterSequenceVoronoiArea.hh fastjet_subtraction.o: ../include/fastjet/AreaDefinition.hh fastjet_areas.o: ../include/fastjet/PseudoJet.hh fastjet_areas.o: ../include/fastjet/internal/numconsts.hh fastjet_areas.o: ../include/fastjet/internal/base.hh fastjet_areas.o: ../include/fastjet/ClusterSequenceArea.hh fastjet_areas.o: ../include/fastjet/ClusterSequenceAreaBase.hh fastjet_areas.o: ../include/fastjet/ClusterSequence.hh fastjet_areas.o: ../include/fastjet/internal/DynamicNearestNeighbours.hh fastjet_areas.o: ../include/fastjet/Error.hh fastjet_areas.o: ../include/fastjet/JetDefinition.hh fastjet_areas.o: ../include/fastjet/internal/LimitedWarning.hh fastjet_areas.o: ../include/fastjet/RangeDefinition.hh fastjet_areas.o: ../include/fastjet/ClusterSequenceActiveArea.hh fastjet_areas.o: ../include/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh fastjet_areas.o: ../include/fastjet/GhostedAreaSpec.hh fastjet_areas.o: ../include/fastjet/internal/BasicRandom.hh fastjet_areas.o: ../include/fastjet/ActiveAreaSpec.hh fastjet_areas.o: ../include/fastjet/ClusterSequenceWithArea.hh fastjet_areas.o: ../include/fastjet/ClusterSequencePassiveArea.hh fastjet_areas.o: ../include/fastjet/ClusterSequence1GhostPassiveArea.hh fastjet_areas.o: ../include/fastjet/ClusterSequenceVoronoiArea.hh fastjet_areas.o: ../include/fastjet/AreaDefinition.hh fastjet-3.0.6+dfsg.orig/example/README0000644000175000017500000000206011766120142015543 0ustar sunsunList of the examples enclosed: 01-basic.cc basic usage example 02-jetdef.cc further usage of JetDefinition 03-plugin.cc illustrates the usage of (the SISCone) plugin 04-constituents.cc shows how a PseudoJet accesses its underlying ClusterSequence 05-eplus_eminus.cc illustrates the usage of the e+e- algorithms and exclusive jets 06-area.cc illustrates the usage of jet areas 07-subtraction.cc shows how to estimate the background and subtract it from the jets 08-selector.cc illustrates the usage of Selector 09-user_info.cc shows how to implement and retrieve extra user info about input particles 10-subjets.cc shows how to extract information about subjets 11-filter.cc shows how to implement and use various filters 12-boosted_higgs.cc shows how to implement boosted Higgs tagging using jet substructure 13-boosted_top.cc shows how to implement boosted top tagging using jet substructure 14-groomers.cc shows how to use various groomers (filtering, trimming, pruning) in a unified manner fastjet-3.0.6+dfsg.orig/example/07-subtraction.cc0000644000175000017500000002310711766120142017760 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example07 07 - subtracting jet background contamination /// /// fastjet subtraction example program. /// /// run it with : ./07-subtraction < data/Pythia-Zp2jets-lhc-pileup-1ev.dat /// /// Source code: 07-subtraction.cc //---------------------------------------------------------------------- //STARTHEADER // $Id: 07-subtraction.cc 2684 2011-11-14 07:41:44Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequenceArea.hh" #include "fastjet/Selector.hh" #include "fastjet/tools/JetMedianBackgroundEstimator.hh" #include "fastjet/tools/Subtractor.hh" #include // needed for io using namespace std; using namespace fastjet; int main(){ // read in input particles // // since we use here simulated data we can split the hard event // from the full (i.e. with pileup added) one //---------------------------------------------------------- vector hard_event, full_event; // read in input particles. Keep the hard event generated by PYTHIA // separated from the full event, so as to be able to gauge the // "goodness" of the subtraction from the full event, which also // includes pileup double particle_maxrap = 5.0; string line; int nsub = 0; // counter to keep track of which sub-event we're reading while (getline(cin, line)) { istringstream linestream(line); // take substrings to avoid problems when there are extra "pollution" // characters (e.g. line-feed). if (line.substr(0,4) == "#END") {break;} if (line.substr(0,9) == "#SUBSTART") { // if more sub events follow, make copy of first one (the hard one) here if (nsub == 1) hard_event = full_event; nsub += 1; } if (line.substr(0,1) == "#") {continue;} double px,py,pz,E; linestream >> px >> py >> pz >> E; // you can construct PseudoJet particle(px,py,pz,E); // push event onto back of full_event vector if (abs(particle.rap()) <= particle_maxrap) full_event.push_back(particle); } // if we have read in only one event, copy it across here... if (nsub == 1) hard_event = full_event; // if there was nothing in the event if (nsub == 0) { cerr << "Error: read empty event\n"; exit(-1); } // create a jet definition for the clustering // We use the anti-kt algorithm with a radius of 0.5 //---------------------------------------------------------- double R = 0.5; JetDefinition jet_def(antikt_algorithm, R); // create an area definition for the clustering //---------------------------------------------------------- // ghosts should go up to the acceptance of the detector or // (with infinite acceptance) at least 2R beyond the region // where you plan to investigate jets. double ghost_maxrap = 6.0; GhostedAreaSpec area_spec(ghost_maxrap); AreaDefinition area_def(active_area, area_spec); // run the jet clustering with the above jet and area definitions // for both the hard and full event // // We retrieve the jets above 7 GeV in both case (note that the // 7-GeV cut we be applied again later on after we subtract the jets // from the full event) // ---------------------------------------------------------- ClusterSequenceArea clust_seq_hard(hard_event, jet_def, area_def); ClusterSequenceArea clust_seq_full(full_event, jet_def, area_def); double ptmin = 7.0; vector hard_jets = sorted_by_pt(clust_seq_hard.inclusive_jets(ptmin)); vector full_jets = sorted_by_pt(clust_seq_full.inclusive_jets(ptmin)); // Now turn to the estimation of the background (for the full event) // // There are different ways to do that. In general, this also // requires clustering the particles that will be handled internally // in FastJet. // // The suggested way to proceed is to use a BackgroundEstimator // constructed from the following 3 arguments: // - a jet definition used to cluster the particles. // . We strongly recommend using the kt or Cambridge/Aachen // algorithm (a warning will be issued otherwise) // . The choice of the radius is a bit more subtle. R=0.4 has // been chosen to limit the impact of hard jets; in samples of // dominantly sparse events it may cause the UE/pileup to be // underestimated a little, a slightly larger value (0.5 or // 0.6) may be better. // - An area definition for which we recommend the use of explicit // ghosts (i.e. active_area_explicit_ghosts) // As mentionned in the area example (06-area.cc), ghosts should // extend sufficiently far in rapidity to cover the jets used in // the computation of the background (see also the comment below) // - A Selector specifying the range over which we will keep the // jets entering the estimation of the background (you should // thus make sure the ghosts extend far enough in rapidity to // cover the range, a warning will be issued otherwise). // In this particular example, the two hardest jets in the event // are removed from the background estimation // ---------------------------------------------------------- JetDefinition jet_def_bkgd(kt_algorithm, 0.4); AreaDefinition area_def_bkgd(active_area_explicit_ghosts, GhostedAreaSpec(ghost_maxrap)); Selector selector = SelectorAbsRapMax(4.5) * (!SelectorNHardest(2)); JetMedianBackgroundEstimator bkgd_estimator(selector, jet_def_bkgd, area_def_bkgd); // To help manipulate the background estimator, we also provide a // transformer that allows to apply directly the background // subtraction on the jets. This will use the background estimator // to compute rho for the jets to be subtracted. // ---------------------------------------------------------- Subtractor subtractor(&bkgd_estimator); // Finally, once we have an event, we can just tell the background // estimator to use that list of particles // This could be done directly when declaring the background // estimator but the usage below can more easily be accomodated to a // loop over a set of events. // ---------------------------------------------------------- bkgd_estimator.set_particles(full_event); // show a summary of what was done so far // - the description of the algorithms, areas and ranges used // - the background properties // - the jets in the hard event //---------------------------------------------------------- cout << "Main clustering:" << endl; cout << " Ran: " << jet_def.description() << endl; cout << " Area: " << area_def.description() << endl; cout << " Particles up to |y|=" << particle_maxrap << endl; cout << endl; cout << "Background estimation:" << endl; cout << " " << bkgd_estimator.description() << endl << endl;; cout << " Giving, for the full event" << endl; cout << " rho = " << bkgd_estimator.rho() << endl; cout << " sigma = " << bkgd_estimator.sigma() << endl; cout << endl; cout << "Jets above " << ptmin << " GeV in the hard event (" << hard_event.size() << " particles)" << endl; cout << "---------------------------------------\n"; printf("%5s %15s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt", "area"); for (unsigned int i = 0; i < hard_jets.size(); i++) { printf("%5u %15.8f %15.8f %15.8f %15.8f\n", i, hard_jets[i].rap(), hard_jets[i].phi(), hard_jets[i].perp(), hard_jets[i].area()); } cout << endl; // Once the background properties have been computed, subtraction // can be applied on the jets. Subtraction is performed on the // full 4-vector // // We output the jets before and after subtraction // ---------------------------------------------------------- cout << "Jets above " << ptmin << " GeV in the full event (" << full_event.size() << " particles)" << endl; cout << "---------------------------------------\n"; printf("%5s %15s %15s %15s %15s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt", "area", "rap_sub", "phi_sub", "pt_sub"); unsigned int idx=0; // get the subtracted jets vector subtracted_jets = subtractor(full_jets); for (unsigned int i=0; i= ptmin*ptmin){ printf("%5u %15.8f %15.8f %15.8f %15.8f %15.8f %15.8f %15.8f\n", idx, full_jets[i].rap(), full_jets[i].phi(), full_jets[i].perp(), full_jets[i].area(), subtracted_jets[i].rap(), subtracted_jets[i].phi(), subtracted_jets[i].perp()); idx++; } } return 0; } fastjet-3.0.6+dfsg.orig/example/ktjet_timing.cc0000644000175000017500000001143211766120142017665 0ustar sunsun//---------------------------------------------------------------------- // ktjet_timing.cc: Program similar to fastjet_timing.cc, to be used // for timing and result comparisons. For usage, see // explanations given at the start of fastjet_timing.cc // // Note: - some options present in fastjet_timing are missing // - one or two behave differently, notably -write // #include #include #include #include #include // for size_t #include "CmdLine.hh" #include "fastjet/internal/numconsts.hh" /** Need to include these KtJet Headers */ #include "KtJet/KtEvent.h" #include "KtJet/KtLorentzVector.h" using namespace std; using namespace KtJet; inline double pow2(const double x) {return x*x;} /// a program to test and time the kt algorithm as implemented in ktjet int main (int argc, char ** argv) { CmdLine cmdline(argc,argv); //bool clever = !cmdline.present("-dumb"); int repeat = cmdline.int_val("-repeat",1); int combine = cmdline.int_val("-combine",1); bool write = cmdline.present("-write"); double ktR = cmdline.double_val("-r",1.0); double inclkt = cmdline.double_val("-incl",-1.0); int excln = cmdline.int_val ("-excln",-1); double excld = cmdline.double_val("-excld",-1.0); int nev = cmdline.int_val("-nev",1); bool massless = cmdline.present("-massless"); bool get_all_dij = cmdline.present("-get-all-dij"); for (int iev = 0; iev < nev; iev++) { vector jets; string line; int ndone = 0; while (getline(cin, line)) { //cout << line< fourvec(4); linestream >> fourvec[0] >> fourvec[1] >> fourvec[2] >> fourvec[3]; if (massless) { linestream >> fourvec[0] >> fourvec[1] >> fourvec[2]; fourvec[3] = sqrt(pow2(fourvec[0])+pow2(fourvec[1])+pow2(fourvec[2]));} else { linestream >> fourvec[0] >> fourvec[1] >> fourvec[2] >> fourvec[3]; } KtJet::KtLorentzVector p(fourvec[0],fourvec[1],fourvec[2],fourvec[3]); jets.push_back(p); } // set KtEvent flags int type, angle, recom; ostringstream info; if (cmdline.present("-eekt")) { type = 1; // e+e- angle = 1; // angular recom = 1; // E info << "Algorithm: KtJet e+e- kt algorithm" ; } else { type = 4; // PP angle = 2; // delta R recom = 1; // E info << "Algorithm: KtJet (long.inv.) with R = " << ktR ; } //double rparameter = 1.0; for (int i = 0; i < repeat ; i++) { // Construct the KtEvent object KtJet::KtEvent ev(jets,type,angle,recom,ktR); if (i!=0) {continue;} int nparticles = jets.size(); cout << "Number of particles = "<< nparticles << endl; cout << info.str() << endl; // Print out the number of final state jets //std::cout << "Number of final state jets: " << ev.getNJets() << std::endl; if (write) { /** Retrieve the final state jets from KtEvent sorted by Pt*/ std::vector jets = ev.getJetsPt(); /** Print out jets 4-momentum and Pt */ std::vector::const_iterator itr = jets.begin(); for( ; itr != jets.end() ; ++itr) { std::cout << "Jets Pt2: " << pow2((*itr).perp()) << std::endl; } } if (inclkt >= 0.0) { // Retrieve the final state jets from KtEvent sorted by Pt std::vector jets = ev.getJetsPt(); // Print out index, rap, phi, pt for (size_t j = 0; j < jets.size(); j++) { if (jets[j].perp() < inclkt) {break;} double phi = jets[j].phi(); if (phi < 0.0) {phi += fastjet::twopi;} printf("%5u %15.8f %15.8f %15.8f\n",j,jets[j].rapidity(),phi,jets[j].perp()); } } if (excln > 0) { ev.findJetsN(excln); vector jets = ev.getJetsPt(); cout << "Printing "< 0.0) { ev.findJetsD(excld); vector jets = ev.getJetsPt(); cout << "Printing exclusive jets for d = "< 0; i--) { printf("d for n = %4d -> %4d is %14.5e\n", i+1, i, ev.getDMerge(i)); } } } } } fastjet-3.0.6+dfsg.orig/example/data/0000755000175000017500000000000012233507304015575 5ustar sunsunfastjet-3.0.6+dfsg.orig/example/data/cone-darktower.dat0000644000175000017500000000140111766120141021207 0ustar sunsun# an example config with a dark tower in the cone alg. # Run it with # # ../fastjet_timing_plugins -siscone -r 0.7 -incl 0 -npass 1 < cone-darktower.dat # # and see that particle 3 is not included, whereas if you run it with # multiple passes (0 == infty) # # ../fastjet_timing_plugins -siscone -r 0.7 -incl 0 -npass 0 < cone-darktower.dat # # the dark tower is clustered. # # For ease of understanding, the event in rap, phi, pt is the following # -0.3 0 500 # 0.0 0 100 # 0.6 0 110 5.000000000000000e+02 0.000000000000000e+00 -1.522601467235713e+02 5.226692570644302e+02 1.000000000000000e+02 0.000000000000000e+00 0.000000000000000e+00 1.000000000000000e+02 1.100000000000000e+02 0.000000000000000e+00 7.003189403630654e+01 1.304011740066494e+02 fastjet-3.0.6+dfsg.orig/example/data/boosted_top_event.dat0000644000175000017500000003265511766120141022024 0ustar sunsun4.443040200515011 -1.981973158430801 2.158753358084194 5.32433279107086 2.31363281944535 -2.854856843017854 1.791110323651392 4.090312994592358 0.01301267338209194 -0.133370233930565 -0.03291498504702459 0.196265458264791 41.87967864418528 -64.7568975159685 34.13107880903351 84.49948965847268 1.462035851087643 -0.5543754046618723 15.66736994537819 15.74577980047033 3.81328474115956 -1.764014878542591 41.95115869166183 42.16392113575152 1.80264576954806 0.139407492062761 21.08149518058314 21.15934509981731 -0.8104379501482175 -1.090410758265888 9.695906882584046 9.791623734265073 0.5296238316503354 0.1242709116626073 2.676453477470296 2.734744533681396 1.554676972131756 0.1336479642303049 13.85425971149097 13.94251103710739 2.944543804549147 0.6146888409898388 16.3192867453129 16.59478171741923 4.96704473466367 1.445805322364639 24.96693066144924 25.49762720067971 3.311892749039903 1.132378386689272 25.6273081995232 25.86993391768005 0.2341900487109569 -0.413694717646954 6.955913837221454 6.973536075340338 1.012291542878725 0.3816698883009438 15.71021680072383 15.74804107760914 -0.5625408042048496 0.5071548383753761 1.401982893381522 1.849866482943407 -0.2125364625857298 -0.316844667162492 0.474515824466794 0.6246657855262792 -0.3638152695953571 0.01414233480605764 0.3435152688701566 0.5196576573778598 -4.616518220865635 2.80706334136682 3.118415962383696 6.239859211983818 -0.4969691869516424 0.2735791036724811 0.2070311307625969 0.6187934940272515 -46.93732138301196 28.56231215370209 30.20254678460782 62.6987330513065 -14.22905975482471 8.471172375795181 8.60419266090682 18.66222157348129 -265.3651936143328 157.9538734807837 153.5550398829999 344.9277158887576 -0.3516091803351744 0.9765400194263832 255.7848209160422 255.786962314496 0.8530140073585586 -0.9388928511227101 91.38261281478435 91.39152344350285 0.5298148200515205 -0.1248896568179652 5.909706359396239 5.936363382502345 -10.22607855096412 3.027932397376096 2.615821986160649 10.9818851476989 -34.80987587865758 10.66962713224548 8.546491998186664 37.39826743431659 -3.852828633481655 1.334537683485353 1.326545631234082 4.290044569030117 -0.1160739520875922 0.2363036743615682 0.0395523368951245 0.2984904967061359 -19.81782558547225 3.115999101659598 12.21941090308011 23.49019250540436 -58.15941048081305 11.74060720434017 37.35772839460079 70.11403736479575 7.329351331805678 -3.260261372929162 3.633583237668554 8.807374291485603 5.594954869559254 -2.17048095602218 3.287905892790758 6.844290505056604 1.92717525813373 -0.5071098420347419 0.5150985884649836 2.063000535188959 3.257291213145361 -1.051022581674973 1.237060042095555 3.642031280353611 0.7997813562337632 -0.6961647284216191 -3557.327295170386 3557.327576933335 0.5072668497037492 0.06147117881228559 -847.2119534791813 847.2121190682756 0.2875785566625523 -0.3114602363668867 -45.38089456470501 45.38307525937793 0.4150136356080792 -0.09839262829566853 -28.1207461345506 28.12432684306926 -0.04836126267013567 -0.1364481495178481 0.1067121683727987 0.2276492499717883 -0.05748867649400144 -0.4333985307956431 -1.13460994234412 1.312295666260839 0.5105463327613835 -0.04699005707825835 -1.23912200532808 1.428961135737637 -0.00522471913641278 -0.957488764243671 -0.1630984221652092 0.9806287406841162 0.04933786403272375 -0.08309246908103761 -0.1338773258754884 0.216197841175314 0.4677401818349315 0.7004516034095006 -0.7232807114838797 1.454420880944213 1.18320097729094 0.02474183359869694 -0.7391083233857811 1.402261605261369 0.6396476046683334 -0.1339751544755916 0.05545119937632803 0.6705617201920808 0.1260900656857863 0.1998505861256777 -0.3427659593259053 0.4390982227384174 1.898757748042543 -0.2155219598180566 1.641162818184181 2.522821016561784 -0.2042646882161427 -0.6399859361117544 -0.09957743048363632 0.6933264100224332 2.096009636284185 -0.07917436013352976 0.7314895957699736 2.225776670809148 1.477868229793751 -0.5065994735342938 0.1045632761783022 1.571588562679198 0.3725900668961165 -0.1454001566899054 -0.044835418425202 0.4259748386471519 4.64757514076924 -1.026307704665311 0.5925758002304669 4.821623091114677 1.068641761038985 0.1311111465189505 -0.2049907002205174 1.104846739713213 0.5757911735336797 -0.09939037137297581 0.1497717959484542 0.6191326975718341 0.4431332941886462 0.2321257360103889 -0.08673302758098067 0.5253491145992439 0.8473435256071397 -0.035341970600766 0.1941238586305205 0.881137879485319 0.1875466667032828 0.1205562296197241 0.01585645786470233 0.2635123694395595 0.3306117243255981 -0.2883617970344716 0.03311959640885747 0.4601881640337792 1.66387323301705 -1.067866542894716 0.615886799928167 2.070779959172456 4.809788246927025 -3.054258642818172 3.183425262781236 6.528014617142079 1.073912064692242 -0.680158717253658 1.096879071186406 1.6847927127853 1.807551638427001 -1.625625262691369 1.182048412593988 2.706539944356352 2.261190711264925 -3.670802343013493 2.3018479606382 4.88935139798505 1.461097789157922 -2.65316178521952 0.8676290230193422 3.153780923671918 0.1344944914313315 -0.4399409087485336 8.361804289220341 8.375612665801802 -0.1749831954154424 -0.5512534502494114 4.224913486268639 4.266599727704052 -0.7685937918560832 -1.563990497049998 19.44375720648364 19.54429043944361 0.06612515801528455 -0.09911203805847341 3.667329868406352 3.671918283570049 -2.228412751906444 -5.455348855502769 77.48112581830409 77.71058038893329 -0.169941740242372 -0.3587791949837179 5.437681514214051 5.453824580627341 0.454374373509574 0.05554972600569225 1.798490167902031 1.920351448928503 0.3094197332326363 -0.06075075113444701 2.906085777115471 2.926257912322491 0.4730380307691027 0.01824450174413716 2.008388892562961 2.067835434595336 2.24698590890178 0.8118129882793939 13.2179571581941 13.43286481817996 9.156063457945823 2.493534515039197 45.85965205877013 46.83136896328659 2.509473483971689 0.3112763884825697 22.70484422886101 22.84565125792055 -2.249824958718415 0.2166789144003452 1.298315195724745 2.77075372943317 -0.09644982615867842 0.1233671646256993 0.1839484957607515 0.276728523586686 -0.1769747163690117 0.4550962613543642 0.1737227945158016 0.536742071731843 -0.3676103717008425 -0.3273314841297764 0.611720533369146 0.7974741887547617 -2.547191986153097 0.9134137025220355 1.565088203893118 3.129136059225127 -0.5577929359108532 -0.1089676249770207 0.4571105006796545 0.7417388441202108 -4.729238565467801 3.106960587234218 3.024973703021462 6.41785378367302 -0.3151769296318855 0.3550587048778668 0.2998270671329233 0.5775110834150815 -20.12600819094291 12.2570953839401 13.05145671091216 26.93791630453478 -9.985150799240124 6.183063676643735 6.455084794698944 13.40223310572348 -4.228090038933392 2.594955825488845 2.660229561480977 5.630770998162109 0.5344124160429216 -0.3299365132378 2300.406411254331 2300.406501224197 -0.2318035074141059 -0.4298413758365847 1119.639499082007 1119.639613724292 -0.06574399467919553 0.02554751266698382 1196.24855726432 1196.248927306733 -0.1305007537883574 -0.1744488020744108 141.4364290148715 141.4366612123974 -0.1804198586505279 -0.3510464797405781 12.34902603573393 12.35612029613132 -0.2560702651674466 0.1945327978526261 38.54484503842165 38.54642283826712 0.02602943795653545 -0.2528868596146006 5.551076565307591 5.558647327741991 0.11691835956163 0.02219327430608829 1.769354597499895 1.778836114098493 0.3401359794291998 0.04906006809307201 12.16391626307594 12.16951838941488 -5.811720317923788 1.929615336401205 1.450317897294059 6.293085920552362 -42.03346288550063 13.41095691857489 10.74861478487461 45.41165012634043 -16.46322320884539 5.067820391730215 4.12066416600568 17.71213919607131 -39.61758005601186 11.82649722449571 10.17063876820883 42.57792924548828 -50.88007111452495 15.78615454635955 13.50310194849381 54.95758631719995 -7.268166229972278 2.352919016186602 1.562636726003156 7.798960287473954 -13.62167657735284 4.471885401187711 3.977505224762266 14.8790658051092 -0.6773639660763457 0.1981373064342463 0.3472899101597895 0.7988556824223582 -15.75319814041399 5.468839898475453 9.493201008629027 19.18881305544809 -16.84092795767703 5.661638803910262 9.704348315996091 20.24511952162018 -7.036732766238922 2.371533071589002 4.703890324773707 8.791164935376912 -2.995640589978655 0.4652182583940593 1.819740912879062 3.538534632750796 -83.48526724301048 12.90343529745575 51.79036133138193 99.08858781690253 65.10099234434752 -25.01320295433359 43.07073391670071 81.97030735172774 55.36806830695215 -21.67267525229517 37.53762733112413 70.31657547171952 13.44077391216175 -4.92299943658803 9.381538754666067 17.11499564711295 15.49064359750093 -5.473866003760814 10.28686475668742 19.38408714936823 11.26498535154006 -4.856400602183309 7.734695796768756 14.50207022627635 2.43563147828344 -0.8074238435358505 1.986434082685191 3.248020029320748 3.566298952230901 -1.901160269798776 2.567582040984415 4.789947361478026 10.01552610111836 -4.930215174982475 4.512695205832837 12.04166444306837 1.567020454381502 -0.5707829437517079 0.9156264968679643 1.90733787135226 3.799111568819297 -1.330248269757968 1.242435905471528 4.214965709900323 2.074557448108446 -0.7591248261850578 0.8727930466502813 2.379350036126211 1.916208573722644 -0.9302085818760092 0.4628606512500023 2.18394205204248 10.85919648484296 -4.273478839292884 3.854469259661105 12.29069496590336 6.09400152621323 -2.139674625766228 2.649869194437251 6.982574642505767 3.444390231489232 -1.338518243144055 1.383217830426753 3.948033221848366 4.946313661553101 -1.871350816964277 1.950414765703251 5.638289641131697 17.45172086081805 -6.559706274268344 6.652830135530008 19.7957236751073 17.56804035824135 -6.264047152195905 6.283446007050177 19.7037766497224 3.709830520356589 -1.524208095837985 1.184291592808911 4.184265666862605 31.60010995467371 -11.6068347751881 11.80791229509892 35.68746484691274 21.69762679792003 -8.135317440094839 8.184931864899461 24.57603970834958 6.288598237742758 -2.285070327038908 2.284149886143755 7.071409667281733 11.06420557462027 -3.68569899446528 4.556998725326356 12.52145116361465 3.796273258852176 -1.131415715267631 1.451850390085518 4.221123231110666 30.29521977803535 -10.03680298331034 12.03284716489185 34.10786780500648 14.77184800174475 -5.135187529381257 5.531059804951163 16.5888440434953 56.07476970904315 -18.82852402014037 21.27638516975571 62.86173049142004 126.6826253728478 -42.63416550673878 46.94664994034838 141.6692126046987 66.22658761205626 -21.88926079753906 24.83311289093274 74.03920326853034 -0.08679377727366494 -0.1500488387729327 -148.6880422431407 148.6882087917421 0.2140869302171618 -0.08853145553194997 -354.734226771748 354.7343298782444 -0.07045196921125639 0.1909519550113888 -138.4076986444098 138.4079141153831 -0.1709865071877684 -0.03980881571202469 -782.4918006285326 782.4918327700268 0.007824973701787155 0.08049113253454615 -210.5599097558931 210.5599715431387 -0.04196907760921853 -0.03001217700113126 -224.8684637552206 224.8685101862144 -0.5134261045898311 -0.3489723039813059 -13.8290693732199 13.84369992263806 0.03390833595264833 0.2909073132513144 -12.19695950366782 12.2012736121752 0.003830532052432972 -0.3602721315008213 -6.203527125002652 6.215548186383533 0.7435355983898936 0.02776871331515796 -13.00188949772757 13.02390980403084 -0.1076183994760566 -0.3997131387439381 -2.864598492009522 2.897715758750942 0.9330251448568652 -0.7332923016906336 -10.37674831899099 10.44531660512195 0.1065109825890025 0.1237505985228431 -1.065326444286243 1.086765392273054 0.1403039498841059 -0.07921516095894976 -0.8999706505169658 0.9248714487812696 0.1205561640486976 -0.0364860555094228 -1.957276505040756 1.965964378751896 0.3791749811523273 -1.176536291122374 -7.247983026795441 7.353961453004406 0.2189345710770156 -0.04352185675946721 -1.647902216851593 1.668420754825612 -0.3101263230654154 0.1078831784976782 -0.9719551025521203 1.035371248749906 0.08439513247449035 -0.1515144475969636 -0.6950379861582834 0.7298196717812983 0.1433301498366729 -0.01421458313049041 -0.3896698083761474 0.4368154601037836 0.4346496564188642 -0.07926466473489044 -2.258084881454953 2.305131303777726 -0.009287905088473256 -0.004226728696126833 -0.7439756130916003 0.7570228716435361 0.5456053082650094 0.02614717368802677 -5.830291821653194 5.857379205168037 -0.4538043647441131 -0.3349582054855738 -0.8840485298715818 1.057902164167854 0.305913145412355 -0.3327090517957014 -1.266181141556176 1.351655515956405 0.288655980658574 -1.222195367596255 0.06757256752114428 1.569854015036146 -0.02745504257436318 -0.1608962840411786 0.09941146937768755 0.2339735759115773 0.9140290244902491 0.1118862412996146 0.03181237678237547 1.047212989233468 0.02892165894587684 -0.08598885633896038 -0.135257449912437 0.2144875484206004 0.4739656846053932 0.3897150996736191 0.701807011961687 0.9419522342113051 0.554323348334124 -0.2746821701584092 -0.04683236545916414 0.6359227346665541 0.4258307831353415 -0.001066542204400223 0.5490320417474029 0.707805606535618 0.5639947237539658 -0.1302300205144759 0.1815688852604248 0.6224925314091939 1.556779588574816 0.07352542652733929 0.2121294886673563 1.579065350329579 2.551665264209611 -0.3635240454871023 0.1497480257352126 2.585302578777349 0.7937850713681196 0.6148810934035505 -0.4759501055854813 1.119902579003579 0.2874446572470952 0.3533138965653799 0.0317182695472677 0.4774316432843398 0.2671431840352267 0.008482282703567781 2.181812476498616 2.202263088938596 2.236209987260169 -0.2860498550576693 21.54452557665043 21.66257744475586 6.778143877219338 1.769154605722416 32.92085608448765 33.66160399035795 2.312238582840707 0.4199937963612218 17.25467870431632 17.42109223530621 6.988322668627594 -2.472619489299767 2.689565034079615 7.886934811266226 26.90799549735106 -8.807748783031538 10.05361875946303 30.04515585341479 fastjet-3.0.6+dfsg.orig/example/data/Pythia-PtMin1000-LHC-10ev.dat0000644000175000017500000154014011766120141022235 0ustar sunsun# output from # ./gen-events -lhc -ptmin 1000 -out ../data/Pythia-PtMin1000-LHC-1000ev.dat -nev 1000 # Stamped by ./gen-events on 2/12/2005 at 22:22:34 -0.8807412236 -1.2331262152 -157.4313156510 157.4393822839 -0.0051712611 0.2381550800 -9.7396045662 9.7435168946 0.0362280943 0.2694752057 -6.9243427525 6.9310844534 -0.2206628664 -0.1438198985 -0.6838608666 0.7460038429 1.2716787521 1.0422298083 -6.1740167274 6.3907254797 -0.5695590845 -0.3627761836 -58.5430479911 58.5544811606 0.2839991726 -0.4668202293 -49.6978846131 49.7097441380 0.6510530003 1.3970949413 -62.7226079598 62.7485783532 0.1434555273 -0.0312880942 -6.9382351613 6.9411919273 0.4931562547 2.1627817414 -14.8865871635 15.0516040711 0.2396813608 -0.0786236784 -1.9340954697 1.9554625817 0.3355486441 0.0516402769 -0.8346540063 0.9118040941 -0.7853865645 -0.7810520475 -1.5367790662 1.8994852039 0.1094889185 -0.1754670827 -0.6843130641 0.7283822313 -1.3395280577 -1.0677537402 -6.4527380155 6.7420362761 -0.4610425267 -0.0168193957 -0.8357253135 0.9647588756 -0.8586330562 -2.0252604440 -6.1169276419 6.5019392609 0.1506846470 -0.2812835366 -0.3038867955 0.4622264166 1.9980221318 1.1300023793 -3.4459595617 4.2454664891 0.3272882037 -0.2364585949 0.1553473919 0.4545798417 1.0076426762 1.4440286855 0.8523588299 1.9612643798 0.0379998790 -0.3660104062 0.1528715253 0.4222050407 10.0151541250 -2.3211630182 -15.0785563543 18.2503000364 11.3598983026 -1.2325298244 -15.8349153125 19.5276839884 1.6687709743 -1.1585763834 -2.8709909456 3.5198245120 3.2014431503 -0.3128004506 -0.5513753788 3.3957985464 -30.7151484971 7.1828179172 -30.3287168815 43.7617176202 -7.5956115238 2.5973350872 -7.5388480549 11.0234901429 -0.9213602936 -0.5107772285 -0.1419601961 1.0721150358 -1.0794599717 -0.6668199287 0.5316879271 1.3827705828 -0.7396340255 -0.6182167240 2.5119449763 2.6941784942 0.2074176533 0.2794277179 0.9960164767 1.0642511636 -0.1539166871 -0.7751679292 2.5738103560 2.7372826624 -1.3215623416 -0.6371922652 234.4350568153 234.4396892268 -1.0575338040 0.0953188302 464.9467453555 464.9479787674 -0.6276410883 0.2361957514 71.0828886604 71.0861889671 -0.2082020096 -0.4373362216 0.9028588667 1.0340430193 -0.0179791764 0.0902483897 0.2648461382 0.3131952817 0.1020198339 0.1098009129 1.7787412558 1.7904928168 2.0706642474 2.4044116603 1.0424047727 3.4696174649 0.7973260719 0.5349870337 57.3601218239 57.3683274589 -0.2096823488 0.0247005810 -23.7890553577 23.7951971424 0.3102511281 0.1319028264 -314.2349531398 314.2355280746 -0.2551007217 0.1414141961 -264.4206622484 264.4208599525 -0.0667217187 0.1675665310 -440.2993433749 440.2994024371 0.1230808742 0.0544787546 -9.2334321211 9.2344131146 0.0149244718 0.0926408620 -13.1527203128 13.1530550328 -0.7273456972 0.8103042163 -69.3094134240 69.3181065354 1.3444919516 -0.0354346667 -75.6843009141 75.6962503634 -0.2673665474 -0.0908126999 -12.8334289873 12.8372937636 0.3478059093 0.1156549525 -5.5306033046 5.5427356000 0.1066857461 -0.0194790151 -1.0350365802 1.0407026486 0.0216700641 -0.0151983847 -0.0808217620 0.0850455160 -0.0908971368 -0.1795934739 -2.1471276079 2.1565419240 0.1619100903 0.1096391138 -5.1549916876 5.1605866621 0.1658801571 -0.4323029725 -10.9719847384 10.9928382207 -0.0738683424 0.2189545272 -5.2858871411 5.2927762347 0.6032480190 0.0236332859 -3.2008192361 3.2944425092 -0.0357683833 0.1856094526 -0.6235460716 0.6515673024 -0.3533710661 0.6295703546 -2.8607535473 2.9504475593 0.0481173336 0.0105768278 -0.5957002119 0.5977339622 0.2075827055 -0.0308763006 -0.7487101323 0.7775672240 0.5304017839 1.4777754272 -3.9322188565 4.3370823357 0.0413924064 0.1486652835 -0.0938036137 0.2282402258 0.0836183570 1.0175603398 -5.1671981062 5.3502475764 0.3485824980 0.7400614406 -2.3277750515 2.4712784483 0.2840798497 0.1448084307 -0.3598613881 0.5006504231 0.0615749422 0.1226682661 -0.2567909641 0.3228937304 0.4447081942 -0.4703237310 -41.1153447304 41.1206763305 0.0124634495 0.4015541485 -14.9710629970 14.9771027945 -0.0316220376 -0.1433969883 -40.0395270888 40.0428387244 -0.3087482155 0.1806952265 -13.8307938752 13.8354195977 -0.3356629575 0.0993822522 -10.0800461630 10.0861229965 -0.3201882660 -0.2024976612 -41.8446572615 41.8568897287 0.1061884633 -0.3151853343 -14.3998854139 14.4044020183 -0.2527720657 0.9069338223 -58.5238686950 58.5316077815 -0.1792120633 -0.0360308668 -33.2666000360 33.2673950427 0.9675598538 0.3593779851 -47.8071191709 47.8274640622 -0.0714174325 0.0908505489 -6.7152464947 6.7176907894 -0.0778201914 1.4032563894 -90.8847339885 90.9004422830 0.0244495106 0.0548209263 -26.7828085908 26.7832395149 -0.1660314882 -0.0217473452 -18.6254257666 18.6267013767 0.0157049989 0.0168585335 -0.3203174380 0.3211450112 0.3107606707 -0.1971654391 -2.5216196955 2.5483352004 0.0555180663 0.1012407689 -2.8568822700 2.8592146218 0.4924054759 0.4638065599 -11.5988585156 11.6185669746 0.0246279353 0.3500825457 -1.4762107229 1.5237592353 -0.1337804291 0.0207566609 -0.6922983624 0.7054112734 0.1425990775 0.2159252673 -1.4422250588 1.4652547008 1.1509079385 1.3932642481 -11.9161396276 12.0523922095 -0.2817355269 0.1171350200 -3.5044085055 3.5204338196 -0.2938296833 0.5477549955 -4.0607872094 4.1104554447 0.2320766870 0.2725578877 -2.4417843515 2.4718288765 -0.1166849087 0.3561484951 -1.0167846717 1.0926060461 0.4301305393 0.3390614943 -3.7153711906 3.7581162630 0.2292214322 0.5342372509 -4.0278522037 4.0719804844 -0.9524325280 0.0334349530 -3.6861382279 3.8073429911 -0.2656944809 -0.2572725338 -2.3412698888 2.3703011214 -1.0311407020 -1.0586248548 -4.0709688056 4.4316494143 -0.0950317920 0.0651839091 -0.4709223689 0.5045073299 0.0664907355 -0.2283387225 -1.8762930749 1.8964480162 -0.5611110795 -0.6953888597 -1.9606771050 2.1592002697 0.1891889671 -0.1472085995 -0.2096350365 0.3184488743 0.0792704574 0.0251844818 -0.0983276385 0.1287881517 0.1611736633 0.0711833539 -0.3690578008 0.4321197344 -0.0054785644 -0.1772470704 -0.1887858326 0.2942217092 1.2592788545 0.6027682305 -1.9731707573 2.5928490514 0.2029562446 0.1650861534 0.0141930687 0.2968600737 1.2748961578 0.4162795142 0.2649070316 1.3741558745 1.0762322510 0.3311719610 0.5525788508 1.2620514638 0.1617039199 -0.1197724715 0.0749212600 0.2560987754 -0.0323954715 0.2494233491 0.1560907622 0.3272698956 0.4783653778 0.0155338834 0.0730680592 0.4841628626 0.8887630855 0.0859887077 0.3171179068 0.9475535060 0.4620391835 0.0959242469 0.9549103797 1.0742510351 0.4929608353 0.2924063523 0.4046649124 0.7153637789 0.8090379891 0.3357430404 0.1242812216 0.8956514187 -0.2218609894 0.0554977900 0.1140035220 0.2911681494 1.0947245051 -0.6236432380 -0.8821510424 1.5443519278 1.2312355422 -0.7380880549 -1.6968461982 2.2269893898 0.9823668004 -0.1980014204 -1.1323956352 1.5185679940 0.3072642138 -0.3616367001 -0.8863081947 1.0149947787 3.5267082850 -0.8709343198 -6.0396048282 7.0492910411 0.0302309577 -0.1093072034 -0.1454183249 0.2312752681 8.3195138078 -1.2696507106 -13.6925071989 16.0726648724 1.9111207173 -0.2604029574 -2.8768617815 3.4664110534 0.5301770085 -0.2474488120 -1.1645712928 1.3107343956 1.7420326246 -0.2822907394 -2.8168929273 3.3240414394 7.1662439694 -0.8989264899 -11.6921124639 13.7429478399 4.0278455019 -0.7538804612 -6.1367606781 7.4387161891 2.3520608039 -0.3594541793 -3.9148734196 4.5833515040 0.8874010232 0.1118054115 0.0320276498 0.9058071435 0.1500724686 0.0233402575 0.0493207873 0.2120821501 4.2962697295 -1.7142289365 -0.1690138675 4.6308271300 1.8430690942 -0.4354147487 0.3986540928 1.9353074110 17.9174665745 -3.9541912904 4.1909545762 18.8211407058 3.7381128073 -1.1588289400 1.2894704313 4.1229341070 40.1307210930 -9.9455385011 9.4372399972 42.4083658029 46.9323028742 -12.1457646999 11.2983938225 49.7778448306 49.9481498640 -13.6951263923 11.6387976852 53.0834743878 55.4631919903 -13.9171302743 13.2275436067 58.6925897426 8.2260209293 -2.0146434912 1.9795098478 8.6973943203 552.6086009193 -143.3841889206 127.4057239389 584.9508777791 -58.5643305599 13.6721150775 -60.7292192202 85.4679184928 -20.7055785892 4.9367170132 -21.3460862941 30.1457632088 -63.1393333534 15.4319228136 -63.1699054399 90.6388674177 -184.7092504379 43.8836483458 -185.9895634959 265.7736690492 -132.3436726570 31.1975659982 -133.8117860858 190.7714585356 -249.6259700938 59.9806981396 -252.0534723625 359.7801849802 -84.6956389844 20.2530979512 -84.9405599439 121.6489105704 -1.4896061764 0.5394718049 -1.1697689680 1.9742835694 -15.6910439822 4.0928980329 -16.0308697076 22.8077421088 -6.5161499932 1.4530419848 -7.0414172713 9.7042557013 -1.6887821332 0.6217356263 -1.7453944171 2.5108607565 -2.9066030431 0.8578299581 -2.1768165890 3.7339287264 -4.3216629645 0.4876667295 -4.0106317127 5.9177053101 -0.1313279989 0.1710015195 0.2960934797 0.3662784619 -0.1378802261 0.0239116355 0.1336123094 0.1934811936 0.1228571341 0.1038820753 0.1856298240 0.2456497354 0.0880826051 -0.0369854789 0.0702432827 0.1185773575 0.3000337170 -0.0143366600 0.8191164649 0.8835481533 0.1103182833 -0.3276972527 0.5695489167 0.6807505905 0.0246169502 -0.0632054218 0.4462814427 0.4514067409 0.3462650138 -0.1370493016 1.8335961124 1.8710309122 0.1072718009 0.2347141259 0.8106008195 0.9835205177 -0.1228669036 -0.3420825771 0.4269449947 0.5778222728 -0.0537484106 -0.1418315633 0.1658218865 0.2247264604 -0.1921583292 -0.2051056097 0.6510375898 0.7227190760 0.0719282041 -0.6389806821 1.3260724361 1.4803438348 0.0770785256 -0.0961694649 0.7126381724 0.7365613449 -0.1024788272 0.2570404755 1.0007133278 1.0476061595 -0.3569652766 0.0132486739 8.2719979695 8.2808834026 0.9119741942 -0.5440359019 10.4508006448 10.5046135631 0.2130354298 0.0824739706 12.4438615581 12.4813728536 0.0796437059 -0.2190335365 1.8949965789 1.9143695121 0.0257844816 -0.0205887972 0.4134653053 0.4147798172 0.3407013815 -0.9771232757 20.8001110981 20.8258365743 -0.0484682129 -0.4170975131 51.2421047601 51.2524142879 0.0897243336 -0.1477960689 33.5942223016 33.5949571509 0.3309172902 0.2053558941 15.3759445633 15.3815092983 -0.4513428002 -1.0629724624 198.6483838807 198.6517896193 -0.5096208939 0.2808545308 526.2829357022 526.2840937694 0.0439210002 -0.0909597094 62.6115892566 62.6118262930 -0.4921468048 -0.2259270362 263.1629036404 263.1651334325 0.0256741895 0.0647083476 60.1293229885 60.1295252698 -0.2129474818 0.3356181212 10.9531127852 10.9612109561 -0.3345049992 0.0053042168 10.0385185055 10.0450612392 -0.2168883064 0.0832963463 14.9196810412 14.9221426402 0.2190731187 0.1408132403 1.5507985399 1.5786948078 0.1157490730 0.0973727931 0.2776072109 0.3455790172 -0.2700182117 -0.2659794788 3.8116405429 3.8304384274 -0.0503520285 -0.0502248492 1.5957756572 1.5973596371 0.3728285538 -0.0813045131 0.3833836648 0.5586361729 0.2045526783 0.5531671529 1.4067251294 1.5317281325 1.1124557930 0.6363451605 0.6161236815 1.7036584277 -0.0045760421 -0.0333413613 -0.0266276402 0.1460185011 0.2034731156 -0.0975389956 -0.0758288761 0.2759437765 0.2198871730 0.5955469316 0.7259653412 0.9744393147 1.6512411277 1.3209100794 1.5552345144 2.6286184355 0.1485630649 0.3302111341 2.2869277289 2.4987878260 0.1434858277 0.1748231234 1.2536107327 1.2814721851 0.4466109566 -0.3708574769 3.3454935959 3.5230832803 0.0645162267 -0.3240107647 0.8653597227 0.9367350499 0.7297178455 -0.0230670048 8.7581561340 8.7896415668 0.0818687057 -1.0590802908 6.0448998742 6.1375213268 -0.0165520648 0.0496969805 0.9381702085 0.9396313643 0.1856788128 -0.2651426402 3.5296675023 3.5472256346 0.2462301231 -0.0254015715 9.5838219962 9.5880341234 0.4564255134 0.1547243999 36.4834178279 36.4899947345 0.2420013869 -0.4750765942 8.8978425902 8.9148945584 -0.5836449074 0.2713063655 97.8985090318 97.9007242003 0.1098728236 -0.3173326524 192.1524793330 192.1528234652 -0.0884675198 -0.0343950604 37.9162600215 37.9166357068 -0.3479866282 -1.6163644207 3219.6952699557 3219.6958312012 -0.4502778003 -0.0845033682 -15.5304915887 15.5378743620 -0.0136188828 0.0749919179 -11.8647621575 11.8658278304 -0.2356122901 0.2546257088 -464.6232035239 464.6233539976 -0.3366930922 0.0001267148 -314.7906873590 314.7912608153 -0.5908021127 0.2714310441 -62.0570105158 62.0624117444 0.0950294025 -0.0979437150 -6.5075134406 6.5089442107 -0.0258241148 -0.1651896244 -7.6613397231 7.6631638929 -0.0283746791 -0.0128186850 -1.1860948704 1.1865034693 -0.2445470072 -0.0367850366 -2.3234980477 2.3366213976 1.1134230020 -0.0084955425 -8.1756524679 8.2511257554 0.7423074922 0.0450351928 -4.7803853081 4.8378851035 0.0631614949 -0.0147897750 -0.3372075109 0.3433904735 -0.0615524241 -0.0730339500 -0.4109508860 0.4219043606 0.2721762563 0.9356454684 -1.1899345164 1.5380040671 0.0195567553 -0.0613884496 -0.2438139881 0.2521830074 0.0015753821 -0.0127040661 -5.1798684309 5.1798842494 -0.2336502048 0.2398589892 -61.5027554276 61.5036669633 -0.2111577946 -1.2264310644 -54.4484267777 54.4628256623 -0.1724150208 -0.6710138080 -46.7073487537 46.7126952108 -0.0083548891 0.1191926839 -1.6273211403 1.6317018091 0.1782576111 0.2370603640 -3.4515411588 3.4642617920 -0.0157160274 -0.0172284475 -0.8321853782 0.8325120519 0.2055123178 -0.2277451049 -4.7400462090 4.7499622323 0.1433996625 0.1319354611 -4.2237703099 4.2282627709 0.2505217514 0.5109550496 -14.5866293938 14.5977256202 0.0907354824 0.2212240967 -1.6245224103 1.6420249969 0.0442826976 0.6827900032 -4.2712530344 4.3257098411 -0.0286900410 0.1272840718 -0.9586700336 0.9675084427 0.0168298416 0.0212462677 -1.2498808277 1.2501746801 0.0191626579 0.0396505095 -0.1096013028 0.1181178053 -0.1826163842 0.1583483453 -0.3493583086 0.4248225159 0.0736986630 -0.4757600112 -0.5567925582 0.7360686341 0.0718737115 -0.1073098612 -0.0922689901 0.1587287096 0.3823052378 0.2473184083 -0.9764937570 1.0774338714 -0.0099669892 0.0144860894 -0.0618195721 0.0642716668 -0.0893120375 0.0045092023 -0.4219473328 0.4313195157 -0.0173901063 0.0980486800 -0.2280732197 0.2488641256 0.0470683860 0.1067218125 -0.0220928902 0.1187142536 0.2236348783 0.1462105889 -0.2007592535 0.3342070810 0.2304940378 -0.1786278713 0.2738302916 0.4000230574 -0.0034266964 -0.0207838453 -0.0099250562 0.0232855581 -0.0198610958 0.0339167728 0.0860577817 0.0946084161 -0.1495093893 -0.0992705397 0.1721689527 0.2486962923 0.1388593068 0.0621639466 0.1820504657 0.2372522611 0.4364050518 0.1711414837 0.2526138346 0.5324965034 0.1135784502 -0.3755312317 -0.4819257884 0.6214307973 0.0656586648 -0.1174273893 -0.3106626572 0.3385432596 0.6794157833 -0.2958876229 -1.3108688155 1.5058327741 0.2105562628 -0.0146095214 -0.3598329775 0.4171656141 0.8891967174 -0.2859846717 -1.2899195992 1.5925924171 0.9709628090 -0.4638594187 -1.5007185975 1.8466430748 0.8378588087 -0.0907723342 -1.0811879512 1.3708444061 0.1779040294 -0.0469475636 -0.1539205319 0.2398863222 0.4696086571 -0.2188612179 -0.5030102129 0.7221161941 0.4511368236 -0.1140360671 -0.5914121373 0.7525270589 1.0715035537 -0.0504322193 -1.2598340838 1.6546435245 0.0668091207 -0.0378517174 -0.0814590598 0.1119454758 0.6316389071 -0.1273235117 -0.6462307006 0.9125749854 0.2684052593 0.0083959523 -0.1886456222 0.3281753282 0.3892874920 -0.1743366297 -0.6509560390 0.7782555985 1.3389273647 -0.3627304714 -1.9218592665 2.3701989205 0.0045094441 -0.0453764540 -0.0434900736 0.0630138411 0.3133525938 -0.1008805853 -0.3655345011 0.4919168751 1.4519335046 -0.3776623331 -2.3436634930 2.7827141980 1.1774890796 -0.2142441295 -1.7232930015 2.0981229346 0.2355847301 -0.2200748912 0.1401791546 0.3515441909 0.3730544183 -0.2033339289 0.0678202445 0.4302486156 5.7036562093 -1.3847122534 1.0304717985 5.9591101942 0.3132978256 -0.0441957346 0.0509066642 0.3204688424 12.0524189062 -3.0888845437 2.7804315114 12.7488355783 31.6297261863 -7.9897036677 7.4822494855 33.4702704005 0.1298166828 -0.0603422723 0.0449212824 0.1500382703 5.6041248096 -1.7827306116 1.3929423696 6.0435611820 15.2635626061 -3.9126479532 3.5227360906 16.1460467918 12.6420333259 -3.3156273590 2.8203654708 13.3704469927 -6.8280628114 1.6575170026 -7.0642230364 9.9635862759 -28.7310801665 6.6899382857 -29.6661493612 41.8367142558 -23.0805998372 5.2804748057 -23.7593817157 33.5428860164 -9.5867328041 2.3566842001 -9.6302827557 13.7920713461 -2.4941626575 0.7605935548 -2.3465485517 3.5079395695 -12.8361288251 4.1724746846 -12.3930282133 18.3238341103 -0.2218939688 0.0177591193 -0.1601445527 0.2742236267 -0.3547183900 0.1627198093 -0.4375984432 0.5863405751 -1.5077751291 0.4846678610 -1.3722432145 2.0955524844 -1.0249084149 0.3454253853 -1.0884030972 1.5343980115 -0.6851007890 0.1387858818 -0.6931465231 0.9844169414 -0.1348478831 0.0027831157 -0.0667382711 0.1504848634 -1.7172317946 0.4278616379 -1.5483601280 2.3514611847 -0.1185075147 -0.0023470526 -0.1255368894 0.1726529765 -0.2481981444 0.1582306347 -0.1468021309 0.3289226630 -0.9966635486 0.3389627921 -0.4783137759 1.1562949761 0.0088328598 -0.0568652170 0.3666038530 0.3710930576 -0.0824728099 0.0441797782 0.3879523579 0.3990747413 0.1199632582 -0.0647633161 0.3012285579 0.3306419733 0.0018630421 -0.0049969991 -0.0147954815 0.0157272757 -0.0136056330 0.0078110768 0.0042779078 0.0162612013 0.0895632652 -0.1214885998 0.5518245090 0.5720938272 0.3093767760 0.0801078725 4.7396091515 4.7503711613 0.1443427580 0.0774488471 4.1438348166 4.1470712729 0.0800206896 -0.2831535685 44.4006608942 44.4016358606 0.0077367737 0.0117045964 0.7717758140 0.7719033374 -0.1114386512 -0.0611335023 10.4091099025 10.4098859187 -0.2179700232 0.0686322286 20.7719389630 20.7731959408 -0.0517190611 0.1441402526 13.4281329719 13.4290061578 -0.0315432027 -0.0288834445 4.1154298514 4.1156520855 -0.0210490068 -0.1913294761 14.6251063933 14.6263729969 -0.4133059803 -0.9942214423 74.9928286595 75.0005576544 0.0017189742 0.0003086548 0.1162765244 0.1162896396 -0.0197978822 0.4918674160 1.4905912780 1.5697731904 0.1498213953 0.2658028537 0.0262280525 0.3062442134 0.1485723914 0.0742812231 -0.0073876616 0.1662709630 -0.0050837918 0.0002284770 -0.0021956656 0.0055423901 0.1905224494 0.0721540097 1.0400756752 1.0598407498 0.1789403158 0.0666764902 2.9045526860 2.9108231992 0.1943735087 -0.0680286041 3.0118739143 3.0189059985 0.0150257083 0.0162010005 3.8405935297 3.8406570928 0.0864382180 -0.1775350230 10.9516521209 10.9534320844 0.0112700861 0.0077621474 6.2645553713 6.2645703178 -0.0880690210 -0.2011746802 24.3996872285 24.4006754876 -0.0428591497 0.0438332411 44.4944475561 44.4944897890 0.0444439323 -0.0497049989 94.1332069530 94.1332305677 0.3963642912 0.0673770453 -289.8837440594 289.8840228682 0.0542374607 0.0178424362 -96.5357422683 96.5357591535 -0.0134026835 -0.0410107441 -5.2778715751 5.2780479229 -0.0074119146 -0.0297613121 -58.9036529918 58.9036609767 -0.2811166895 0.8565449965 -1345.2132113785 1345.2138415713 -0.0217590821 0.0295680705 -1.4316647060 1.4321353144 -0.0411871732 -0.1433145865 -4.1950850614 4.1977344040 0.0000161243 -0.0197893201 -18.6652813563 18.6652918468 -0.0037080800 -0.1644263966 -20.7846855998 20.7853363041 0.1864447321 0.0253239348 0.0515967916 0.1951029695 0.1036221868 -0.0670423838 -0.0340109532 0.1280194664 0.4672472776 0.2236570795 -0.0501273890 0.5204375686 0.1891841769 0.0409518465 0.0506236100 0.2000761265 0.0261105832 0.0529552694 -0.0657671278 0.0883817754 0.1618126437 0.0242326171 0.0023687129 0.1636342329 0.3565264181 0.0124879620 9.3933918502 9.4011997783 0.5033500838 -0.5007399100 16.8454871381 16.8610206829 -0.1398195181 0.0757052286 -118.9195521575 118.9196584511 0.0018271729 -0.0111140989 -74.4314662452 74.4314670974 #END -0.2377147175 0.4341759888 -2308.6715816616 2308.6718253878 2.6350475198 2.6632616972 110.9547733728 111.0180960578 0.7209068511 1.1295195065 50.1035529096 50.1216621328 2.5437837979 1.5473394180 95.3273926328 95.3739815738 -0.1521961007 0.9209601948 33.5354507105 33.5487297148 0.4407997008 0.3341357031 1.9998934723 2.2772517511 -0.2452681819 0.4908898821 2.4250199151 2.6574802989 -2.3749768658 -3.2162867818 2.5118877270 4.7237776741 -7.6967366880 -11.0706036409 6.9799133886 15.1834347667 -3.2252974823 -4.2093618244 3.1398301238 6.1643559119 -4.7218655152 -6.9627507620 4.0274348293 9.3282165072 -1.0604800715 -1.2427656789 1.5787359322 2.2761747392 -3.9430037859 -4.4166182485 4.3035835641 7.3793616049 -0.6764400527 -0.1893843429 0.6198299243 0.9471570589 0.4027955320 0.0277472254 1.9749529039 2.0206268598 0.7949267590 0.5530477440 14.5367756778 14.5696635942 -3.0042310843 -1.1934326443 19.9345176380 20.2167621327 20.1828410706 -28.0152665041 15.0024756379 37.6584558636 16.2032408593 -26.1971535616 13.0500343651 33.4538300616 5.8230188034 -9.9530921505 5.3151340680 12.7320474900 -0.0235127327 -3.4010605785 2.9146850370 4.4813652559 9.2932983985 -75.3225356136 72.3253366387 104.8412460727 4.2055170651 -43.8692701003 40.9317428634 60.1467063648 15.1308001691 -124.7999279511 119.6295090976 173.5398091767 -0.3132702993 0.2870411145 32.4285472446 32.4316309652 0.1823331019 -0.5944312335 48.0785352151 48.0827580538 0.6721179022 0.1995256309 211.1461093829 211.1473195195 0.0502855078 -0.1370903784 185.0087052715 185.0088155424 -1.3092936884 -0.5306729329 1126.1714216048 1126.1726985918 -0.4610609696 -0.7165509012 7.1527445447 7.2641673663 0.9002556468 0.4370354256 5.7729378006 5.8606954219 6.1374912605 -8.9099936339 -5.3899060330 12.0883147030 0.3573057754 -1.4224510988 -0.2033725613 1.4872372807 6.0285101154 -10.0120805850 -4.3766848375 12.5148077337 3.0241120190 -4.6746167363 -1.3306262404 5.8009182989 0.0602325628 -0.4261663847 0.9983137957 1.0960638525 -0.4953551263 -0.5116066824 0.3808844306 0.8195552654 -0.9086508225 0.7156795014 0.3866882009 1.2275386004 -3.5574742858 3.2068197264 1.9870515413 5.1872121284 -2.0124220703 2.3854667380 1.4041650818 3.4251209480 -6.8803456735 7.3831875316 4.2339920410 10.9451716799 -2.0747988849 2.0092110683 1.4637946615 3.3715287521 -0.7064007364 1.5344697060 1.1406408572 2.0430713715 -1.8273913683 2.5631539547 1.4575448231 3.4717479898 -0.0552032091 -0.9752813741 -1.7841517099 2.0388472875 -0.0526878435 -0.4863241518 -0.0442639355 0.5106136214 -0.3433650464 -0.4293632765 -1.5008564783 1.6728608749 -0.3852291363 -0.9263684797 -1.9087563962 2.1608773247 0.5972687395 -0.9628109248 -20.8964225289 20.9275820179 1.9143061027 -1.5662711969 -21.3041060150 21.4476615555 -0.4636194751 -0.3477175292 -21.9880043352 21.9960829451 -0.6070718221 -0.1719833032 0.5135470468 0.8254240171 -0.2489117841 -0.4604581646 1.2828612739 1.3925486098 -0.5703040169 -1.1940672201 -0.6751169573 1.5653967752 -0.4430147703 -1.1637278285 0.0929354544 1.5626750555 -0.2497810066 -0.8014242179 0.4842090059 1.3497857143 -0.2585994017 -0.3758374654 -0.9321143768 1.0471124330 0.1451662201 -0.2168313885 0.4627779647 0.5493016584 0.0130910043 -0.5025166792 0.9051272746 1.1469920359 -0.6784484261 -0.0731407164 0.6478729775 1.3288084208 0.6839570086 0.1010334348 -1.5640739487 1.9505596259 0.4127909680 0.5727139867 -3.7171761220 3.7861954256 0.4840827508 -0.4475183832 -1.4182756576 1.8245291006 -1.1843414744 -0.9112578999 -3.9548510227 4.3306180729 0.3913656852 -0.0308243742 -0.7461149872 0.8545669082 -0.4379726603 -0.2489408848 -76.6403335134 76.6421163098 8.9845276441 -91.8278139266 89.6933340396 128.6778255895 0.0923284210 0.2490313906 0.1750724100 0.9907280719 0.4738844286 2.4275744803 -0.0299281934 2.6455492055 1.1205501567 12.2281290315 -3.9421948827 12.9060959905 11.7257089531 177.3816977690 -61.6883511328 188.1680926702 0.4316138415 15.1992564028 -4.6325801380 15.9231679080 1.3257620646 20.8414747286 -8.0065952699 22.3855550191 0.8235926928 5.3752448801 -3.2019158567 6.3298869309 0.1787100403 6.1611379028 -3.1367825516 6.9174013977 0.4639357006 3.2913918792 -1.8132511813 3.8183789287 -0.5054955114 -0.1700033882 -2.3963868903 2.5041441556 -2.1879032137 0.1090530292 -5.9432424764 6.3533129255 -1.2217580700 1.0086660120 -3.8918062335 4.2042520678 -0.3672613283 0.2915010944 -17.7741575050 17.7871911708 -0.0307545520 0.2558516683 -7.0898948451 7.0959491697 1.8216346778 -0.0570879569 -134.4772694727 134.4896914137 -0.5429252414 -0.1249040419 -9.9395738065 9.9561526745 0.2740352260 0.1333852986 -6.0541207114 6.0633937952 0.2986744966 -0.0800834745 15.2126985110 15.2164810514 -0.2955743464 -0.1672354886 6.4874990494 6.4978808548 -0.4071107970 0.1545753407 1.9846445103 2.0366458588 0.4990746435 -0.1055695050 7.2943577663 7.3135050029 -0.2818813558 -0.3636171022 52.8350512763 52.8372387398 0.0338151452 -0.4967308830 114.9974844456 114.9986469209 0.4729037040 0.3197024873 139.8014067607 139.8057293950 1.8644721584 1.3255929552 69.5109912452 69.5486258455 0.0851599951 0.1422199464 2.0073341889 2.0189970452 -0.0312759069 0.1397065011 1.1334170792 1.1509170904 -0.0235310253 0.0731040907 0.0927084632 0.1203859475 -0.3458448316 0.2989761162 0.9661483670 1.0688489288 0.3461485667 0.0220135141 1.1323739873 1.1924990806 0.0873714583 0.1214013465 0.3506279290 0.4059455482 -0.2539626985 0.1261126721 0.5029223639 0.5939799216 -0.4873974465 -0.3856774078 0.4748352483 0.9270637926 -2.0174056282 -2.9382119495 1.8155131241 4.0023221531 -2.8919175041 -4.7121150643 3.4391697641 6.5126479777 -6.6574276526 -10.0347527596 6.3413836977 13.6106661440 -2.6651189291 -3.3103529508 2.4960933099 4.9306447004 -4.7009446522 -6.6801452469 4.0892198341 9.1348201950 -7.0150174690 -9.2500265040 6.3819776816 13.2477582837 -1.2902470527 -1.9336473699 1.0884442985 2.5667957845 -0.2075399089 -0.3738103261 0.2524595489 0.4965307619 -6.0498743539 -8.1641801220 5.7946707567 11.6983975709 -8.5414380338 -11.4247005585 8.9938083350 16.8638078348 -1.0595618730 -1.2873693428 1.3207875219 2.1316544397 -6.2325785142 -7.3765700669 5.9663163685 11.3902828622 -2.6819908692 -2.8203316031 2.5476010572 4.6537185460 -1.4516918596 -1.0629882950 1.2310113419 2.2361613813 -4.1737301714 -3.7590934493 4.1614850623 7.0534783485 -5.8456787070 -2.9429606058 7.4249853668 9.9099457784 -6.8713987323 -3.7834380612 8.7926469940 11.7839146741 -14.9081503780 -8.3401641447 18.6886345650 25.3198702079 -0.4191348178 0.2167521307 0.6938714067 0.8506425781 -0.4309435418 -0.5831389212 1.0944545906 1.3202552683 -1.2781351851 -0.5357722936 1.3614904473 1.9477724521 -0.2133182564 -0.1688199058 1.4470717292 1.4790203560 -0.5976075168 -0.2847644740 0.7846466188 1.0360384409 0.3102028317 1.1474694057 16.1129495388 16.1573368616 0.4132935552 0.2922259637 4.1643508939 4.1973212564 0.0495881026 0.0772431129 1.8196805340 1.8273320741 0.2042057887 -0.0801924809 3.4929481745 3.5026129636 -0.0616010608 0.1950000816 3.5355747887 3.5414839840 -0.0204921708 0.0263815043 2.4916281825 2.4918521049 0.4181895424 0.0289232711 3.8002639034 3.8258599777 0.6866362814 0.5457904864 19.4760505243 19.4962914537 0.0604875516 0.2455242512 10.9868642707 10.9897737649 0.4408145603 1.3231990539 74.9383853631 74.9513627230 0.8199366383 0.6663399472 25.8308215439 25.8527972652 0.2803113566 0.4678785189 23.1913461086 23.2167786500 0.1557178074 -0.1344464992 6.3667021940 6.3715540105 1.5109384010 0.9107620031 73.4634642454 73.4906510585 0.0290457615 -0.0006040639 4.9473559773 4.9494095579 -1.6990895761 -0.4500963148 6.6259331161 6.9191960172 -0.1821115125 0.1810086560 1.7975423153 1.8211443921 -0.5164163071 0.3311332752 2.3450406504 2.5996812276 -0.0585672767 -0.0030124545 1.7395253464 1.7461006319 0.1219031075 0.4127166488 1.2765868773 1.6424558563 -0.2920659488 0.1285868983 0.7115488985 0.7922239132 0.6649566972 -1.6029524639 1.8195963248 2.6838229056 -0.1604220588 -0.2614920355 0.1278979850 0.3604871718 0.6128066938 0.1165307142 0.0573867754 0.6417822670 0.4227180895 -0.4634596623 0.3287290517 0.7218227041 1.7005664700 -2.9000048641 1.6001060791 3.7258252482 18.5064232968 -27.2540486867 14.5789428754 36.0254899787 5.6812055201 -7.9862517647 4.1905412194 10.6600388792 2.0066512455 -3.2409889127 1.4821431356 4.0899152348 3.7655284333 -6.4403758013 2.9056058147 8.0062594259 5.2510297245 -7.9132359865 3.9895800019 10.3018855227 5.5578915915 -8.4962996385 4.7622770492 11.2534146360 0.5656168802 -0.9613766849 0.7086164672 1.3288283064 4.5998221120 -8.4317501230 3.5769248857 10.2502021942 0.4844194718 -1.2390824351 0.3318359278 1.3782533778 0.3197825926 -0.7748439252 0.7229590880 1.1157032056 0.6541304026 -1.9903745614 1.9477788504 2.8640530221 0.1225524209 -0.5096951450 0.5416526036 0.7666000030 1.2757468733 -9.2719323817 8.0124677477 12.3213383757 0.1175266064 -2.2761968785 2.4031688796 3.3150543257 4.6591357959 -39.7868864984 37.7543788293 55.0464938408 3.7991806245 -38.7832116169 37.1312731566 53.8267796060 2.2302158541 -24.2195946958 23.1318023815 33.5657919792 3.2312369504 -33.4219979954 31.7743613649 46.2287828324 -0.3737664878 -0.0965006369 333.6604981438 333.6607506362 0.1776961535 0.3355879580 312.9391355837 312.9393970961 0.3615429647 -0.0456121733 161.1020805523 161.1032488593 0.3604703585 0.6574221297 12.4990857040 12.5566570697 0.1858790234 0.0955005290 2.7582476993 2.7696717347 0.3061265385 -0.2471853011 0.3926827297 0.5731435612 0.0072682405 0.0418884502 0.1570557533 0.2143682909 -0.2697575985 -0.0075740501 0.4768061448 0.5653763461 0.2797492838 -0.4618539600 0.9245312371 1.0797252129 0.4499071429 -0.5902029228 -0.4428247026 0.8754024385 5.9052374147 -7.3712003174 -5.1060094380 10.7376550144 1.0351550516 -1.8534982776 -0.9132285257 2.3110578067 0.3355072860 -0.4854564662 -0.2070886849 0.6253949496 1.7496529196 -3.3250098361 -1.6720193754 4.1148638283 2.1470208624 -2.3099678381 -1.1544796793 3.3583438368 0.3588126361 -0.4230453450 -0.1498763642 0.5746101255 0.6066135197 -0.9114434012 -0.5913244447 1.2521395368 1.6733563776 -2.6793491908 -1.5274215187 3.5116278182 -0.0363879673 -0.1537071505 0.0065067983 0.1580895654 0.9674137922 -1.6351570450 -1.2319070932 2.2643372305 0.3654629558 -0.7786333724 -0.5022393095 1.0057620045 0.0725726059 -0.1768859238 0.0530357150 0.2425860366 0.2709803114 -1.1447092274 0.3281953457 1.2292198804 0.0714600677 -0.1180381797 -0.3452266296 0.3971155548 -0.1910645967 -0.5426429063 0.1307858805 0.6062604517 -0.2031251700 -0.9314689420 1.2178688611 1.5529258103 -0.3723370998 -0.5923149397 0.4175653469 0.8266271878 -0.7692619971 0.9300009799 0.9703700243 1.5549159501 -0.4157798244 0.5025340115 0.3322793451 0.7319992202 -0.4220956989 0.5129675628 0.4992110272 0.8309706067 -2.0269272381 1.2318634296 2.2366025247 3.2630954899 -0.8036447223 0.9169000594 0.6247512548 1.3770782381 -1.7471705174 1.1875329176 1.4023596743 2.5394746874 -2.8437748935 1.9187766650 1.9378958191 3.9425473397 -3.1176814964 3.1784886253 2.4602401628 5.0887119487 -0.3765661735 0.4220860809 0.3333628396 0.6712445981 -17.0315247162 16.3019539379 10.3289179600 25.7441402654 -8.0511481243 8.4430264775 5.3615796889 12.8402374887 -4.7792412299 5.1797259384 3.3518195995 7.8054392537 -18.3516402939 17.9026496592 12.0159039084 28.3141129619 -14.0464034039 13.8079218546 9.9370118663 22.0618185820 -4.7732564499 4.8424115810 3.4786393617 7.6389357014 -1.3224013571 1.3359309183 0.9731986286 2.1167362468 -0.0849398506 0.1805373218 0.3040110814 0.3895009953 -0.0142308572 0.0148071882 -0.0815975270 0.0841422993 -0.0179621444 0.1020566169 -0.0075316248 0.1038985903 0.1278597683 -0.1849505936 0.6843311234 0.7337190973 0.4001170803 -1.3399664539 1.3075516146 1.9195767204 0.1585630679 -0.2530946483 -0.3042455778 0.4263385029 0.0009113939 -0.1993635214 -0.2251378488 0.3007219568 -0.1851967294 -0.0218054420 0.1616663894 0.2835297379 -0.2859158297 0.2322962743 -0.1217216700 0.4123170753 0.3684877401 -0.4631979758 0.7708190283 0.9818234763 0.1340275559 -0.0798746586 0.6691342618 0.8460052997 0.2106732230 -0.3483497760 0.6610858560 0.9200033925 -0.3767574128 -0.1551437588 0.1713763924 0.4635357448 -0.5890137148 -1.0928097352 -1.7233453788 2.1805344593 -0.1013078945 -0.2383993449 -0.8020693572 0.8543375070 0.0438527765 -0.0788795844 -1.1534352104 1.1653487137 -0.4778626588 -0.6964761624 -0.8140675105 1.1813625447 -0.0310072143 -0.0135729287 -0.1460189716 0.2048096597 0.0057214853 0.1078041383 -0.3371000336 0.3539645466 0.0636368710 -0.3202863383 -6.6926631892 6.7006248630 0.5981661959 -2.2614147005 -20.5799777727 20.7124910228 0.0739092979 0.0331935370 -3.1189800271 3.1200321800 0.3396516511 0.3298221384 -32.7868089827 32.7902270372 0.1063203920 -0.9015724706 -21.8302390865 21.8495527484 0.0389097165 -0.4537406698 -51.5526653553 51.5548657217 -0.0030271687 -0.3685827895 -23.5952119637 23.5985035507 0.0107905294 0.0518866383 -23.5105253978 23.5109994029 -0.3490767392 0.6157345398 -40.7498214632 40.7562070446 -0.3884450394 0.6939331077 -314.0131780938 314.0145730539 -0.9626114581 1.3597012213 -289.4516104099 289.4568254820 -0.7491841464 0.8529266458 -274.3100052696 274.3123898616 -0.3579642361 0.5983983918 -87.3788745129 87.3817681783 -0.1291223583 -0.0606460946 -2.6338236739 2.6413741617 0.1459932977 -0.1772630437 -20.6990713437 20.7215984257 -0.2233872496 -0.0448846593 -4.0179783834 4.0268531846 0.0002599285 0.0178139027 -1.7422868456 1.7479589926 0.2647570302 0.0512479636 -9.4865331311 9.4913915351 -1.4177242519 -0.7691955533 0.6158783748 1.7265312121 -0.2620229703 -0.1350861742 0.1763938946 0.3435391062 -0.2076576140 -0.1199113221 -0.0376563791 0.2799967814 0.1324333522 -0.1015024929 0.3856750405 0.4427938241 0.0184689500 -0.0847312140 0.3325020364 0.3708879479 -1.4461849335 -1.4280108528 3.6444983625 4.1752262163 -2.6040373712 -3.1175061741 1.0332325627 4.1913512027 -0.0798132309 -0.1254518975 0.0202353320 0.1500593186 -0.3417306815 -0.2947356987 0.5529097236 0.7272124436 -0.5309474558 -0.3750224637 0.3458513608 0.7494264458 -0.0978950221 -0.9460040633 0.8872624376 1.3081366677 -6.1453056108 -8.4644419285 0.2618748116 10.4642064397 -0.9333741972 -0.9752554442 -0.0493103381 1.3580213061 -1.2639507938 -1.7051271563 -0.1721649686 2.1340456391 -0.3701271038 -0.4512903862 -0.0550605440 0.5862497327 -0.1299851300 -0.0886971526 -0.0707229343 0.1725255121 -0.0265316385 -0.5810731741 0.0150580448 0.5818734452 0.1147255280 -0.9884260887 -0.0484101507 0.9962387376 -0.2324933131 -0.0020866343 1.1301599511 1.2549740913 -0.0730586523 -0.3312932104 0.2253138139 0.4305099970 0.1600189281 0.0655138512 0.8521840964 0.8806790795 -0.1039468387 0.3103772082 0.2035223774 0.4099269443 0.0042305757 0.0212708278 -0.0123340708 0.1417824393 -0.2945065663 -0.1050218703 1.5820995491 1.6187286613 -0.2638455971 0.5393920657 0.9722593439 1.1512281774 0.2159212816 1.0642597992 1.4824678622 1.8429491766 0.5904416695 0.0332982709 -0.1790189706 1.1234449362 -0.1003867063 0.3332426533 -0.6435599963 0.7316403663 0.0284980610 0.0970227807 -0.1094985485 0.1490486215 0.3817548181 0.1314704161 -0.1227419094 0.4444846147 0.8121338823 0.3803254619 -0.4939559664 1.0332865921 -0.2483926752 -0.3322943981 -0.6487013734 0.7700207529 -0.0766480625 -0.0570910179 -0.0636996178 0.1148562194 0.1068681446 -0.1241938963 -0.0518697118 0.2213937129 -0.0155452771 -0.1686975807 0.0596284948 0.2274552080 0.3177372024 0.4355954505 -1.5702612595 1.6661033984 -0.0272315941 -0.2319920397 -0.2399505847 0.3627918607 -0.1455251962 -0.1413469819 -0.8898085609 0.9232527346 0.0516299300 0.5899743538 -2.9529434676 3.0149776608 -0.1624996260 -0.4211801888 -3.1642240671 3.1993112715 -1.2486946223 -0.7065707795 -8.5549696938 8.6755672306 -0.0769712779 0.1975473746 -39.0584298576 39.0592546302 -0.3295477601 0.3312731213 -76.6318446946 76.6333964058 0.1827129067 -0.1520714103 -105.7427169736 105.7429841771 0.6180328759 0.3697044437 -602.7543322057 602.7547624356 2.6154168776 -28.5229569309 27.8159017129 39.9267247018 0.1261177410 -0.5195239844 0.5517854459 0.7682955377 1.3982157067 -6.0918325495 7.1221548424 9.4757860135 0.3287226371 -2.3199469222 2.3833408250 3.3451465688 0.0911613493 -2.6948192417 3.8731072175 4.7213134232 0.1719815561 -1.7830664973 1.7513611637 2.5091132896 0.1114996819 -0.2006872533 -0.0371963640 0.2712395751 0.2335461793 -0.7416638911 1.1878645519 1.4265732101 0.0168356315 -0.1517788007 0.4396589398 0.4859012359 0.3069525736 0.0918702669 -0.2349339490 0.4211101681 0.2044817104 -0.1238833559 0.1401764096 0.2771448747 0.5035391930 -0.2286454429 0.5733188064 0.7965707195 -0.0838660851 0.0170342693 -0.4310155667 0.4394292950 -0.0162685967 0.0475842923 -0.0382077875 0.0631566872 0.0674259701 2.8007227281 -0.9048307948 2.9440300318 0.0939484878 1.4774145416 -0.5617211758 1.5833858423 -0.0038961811 1.4703797454 -0.2222892681 1.4936278250 0.0208509382 0.9467539162 -0.2572745759 0.9911850139 0.3385637849 9.4409037927 -2.5590816121 9.8324452880 0.0703565722 3.3453530409 -0.6758864449 3.4165244455 -0.0795158132 18.5500395603 -4.1477433132 19.0314060342 0.0223788945 3.7811647036 -0.7349745067 3.8519988131 0.7401175360 10.3037714258 -3.2915321346 10.8429305605 0.8765530835 14.8706076665 -5.1848873216 15.7735808871 2.2822091726 30.8993402220 -10.9806293488 32.8720459592 4.5164999163 63.7091229436 -22.1561507141 67.6030000222 0.3157874102 4.4965734112 -1.5407638084 4.7637010028 2.2440694457 29.2046188206 -10.3136849206 31.0534652620 1.7455717757 28.4923802941 -10.1443899568 30.2950636743 2.6437614435 43.3867515208 -14.8764839044 45.9426700926 3.3602410170 51.4101725689 -17.4139072033 54.3834598672 0.9196821584 11.7581780005 -3.9889742001 12.4511830810 0.5129976938 4.3980027316 -1.6177805947 4.7161730777 -0.4110962252 2.9471022916 -0.6798971203 3.0555117252 0.7570918867 11.2019116195 -5.3798726957 12.4506434397 0.2577937327 7.3529839234 -3.7775282295 8.2717609671 0.1081481260 2.5536652179 -1.4734004478 2.9535217498 2.0576493628 12.5353646442 -6.8800127452 14.4472607376 1.2114605173 6.4713780960 -3.3229632237 7.3761734943 0.3017732385 2.3435341282 -1.5317945614 2.8194137087 0.0187956515 0.0929917099 -0.0888843351 0.1300044601 3.2959528841 8.9598298460 -4.1938002659 10.4282930885 4.9346028045 17.5144688753 -8.2115675931 19.9638735456 2.2999146975 6.4078610069 -3.4739601453 7.6444861944 0.9104563062 3.1575768332 -1.4580241335 3.5978516231 2.2371684649 8.0098055013 -3.7494784121 9.1235944154 0.6715031184 0.3307296624 1.2325449909 1.4487737874 0.0200536445 -0.0910347475 -0.1201852189 0.2064309707 0.0808156521 0.2396953497 0.1166230256 0.3115537599 -0.5766682852 -0.1684834851 0.5087805575 0.7995438928 0.5647731371 0.3947958708 0.8411082623 1.0962551572 0.2760992214 0.0858859788 1.0782734942 1.1250603071 0.2309552519 -0.1541269819 -0.1828797133 0.5985113811 -0.4451326668 -0.3156221856 -11.1270406010 11.1412868546 -0.0156762661 0.0126505763 -0.8673718830 0.8676057663 0.1016787631 0.0137566164 -0.6005962535 0.6092976900 -0.6713176187 0.1053278935 -23.6508260590 23.6609977467 -0.2120140743 0.1160721067 -7.1870412875 7.1924588949 0.0437788018 -0.3854396725 -3.4370345401 3.4944759526 -0.1660568559 -0.1825478528 -5.9299140960 5.9350467381 0.1770273975 -0.2945256180 -2.1324338390 2.1599440078 -0.0215160453 -0.1499918694 -12.4077557512 12.4184944435 0.4348819770 0.1795557400 -37.2856396595 37.2888692132 1.7357253688 -0.6198698208 -115.0579650012 115.0728107380 0.1239447657 0.1492099254 -5.9217112471 5.9248873408 0.0085456217 0.0685847635 -5.6328021110 5.6332261200 -0.3824334831 0.3768684664 5.4466225619 5.4748024920 0.4331927824 -0.1206052721 5.7140895246 5.7334544996 -0.1956830387 -0.2454755844 6.9958893404 7.0043199215 0.0258945859 0.3558158249 1.4702200340 1.5193097657 -0.2241929565 0.0335405905 0.6467250801 0.6993715515 -0.0313011320 -0.0753798217 0.3960406437 0.4277731346 0.3859105205 -0.0416244041 7.2305171712 7.2422729767 -0.2591097430 -0.0260337382 22.5358868422 22.5378235676 -0.3911313369 -0.8602381379 179.0578601134 179.0628119191 -0.0655506127 -0.0277736023 14.7603385676 14.7611700983 -0.1957660441 0.0284435638 17.5958954063 17.5975608626 0.1225797515 -1.1494993645 111.4589755804 111.4649703360 0.0638710006 -0.1492953664 14.2475046745 14.2484300209 -0.1725353166 0.4829220409 14.7681305256 14.7776906565 -0.1058408573 -0.1333451658 0.9859470065 1.0102249773 -0.3294909348 -0.0664421386 5.0676928562 5.0807449753 0.2314345918 -0.1375358150 7.1070359985 7.1135025508 -0.6241442485 -0.1876012790 3.7416388837 3.8005383308 0.0287386229 0.0927421140 3.6721210189 3.6734043864 0.8060776882 1.1825667870 43.9939381523 44.0172104931 -0.1072995410 0.1688098083 2.1250955346 2.1917382150 -0.0546059780 -0.4039590046 0.5690756430 0.8588871909 -0.3718427839 -0.1550479273 0.2441664072 0.4913287443 -0.1033609561 -0.4250077497 0.4757832926 0.6611842413 -0.2567381840 -0.7947507102 0.4227864091 0.9361044462 -0.3622304293 -0.7020267233 0.3747681002 0.8743589269 -0.8944242650 -1.1509338768 0.9391415075 1.7339637614 -0.0355386025 -0.1050589485 0.0657941563 0.1289544336 -10.4906374204 -12.0145698622 10.3350220960 19.0121992314 -0.0440689697 -0.0380577750 0.0153921277 0.0602277836 -1.1887653287 -1.3418235853 1.2594111305 2.1908377248 -7.6738590301 -8.1798328077 7.9673896637 13.7898465188 -0.3460951370 -0.2639222923 0.3978047219 0.5896485538 -0.2788576674 -0.1522099872 0.1623069027 0.3567534296 -2.5007171039 -1.6898693117 3.0182011587 4.2683465837 -0.8455777403 -0.6686896333 1.0766850458 1.5236135430 -0.0335546181 -0.0149250942 0.0082434488 0.0376380828 -1.5758588702 -0.3896635331 1.3158301703 2.0896358259 0.0776991002 0.0072225333 0.2963767490 0.3064775563 0.0319567692 -0.1178310203 0.7725621933 0.7821494275 -0.0796344624 0.0381949576 0.4930813434 0.5009288508 0.0423403716 -0.0266452114 0.1917039967 0.1981239428 0.1301010817 0.4259815680 7.0810266349 7.0950211270 0.0720925047 0.0615147613 2.1204902670 2.1226069743 -0.1179506743 0.5338868955 6.3254017508 6.3489884933 0.0163565441 0.0071725698 0.3409534743 0.3414209337 2.4137785680 0.8896626965 78.3356367106 78.3778655332 0.1077549087 0.0198064203 4.0256157065 4.0271063099 0.1995645481 0.1155710038 13.1301403279 13.1321653849 0.1469405791 0.0227340492 15.7152683869 15.7159717753 -0.0359569521 -0.0559244988 0.4033275428 0.4087707900 -0.1176335958 0.0610728641 1.3275367628 1.3341369548 -0.0015417923 0.0031773122 -0.0031833916 0.0047546208 -0.5881637099 -0.2089279631 1.0777883122 1.2454778558 0.0211636740 -0.0052760294 0.0135796528 0.0256932784 -0.0287536671 -0.5006036221 0.4331235646 0.6625909614 0.7897682005 -1.5952243298 0.8315910990 1.9646929095 0.3496990585 -0.9264166095 0.4892892979 1.1045094761 0.0454727643 -0.1503980551 0.1141248216 0.1941953196 0.6711466581 -1.0032242982 0.7382833518 1.4149060523 1.4665876740 -2.5048763956 1.3437438912 3.1985829375 2.8641365046 -4.5427477792 2.5423052398 5.9416454989 1.0802544390 -1.3558740732 0.9970320764 1.9998542739 0.3505838685 -0.3676640689 0.3604348893 0.6228958387 0.5020508384 -1.0881859231 0.1771514366 1.2114397546 0.2208517153 -0.5950260962 0.1810556549 0.6600096102 0.4319288253 -2.2856358575 2.1018249888 3.1350218607 0.9337800003 -3.9803790633 3.7119449255 5.5221280053 1.4546069641 -11.1809893608 10.9176740915 15.6947765857 4.5396049605 -35.5435019464 34.3826788703 49.6600156072 1.3303698262 -11.9568600406 11.4000156139 16.5739778539 0.5316675291 -5.5696685355 5.2623965721 7.6809306493 1.5827040715 -14.6801948527 14.0727885800 20.3974618889 2.7046333488 -25.6117507463 24.3131793107 35.4176157587 0.0523889920 -0.3757526820 0.3454173253 0.5130768102 1.9797719303 -20.4923259299 19.4027444193 28.2899524552 1.3559833181 -16.0345479972 14.7281696944 21.8143164638 0.1568411763 -2.3669469254 2.2101516795 3.2421917508 0.6996282618 -7.3419521076 6.8704566615 10.0795295125 0.1242461711 -1.7672579398 1.5834460718 2.3761185154 0.4068156954 -4.2029919284 3.9826278907 5.8044780193 0.4679831308 -6.5855569618 6.2352399364 9.0811224952 1.7327957450 -17.4371572930 16.4366581489 24.0254191776 11.5637509777 -115.1063148868 108.9576870578 158.9180972466 0.6038065339 -6.2258812644 5.9363780276 8.6236166389 1.4331084534 -15.9881492849 14.9845517025 21.9593148145 -0.0765179947 0.0349627659 15.6362237983 15.6364501108 -0.5414825329 -0.1018286701 120.7522454068 120.7535024055 -0.2443973132 -0.0347051435 206.5266873924 206.5268349144 -0.2162875839 -0.0245360227 102.6094188176 102.6096497043 0.3237057335 -0.1911866295 65.3307119878 65.3317936886 0.2875783454 -0.1747684154 40.1094322494 40.1108439287 -0.0268591825 0.0906276891 0.3905694921 0.4018448978 -0.2220590270 0.0982374913 0.7361940469 0.7752048058 0.0750736786 0.0209592530 3.7262531037 3.7270682232 0.0174978863 -0.0672990647 1.1102776681 1.1124530734 -0.0136237698 -0.0333840771 0.0707566752 0.0794141725 0.2543700394 -0.4883452978 0.6230419787 0.8314845483 -0.1756558881 0.0441178961 0.2807045124 0.3340604781 -0.0718747982 0.0513063248 0.3875940467 0.3975266917 0.8307406568 -0.8931054609 -0.5646430372 1.3440941792 0.2767086278 -0.4223662254 -0.2162391514 0.5492906914 -0.0029335814 -0.2181338426 -0.1802158662 0.2829641985 0.0510139184 -0.0438541450 -0.1373816419 0.1529683674 2.4428852632 -4.9891800428 -1.8152725196 5.8442125414 0.1406130375 -0.2605097397 -0.0667907424 0.3034771063 1.5095019674 -3.1507946325 -1.0344770324 3.6436582903 1.0648670513 -1.9908145749 -0.6252246065 2.3426886940 -0.1065710284 -0.0705416483 -0.0159595879 0.1287952510 -0.0153243457 -0.1729948464 -0.0683183264 0.1866264884 0.3608522917 -0.4151560759 -0.2230287587 0.5935577234 0.0203337562 -0.0388963966 -0.0669875804 0.0800857493 0.0583011039 -0.1468638933 0.1101662042 0.1926255809 -0.0759882837 -0.2132549857 0.1277163139 0.2599295385 -0.2189911466 0.0485519043 -0.0504429579 0.2299106385 -0.1367728337 -0.0505136760 -0.1118753307 0.1837784784 -0.0870507603 0.0658047431 -0.1243212221 0.1654202689 -0.0086720261 0.0178778492 0.0351201948 0.0403515751 -0.2855777830 -0.1313807409 -0.0057386420 0.3144018149 -0.0865109421 0.0294182868 -0.0287292140 0.0957859408 -0.9690462370 0.4755670072 0.8619438050 1.3813622663 -1.4385419850 0.5742904302 1.3810980580 2.0752456209 -0.1789261525 0.0934549253 0.1172808830 0.2334591969 -1.9010414789 1.5110780150 1.3196132124 2.7638188258 -1.3874010732 1.2067857315 1.0348292155 2.1099964561 -0.5946723048 0.5914168638 0.3911023038 0.9254026523 -0.2596404021 0.1376885204 0.2311607741 0.3739071683 0.0075384405 -0.0150901031 0.0088845706 0.0190650175 -2.2630912125 2.8353966883 2.1677801368 4.2261480023 -0.0783865110 0.1259663731 0.1141647281 0.1872045870 -2.9562684029 2.9549487150 1.9817968550 4.6258797598 -4.7300768212 4.4938394849 3.0582014602 7.2056100520 -3.2640566108 3.2888430496 2.1205924066 5.0958283250 -5.8605856584 5.7567533059 3.5994003629 8.9689662647 -12.7270255727 13.3535377734 8.3992859097 20.2692415938 -1.2058471776 1.2066522579 0.7687630762 1.8711156444 -1.4362591138 1.4819581655 0.9776279496 2.2835929266 -3.5429056984 3.4056167726 2.4552734672 5.4935211102 -10.3853500976 11.0688068289 7.5335071716 16.9708722037 -1.1324136070 1.4170391372 0.6288539598 1.9249149543 -5.4434220742 7.0020090372 3.8400164480 9.6656184769 -0.4140311365 0.4204837637 0.2280104199 0.6326271644 -1.3012453540 1.6388563715 0.6790331790 2.2000399397 0.0362057857 0.0521376359 0.0095260489 0.9404629341 -0.0376562156 -0.0675224456 -0.0775363237 0.1773948636 -0.2170179133 0.5155284963 0.5120815402 1.2074293743 0.2043173639 -0.0358707538 -0.0241034415 0.2088379086 0.0178036379 -0.0710910876 -0.0003178614 0.0732871973 0.0365138629 -0.0010764509 -0.0036269924 0.0367093450 -0.0353822723 -0.1070919881 0.1649353849 0.1998106111 0.0048522994 -0.4198757160 0.3583453933 0.7432402112 0.1462823353 0.0668196753 0.5133932730 0.7328788933 0.0912800639 -0.1423127659 -0.1033663638 0.1981655333 0.0799617125 -0.3099013552 -0.0310466705 0.3215534499 -0.2288563262 -0.0832617548 -0.1602089444 0.2915041058 -0.4193135942 -0.2886143200 -0.5259382219 0.7319379272 0.0226298837 0.1106736198 -0.0509461306 0.1239204179 0.0645978139 0.0074817939 -0.1301651390 0.1455053889 0.0472248342 -0.2648449176 -0.3941433802 0.4772022837 -0.0522324519 -0.3261629570 -0.3251871403 0.4635268921 0.0917270771 -0.2153038403 -0.3763767876 0.4646599525 0.0017990534 -0.1627732498 -1.5006999438 1.5159414480 0.0714769609 -0.2318737146 -0.9630371846 0.9931339257 0.1346286216 -0.0869766009 -0.6509914421 0.6704324369 0.2216902671 -0.1149686566 -0.6170650501 0.6656828393 0.1747790837 -0.2274106351 -0.9307473125 0.9739373105 0.0849977519 -0.0579550062 -0.2077520542 0.2318282050 -0.0213978723 -0.0203862294 -0.0888013621 0.0935917160 -0.0284587840 -0.0270055017 -0.1223782808 0.1285142141 0.2359760192 -0.1858916533 -2.8179718554 2.8339382079 0.0623298338 0.0022500261 -1.1709529989 1.1726128928 0.1536246983 -0.1562413548 -1.7223650909 1.7362469338 0.0929633450 -0.1396658071 -2.5737475994 2.5792102331 -0.0235240466 -0.1696672022 -16.2042100316 16.2051153371 0.0990983142 -0.1281237399 -19.3898067888 19.3904833224 -0.0169595443 0.0337677883 -0.7324363218 0.7334104275 -0.1481493152 -0.0080167886 -10.8926709403 10.8936813201 -0.0330332148 0.0088153122 -1.4239466647 1.4243570503 0.0663000224 0.1342152019 -17.5255117799 17.5261511051 -0.0375383047 0.0559278864 -11.4492816028 11.4494797381 -0.9185408296 0.7076375677 -137.7492292798 137.7541093230 -0.3358526424 0.6251502719 -103.1393343384 103.1417757149 -0.3875192727 0.5453205390 -83.6100879011 83.6127642439 0.1283965831 0.1678089392 -28.5273245192 28.5281070131 0.2460607185 0.7127572038 -113.7805541121 113.7830526167 -0.7643634567 0.7692681445 -84.0086603681 84.0208985456 -0.1433649645 0.1511462259 -14.1276993489 14.1292352089 -0.0297553237 0.1444589330 -5.8639167959 5.8657713860 -0.0886704275 0.2207246836 -8.3913812348 8.3947519832 -0.0738263139 0.0306149093 -5.0854078927 5.0860358859 -1.0758702348 -0.7744616220 1.0949112304 1.7193365490 0.0534167087 -0.1446045471 0.1245636251 0.1981916156 -0.5608923831 -0.3852397082 0.3681163363 0.7736404432 -0.3348774789 -0.3007052023 0.3549255127 0.5731829238 -0.2095267361 -0.4614181326 0.0693028741 0.5114792612 -0.4260287577 -0.6208046366 0.0041499998 0.7529383253 -0.9583835391 -1.7901799936 -0.5873910133 2.1716231369 -0.3182943745 -0.4712635260 0.5921518034 0.9600623974 -0.1845115067 -0.3255222115 -0.1262942924 0.3949170224 0.0013203824 -0.0247036024 0.0246569193 0.0349281413 0.9214491975 -0.0539910597 1.1612854284 1.5646862092 0.0193005481 -0.0444681757 1.1373970738 1.2424562214 -0.1069265695 0.0681823196 0.3278180856 0.3514922719 -0.8095032385 0.4796499310 3.6512739487 3.7705650768 -0.0118862686 0.0005061288 0.0075132907 0.0140708594 0.2388045802 0.3836133560 -0.0138768272 0.4520834003 -0.0035118629 0.0287437487 -0.0014529302 0.0289939179 -0.0961806083 -0.1434131033 0.0541133474 0.1809593379 0.1526598019 -0.0051105092 0.1004602672 0.1828206709 -0.0291600058 -0.0067005549 0.0118633197 0.0321860487 0.0955778139 -0.1098193130 0.0581322679 0.1567633905 0.0503122408 0.0302813864 -0.0172092392 0.0611918446 -0.3888507908 -0.1581639990 -0.2571882063 1.0595834816 -0.2036359693 -0.0590915355 -0.0581257782 0.2604185258 -0.0068841041 0.0250564777 -0.0082032067 0.0272490470 -0.4400914426 -0.0113915663 -0.0186295687 0.4406328477 -0.2649747630 0.0425242705 0.1348919784 0.3312032145 -0.1471576874 -0.2929545295 -0.0758801097 0.3643011354 0.0220044614 -0.0730288168 -0.0697849496 0.1033796092 -0.1007577405 -0.0754085297 -0.0092560137 0.1261912929 0.1473384529 -0.0540221261 -0.0825302122 0.1773083352 0.6654451142 -0.0395797864 -0.5940846858 0.8929279777 0.0548677344 0.1050661250 -0.2671154265 0.3238515013 0.2568673445 -0.2673399652 -0.1994149414 0.4435060241 0.1167005350 0.3063483090 -0.2802292438 0.4532951746 -0.0080275951 0.0853536600 -0.1000211681 0.1317342917 0.1220842185 0.0405094959 -0.2214730926 0.2561169780 -0.1717186174 -0.2879753937 -0.7388294798 0.8113483291 -0.3280562562 -0.2709204868 -1.0527007990 1.1354284608 -0.2430754858 -0.1326670114 -36.1747130755 36.1757730024 -0.0398869934 -0.0267012345 -2.0671868729 2.0677440595 0.2365227689 -2.0660128110 2.1108048273 2.9630809935 0.1784990185 -1.2047878460 1.3756628387 1.8373415303 0.3566586952 -0.4693212624 0.6847718330 0.9035376780 0.0577685809 -0.0567592524 0.1889157784 0.2055431658 -0.2202059240 -3.6165878388 4.8010317665 6.0353773450 0.1997809514 -0.2383183329 0.0399672735 0.3135369824 0.0232761218 -0.0297971528 0.0644880073 0.0747552757 -0.1947249617 -0.2825617387 -0.1622770547 0.3795955603 -0.1536388666 -0.2172571265 -0.0037091759 0.2661189928 -0.2034782736 8.9182944793 -1.6729943882 9.0761384989 -0.0604850289 0.9549374636 -0.3613199610 1.0227981778 0.1335023798 1.7977573998 -0.5407504131 1.8820641762 -0.0183040364 0.3606524526 -0.0669065227 0.3672624567 0.4642839432 3.8328398398 -0.8662178373 3.9592971528 0.0993386796 3.0401888554 -1.0953676761 3.2360356272 2.1401758251 29.1574891793 -10.1314292580 30.9416448595 3.3379167053 47.0883056272 -16.4906682612 50.0039233908 4.1501140243 67.2447459000 -22.9694901278 71.1805926802 0.2239783622 4.1741518907 -1.4270793250 4.4170426434 0.9992903765 14.1009123875 -4.9208065598 14.9682546950 0.5500636889 7.8855620168 -2.8583164420 8.4056309261 1.0902127758 15.5874007471 -5.3167779254 16.5052644164 1.7221632549 22.5336319561 -7.7652362810 23.8962195736 0.5828341070 9.7015011921 -3.2776277183 10.2567862626 1.6042175163 28.7711130243 -9.5106152542 30.3447237754 0.0298662661 0.3213846931 -0.2143767047 0.3874757881 -0.1162892884 1.4988775493 -0.8344737720 1.7194486275 0.3755606502 1.7025568472 -0.6533593655 1.8618872362 0.3708418338 2.2604371818 -0.9567286186 2.4824241314 0.7909014075 2.9623653011 -1.7264060597 3.5537707474 0.0042740280 1.0593620337 -0.5791523207 1.2073456822 0.1633599912 1.5570532872 -0.9096332838 1.8106722886 0.0072248114 0.1315628280 -0.0454138829 0.1393678455 -0.3775663999 4.0506393282 -1.8864183294 4.4842847219 0.1883107567 2.8326261495 -1.6152301209 3.2662210867 0.2272230112 2.5442487002 -1.3234212209 2.8768516600 0.2989401051 2.8818937972 -1.2821138472 3.1714307097 0.4775519752 6.6217162661 -3.5575512816 7.5333148815 1.1225914855 7.5971494459 -3.6411723516 8.5136774000 3.4097028906 13.4818811986 -6.1660207250 15.2409762361 0.3391029019 1.3288580973 -0.5260909910 1.4755019947 0.0092469965 0.1050063760 -0.0626326644 0.1226160536 0.9381973045 3.1805801122 -1.5482575858 3.6597002042 2.4330781604 11.7636243647 -6.0310708975 13.4743955517 1.7291523241 4.5350556082 -2.1956151135 5.3270463538 0.8736714086 2.5433365592 -1.2662226301 2.9724034606 1.3406568484 4.2363767327 -2.0657985079 4.9001808213 20.1525350837 61.9674628021 -30.3014190819 71.8628354214 0.0290149001 0.0103240269 0.0081893625 0.0318671558 0.0327916141 0.0063682796 0.4259397901 0.4272476445 -0.1602018089 0.0606363185 -4.7100418005 4.7131555401 -0.1333101279 0.0574684985 -9.1630763342 9.1642262153 -0.1087861689 -0.0373408824 -1.7557629143 1.7595261247 -0.1757267923 -0.2248139937 -7.0216305880 7.0274260830 -0.0292971449 -0.1686825521 -1.1034267257 1.1166300484 -0.0521013848 -0.2127581470 -2.8002913252 2.8088453303 0.1142945449 0.3387884596 1.9108778748 1.9440409244 -0.0358590482 0.1904077454 1.1273452103 1.1438742081 0.2743962728 -0.1810931906 3.8528587372 3.8693782824 -0.1199841534 -0.0618167755 3.8583984741 3.8632804817 0.3555317479 -0.0855483361 67.3400497482 67.3428815604 -0.3397291832 -0.0463473095 17.0493061515 17.0527535676 -0.0129738774 0.0307329204 2.3231871148 2.3234266083 -0.0210683709 -0.0502265060 0.6386803762 0.6409985968 -0.1058969533 -0.0526674387 5.6935266300 5.6947549122 0.0104737635 0.2109948043 2.6090663874 2.6176049972 -0.0025047789 0.0114900142 0.0893727253 0.0901445421 -0.0550037677 0.2167188958 1.6302413729 1.6455028679 -0.0314366139 0.0315227650 0.2604840819 0.2642610495 0.1339069200 0.0651397013 1.1937274652 1.2029794284 0.0420907680 -0.0535105324 0.8488688078 0.8515945412 0.0442565358 0.0839427689 1.2809461527 1.2844563346 0.0513687665 -0.0460913350 0.2387267258 0.2485027383 0.1029432629 0.0595736689 1.0154406986 1.0223825849 -0.1000945493 -0.0230344657 1.6484604101 1.6516571161 0.0390845311 -0.0455822700 0.8198356812 0.8220315614 -0.2764540948 -0.3349004923 0.4935086163 0.6720236198 -0.3030208397 -0.0360432641 0.8916440813 0.9526960159 -0.4732820627 -1.4253410255 1.5116649351 2.1354633246 -0.3630312838 -0.7923625215 0.5109407361 1.0198873954 -1.2147974524 -1.3456879166 1.2882183311 2.2239863506 -0.3493848183 -0.4889488411 0.4730956170 0.7648268976 -0.0912992086 0.3418176378 0.4339168455 0.5770081946 -0.0403671591 -0.1097037960 0.2654379580 0.3218719075 -12.3902062850 13.1786881252 8.2572189685 19.8845713397 -3.5378365070 3.4925432170 2.3205284268 5.4880303605 -0.2077813524 0.1909002202 0.2133320292 0.3537322987 -0.4642492724 0.5332269122 0.3041617957 0.7696575373 0.0775161655 -0.0090601527 0.0111415689 0.0788351244 0.0046949323 0.0816642282 0.0931222318 0.1239469185 -0.2353732919 -0.4581370882 -0.2472878610 0.5881507028 -0.0881120311 -0.0694328494 0.1207870221 0.2159952319 0.0498674939 -0.1679751125 0.0547100017 0.1835635848 -0.0658902332 -0.2583063723 0.1803372187 0.3218465741 0.0413719410 0.0277979834 -0.0708763538 0.0866476942 0.0426305673 0.0169642232 0.0638988876 0.0786652272 0.0230341608 -0.0187275027 -0.2020452224 0.2042145044 -0.0688119223 0.0106442744 -3.3079117044 3.3086444694 0.3346270197 -0.5442767010 -6.9882662958 7.0188003231 0.3251030352 -0.0541957977 -2.9158162565 2.9377020602 0.0012603596 -0.0104980062 -0.0041605859 0.0113625312 0.6837364805 -0.0372084990 -1.1390794728 1.3290530812 -0.0875519215 -0.0314433164 -0.2503230464 0.3013228063 0.3964724858 -0.0395283535 -0.6660557594 0.7885828950 0.0320035557 -0.0819493490 0.0550173879 0.1739155578 -0.3868647139 -0.8401568069 0.6142124551 1.1190462421 0.5823779402 11.3080567561 -3.7045720677 11.9144721097 0.3525344348 7.3296840186 -2.7477105427 7.8369599560 0.4857381686 1.6472169439 -0.8316680041 1.9081239210 0.0027007001 0.1418666719 -0.0781953380 0.1620122134 -0.7774618796 0.4436982520 142.3052178117 142.3081017066 -0.0159171924 0.1315096711 33.1609785732 33.1615368743 0.7361110628 0.5665073334 3.6261201049 3.7431987752 0.3004388531 0.2581277663 1.2356871618 1.2976194396 0.1559411485 0.0705397989 0.6744510998 0.6958288518 0.1264608069 0.0340300399 1.2356416448 1.2425621328 0.0516194909 -0.0435568737 0.1222167899 0.1396378058 -0.0865410303 -0.0476384707 0.1560948652 0.1847278559 -0.0020706909 0.0005458443 0.0222913560 0.0223939782 0.2873143569 -0.3175714834 0.0602592702 0.4324723881 -0.5728786300 -0.7842709837 0.0926299943 0.9756286262 -0.0523914437 -0.1670086235 0.0229564419 0.1765325520 -2.2850672677 -3.7656025235 -0.1053000018 4.4059485781 -0.9778749612 -1.4491776130 -0.0299682395 1.7485002972 #END -0.0774911082 -0.2516016317 -278.5120826200 278.5122420170 0.1607347953 0.0730958798 -69.7433895618 69.7437527384 -0.7459132681 0.6086285166 -558.1693550957 558.1702027724 0.4287438532 -0.1692136683 -117.5654423416 117.5664287428 0.3582304453 2.1856663433 -23.4078678551 23.5175973453 1.0840678397 1.7006685874 -1.1369521493 2.3672300005 1.8594658544 0.4919863524 -0.3690389189 2.0197758585 3.0075531271 -1.1682271438 0.9246423384 3.3592519570 1.0556383753 -0.2995773668 1.0037980101 1.5669621511 2.4094799285 -0.2991095129 1.5091676643 2.8621891710 27.4138847684 2.2952713708 58.1844926350 64.3602673374 3.5230228265 0.7050051199 5.9177289880 6.9863144091 2.8139360769 0.4178709346 6.1142894442 6.7617326722 2.0179620793 0.4637383451 3.7860349127 4.4160655746 0.5767371348 0.9111928896 3.3439437779 3.6366480153 -1.0122060987 -0.5772113179 32.9997242045 33.0205846625 0.2706267578 0.1464245582 128.5302031975 128.5306472899 -36.2452496015 -0.1058218001 30.3383542293 47.2669497012 -12.5082746676 0.0183469295 8.7553728108 15.2687034358 -0.6648746082 -0.3685367409 0.7550857403 1.0805146154 -0.6965111042 -1.4870126685 0.6879454354 1.8474967595 -0.5166975642 -0.6728366776 0.1143238160 0.9881277562 -0.2165041928 -0.3276827975 0.2327003512 0.4773670701 -0.8028626918 -0.9497917020 -1.5976691875 2.0294628345 0.0070163151 -0.5123939465 -1.9101795641 2.1895603525 -0.0402484602 0.6378127831 -9.0730634933 9.0966139868 -0.7631479139 1.3332183149 -13.4657478237 13.5538079539 -0.8445548517 2.4933690303 -40.6587095795 40.7440830854 -0.2283240415 -0.1943826951 -10.7163108849 10.7214138651 0.0036132266 0.3279823739 -1.7063557557 1.7431911091 -0.3946144936 0.4219475351 -14.5479247489 14.5600602542 -0.0482201946 -0.0437280192 -0.0170276816 0.1549420978 -0.2577016981 -0.5704918509 -5.5536698775 5.6672667142 -0.2965547014 1.3799265523 -0.7118265528 1.5869211722 -0.5532083446 1.7462356208 -0.2171234004 1.9094925627 0.0701821863 0.1096793316 -0.8306745639 0.8523233606 -0.0630305969 -0.3294535121 -1.7925845710 1.8290302627 -0.1958140146 0.0171286263 -3.3137911736 3.3225484565 -1.0363013370 0.4358029682 -1639.6048757637 1639.6052671154 -0.4392422623 0.3571703521 0.9388292673 1.1051627045 0.3132241105 0.1309387147 4.3773892937 4.3927521105 0.3253941638 0.1492658458 1.4150825359 1.4663219370 0.3446913500 -0.4119243276 1.2151150177 1.3358435798 -0.0844853259 0.0450513454 0.1292335313 0.2129518362 -0.1501742349 -0.0198061761 0.7124994166 0.7416736404 -1.4959809592 -1.7059369280 -77.0848269540 77.1183389742 -0.8822025234 -0.7525812513 -29.0495121470 29.0729822274 -0.0318177896 0.0147083009 -13.1048925611 13.1385779112 0.4863323440 0.6527603010 -8.7683998321 8.8560850583 -0.6107752721 0.2278168320 5.1784850505 5.2426420172 -0.1946312758 0.4416981625 0.1422413279 0.5221982196 -0.8443868229 0.2125381179 -2.0135268500 2.2485757479 -0.6800173832 0.0600529691 -5.1699403514 5.2381250651 -0.1255172832 0.0434018392 -1.5231388222 1.5352752082 -0.4040964891 -0.7945776607 -47.3458789072 47.3544757854 -0.5028472334 0.5344413844 -82.7432546812 82.7518279482 -0.5505216862 0.1377169169 -68.7928264943 68.8015828956 0.2023382793 0.0827064500 -54.7047416487 54.7053564085 0.0631118125 0.5772154023 -391.1314862132 391.1319421217 -0.9090286060 -0.7751681416 45.6550018510 45.6708429138 -0.0793087459 0.0566244603 2.1944818892 2.2010740000 0.9689189036 -0.7794093338 -31.0660072437 31.0911976064 0.0516821736 0.5946252505 -0.9027813379 1.0912122455 0.0849147818 -0.2373372325 -0.0222411678 0.2889877792 0.0844654990 0.1925376390 -5.7594024885 5.7649286181 -0.0934976484 0.0837883445 -3.2937590723 3.2991045616 -0.3051421145 0.4234770420 31.0462740113 31.0509750940 0.3051421145 -0.4234770420 3.8352987569 3.8731693553 -0.0931160927 -0.2615655764 -32.5070279408 32.5082136190 0.0147708130 -0.0194984919 -0.8196975992 0.8200625112 0.2389602721 0.4594824432 -19.5474332343 19.5547910232 -0.0562128981 -0.3298659961 -5.4829140157 5.4948882931 0.1435418915 0.0426600517 -4.3250379838 4.3298796174 -0.1447317869 -0.4672626384 -7.1517826091 7.1698504821 0.1401160341 -0.5137676618 -19.5134708486 19.5212349521 -0.1694669970 -0.4784580623 -17.5179838178 17.5258916465 0.0275989767 -0.0129845041 -0.4892675286 0.5096987348 0.0951959450 -0.0850123450 -4.8275954232 4.8312986579 0.2022732740 0.0179310622 -14.1690852068 14.1712275892 0.3196943698 -0.0731564823 -5.6967563215 5.7078952979 0.0132010688 0.2162824022 -5.0459083057 5.0524867898 -0.1745793123 0.3108464690 -22.7090918475 22.7123190314 0.8954569212 1.6213179967 -40.3680144660 40.4107236616 -0.2382989546 0.5764155185 -9.0446485783 9.0661297777 -0.1699533913 0.3625112616 -4.4490884706 4.4670669112 0.3545168443 0.3271269628 -13.3837153905 13.3924057546 0.4828525642 0.3813714160 -13.4929222659 13.5069442150 2.1221854074 2.2623872970 -26.1951501116 26.3781719714 0.3812192796 0.4843750547 -5.4465755484 5.4813440448 0.6801862476 1.1302076236 -8.7576904632 8.8575755508 0.0770017006 0.0958731517 -0.7441453661 0.7670417420 1.0880070482 2.2269287361 -16.2398126051 16.4352707718 0.8661021558 0.9326794514 -11.8775483813 11.9463659428 0.7320896938 0.6440792131 -6.5654653289 6.6558071860 1.2780793356 0.4247714819 -8.0353248342 8.1486098554 -0.3470479058 0.6831773357 -4.8065839625 4.8672808538 0.0061450965 -0.0026533420 -0.0472826022 0.0477540251 0.1939819969 -0.2380793407 -0.3209570609 0.4656221724 0.4380594926 0.2822430115 -2.4634883801 2.5218667730 0.4035014728 0.4913922479 -0.7097945487 0.9631032479 -0.1303927010 0.2696042045 -0.5937495209 0.6794902221 1.7158339136 0.7301574501 -2.4584182614 3.0887725805 0.0775796342 0.0261849437 -0.0420254480 0.1671830557 0.0438469466 -0.4605628430 -0.2112183257 0.7087276121 0.1605896129 0.1055516692 -0.0349046099 0.2400589413 1.3750095626 0.0300899684 0.5875908808 1.5020983761 0.8730094410 -0.0735800158 0.3301585363 0.9465959787 1.0719748291 -0.0833708156 1.7387840941 2.1040737349 5.7123165853 -0.1182670143 6.4717312053 8.6340797098 8.1573003764 -1.0526434904 10.2594051106 13.1828598095 3.0451955043 -0.6135562904 3.8196319736 4.9253157441 21.2734777978 -4.0594050350 25.6840758708 33.5965900051 16.9691374710 -2.1140957334 20.4109048339 26.6440690213 4.4180483356 -0.3129930273 5.2239199685 6.8502507512 31.8934524174 -4.8282088438 37.6059720374 49.5475194291 3.4463517775 -0.6866498743 4.0033393847 5.3286991506 11.6111780033 -2.0668989880 13.5282439592 17.9472814285 4.2094580744 -0.6691692557 4.9179797983 6.5079835640 4.9474581835 -0.4744432477 4.8622029571 6.9543465727 1.6433780647 -0.1222401435 1.7566108775 2.4126325200 10.0289673259 -1.3761083959 11.0828121525 15.0183308186 20.2448442650 -2.1976287709 20.9995931639 29.2559369280 6.7024344528 -0.7962568645 7.3829217932 10.0041824543 5.4511814371 -0.5660006923 5.4245511502 7.7269096012 6.6231924411 -1.0540115403 6.8994485130 9.6228627761 6.6670160433 -0.6781948012 7.7810484234 10.2700168190 3.0069488950 -0.3867143476 3.0636203246 4.3123704528 0.8892130498 -0.1091570522 0.9069391979 1.2748152097 14.7893336766 -1.7797886692 14.3083380085 20.6547954449 8.8588478859 -0.3852156113 9.2624112253 12.8321268541 12.2146614881 -0.9917599787 12.9977395610 17.8645530760 5.8977851502 -0.6055048826 5.6407606579 8.1983124849 14.2715653180 -1.5103139545 13.7316009554 19.8629043559 6.8401193685 -1.0508266628 6.8760144559 9.7682506047 8.1482305578 -1.2631784272 7.4991265972 11.1456799112 1.9433544878 -0.2382110763 1.8020493374 2.6609684321 4.8033559983 0.3397110751 10.1345580932 11.2203787907 2.7855712268 0.3326929936 5.9913038442 6.6170456569 13.7119678184 1.3165080934 28.7497521681 31.8797582257 2.0912246150 0.3151177767 4.5440300532 5.0140012478 1.4034040174 0.3593173941 3.2276353356 3.5405877295 9.8646660917 0.1093686948 21.1908537117 23.3751012709 7.5852851494 0.5009185228 15.1110872565 16.9160251839 0.0703838841 -0.0154084451 0.2741174370 0.2834284399 0.0097493892 0.0154187539 0.0287260130 0.0340289933 0.0274952346 -0.1296393159 1.3498343546 1.3563241224 2.3300396336 1.2244062044 3.1105101746 4.0771323965 2.4511783167 0.6160205550 3.6674469861 4.4561646789 -0.0972789123 0.0134755250 0.8436668449 0.8607544985 -0.0343518420 0.2743574568 1.5251584808 1.5562905383 -0.2549251054 0.6740259708 3.3326662096 3.4096864788 0.2365930094 0.1989683306 1.3053698231 1.3414749434 -0.5600144019 -0.2936484299 8.8067546102 8.8294264987 -0.2040494548 -0.2071460074 4.3066893884 4.3164938476 -0.0514539994 0.0131673466 5.0455393569 5.0477488131 -0.7556181325 -0.6838839477 23.6988241701 23.7211383126 -0.1797923193 -0.0399307318 11.5663510706 11.5686592401 0.1324972623 -0.3472084023 27.3568774825 27.3597575752 -0.3712794229 -0.2224205327 11.4878760565 11.4968732870 0.2295144337 -0.3795866119 20.0458302143 20.0568121298 0.3562029007 0.1056292338 80.4972675144 80.4982459132 0.0327084964 -0.0425321964 32.3553941450 32.3557396593 -0.1025112317 0.1989598223 249.7307230445 249.7308623412 -0.1158975462 -0.0239150053 158.2090414326 158.2091472545 0.2548538927 -0.0844269293 131.1295373833 131.1298864963 0.0471592685 0.2240192251 206.5468183281 206.5469923525 0.0514681773 -0.0465443980 9.1124756356 9.1127398495 0.1186073775 0.0819769161 31.9066207264 31.9069464867 0.1166075737 -0.0497695960 425.3254599797 425.3265137889 0.2284596679 0.2092040682 113.1055751874 113.1060855057 -372.3956704829 7.7896858788 313.7751344993 487.0266239359 -171.8058419544 3.4788737950 144.9641224651 224.8198527142 -114.8948965954 2.3774256688 96.3588639218 149.9746740772 -22.0141144641 0.2358421394 18.4053260747 28.6958597163 -32.0753994448 0.1808692030 27.1772169072 42.0414624130 -28.8712044495 0.2840046343 24.6626639324 37.9720172922 -12.2741144275 0.0785794151 10.3832364799 16.0770538191 -8.2037105207 0.4326307123 6.6540131569 10.5835533806 -4.6402919650 0.1143102205 3.4843795292 5.8056659252 -36.7284752503 1.5304889478 23.2154203125 43.4775633023 -53.6848208489 3.1512519121 34.2872652853 63.7779461783 -20.8578693954 0.8898273284 13.1398363869 24.6681431901 -4.0543502734 0.3403250516 2.7619355919 4.9194862820 -15.1174858266 0.5213318777 10.0136954228 18.1412166199 -14.0896374853 0.4444897921 9.2829883547 16.8792419326 -15.0416566566 0.6172830933 9.5448784023 17.8251837888 -2.0216560909 0.2598642711 1.1796909848 2.3550570288 -1.9229337181 0.3597417436 1.2256074001 2.3085063798 -2.0260076066 0.2523342042 1.3493688916 2.4472792603 -1.7367174839 -0.2414366410 1.6069704184 2.3825014126 -0.5415033624 -0.2693620699 0.0657980081 0.7859940349 -1.0176797425 -0.9513716091 0.4718665955 1.5514764068 -1.4233982237 -0.4622720321 1.0345137778 1.8246798285 -2.6430597101 -3.5306508581 1.3414197675 4.6098445859 -0.1906101266 -0.2184869835 0.1168064739 0.3125900425 -0.2761597629 -0.4639242405 0.6191296898 0.8214691037 -0.0951097099 -0.2489814961 0.1925965163 0.3288328760 -1.3454339256 -1.7088247176 1.0961335502 2.4858516755 -0.0048984163 0.0031521154 0.0109668849 0.0124178451 -0.8055122298 -0.5095738066 0.0360509545 0.9538422763 -0.2334775699 -0.5323825921 -0.2164618234 0.7927418754 -0.5388332450 -1.9191713874 0.6522541389 2.1020169663 -1.0014466553 -1.2105975414 0.6911539495 1.7220962161 0.0562471104 0.0204436944 -0.0394196171 0.1568928717 -0.0619695096 -0.1473651158 -0.0097804698 0.1601635260 -0.2380953688 -0.1549887626 0.0503748503 0.2885282425 0.1023453248 -0.0242044069 0.0328619987 0.1101831647 0.0900107795 0.0262372754 -0.0937249203 0.1325695882 0.0306829753 -0.0935788709 -0.2991878618 0.3149790893 -0.0602635707 -0.0938235685 -0.1151096248 0.1602647363 0.3767286629 -0.7438132299 -0.7301592689 1.1170474248 -0.3607306131 -0.7841807482 -0.8698450927 1.2333597574 0.2182819230 -0.0701598144 -0.5839665311 0.6427021797 0.9824792927 -0.2484639248 -4.3300171073 4.4492165397 -0.0724599453 -0.0076074294 -0.2852158925 0.3257855228 0.5605367659 0.5701797068 -6.1580358669 6.2802119944 0.1673363503 0.0044268476 -0.3805965754 0.4385824771 0.0026619542 0.0357274103 -0.2655753418 0.3021482764 -0.4139061448 0.1710860711 -1.9308142449 2.1934958796 -0.2530240237 0.0269383702 -0.0806211134 0.3012082024 0.3313456714 0.2503765687 -1.6210158448 1.9191046178 -0.8177999571 1.0471372542 -3.2961834199 3.5566273521 -0.0733607631 0.2238071092 -7.8618131487 7.8665784935 -1.1036502622 1.4139480706 -25.1564151654 25.2206660658 -0.0188211197 0.2907726588 -4.2712657335 4.2834674885 -0.2617936479 0.8651834104 -11.3264518837 11.3633212710 -0.7158800119 1.5245900261 -21.6956275823 21.7613555395 -1.1122438020 3.2280709719 -45.1273499827 45.2565434464 -0.3174023320 0.6098108908 -10.3747641355 10.3975162626 -0.4170676483 0.8847420999 -12.5776858672 12.6156607350 -0.0578036661 -0.0446749419 -1.0063947175 1.0186497075 0.2586012994 0.0890051669 -5.2418731083 5.2508580271 -0.0459506227 -0.0245181746 -0.7275740373 0.7294357959 -0.0031273337 -0.0244451473 -0.9524396104 0.9527583938 -0.4336654647 -0.6728295701 -13.4861178912 13.5098534834 0.4547151204 -1.5504638165 -25.1180939879 25.1875394046 0.1520749245 -0.2914693563 -8.4581716872 8.4657090219 -0.3151252980 -0.2571709273 -12.7827246702 12.7987160212 -0.2330174387 0.0640089888 -4.8912873728 4.8992413928 0.1397656453 -0.1977584377 -1.9216331005 1.9418538548 0.1401633808 0.5841475410 -5.4926614236 5.5271768039 -0.2650534838 0.4721408700 -2.2918970697 2.5354988293 -0.3252278974 0.0300075110 -0.1657580737 0.3919555585 -0.5899506210 0.8947869088 -0.2397968729 1.4453302987 -0.4530860803 0.6947659051 -0.5878484908 1.1319133960 -2.0347844708 3.8225360877 -0.8164894053 4.4088847477 -4.5129033587 7.8138005804 -2.8119816705 9.4524333870 -0.6592615681 1.0477129764 -0.1038617731 1.2500381390 -0.7840215061 2.0672245717 -1.2712155375 2.5541291822 -0.0352985052 0.0692065730 -1.6744982694 1.7474612866 0.2236785748 0.0894157381 -0.2174898943 0.3532830566 -0.4308844463 0.1063008878 -10.5369092415 10.5462513552 0.5266603141 -0.7021007898 -53.3466281654 53.3540301478 0.0226585576 0.2195295086 -7.1308608613 7.1356403373 0.3687289475 -0.1799807966 -15.3205636396 15.3266925377 -0.0234075795 0.0576662788 -25.9374694091 25.9379195859 -0.3794540328 -0.0548071264 -51.9635482736 51.9651500349 -0.0830025650 0.0278544410 -1.0590248360 1.0626377082 0.0215208690 -0.0573847553 -1.0676955319 1.0694530877 0.2145575276 -0.0752297835 -76.9612800802 76.9617424817 0.1291421380 0.0590962871 -73.7352319468 73.7355008127 -0.4839155617 0.5227242415 -459.8629638971 459.8644727849 -3.9930042031 3.0724806095 6.7377045249 8.4276048132 -3.7860477067 3.2276089249 6.7298797242 8.3837067382 -0.1404277975 0.3105475880 1.8977275479 1.9902689710 0.2896492695 -0.2352563120 2.0512893178 2.0896195543 0.5388618150 0.0303133910 4.6868136442 4.7435381365 1.0553884394 -0.9203857028 9.9348496761 10.0340257360 0.3842291588 0.1386578774 3.0852771499 3.1122006917 0.3097601491 0.2504181964 3.1386356166 3.1638100696 3.1629001787 -2.0994780245 40.0352230694 40.2178879003 1.9412127651 -1.2126298051 9.6681858355 9.9364015206 2.6822628285 0.1304822157 9.8906601547 10.2496925598 0.1725170161 0.3412579397 0.7933740196 0.8917069149 0.1593884486 -0.4107194705 3.7698532256 3.7980742868 0.0515391215 -0.0631911090 1.4325455365 1.4416365341 0.0072822926 -0.0632368213 0.3783329840 0.4082493834 0.1885516987 0.4163162673 1.4664540754 1.5423483127 -0.1825089594 0.1159909397 3.3165814945 3.3265531730 0.0564906145 0.2086589550 1.2580915481 1.2841354591 0.1850395422 -0.0518178509 1.8610144984 1.8761075315 -0.3513669118 -0.5114783839 1.0299677078 1.2105296807 -0.9482998479 -0.5231710853 4.0468786531 4.1916210711 -0.4288165315 -0.3281315988 1.2029565541 1.3259480457 -0.2494819405 -0.1093657784 0.6569020657 0.7247083696 -0.4376475491 -0.5629516198 1.8319869959 1.9708135482 -0.2422308834 -0.2332189235 1.0419270940 1.1037022793 -0.1398181416 0.0490081484 0.0572317387 0.1588281563 -1.0520482141 0.7186013713 0.7292692311 1.4680010174 0.0504027767 -0.5075209820 -14.7919859331 14.8007758524 -0.0285874686 -0.7489823612 -25.7624686139 25.7733696071 -0.5784322500 -0.9184966567 -71.7555630254 71.7639082328 0.0677975747 -0.0572400942 -4.5611595114 4.5641569663 -0.2128080439 0.5644871940 -7.1073540552 7.1943564907 0.0584801910 0.1283580268 -1.7386016019 1.7498888624 0.3797181899 0.7927432245 -6.6247003623 6.7484868229 0.5793900200 0.3678886138 0.1607533526 0.7048946502 0.1961017476 0.0637478726 0.1046832884 0.2312537082 -0.6469590501 -0.3930360245 0.2577236895 0.8117478759 -0.1428324713 0.0232872625 -0.1352442798 0.2423101558 -0.0733068161 -0.1618980975 0.0603595700 0.2338972977 0.1385319048 -0.1547159812 -0.0007972124 0.2502169937 -0.6303280553 -0.4254494133 -0.3484746890 0.8365139147 -0.2758554277 0.2763497394 -1.0902310997 1.1580455545 -1.0492806061 -0.0709626748 -3.9521658660 4.1193787741 -1.4959103246 -0.1881277963 -4.9324272153 5.1812758044 -0.1060595445 -0.2764854769 -5.4498373932 5.4805196731 -1.2898059556 -0.0431103771 -7.3277127897 7.4571112413 -0.6278329997 0.1837529029 -3.5714440016 3.6335425477 -0.0496485145 -0.2296308794 -3.6450204370 3.6552495245 -0.3860562981 -0.1993801158 -4.8179305779 4.8394965373 -0.9535751672 -0.2128892431 -20.7261682413 20.7491849815 -0.5338329031 -0.1847938184 -10.3981537958 10.4134878252 0.0277715807 -0.2846239942 -162.3592779406 162.3595897854 0.6245983695 0.1120769866 -20.3436586498 20.3540318222 1.1814594315 0.3882699405 -52.0441235518 52.0591670698 0.0081617909 0.1554615381 -36.6107988965 36.6113959107 -0.1099340109 -0.3877974369 -10.5947510836 10.6033345061 1.2231862888 -0.1565380829 -45.2981812588 45.3151784065 0.4507803354 0.2742920303 -16.1825031541 16.1986261244 -0.0924225997 -0.1771885999 -5.4561007139 5.4615430532 -0.5214532780 -0.4434799598 -3.6949548148 3.7578290380 -0.2368608302 -0.2349319152 -0.2976455485 0.4683681406 -0.4029225536 0.6174672568 -0.5423779440 0.9153066325 -0.0133691199 0.1151191499 -0.0933524953 0.1488147856 0.1272492195 0.2037505782 0.3839406308 0.4739165062 -0.2165761614 0.0813336956 -0.1201961867 0.2607058247 -0.5318141997 0.1571718239 -0.5429400114 0.7760883849 -0.1886330169 0.1812197523 1.7341390496 1.7593012937 0.2242204499 0.1762847766 0.3286223137 0.4569721464 0.0886265016 0.2299132403 1.0483553278 1.0859297551 -0.0737383872 -0.0748958448 1.6839813252 1.6930208581 -0.0698798437 0.0795010319 0.2815626297 0.3316035373 -0.2454659305 0.3124892347 14.3068650676 14.3130629458 -0.2511232958 -0.1859657157 3.8682477085 3.8833576035 0.1076601079 0.0421062875 51.3184233630 51.3185535660 -0.0207210943 0.0894117008 37.6224539955 37.6225659473 -1.2382606901 0.5407017329 115.6288101276 115.6405213202 -0.0914767834 0.0267113040 2.3093340658 2.3155096865 0.0247710927 0.0079221023 -3.6288735141 3.6316496435 -0.1512063843 0.1876969467 -3.2697759222 3.2816166566 -0.2603691644 -0.0489526906 -4.2487541262 4.2592933542 -0.0130666401 -0.0019658620 -0.1029282055 0.1037729117 -0.0158625873 -0.1499639196 -11.2548560413 11.2558662620 0.1914493084 -0.0351191414 -1.2133176792 1.2288311448 0.1378107225 0.0315964968 -1.7697417730 1.7753805443 -0.6838577572 -0.2272261254 -2.3220274316 2.4352791056 0.2854920791 -0.0564090212 -0.3428543084 0.4708678865 0.3456904700 0.1052461574 -0.2293778358 0.4501917715 -0.5547478991 -0.1167897687 -0.5519848790 0.8034626147 -0.1698970967 -0.4385894322 -1.4806457976 1.5598132826 0.1712588784 -0.1532510441 -6.5265317544 6.5978196407 0.1056167084 -0.1014986679 -3.5541334857 3.6791457551 0.0399165803 -0.1522718170 -0.2120549239 0.2987090813 -0.2327056570 -0.0510351183 -1.0886023785 1.2204454406 0.2327056570 0.0510351183 -4.5880006418 4.6210585177 -0.2260797135 0.2506599255 -28.6444491981 28.6464380385 -0.0131646914 0.1361276143 -12.1178066257 12.1185783595 0.0802716997 -0.1198388200 -1.8799624869 1.8854876930 0.2290424069 -0.3678744579 -9.6295668233 9.6393126957 -0.0845316817 0.0937761430 -1.4791930507 1.4845712012 -0.0436065086 0.1281731045 -0.6273399070 0.6417828536 -0.1097107595 0.0132126604 -4.9447796292 4.9460142142 -0.1066259280 -0.0892301062 -3.0004126672 3.0036323466 -0.0556881709 0.0925377148 -4.2435800553 4.2449541914 -0.0975380832 -0.0088456106 -8.1741950253 8.1747817240 -0.2115555724 0.2235503279 -13.7203846407 13.7238363877 0.0062133352 -0.0128136376 -0.3869202008 0.3871821750 0.0253538185 -0.0319997233 -0.0635429455 0.0755281691 0.0077913967 -0.0596014681 -0.9233840465 0.9253383912 0.0503699827 -0.0572186139 -2.1836925790 2.1850227424 0.3122696748 -0.0535121969 -5.2317564877 5.2413406541 0.4099250392 2.4746771730 -68.1343863030 68.1806874585 0.1485282926 0.4154510117 -9.9731574009 9.9838874456 0.1912828994 0.2237023037 -8.7197429360 8.7247090919 -0.0175758287 0.0002333992 -0.8478469696 0.8480291552 0.1167388186 0.2444579156 -6.9762651996 6.9815230258 0.0935955580 0.1152415711 -2.0540897554 2.0594478559 0.0120429056 0.0259418102 -2.3278996507 2.3280753409 0.1052544956 0.0736043450 -1.5967607449 1.6019179083 0.3761042922 0.6292196617 -19.0003292294 19.0144650897 0.0296571962 0.0391304504 -2.5360286780 2.5365039320 0.5537438417 0.8256474942 -6.9025219557 6.9751426624 0.0279138570 0.2527581116 -3.3021484831 3.3148650403 0.3230609073 0.2951720095 -3.8840812717 3.9086547802 0.0548874794 -0.0079753146 -0.4303430968 0.4339025490 -0.0116272115 -0.0262552277 -0.0218601693 0.0360887244 0.0113802899 0.1583058904 -0.0589875486 0.1693215781 0.4619039051 1.4395957203 -3.0418204012 3.4330944988 0.4535591892 0.5232932002 -0.7572868810 1.0261750005 0.0363602242 0.0244000072 -0.1109001713 0.1192320185 0.3645824932 0.0957176956 -0.0815474372 0.3856582115 0.1801332838 -0.0427236884 -0.0712819911 0.1983795244 1.3343695436 0.0393253886 -0.5016121656 1.4260797067 1.4575308330 -0.0806029895 -0.4763018741 1.5354987614 0.1820878746 -0.0289245589 0.0844567380 0.2027943904 1.0612150201 0.1296396256 0.6379269010 1.2449636470 6.2775609418 -0.7310738558 7.4966576262 9.8178302773 12.1708789636 -1.8080573480 14.6943210239 19.1656577365 4.7167270392 -0.7711519899 5.7813077699 7.5010471858 28.4261765107 -4.2241270292 35.0585076610 45.3319944365 22.2237222096 -3.4068557971 27.3335400676 35.3924131404 0.7067921461 -0.0551471863 0.8481165289 1.1053949505 5.2598682457 -0.6664260673 5.9349915076 7.9582951605 1.5855082246 -0.1709187176 1.8117894035 2.4136342683 3.1512963921 -0.3705453290 3.3267468971 4.5973054835 7.5610475050 -0.8531108102 8.7601745440 11.6033570775 0.0704140818 -0.0086430800 0.0631193305 0.0949573359 0.7474460245 -0.0341065636 0.7598849584 1.0664257908 7.2816323816 -0.5443850089 7.9447422423 10.7906188180 21.8155333171 -1.6312757753 22.7966259284 31.5992465687 2.0660572348 -0.1583283569 2.5051273661 3.2510495977 0.1477900240 0.0245881820 0.1748762016 0.2302784310 6.0595037939 -0.8501029761 5.6478185555 8.3269511668 3.2024522368 -0.4010649220 3.0965910074 4.4727429244 46.6878618185 -5.5307852145 41.9533657116 63.0113554909 3.0330700242 -0.3861233904 2.7577142598 4.1174741023 25.8207115394 2.2931443641 54.8456083502 60.6632334331 3.9184270637 0.8595540051 7.7767338113 8.7504567031 3.1558510538 0.2926413839 6.8018984138 7.5040560289 2.2594639598 0.4089980677 4.2942884357 4.9592056386 0.6111917063 0.1295715708 1.3169675143 1.4643180367 -0.1038137413 0.0948369790 0.7369445784 0.7502390666 -0.0681719430 -0.0057966616 1.0506390165 1.0528643588 -0.9035953980 0.0885963766 33.3819295478 33.3942742742 -1.1892018943 0.1780018022 49.7841252143 49.7986446516 -0.0012126829 -0.0066078276 0.7653170171 0.7653465036 -0.6294470100 -0.3093283145 16.4581792138 16.4731159948 -0.3305767711 0.0012240601 43.0792582305 43.0805266007 -0.0526346324 0.0597386393 9.0098969873 9.0102487664 -0.1370938339 0.0546590980 15.3652094450 15.3659182487 -0.2826803978 -0.0789231202 33.8987770451 33.9000475253 -0.1320511374 -0.0102964323 18.1369178748 18.1374015095 -0.0968077897 0.0660704355 6.9844224173 6.9854057544 -0.1259780255 0.0242546291 5.0556892626 5.0573167460 -0.0460054239 0.0738291924 8.9444244985 8.9448475033 -0.1280465386 -0.0618212930 3.0121438353 3.0154980140 -0.1686776491 -0.2825845715 8.8876594562 8.8937504349 0.0071972374 -0.4973681895 66.1917690113 66.1955088143 -0.3231818469 -0.2872220416 68.3968588395 68.3982254311 -0.0634893983 -0.1651218234 31.6026514834 31.6031466298 0.0460147684 -0.0172948427 5.9393297442 5.9395331702 0.1726317500 0.1164118691 9.8796905597 9.8818843850 0.0327297960 0.0723450316 8.1788044752 8.1791899163 -0.0897958488 -0.0897174385 363.8429848822 363.8430070243 0.0758339499 0.0601068072 55.1290237987 55.1291087232 0.0718018707 0.3759312285 201.4579814612 201.4583450101 -44.2662928912 0.7856302896 36.6647976560 57.4841655453 -11.8812533396 0.2396497657 9.9243285792 15.4826971383 -1.0059533207 0.1489048090 0.6544146339 1.2173138558 -3.6329451443 0.1903760513 3.0637889261 4.7582366304 -1.2753172481 -0.1861289079 0.9800874303 1.6191508344 -2.1783085319 -0.1785002468 1.5273269284 2.6663866833 -149.4240501129 6.3261938425 94.7112670367 177.0255327906 -4.3572526375 0.1019889148 2.7871862801 5.1734378943 -1.9368336670 0.0683060021 1.1372774187 2.2470848428 -10.8191008215 0.5927097669 7.4144904851 13.1293151614 -1.4210768644 0.0611532447 1.0295516511 1.7558974276 -10.4583231591 0.4090213752 6.3099697407 12.2212740708 -8.7762078989 0.4660924799 5.2808926730 10.2531407241 -2.8337030227 -0.4484876530 1.7926860628 3.3830071410 -0.7957539588 -0.0747701301 0.4411982854 0.9129462538 -1.3706759559 -0.3910693945 0.7175657349 1.6716051748 -0.1669257450 0.0683464837 -0.0143221280 0.1809435534 -0.5680764331 -0.0202842195 -0.0346193473 0.5694916880 -0.1029649495 -0.2726212879 0.0722848877 0.3311027595 -0.3186834467 0.0725273821 0.1587251550 0.3892207858 -0.1173688033 -0.4067735455 0.2499671119 0.4916540556 -0.0451230482 -0.2458643962 0.0402733586 0.2531942618 -0.0652657499 -0.9915521247 -0.7494298722 1.2446205717 -0.1977994969 -1.5716303769 -1.3775189149 2.0992153400 0.6940524606 -0.0158805444 -2.8361702902 2.9199011841 0.3002101161 0.0698749007 -1.3868994017 1.4207388311 0.0592439690 0.0134765951 -0.2705578635 0.2772963831 0.7425670438 -0.2109596512 -1.9987879444 2.1426766055 0.2704975871 -0.0874575069 -0.9940519075 1.0339037455 -1.0683939131 -0.6160884169 -0.7258477232 1.4310434684 -0.2083087333 -0.1022713592 -0.2066281115 0.3107203497 -0.1022837190 -0.0870734036 -0.1564573206 0.2062101597 -0.0855464917 -0.0248143265 -0.3570437267 0.3679866517 0.0128097795 -0.0388931086 0.0118575359 0.0426305701 0.0452898595 -0.0152363260 -0.1839348043 0.1900403358 -0.0256752227 0.0327380607 -0.1050967313 0.1130323874 -0.1115210662 -0.1229158201 -0.7397704884 0.7581593649 -0.0852586049 0.1834996115 -2.2608245117 2.2698609230 -0.8434899227 3.0842487505 -35.6458159364 35.7889404618 -0.4120567223 1.9406895632 -18.7063248077 18.8112374536 -0.0205243872 0.1410247404 -1.0500070428 1.0596339074 -0.0008132891 -0.0012131898 -0.0023665091 0.0027809412 -0.8256421813 1.3681918836 -19.1498487306 19.2164081047 0.1573320002 -0.0811643336 -1.4397325267 1.4505760082 0.0942411783 -0.2126828916 -1.9462542638 1.9601074132 -0.0438086108 -2.0377553932 -25.8770286487 25.9741750534 -0.4587468444 -0.1873411629 -11.5404540859 11.5510876495 -0.3608628899 -0.0316171632 -9.4129761192 9.4199437945 0.1049868157 -0.6575911621 -4.7757200562 4.8239434292 -0.0520052129 -0.0356446537 -1.9300120889 1.9360789063 -0.8811137632 -0.9432680393 -21.1201243341 21.1595313734 -0.1033128641 -0.0942870920 -1.6834213739 1.6892220475 -0.0799760673 0.0208903371 -0.1394022888 0.1620665778 0.0314897009 0.0068679358 0.0093103281 0.0335477573 -0.2412688407 0.2767819519 -0.7062002063 1.2313932835 -0.0544650836 -0.0134714733 -0.0685949212 0.0886182213 -0.0635812520 0.1714890594 -0.2274441755 0.2918594286 -0.3198734558 0.2709117696 0.0332893469 0.4205001727 -0.0472966262 0.1404291582 0.0008437638 0.1481824256 -0.5190281543 0.5871564233 0.0092489787 0.7837272701 -0.0616528052 0.1613358843 -0.0126200890 0.1731750634 -0.0664264493 -0.0371241149 -0.1065495930 0.1309331465 -0.3608325307 0.1031431028 -0.3952203591 0.5450116945 -0.1811695236 -0.2048750316 -1.2867333705 1.4064687592 -0.0102156179 -0.2721454975 -4.6197528554 4.6277731119 0.0991838919 -0.1573891990 -3.4961973960 3.5011433898 -0.0233385651 0.0462549519 -9.4363002402 9.4364424669 -0.3024538790 0.1079682195 -28.4224843999 28.4242986712 -0.0920848566 -0.0656203245 -17.7856736499 17.7860330830 -0.1705324253 0.0511463621 -19.5189776775 19.5197896206 0.0733190999 -0.0317741002 -47.9367505359 47.9370203184 0.0606660532 0.1089534681 -33.6249979315 33.6255188347 0.0253921493 -0.0269933746 -14.0685000163 14.0685488275 -0.1357419427 -0.0027633821 -30.5272418974 30.5275438150 0.0829722415 0.0236746027 0.8302018734 0.8462622615 0.9036690643 0.3444404940 8.8361415834 8.8900019628 -0.0548555055 -0.0910675856 0.3967796238 0.4107754879 -0.0431495353 -0.2238946982 1.8704413285 1.8842880570 0.2876909245 -0.3826868797 3.6096006751 3.6412130328 0.6382097287 -1.0490067735 10.7258580139 10.7959139031 0.5416766056 0.2277012931 2.3357798575 2.4085532933 0.1066437600 0.1187088843 0.6711681136 0.6898777627 0.0467024961 -0.0951439318 0.3501702204 0.3658588172 -0.0088738351 -0.0179691846 -0.0073953163 0.0213618175 0.0563619267 -0.0364432902 0.1138505542 0.1321617527 -0.0603508498 -0.0121025046 0.0217813477 0.0652925937 -0.0382993608 -0.1876983239 1.6599859554 1.6710029545 -0.0558717488 -0.2428668931 1.1666100014 1.1929312115 -0.2316534282 -0.0910827997 0.5501758613 0.6038649398 -0.0652649175 0.0263572443 0.0669370337 0.0971327971 -0.3701101981 -0.4252999322 1.5151088607 1.6226201761 -0.3395935736 -0.4082860566 2.0419377084 2.1144764575 -0.0201792038 -0.0104519382 0.0082033788 0.0241606850 -0.8430301430 -0.3571201694 1.4758089524 1.7367344936 -1.7652946878 0.3888646670 1.2976592637 2.2801482534 -1.2427708137 0.3663852796 1.1906437525 1.7596448544 -1.1154056165 0.4527946576 1.0359734131 1.5882045221 -0.0510845963 -0.0196625701 -2.1034254303 2.1041375415 0.0139726824 -0.0497354448 -0.3044498112 0.3088017777 -0.0537426783 -0.2426450274 -4.3405598972 4.3476689278 -0.1221031191 -0.1563356830 -5.2490048727 5.2527518666 -0.3947701228 -0.3253889956 -12.5966785619 12.6078353426 -0.0981462509 -0.1556460614 -7.7285624944 7.7320124416 0.1260950093 -0.0243891710 -0.5591441982 0.5737046430 0.0191409703 0.0733038785 -0.3412238044 0.3495332889 0.6777395355 1.4976280535 -10.2250690054 10.3563631082 0.1359508008 0.3620211716 -2.8159454511 2.8423741366 0.0557961035 0.2539036043 -1.8426434113 1.8608909121 0.2877152201 0.4585718309 -3.4307492011 3.4731985623 0.5340026408 0.8404017445 -5.7291004901 5.8149829181 0.0868589540 0.2450328126 -1.2964828438 1.3222909367 -0.0969421269 0.1607395180 0.0691732349 0.2000497563 0.0460167919 0.0939868362 0.0507597774 0.1163083210 0.0887388544 -0.0681408214 0.1115090075 0.1579620669 0.0340345594 -0.0281268443 -0.0408033213 0.0601197275 -0.0505747632 0.1072982445 0.1207196726 0.1692452638 0.0184440804 -0.0065641352 0.1495440605 0.1508200849 0.0873171555 0.0089951337 0.0744311618 0.1150877749 -0.0358777098 -0.0481696326 0.0279559349 0.0662499650 -0.0913005893 0.2219124435 0.6319366260 0.6902206998 -0.5169602282 0.0371277061 0.7933056050 0.9578308368 -0.2553074407 -0.1342322183 -1.4803041087 1.5145891248 -0.0508501718 -0.0037913156 -3.2891385071 3.2924932828 -1.2701377238 -0.4487950974 -12.3752506965 12.4483531714 -0.4200432364 -0.1725666609 -4.9239218361 4.9448176731 -0.1215703783 0.1768993509 -12.6120389401 12.6138653459 -0.0440602913 -0.0170579167 -1.6794563082 1.6801207615 -0.1496467258 0.1578171896 -2.4389834317 2.4486609785 -0.1931726808 0.3759642582 -6.6782372404 6.6916005147 -0.0290846976 0.0159036965 -4.1349791295 4.1351119996 0.0256649670 -0.1162105302 -5.0049704412 5.0063851925 0.0728285284 -0.0292572889 -6.5696594767 6.5701282806 0.4006857987 -0.1121271523 -16.8985566496 16.9036782520 -0.0033552403 -0.0035466098 -5.2581866141 5.2581888807 -0.1551095580 0.0223485215 -6.7701696761 6.7719831567 0.1965619286 -0.4512930089 -3.7273345149 3.7622871159 0.2184670806 -0.3628974210 -7.4676331058 7.4809388709 0.0680739389 -0.0211704484 -0.5419961102 0.5466644606 0.1957881885 -0.2511877216 -1.2427125786 1.2828728851 0.1843930058 -0.1588480659 -1.4380385403 1.4651512266 -0.1497321133 -0.5285620377 -3.3680902191 3.4154515137 0.1073229894 -0.0951454335 0.1304053030 0.1938463840 0.4656058468 -0.3525209167 0.2146374333 0.6221969375 0.1208888242 -0.1574822716 -0.0208588938 0.1996243150 0.0276980993 -0.0042787532 0.0532947995 0.0602148494 -0.0130266502 -0.0124564852 0.0454927690 0.0489331142 0.1905485002 0.1592609887 0.4640125048 0.5262892722 0.2217783893 0.2927823276 3.7519265406 3.7698620547 0.0295403867 0.1028841785 1.9289059574 1.9318736970 0.3124965460 0.0142247790 4.7555644919 4.7658420108 0.0703187253 -0.0472995880 2.2036361683 2.2052651397 -0.0668249103 0.0963672117 10.8750943381 10.8757265997 -0.0706958480 0.0979783248 17.8719891555 17.8723975530 -0.2506692934 0.3633122696 69.4871196993 69.4885216080 0.0020724214 0.0416421300 12.4205557630 12.4206257420 -0.2172232506 0.2211212941 39.5078155425 39.5090314929 0.0355458310 0.0614459833 6.2651627230 6.2655648636 -0.1252906827 0.2817673138 29.6398240441 29.6414281023 -0.1294127626 -0.1384278248 13.5874255349 13.5887469103 -0.0237249442 -0.0379727974 0.8332482459 0.8344503853 0.2142035725 -0.3756987944 23.2241532102 23.2471218794 0.1307464627 -0.1592362198 6.5468424667 6.5515705659 0.0283010141 -0.0119463776 -0.5785078837 0.5793229107 0.0179896966 -0.2341908079 -1.4083784309 1.4278300908 -0.1633702370 0.5999789505 -7.3378638491 7.3641639337 -0.0044454740 0.1409969967 -1.1260995736 1.1349009494 0.0475885605 0.2458382718 -0.8907403373 0.9252672455 0.0342581264 0.0377445481 -0.5119804231 0.5145116362 -0.1167777854 0.1765212320 -1.5071860025 1.5219745210 0.0386342984 0.0505943102 -0.4135285954 0.4183996803 -0.1467304048 0.3219425452 -3.2223051518 3.2416704499 -0.0213689148 -0.0077587114 -0.1083281811 0.1106879531 0.0197576082 0.1329238546 -1.0717822443 1.0801741959 0.1924323027 0.2822244270 -1.7442902136 1.7774220567 25.7088136666 -4.1018598707 31.4474150447 40.8255771217 6.8717818305 -1.0796387727 8.6989279333 11.1390229544 3.0456303512 -0.3974016938 2.8867606033 4.2174232546 6.4072415417 -0.4645125010 6.6547408418 9.2505984397 34.1411692138 -4.0462103661 31.1507648279 46.3961748847 35.3786421425 -4.7070360373 30.8236083136 47.1582372187 30.9691559359 -4.1021381456 27.6597488040 41.7250267903 18.0114303652 -2.2535599069 15.9941022888 24.1934070330 9.1502998048 0.6131614110 19.4434550705 21.4981715105 26.0193300841 2.0646939564 53.7679451906 59.7685528432 49.9919318893 4.4978458817 105.3130713584 116.6631319241 30.1070367552 2.5752707470 63.6830877356 70.4883064426 17.6554713489 1.6509673831 36.4589711753 40.5425448266 9.5999877029 0.8008636716 20.1118130021 22.3003508612 23.2820675095 1.3402116383 48.9327485924 54.2059424726 1.0005118841 0.1184803908 2.0185869535 2.2603616319 9.4389032926 0.6801878788 19.2374623086 21.4395659186 -0.1079636267 -0.1233767129 15.6718444989 15.6727019992 0.0319654938 -0.0129981784 1.5791472705 1.5795242472 0.0464089915 -0.0033564504 3.2350974842 3.2354320874 -0.0587872995 -0.0890574220 16.6609843093 16.6613260374 -0.0265356964 -0.0256012529 1.2739377775 1.2744712740 -0.2921982774 0.0060805463 27.6243288292 27.6258748291 0.0307969195 -0.1253164527 -2.2049798119 2.2087527327 0.0543549915 -0.4510034084 -4.5261525273 4.5488916496 -0.1361401909 0.1476679291 -0.0578339299 0.2090089288 0.0076186746 -0.0055161374 -0.0467146226 0.0476521556 -0.0190371721 -0.0389329355 -1.9142837467 1.9147742557 0.1091121999 -0.0635613389 -17.6156518101 17.6161043994 -0.2449706189 -0.2834644742 0.8592264851 0.9373541834 -0.0045483069 -0.0602563687 0.0652071987 0.0889016076 -0.0343320986 -0.0639857363 -1.3295556327 1.3315370997 -0.0303664613 0.0585017862 -2.6924056585 2.6932123590 0.0309609023 -0.0760088464 -0.3815666726 0.4144982904 0.3009735885 -0.7627855341 -0.8157037942 1.1650233202 1.6055272309 -0.1594596674 1.3315320237 2.0919184030 17.1147921165 -1.7412664662 14.7710756276 22.6744965389 83.2498970170 5.5383674199 177.3702717433 196.0144785629 -14.2140564351 0.4028068908 9.3772875186 17.0333547764 -12.6993653882 0.4234650195 8.2470945092 15.1481936788 -1.9956378643 0.0311817872 1.2391461045 2.3492607045 -2.2404860387 0.1755992491 1.4272803112 2.6622813286 0.7550252447 -0.3218032273 4.4300643790 4.5054512359 0.4706524235 -0.1374246338 2.2106499025 2.2643701608 0.1925424529 -0.0501412900 0.6092559397 0.6409208571 1.4200658812 -0.3953220023 5.8432824669 6.0263435498 75.1965394335 -8.6598315634 68.2130157841 101.8947850855 8.8071600637 -1.0805027855 7.9707240482 11.9283475928 32.9556986699 2.5422959613 70.1239950217 77.5237737805 21.0196096332 -2.4309190752 19.0218400589 28.4528338819 21.5000444549 -2.5419115397 19.6307263073 29.2246238845 99.0223162751 -11.5672192385 89.2390665277 133.8014599178 3.6115585894 -0.4094381475 3.2231783558 4.8579701270 41.4742851442 2.5229543255 88.2355392182 97.5295416152 2.9936226055 0.3144665754 6.2215534713 6.9128773251 #END -0.0691976173 -0.4196020655 -14.9527958318 14.9669836090 -0.0349641216 0.0020836454 -30.9932370179 30.9935710667 1.7388796003 -0.3156635200 -19.4113040366 19.5142220421 0.5992901036 -0.1705534344 -7.2883595333 7.3162764829 0.5305419236 0.3542390941 -144.0997836825 144.1012633436 0.2037280119 -0.2191896262 -71.8667307908 71.8674893366 0.8408168708 1.3663796238 -230.1151143400 230.1207493769 -0.0251824815 -0.3950200400 -92.5513476061 92.5522992609 -0.6899737354 0.3011455062 -8.9121228426 8.9449519684 -1.5206042943 0.5271797189 -16.7629297100 16.8405893046 2.9218120683 -1.3539060864 -9.5424970057 10.0721783315 0.4662004584 0.0784138919 -1.2071790278 1.3039373435 7.6068554656 8.3466272962 -5.5049154903 12.5639966426 4.3042248794 4.4119634495 -2.4387721050 6.6949364789 15.6529826793 14.0780381656 -10.4761548735 23.5337977826 0.5490528377 0.4162782839 -1.0643768536 1.2755879035 -0.0864328413 2.2342473700 -0.9816479212 2.4913059924 -23.3603292633 -40.0260379056 -48.6012149257 67.1556867714 -78.4799442484 -141.1346896041 -168.2854421578 233.2340279224 -12.5236040910 -21.9106431050 -26.4490912002 36.5580476203 -0.2190080531 -1.1846270426 -0.6283709640 1.3658827222 -1.2088745269 -3.6468838697 -3.7461179183 5.3887085650 -0.1620324454 -1.2097235525 -1.1294095458 1.6687514176 -0.5478741847 -2.2646781491 -4.6099651038 5.2500955500 0.2278082828 -2.0237159444 -4.1251362890 4.6954088241 -0.0906091954 -0.6660310941 -0.7253956788 1.1052815458 -1.1186290077 1.4644333677 7.0670746743 7.3047190351 -2.3034841198 0.2819160538 14.6624807333 14.8746982757 -1.1894375492 1.2110637014 7.0996114103 7.3599396013 -2.5253269782 -0.1064810815 18.3881191543 18.5615468209 0.6409330373 0.6458658593 3.0393115831 3.1756625373 0.0755121394 -0.2573122811 3.8819655960 3.8937190919 -0.4612493662 -0.1441473564 1.6421346680 1.9526718851 0.5054356091 -2.5953830326 1.5175518752 3.0518718387 0.0704955779 0.0070106720 0.3259213255 0.3615567332 0.5544977675 -2.2803100075 1.7742508687 2.9452890240 1.3245876161 1.4125832910 7.0023171672 7.3256509200 0.0652111089 0.0729382124 2.1783751487 2.3743804550 0.0215319361 0.6148121059 8.3428205994 8.4179251420 0.2813210872 -0.2204078090 5.9781883150 6.0619144895 0.4620694627 0.2868672042 163.8668665689 163.8704627194 0.0772262888 7.5345092901 -14.3467441994 16.2322720237 1.4561799586 19.0867887031 -37.1246283912 41.7797121442 0.3159529384 0.5562606357 -0.8183868127 1.0480882187 0.9592227024 10.7256099021 -20.6370325306 23.2965387862 2.6102627773 7.5937583743 -12.1976598970 14.6041440954 4.2940942787 11.6159381469 -20.8929046340 24.2879025142 8.1437004800 22.1737921720 -41.4079780748 47.6721831346 30.9440826486 94.5656965580 -176.7466291269 202.8289861040 0.0890143813 0.9773015637 -1.2108671557 1.5648389566 1.0656261932 1.0500100268 -2.5047934470 2.9208817568 1.1089744177 0.0282355218 0.5983278031 1.5712950890 0.8936097118 0.0501578027 2.4079414782 2.7353296089 1.5489200878 0.4430502429 6.4646281890 6.6638085479 1.1998544942 -1.5617410835 31.7697931718 31.8446038567 0.3185540214 -0.7193108008 23.0522493856 23.0847975562 0.0531992697 0.6143547071 0.9044549104 1.4425991606 0.9852007697 1.4455964094 1.8539452717 2.7162167070 0.4870126271 0.3877954444 0.7958270536 1.1245213492 0.3499920194 1.4239230105 1.6150122706 2.1858169119 0.0765485252 0.7612983130 0.8112644942 1.1238614961 0.6015499167 -0.4556960935 2.9519545291 3.0866159032 0.1489297514 -0.9655501017 5.0995312960 5.2156809209 0.9690999544 -1.3233178274 7.7581010790 7.9308219581 0.4647516095 0.4249616628 1.1076810555 1.2818048132 0.0274722636 0.4805100395 0.1146927526 0.5140805732 0.2814059334 0.0074007933 320.8767370207 320.8782360910 -0.1340784743 0.5996692847 162.3573128738 162.3611867858 0.0314231403 0.4917381947 3.1071178783 3.2832555735 -0.2212932279 2.8899120123 -0.0014598897 2.9401029272 0.0636616520 -0.7164549400 -4.5737316266 4.6320472001 0.5555078131 -0.0978083936 -16.1260294709 16.1631473576 0.4361449882 -0.3122060481 -11.7355969419 11.7853605136 -0.2229133450 0.2316868456 -17.5363525102 17.5398548540 0.3063681740 0.2066025877 -5.7612583588 5.8488455747 0.3689636170 -0.0109738076 -3.1870955466 3.2114346301 0.9275924247 0.3836649203 -9.3317546740 9.4325003874 0.4489223528 -0.4790499212 -10.4698906709 10.5020603562 -0.3255701559 -0.5376048571 -7.0502276198 7.0795624289 -0.2221311224 0.2798825375 -57.4485512729 57.4517829208 -0.1312711131 -0.2094411947 -9.5493682375 9.5535863025 -0.3468737092 -0.2690595656 -38.7120223555 38.7147629343 -0.0057160756 0.4225384413 -60.3096010199 60.3131012928 0.1151283984 -0.1262490046 -55.4040841304 55.4045233846 0.6679006337 0.8961334851 -1080.8705570285 1080.8715421123 -0.2193074828 -0.1422254071 -111.1066493065 111.1070444379 -0.2081798629 -0.2023810378 -317.4409650780 317.4411285363 1.1184131098 -0.0320949297 -10.0743763902 10.1796506921 0.0411048214 0.0320630325 -0.3162668838 0.3496028762 0.3919352985 -0.0559685560 -1.5914424758 1.6458780928 0.2850962945 0.0261177830 -1.7546972420 1.7833687874 0.6810571069 -0.0959990015 -7.2802617953 7.3140102669 -0.0517000743 -0.4492447596 -6.0625510179 6.1513713259 0.0771101553 0.4625781691 -50.4002513547 50.4111897592 -0.0599621386 0.2147446263 -7.8163988590 7.8208235897 0.0287314087 0.6296144075 -88.8169463747 88.8192922901 0.7121977974 -0.0825538455 -207.9259265291 207.9272094835 -0.3087776490 0.1579999770 -98.0632277877 98.0683422087 0.2401861281 0.1462018856 -42.9291607475 42.9303084852 -0.0394358565 -0.6452650962 -99.8342297237 99.8407438801 0.2091981231 -0.1051823941 -17.5969925880 17.5991038157 0.1809295648 0.0201595938 -6.1804132977 6.1846689670 0.5904316920 -0.2956774832 -14.4512738481 14.4670256230 0.5133465820 1.0554732713 -27.3823282733 27.4078260720 -0.0920735021 0.3181167744 -4.0031443880 4.0192437831 0.0842164192 0.3379265815 -5.7813411925 5.7935026149 1.5875009295 1.2519094722 -47.1269513646 47.1705041444 -0.6436784925 0.4644400861 -10.7437061264 10.7842889837 -0.7704597779 0.8030141729 -8.9974836070 9.0671181240 0.0139336058 -0.0305019098 -2.9458609238 2.9877912449 -0.3484754876 -0.1849630199 -1.3288506031 1.3931870637 -1.6728705200 -0.0477253911 -9.4839670324 9.6315047602 -0.1922197996 -0.7113716322 -1.6816799612 1.8413379178 -0.0300661173 -0.0124349667 -0.2283122877 0.2306189509 -0.6382804367 0.1214889497 -2.1929303017 2.2871608576 -0.4873409519 -0.3201388802 -1.1620985723 1.3076478817 -0.6019890117 -0.6039274122 -1.9033311224 2.1432287351 0.1383720396 -0.0574392756 -0.3182434310 0.3784240452 0.3869763794 -0.2944763473 -2.2863812587 2.3899124934 2.4937018363 -0.1645061721 -8.6508890424 9.0533884787 0.0104969832 0.0142539536 -0.3928103180 0.4172446437 0.2669164292 0.1937993908 -0.3855292232 0.5073808884 0.8186430900 0.8268183986 -4.6366930726 4.8716607451 0.1124215394 0.3274607343 -0.8857290726 0.9611789168 0.1090351112 0.2622467093 -0.8844465783 0.9393548460 0.4702135096 1.0205242077 -2.3311328256 2.5915691074 -0.0492649517 0.2548763288 -0.9354570395 0.9708083494 -0.6084433147 1.4329086778 -5.7859493932 5.9917143563 0.3765142957 0.8304833131 -0.7309762702 1.1769756330 -0.5023564104 1.9904485261 -5.7532989270 6.1101698525 3.1551720043 3.4709709297 -2.4918129557 5.3343717848 3.4566440846 4.8140327787 -2.7898784797 6.5518090355 7.8827245353 8.9494364886 -5.9303997637 13.3521440793 1.8005136734 2.4292737969 -1.5007442403 3.3785993737 4.8655545974 5.7606176720 -4.1202940228 8.5927388147 20.4865624853 24.2429523554 -17.6595985874 36.3219135460 24.2255111352 27.7116775809 -18.9166198201 41.3948223830 34.9220585242 40.6042960492 -28.0942021585 60.4777868637 5.8859019751 6.9836415030 -4.9036707074 10.3672830044 39.2507541215 45.1313806890 -31.2301505629 67.4761676566 15.8243788703 17.8801877316 -11.9909435257 26.7191745076 13.4007799555 12.3634334722 -8.7609016623 20.2288968646 4.2376613379 4.4554131600 -1.9942405758 6.4656751619 1.8262406137 1.6085178249 -1.1300999703 2.6868364483 1.5255170894 1.7817817763 -1.4810447498 2.7775748458 0.4284784297 0.1285447204 -0.1511053363 0.4923719300 0.2717194703 0.5700584444 -0.1749872009 0.6699988104 0.4061824820 0.8072852869 -1.7754719590 1.9971164727 -0.1224805036 0.4470930496 -1.2527987747 1.4240924824 -0.1003547072 0.4528472816 -0.2151140651 0.5299958241 0.4918583965 3.2874689214 -4.8986596127 5.9216317326 0.4951928563 0.9073253263 -2.3061080025 2.5271702222 -23.7971317699 -38.9756762053 -47.9476604169 66.2146883674 -7.4165859527 -12.1297636797 -14.8195576572 20.5367038074 -4.5519374956 -7.8479623666 -9.3588064544 13.0344891163 -5.1540749897 -9.1572527091 -10.9129653169 15.1496725438 -8.9803639516 -15.8894414267 -18.8118890473 26.2112177296 -30.6635798664 -54.8345142965 -65.3995948614 90.6874058300 -15.5948767199 -27.9900631014 -33.0096579605 46.0032695663 -32.3017333336 -57.2574214165 -68.2724502351 94.7784850296 -26.5423705715 -47.2412102097 -55.8111339522 77.7904601581 -1.7903919319 -3.8338243851 -4.6714700424 6.3044289850 -3.6603299881 -6.6762363243 -7.8549447990 10.9393923449 -3.3839899747 -6.1015143272 -7.0200905067 9.8975520184 -0.1320550644 -0.3664645121 -0.3519762585 0.5249972049 -0.8337880704 -1.4851161735 -1.5575074894 2.3079432780 -0.8353956739 -2.4812160465 -1.7815912374 3.1698369238 -1.1743881585 -2.1376323135 -2.1153970417 3.2315698791 -0.1039947396 -1.7583211880 -3.0463260502 3.5188933928 -0.2909581210 -2.3785451626 -4.0502074580 4.7059870560 0.3414322182 -0.7827387739 -3.8531253081 3.9490898157 -0.2158656748 -1.4212711617 -3.4880095024 3.7752218184 0.0880126508 -0.5198892446 -0.3545517673 0.6505519149 -0.4691639778 -0.3384171038 -0.0610679201 0.5982056920 -1.6107144006 -1.4647978099 0.8744591537 2.5273512024 -0.9014841247 -0.8408818238 0.5540586217 1.3587555372 -0.4328864149 -0.6821028587 -0.1736418203 0.8380251934 -0.1596076736 -0.0418764594 0.1727967562 0.2767069771 -1.0251186554 -1.1228377663 1.2328169149 2.1712351871 -0.9008097912 -0.4380904641 0.6718999278 1.2142120212 -0.2861170921 -0.3122207083 0.5776927630 0.8698934702 -0.5656559477 -0.6079124863 0.3165571784 0.8995623793 -0.4278486488 1.3392578098 3.4544538523 3.8461291125 0.0529254470 -0.0057189066 0.3937230784 0.4211074165 -1.3566749578 0.6170772781 5.0186972552 5.3189721970 -0.0304719908 -0.0366959043 0.5848641823 0.5868059674 -0.2009167297 0.0217569444 6.4813402865 6.4844901732 -1.6553779538 0.1644423668 12.7834812335 12.9254594385 -0.6041782543 0.1885360835 5.7549827049 5.7913627875 -0.4776920532 0.2619937387 4.7771868491 4.8101792475 -1.0311925789 0.1512832214 8.2509654520 8.3692906647 -0.2687004831 -0.1795658107 2.2878349041 2.3147596340 -1.2568318765 -0.6613678324 12.7693132179 12.8488082567 -0.3770073225 0.3030699707 1.1062444728 1.2154186714 0.0573878647 0.0836627472 0.1517119028 0.2297588053 0.7380178454 0.0328019164 1.1314001146 1.6450419806 0.0577989989 0.1029654411 0.1633989736 0.2451970958 0.9001811766 0.1062272298 0.1901532179 0.9366153993 -0.0094464015 -0.1214678936 0.3635688541 0.4080511981 -0.1277084077 -0.0578595880 0.2071303063 0.2501202373 0.3284876566 0.1433736297 -0.0447206608 0.3611925743 0.0435973953 -0.3281643649 0.4238721099 0.5556437112 0.5416925595 -1.8068755927 2.1298387109 2.8875740910 -0.1434703316 -1.0410599040 1.4521926156 1.7979801550 0.7546006340 0.0214383669 0.8377912440 1.1363343143 -0.1150008518 0.0456034532 2.3614439060 2.3687975804 -0.2503039082 0.0322413122 0.6927542109 0.8895366065 0.6968661222 0.3231937566 7.0251714279 7.0842608046 -0.1116382064 0.1554618213 2.6104317697 2.6211572398 -0.1667372317 0.0809213162 0.4000668786 0.4624747086 0.5546925157 0.3512947132 3.9961747501 4.0497536216 0.2402592479 0.2633008904 1.9903973164 2.0220616564 0.1602116261 0.5273506385 3.2354159655 3.2849905199 0.1109105379 0.0863326678 6.4491360071 6.4506673852 0.5763742012 0.3257824489 6.0596068128 6.0956686384 0.0031881730 0.0341752694 4.2233124988 4.2257574896 0.0354103404 -0.2801835897 3.9876356966 4.0000593708 0.0704320927 0.1607500309 1.6994814086 1.7085193328 0.3616746285 0.3506150786 6.2017116025 6.2221351858 0.2531469339 0.2950202235 10.6157215310 10.6237537487 -0.0238753396 0.0193253922 0.4522029006 0.4532449293 -0.3765245971 -0.1749453319 3.5242850448 3.5486563258 0.1237750690 0.0575204601 12.1883823491 12.1899455678 0.5656671705 0.0443078886 32.6664777141 32.6717031782 0.2000003782 0.1025358863 64.0921683221 64.0927143579 -0.2023247439 0.0129753605 4.1609691091 4.1682427201 0.4828718521 0.7527382880 38.8018092092 38.8123647547 -0.3545988897 0.1214371843 11.9224186309 11.9291254146 -0.1854432336 -0.1827441643 67.9057681179 67.9064106553 1.0037654915 0.3542265917 977.2249976961 977.2255873766 -0.0224224616 0.2674526403 238.4963024415 238.4964942966 0.7562720105 4.2270545981 -8.4095656951 9.4889980347 1.3063775268 2.9802021914 -5.9128995264 6.7505620461 1.2168880934 3.0892788004 -5.8692450881 6.7447741125 -0.0018058244 0.0731769961 -0.2032990684 0.2160755538 0.1298912757 0.8663619635 -1.3978799259 1.6497039378 6.5018593285 20.5340806062 -38.1222210474 43.7889257646 5.3920141615 14.9313378456 -28.8936794691 32.9676110727 12.2673748044 36.8671458369 -69.0936761120 79.2693540102 6.0558049925 18.0156749185 -33.6748289262 38.6684742377 3.9160730839 11.5488562508 -21.6229151801 24.8250206399 2.7515573212 7.0520261422 -13.7508911567 15.6974083144 5.0289667235 14.4599778068 -25.8366247208 30.0321847562 3.3007218070 8.7315716353 -16.7542534570 19.1796662211 6.1994031717 19.3553078315 -36.6976923574 41.9499778913 7.1563666415 23.0769192565 -42.6597639975 49.0266585666 2.6583575405 8.6035238836 -15.7338365484 18.1284610643 1.5289072775 3.9399098473 -6.4678712730 7.7274371985 3.1688444041 8.9756867090 -17.5700646867 19.9889813467 1.4589641043 5.1993231861 -8.7153748447 10.2646450252 0.5091232213 1.3608143508 -3.7517898023 4.0257208867 0.5298660430 2.4862900341 -3.1582866210 4.0566797165 0.2985705786 -0.1259006917 0.2530459219 0.4341743867 0.1246390176 0.0439423171 0.7569585882 0.7809813706 0.4053285433 0.2542135631 2.5087444875 2.5577713839 0.3768621124 -0.5220063788 4.9827725561 5.0261334883 0.2250522977 -1.1529522056 7.3304756880 7.4253148702 -0.1200056276 -0.9197214025 13.4702332019 13.5028497403 0.0377189833 -0.9791195321 10.9243139110 10.9690570238 0.5760346738 -0.9298310878 8.7142612904 8.7837481419 0.0227897247 -0.1459942389 1.2972992200 1.3056871584 -0.2848663876 0.5096956884 0.4286494763 0.7376711409 0.4038884106 0.6916960244 0.9281327988 1.3231308173 -0.0495168998 0.1014374184 0.3644707155 0.3815499648 0.0027371748 -0.0142150716 0.0385756970 0.0412056414 -0.1081180684 0.0529223144 0.3226041471 0.3443312125 0.5052316370 -0.0115407789 0.6299763696 0.8195988090 -0.4142005939 -0.3067386439 1.8241662062 1.9007137765 -0.0564975407 0.2112528183 16.2269106336 16.2555602863 0.0123327278 -0.1230090236 1.3386900200 1.3516116567 0.0043624393 0.0596013819 1.2150019321 1.2244512385 0.2336747851 0.0373134508 2.4632315411 2.4785047123 0.2981740037 0.1329295371 21.3961389881 21.4192467977 -0.0690086673 0.0077989309 11.0548977714 11.0559969039 -0.1630202528 0.1373972174 101.4210354940 101.4213556114 0.1859612820 0.1860127315 0.2744462693 0.3801356198 1.6235431077 1.7712405012 3.1128585586 3.9323114756 0.5723503929 -0.6619190264 0.0979686276 1.2876767478 0.0375231136 -0.1486449137 0.1676109377 0.2666017738 0.1050987761 -0.2927521217 0.4918733731 0.5984720191 -0.4660147417 0.0779251744 0.8176066363 0.9545692583 -0.5030797855 -0.3803121686 0.4457881824 1.2162423708 -0.1393472543 0.2520090281 0.1296260633 0.3452664315 -0.5286751096 -0.7027213734 -0.4362331703 0.9915108995 -0.2819516776 -0.0330237303 0.3183056429 0.4487600500 -0.4435400141 -0.8841602957 159.1603916770 159.1635266816 0.5135826886 -0.5826958676 344.8863541172 344.8875819726 0.3811075859 -0.2416387387 128.5262230860 128.5270910463 -0.7378574665 -0.8307432587 1430.5102820968 1430.5108001788 0.1755375507 -0.2883930762 443.8449166189 443.8450450241 -0.1287306854 0.0333621852 41.1302883754 41.1305033579 0.0208138388 0.1911791399 92.3572074037 92.3621734948 0.0157718383 0.0613809726 29.8313662734 29.8317600872 0.0524745508 0.0936838080 12.9249502022 12.9261497650 0.2849418968 0.8898181948 22.5092997976 22.5482668396 0.1992172817 0.0666847136 0.9286029723 0.9622461438 0.0189037056 -0.6010584379 5.7311445772 5.7642975761 -0.1394171494 0.3959313410 1.7527701694 1.8697800576 0.2325458777 0.1846723766 0.1106056136 0.3168833755 0.1897592444 0.3446771393 0.1342753848 0.4157412418 -0.7960149279 -0.1721950699 -0.9495671213 1.3448455619 -0.4021986878 -0.2610904343 -1.3766114404 1.4644011890 -1.6194030088 0.1277952606 -4.8495381970 5.1385303236 -0.1949962240 -0.0043566518 -7.4148387194 7.4187165688 0.1678531302 0.0676757573 -1.4093638682 1.4209367313 0.2657142391 0.2052113253 -4.1937624443 4.2071794808 -0.0507729589 0.0828804591 -0.8516858939 0.8572140489 -0.1943844035 0.0585773146 -0.9357775063 0.9575469385 0.1448306704 0.0680295987 -3.0610349027 3.0652142870 0.3800313982 0.0823279424 -4.5649066490 4.5814380349 -0.7589881002 -0.2283955774 -33.6609866307 33.6739947713 -0.0168587469 0.0544729737 -1.6241976134 1.6251982678 -0.1481249632 0.0074329799 -1.7365475155 1.7428693375 -0.0626506506 0.0064830652 -116.0364398982 116.0364569926 0.0554318413 -0.0391709014 -61.7724801198 61.7725174103 -0.0435089180 0.1001660209 -31.3766767672 31.3768668164 0.0436244143 0.0585300353 -61.6611607334 61.6612039441 0.5216670080 -0.0559658330 -2.8326259238 2.8808051419 0.5732356963 0.0221172093 -2.5297689198 2.5939967467 -0.0102278038 0.0009877521 -0.0063612875 0.0120850984 -0.0906446708 -0.1162407038 -1.7201637351 1.7264679647 0.0354912149 -0.1027962068 -3.5479996904 3.5496659688 0.0182757588 0.0336654545 -0.4717320423 0.4732847831 -0.0550104260 -0.0315459448 -0.2842968652 0.2912833692 -0.0338399299 -0.1917853557 -2.0518693424 2.0610906243 -0.0792712471 -0.0238291111 -0.5420723093 0.5483558568 0.0435452652 -0.0366157885 -0.8787265094 0.8805663997 -0.0428436074 -0.0233809923 -0.1771895613 0.1837889718 0.0870809979 0.0041752494 -0.1514772277 0.1747738064 0.2576560448 0.1972306376 -73.1856131012 73.1864654929 0.8930179226 -0.0506511900 -222.5821432828 222.5839842277 -0.0320552076 0.0421860140 -107.5766060493 107.5766190967 -0.0053500167 -0.0378864072 -10.4342404863 10.4343106398 -0.2445528267 -0.5241281272 -36.3864823483 36.3944815802 0.0172501295 -0.1556689990 -11.0785782751 11.0796853295 -0.0029355336 0.0228862840 -4.3529117147 4.3529728687 0.1112528582 0.1310859181 -13.1591045128 13.1602276688 0.1022225221 0.1863821171 -8.3716731551 8.3743715677 0.0169026824 0.0293318814 -0.1815196700 0.1846495344 -0.1687930622 0.2027847416 -3.2731185607 3.2837353519 0.3003334831 0.4485789371 -16.3187224388 16.3276491051 0.2919766437 0.6025984044 -16.9673841919 16.9805919071 -0.0274967299 -0.0968421750 -2.7386356728 2.7404853266 -0.0859049059 0.0194815378 -3.5742462482 3.5753315127 -0.1954566444 0.2046738186 -1.3917502531 1.4202335860 0.0032019056 0.0737682562 -0.6035753078 0.6080749625 0.0085582619 0.0447313798 -0.0883579897 0.0994046001 -0.1791385338 0.0231930547 -0.4894043488 0.5216753288 0.1198154743 -0.0678275312 -0.7238082333 0.7367867266 0.0564860858 0.0396957391 -0.8586100166 0.8613812108 0.8747727212 0.4941269318 -2.8659284169 3.0401339138 0.4808751076 -0.1317282854 -0.7662921683 0.9248117010 0.1114223845 0.1153821240 -0.2757351226 0.3189950472 0.5214057138 0.2992881084 -1.4924528417 1.6089912290 0.0344398486 0.0824895675 -0.3635637038 0.3743917715 0.1532944689 -0.0061175289 -0.7334150466 0.7492891624 -0.1752450334 0.3675597343 -0.5291938644 0.6677253374 0.0025910894 -0.0036235836 -0.0519487830 0.0521394300 0.4791614146 0.1981416396 -0.9329246404 1.0764218226 0.9744592580 0.5126610341 -1.0110831019 1.5013863611 6.6277876416 7.7428480232 -5.1372661702 11.4136220472 0.9436274602 1.0349717285 -0.7330589666 1.5808145720 2.9319450552 3.1784125755 -2.1570842729 4.8323514842 0.7654402370 0.7716808331 -0.6043977419 1.2436585926 22.1700139180 24.6378606956 -16.9015113069 37.2080966547 0.6434593509 0.9086064379 -0.5989040906 1.2642356208 2.0252428236 2.4875921269 -1.6368012932 3.6012277848 1.1179866093 1.0338726922 -0.8847142270 1.7611093282 3.4188901215 3.2529553171 -2.4812786087 5.3317231260 2.6048048249 2.4533540682 -1.3235204369 3.8151881614 1.3885975974 1.2018834238 -0.6174737389 1.9375244180 0.3601468716 0.4270055310 -0.1704890154 0.5840428041 0.2354989595 0.4532141659 -0.2226270072 0.5571585272 0.4876083837 0.9881342858 -1.2966025511 1.7072871062 0.0174785697 0.6547307199 -0.5836814446 0.8883364395 -0.0973719834 0.2542826246 -0.2082877331 0.3428188094 -0.0702827743 0.6984819446 -0.4028141561 0.8093676171 0.1194645825 0.0724888339 -0.0004102052 0.1397375604 0.0880499034 0.1798785618 -0.1212870789 0.2341359391 0.4697545841 3.5757074091 -4.1520082033 5.4995931635 0.0721224723 0.4744243943 -0.4815632045 0.6798406261 0.9149209340 1.6466414345 -4.3826334257 4.7723645982 2.3023687712 4.6092761324 -9.9654685394 11.2194639541 -29.7266096402 -53.8102739369 -64.0453227640 88.7751106438 -5.5819068039 -9.9861063090 -11.9021455109 16.5088179633 -43.4650369847 -78.1540430539 -94.0099844922 129.7503027742 -1.8639216433 -3.3040456360 -4.0104846545 5.5204083745 -6.0325374437 -10.6568263154 -12.5756806402 17.5529826152 -21.0128592569 -36.8487419848 -43.8669864726 61.0219840893 -4.0787189155 -6.7063657876 -8.4854950143 11.5591918276 -1.5266095288 -2.6519963485 -3.3684225754 4.5508122278 -0.6000896445 -1.6725272332 -1.3482065851 2.2304967885 -0.7543418236 -2.4344889712 -2.0819491316 3.2909391249 -1.2909316973 -4.0988640061 -3.7215702739 5.6848285894 -0.8326041022 -2.8495783683 -2.6960562935 4.0102426368 0.0087888745 -0.1354251204 -0.1478895803 0.2007200426 0.0848224995 -0.6743330158 -1.2656858511 1.4366212258 0.0448467728 0.0181626963 -0.0370173820 0.0609212864 -0.0742835064 0.0376477555 -0.2336465216 0.2480445320 0.2330119061 -1.1021106781 -0.7836260014 1.6623365478 -0.0030984191 -0.3430861254 -0.1336705656 0.3937833093 -1.0761268401 -1.1351871209 0.0702858727 1.8260423501 -0.0397965145 -0.1306529432 0.1301050733 0.1886300194 -0.0559672651 -0.1319075470 -0.0112197283 0.1437282784 -0.0133403018 0.0989176666 0.3537703509 0.3675814599 0.0410372354 -0.0036450086 0.5530717356 0.5546040799 -0.2410464015 0.4223475223 0.9676447408 1.0829668239 -0.0106814279 -0.0039538478 0.0027689260 0.0117214660 -0.7542179540 -0.3208622950 6.4357738610 6.5068162686 -0.0871662315 -0.0110449585 0.2027019881 0.2209254150 0.0045774489 0.0570950169 0.3930676750 0.3972190719 0.8133676032 0.0810203753 0.7441058924 1.2122294202 0.0643542853 -0.2056618984 -0.0651449936 0.2251269879 0.0319761404 -0.3026964662 -0.2629183085 0.4022109660 1.4293640200 -2.1350562613 1.2975416461 2.9211019312 0.0329713961 -0.1109308409 0.0382243377 0.1218764310 0.4896100740 -0.5933369037 0.4346837800 0.8835817418 -0.2048055148 0.1830049264 1.3076935715 1.4258941082 -0.0749844881 0.0855137925 1.1711729347 1.1766823382 0.0100243965 -0.0043339940 1.4409566632 1.4409980490 0.1222546740 0.2076361466 1.6082445421 1.6261947860 0.0987882381 0.3257151756 1.5052979202 1.5432988435 0.1124744343 0.9344162218 10.2730850828 10.3161068865 -0.0082099564 0.0622429280 0.4180448530 0.4227328762 0.2103092678 -0.1564832243 6.7787749685 6.7838416153 0.1805909793 -0.0203944925 6.5474768269 6.5499986134 0.2661729843 0.0518447845 3.8003168193 3.8099795099 0.4365796927 0.0149735795 4.2779483773 4.3001939904 0.3148853283 -0.0082266353 15.5062135154 15.5094125625 0.1028189831 -0.0334396118 2.7486308147 2.7507564972 0.0517866536 -0.1550137316 10.5604551932 10.5617197938 0.0650851479 0.0109043925 4.1421864963 4.1427121493 0.1805565885 0.2260315930 32.2795956052 32.2808919238 -0.0164431648 0.0303489879 8.2254558246 8.2255282482 -0.0088699297 0.0129032202 0.9295706127 0.9297024754 0.0814124191 -0.0373104381 59.4829180755 59.4829854902 0.7208266707 4.6920687310 -8.3936559820 9.6436364948 0.6513896434 1.7204093097 -3.3006888409 3.7787118817 0.0867167172 0.1612840637 -0.2940573839 0.3464131685 0.0835021618 0.7059708038 -1.1105647717 1.3186058922 0.1884622517 0.6030703798 -0.9575371477 1.1472093499 0.1467966347 0.2248363246 -0.5009364235 0.5683642540 0.0792196908 0.0847595731 -0.2626749341 0.2871551247 0.1791595088 0.4673545924 -0.7111968810 0.8696662855 1.5867777383 4.3245670242 -7.8877348125 9.1343365391 0.2501764508 0.5932271441 -1.1842842527 1.3479747372 10.3510617921 29.8672792721 -56.0879767015 64.3840636900 0.4098861186 1.2186046784 -2.2551847993 2.5959319081 6.8570573494 21.8232027434 -40.8113755156 46.7850380458 0.4613913868 1.4281471771 -2.6061935727 3.0074459779 9.8907245903 30.5899357265 -57.0895393984 65.5193567536 1.2957682043 3.7621989700 -7.0198759172 8.0691891924 2.9366778225 8.0749371805 -14.8904490792 17.1916887153 0.0989852322 0.0385711073 -0.2707981532 0.2908907807 0.1510326313 0.2639118417 -0.5289986679 0.6101638358 0.1564726517 0.3829634612 -0.5913260928 0.7216725375 0.7742278288 1.8971545543 -3.4857796564 4.0434247794 0.1374778732 0.1079443846 -0.2116494250 0.2744952366 0.1853541744 0.1824683758 -0.6426560113 0.6932947620 0.0595783901 -0.0653549958 0.4888990782 0.4968331397 0.0016327596 -0.0980456550 0.1511979945 0.1802122358 -0.0277839214 -0.1565989319 0.0615673979 0.1705453495 -0.0230727935 0.0040467761 0.0782937940 0.0817229978 0.0708786736 -0.0649439893 0.0357190772 0.1025541837 -0.0158882303 -0.0134217770 0.1299575118 0.1316113021 0.0820936142 0.0188142300 1.2836313063 1.2863913351 0.0090508154 0.0943553790 0.5710021641 0.5788163147 1.2830486818 -0.6780513618 2.5397807496 2.9251416761 1.3686793946 -0.6706677687 2.9400453540 3.3116378462 0.6230786693 0.0095673717 2.6153934192 2.6886058283 0.3366331977 -0.0948114136 1.4492947201 1.4908944629 0.0129527415 -0.0220196878 0.0093787566 0.0272139897 -0.0968163604 0.0564965587 0.3435101857 0.3613371230 0.0457155020 -0.0085415262 0.9207503883 0.9219241522 0.2125710593 0.0045697836 1.1886606186 1.2075269787 0.0282216202 -0.2382143327 3.0987804843 3.1080513217 0.2819361438 -0.7543822214 8.5770346661 8.6147608318 0.0361851279 -0.0441764394 4.3342336128 4.3346097784 -0.0121840256 -0.0998529374 1.7649002147 1.7677646414 0.4756882984 -1.0814663681 20.0976548944 20.1328353915 -0.2498294590 -0.7652820218 8.5389548436 8.5779543563 0.2140381981 0.8554375548 1.3601557530 1.6209902630 0.0669807779 0.2376957507 0.2647146338 0.3620214522 0.6548752537 -0.2619456795 2.5450306996 2.6409578563 0.0632211634 -0.0114773153 0.1226768623 0.1384855834 -0.0366451180 -0.0212665617 0.8398950595 0.8409630446 0.0943134056 0.0360048186 3.3953048910 3.3968053622 0.0093605463 -0.0371065472 2.0791685194 2.0795206774 0.4171027709 -0.0990616505 28.0467186531 28.0499949223 -0.0672273929 -0.9635651616 113.2384716796 113.2436846853 0.0148585864 -0.2862052760 33.5764003481 33.5776234205 -0.0096804650 -0.0081834642 9.0006081528 9.0006170789 -0.0197811337 -0.0035836336 2.7549812720 2.7550546174 0.2263009506 -0.0030108697 38.0076725847 38.0083464057 0.2201373140 -0.0035446378 83.9643374097 83.9647420614 -0.3689430156 0.8458711090 284.4334757931 284.4350070726 -0.2998924536 0.2433386930 36.4985158856 36.5126499017 0.0599229692 0.0041994815 0.2678517678 0.2745049497 -0.0133796807 0.0441224799 1.2412650178 1.2421210301 0.2235231799 -0.0881903988 -8.3537025919 8.3571578394 0.1943863891 -0.1391397950 -5.0292621270 5.0349402670 -0.1802712949 -0.0732520424 -26.4427806410 26.4438649107 0.0786536355 0.2397087668 -23.1048861604 23.1066849842 0.0867379730 -0.1718051680 -0.7046391512 0.7436643127 -0.3924029616 -0.4462745446 -2.1401889985 2.2255403361 0.3984722874 1.7821654402 -1.2405680204 2.2120991430 0.1083276435 0.2000339933 -0.1053479505 0.2869258656 1.7753159834 4.8208283716 -9.5983823357 10.8981077221 0.7020074716 1.5670313024 -3.1563485803 3.5931793656 0.1404283961 0.2587265750 -0.6568715076 0.7198192499 0.5920916888 1.0784659305 -2.2991079586 2.6075963523 1.3355661959 2.6644499175 -5.9570257910 6.6610199445 -33.7417284037 -61.1111195969 -72.9575949153 100.9747657074 -24.7994483856 -44.7539918987 -52.9813056114 73.6544001073 0.0212620055 -0.1038643536 -0.1685493531 0.1991199670 -0.1350989321 -1.8202887949 -2.4618522099 3.0647054217 0.0617869779 -0.1268148594 -0.1500322033 0.2059351870 0.0339967813 -0.2194916964 -0.5354896124 0.5797253754 -0.1542183433 -0.0477969916 -0.0474363433 0.1682796972 -0.0104806069 -0.0887049563 -0.0530549416 0.1038905155 -0.5015377056 0.2997797454 1.5001263115 1.6159414288 -0.3191263868 0.0883909013 0.3360905483 0.4920276859 0.1838432331 1.5389286929 -2.1816162107 2.7212478952 0.6895566378 2.6800967549 -4.3269057774 5.1380930668 1.2091280193 4.5357680950 -8.9530569416 10.1099896718 0.3486005014 2.2422189269 -4.0468022330 4.6416760038 0.8525271056 -0.0207249640 3.3029525630 3.4141188334 0.0581970298 -0.0940497609 0.8046191306 0.8240897900 0.4438381617 0.1374921415 1.6726580665 1.7415973114 3.2779710731 0.3456758383 10.3751526983 10.8870500798 0.0043561055 -0.0196410278 1.3276540150 1.3278064351 -0.1183896033 0.0403668253 1.3651007405 1.3708193209 -0.0713945409 -0.0766901560 0.6630208773 0.6712490181 0.0504055313 -0.0032546850 0.4870089410 0.4896213018 0.1199570452 -0.0705485394 1.2558549037 1.2635419773 0.0187263450 0.0414781354 0.9096266510 0.9107643801 0.1033316416 -0.0723060443 162.9445520447 162.9446606257 -0.1335940973 -0.4080325572 162.0694693199 162.0700981161 0.0379766897 0.0380982266 7.2993957502 7.2995939628 -0.0217258927 0.0770542077 2.1671147853 2.1685930596 0.1852051855 -0.0740787047 -36.1930677153 36.1936173829 0.1143046600 0.0603551828 -24.5065752303 24.5069161222 -0.0236890432 0.0298711636 -4.3491500900 4.3493171834 0.1842870305 0.3405811643 -51.0446006828 51.0460695461 -0.0316639821 -0.1734549735 -0.4399565555 0.4739736346 0.0587749683 -0.0279007983 -0.1129580553 0.1303551829 0.6963452409 -0.3449175402 -1.6113490711 1.7889412044 0.0055582133 -0.0054393650 0.0005631859 0.0077972819 0.0048380155 0.0159368497 0.0229852292 0.0283850371 -0.1914232177 0.1994433071 2.0044495700 2.0234224867 -0.0149904528 0.2699452556 0.4970808986 0.5658485437 0.0220565553 0.0692363247 0.3354276003 0.3432081516 #END 0.2943848270 0.0218933047 -11.4980588432 11.5124341416 -0.0454430384 1.1343875001 -6.4851470897 6.6022476329 -0.3352749492 0.4881555943 -0.3298178369 0.6920728042 -0.1968961859 0.5107320994 0.0179686739 0.5651708092 0.7836242520 0.1026393850 -0.5684939070 0.9834972897 0.1995623982 2.0174536667 -1.3759048885 2.4993398469 -0.2146299904 -0.1315597001 -0.4936329242 0.5714256174 -0.2874381559 -0.1094499886 -51.0948593390 51.0959756796 -0.6889344199 -0.3650180986 -25.3226560566 25.3394636796 0.1295249233 0.2460724756 -31.7277308355 31.7327886152 -0.2255952632 -0.2332995162 -5.4105032490 5.4426563601 1.3096280188 0.0102570493 -62.5727202653 62.5865802863 0.4426617689 1.5812065929 -17.2579863053 17.3364856540 1.5589542696 2.0125253081 -14.9643447860 15.1873583077 0.2679003432 1.0648925093 -3.7092601665 3.8708987868 -0.5413154672 1.1370133322 -2.2427270181 2.6190240912 -0.0601515011 1.2312615564 -1.9851941706 2.3409611067 -0.1447424282 0.5654747846 -1.0642546509 1.3103400416 -0.0058410147 1.5372008958 1.3824545155 2.2703638016 0.3931119674 0.2843464756 -0.1761476429 0.5346940378 0.1062666733 5.4530586788 4.7085699254 7.2067504527 0.0260814747 0.6984141262 0.5080545404 0.8752495278 0.1995064971 1.8316110357 2.5527398181 3.1512794533 -0.1482488380 1.4239918781 1.5389997374 2.1065921683 -0.1691793475 4.9963953689 5.7161568046 7.5951640360 -2.0694488469 14.2824898569 17.2517544272 22.5116751142 -0.4932765127 4.4249257357 6.0060802030 7.5351894916 -1.1947239096 3.4027518839 3.8092457636 5.2474678347 -0.6989821162 1.0938738587 1.6304694385 2.0887906531 -30.7243699309 57.3617275368 78.6146411827 102.0521238472 -14.9431476049 26.4705596805 37.5275568800 48.2941528066 -0.6769510456 0.5635023301 -9.5392383760 9.5808322276 0.4276229291 -0.0090945246 -90.7924844883 90.7948336889 -0.1206118905 -0.8392175157 -114.1269303788 114.1301649466 -22.7023064308 64.0998970915 80.0830891007 105.0606316623 0.4182963110 -0.1533405753 5.7767980303 5.8149395163 -1.2639015906 -0.6699535435 21.6228706106 21.6705860145 -4.2054071186 -0.1804555747 220.2417268800 220.2839454498 -1.9310232344 0.6331985741 129.9958185830 130.0150875507 0.1084490441 0.2393933101 27.2389571027 27.2405824861 0.7313139303 0.4539557662 40.4076751477 40.4170828552 1.2731361693 -0.3430205017 24.5691631800 24.6049141010 1.2768889029 0.8208115527 172.6369283572 172.6443073213 0.2203773889 0.2897547965 51.2469125737 51.2483956057 0.4860414974 0.2703158075 173.5803066696 173.5837404893 0.4089125068 -0.9946778419 0.8044326069 1.3502536989 7.6118840466 -24.9840174721 15.5090103707 30.3795153257 4.4630743334 -18.9254702898 11.2063398581 22.4431279236 1.7534625922 -5.0990785840 3.6854306523 6.5327721793 0.6934411744 -3.7473329916 6.9787002528 7.9526789333 0.7804569110 -1.4136670447 1.6345590581 2.3501046313 -0.5115666261 -0.3593471672 0.3043899058 0.7091994072 -0.4454918182 0.2883531311 -0.7066945900 0.8947108565 -1.3237737076 -1.0779276053 0.2512979851 1.7311658538 -1.2177329211 -0.6018991301 -1.9495768048 2.4268594330 0.0591943645 -0.5254311740 -3.9672496455 4.0047635917 1.4167358574 -0.5100489952 -2402.6733386111 2402.6739936399 -0.4587064029 -0.0161759718 26.1474193540 26.1518200492 -0.7561509656 0.4082707373 30.4042126176 30.4166742751 0.2079262533 0.1987649212 0.9324177091 0.9857095870 -0.0751723086 -0.6801516959 -1.3939053362 1.8142711718 1.9972108181 0.3852980999 1.1364242535 2.3341477131 0.0727398588 -0.3988711314 -0.9074795211 1.0036872683 2.5370861851 0.9561681521 -1.7743764925 3.2432939379 1.2628176362 0.4751122144 -3.1171358675 3.3994787541 0.2160564557 -0.1283233770 -0.1837627557 0.3411683110 -1.6405896818 -1.9333011660 6.2430548174 6.8035074146 1.3105605294 2.0793527334 -39.1621674176 39.2394713691 0.6504724214 0.0580024793 -17.3532121630 17.3908252140 0.2459708502 0.0764550166 -1.4947902281 1.5232283609 -0.1710344673 0.9902031978 -10.5522487387 10.6415459586 0.0581185612 -0.0173452518 -0.7545989660 0.7697908868 0.3316301776 -0.4161990658 -3.6203019378 3.7775834803 -0.4291613722 0.1732677624 -0.2294002695 0.5350751998 -0.7768917250 -0.2220647222 0.2631007180 0.8611476446 0.0283597500 -0.0166138010 0.0389069069 0.0509317308 -0.0529879206 -0.0407090544 -0.0782263864 0.1028800971 -0.2313762985 -0.2057126479 -0.3086492611 0.4589083092 -0.9303596522 0.0738334717 0.0290974093 0.9441117032 -0.2125481794 0.0894817530 -0.3597175439 0.4495110777 0.1984637691 -0.0024922956 -0.1662064868 0.2941062059 -0.2408306371 0.0112974393 -1.1335645846 1.1589200556 0.2846331451 0.0475238833 -0.7367767012 0.7912739438 0.6672236707 2.3336297704 -3.2915409709 4.1193322584 0.2597510570 0.1763682415 -0.4768294507 0.5877265335 -0.1816560008 0.9853695045 -0.5623243426 1.1489824321 -0.0578744553 4.8583945018 -5.2132338631 7.1263703173 0.0595644908 0.0611398242 -0.0258966997 0.0892000321 0.3980120910 3.8471936534 -3.7634308964 5.3983520197 -0.4747639676 0.0737169873 -0.1519527180 0.5039093645 -0.1676914064 -0.0344559285 -0.1129161050 0.2050796567 -0.2160695466 0.3382842575 -0.1360551698 0.4238316848 -0.0353761793 -0.0067410095 -0.0140995455 0.0386744419 0.2263651885 0.4206862735 -1.5121138450 1.6620414701 0.0878464172 0.0556781717 -0.4827753237 0.6982335032 0.0986190161 -0.0275814227 -2.1093360790 2.1164273964 -0.7671812418 -0.4804057334 -4.9565307433 5.0404398142 0.3159279742 -0.1303372190 -0.8608530572 1.0495271420 -0.1498626591 0.0233499056 -1.0277545863 1.0482191132 -0.5828655887 -0.1858045395 -7.5949719066 7.6355415554 -0.2303850675 0.1911832820 -7.9031140714 7.9100139151 -0.4477392385 0.0620926332 -3.3703056774 3.4033463040 -0.0381358899 0.1063693415 -1.5852028246 1.5953421460 -0.4803984934 0.2651865764 -50.6810204390 50.6841831261 -0.1475588545 -0.1394653674 -25.4147882352 25.4159824722 -0.3330258575 0.2494209982 -42.9247678496 42.9270112142 -0.5911848183 -0.0347241134 -158.9461531900 158.9473176840 1.1075228813 0.4593860908 -66.3863707204 66.3990323793 0.1703060870 0.6820711554 -7.0435824368 7.0785788665 0.1945109242 0.5907207286 -5.1459284846 5.1833739443 0.0966337250 0.0672316997 -7.7538591656 7.7560086335 0.0356050971 0.3757825012 -2.6040054616 2.6349201961 0.8250186707 0.4569154889 -3.5547164789 3.6803419136 0.1672369415 0.4072977279 -4.3275384043 4.3521176522 0.4183981226 0.7550961332 -2.8711928162 3.0014088579 0.0596337597 0.1876347982 -1.2318685883 1.2552860258 0.9794545392 2.4571365931 -7.0550507759 7.5510441868 -0.5734020451 0.4152547116 -2.0440200011 2.1676540154 -0.3243423846 1.4069906996 -3.9735889210 4.2300956855 0.2880544700 2.7836292733 -5.0771909515 5.7973645105 0.0512848276 0.1715846246 -0.3114101106 0.3592320614 0.0044760050 0.8057228044 -1.7157134281 1.9006213786 0.6954116576 3.9301767606 -9.1302555701 9.9654871082 0.0926910302 0.4945023973 -1.4037838761 1.4977360260 -0.0202737839 0.2095438851 -0.3827294641 0.4585643833 0.4629760365 3.0392630168 -5.2091078612 6.0502686710 0.2007585879 0.3164439030 -0.3281922152 0.5173303291 -0.0903654573 0.3635626205 -1.3999478822 1.4559112448 -0.0062883762 0.0179393281 -0.0180479462 0.0262124308 0.7078400883 2.0348914678 -2.3551823898 3.1919750885 0.5348096955 5.8573142263 4.5447857725 7.4919676765 0.3096861382 3.1618435144 2.8219221859 4.2515743581 1.3934910343 9.8867621174 8.7478416878 13.2837591661 0.4833182109 6.2421358281 5.1628043927 8.1299474996 -0.0136882384 0.3779191727 0.2595047662 0.4586425543 0.1396261549 0.5251386158 0.3998930040 0.6746706186 0.8031166574 10.0201227358 8.4317510427 13.1203003644 0.8718598365 9.3210773527 7.9031682564 12.2516403423 0.6329621813 3.1866785633 2.8720583570 4.3386357741 0.6479156433 5.5851105970 5.2116839545 7.6677496365 0.2591295001 2.6978740818 2.4801355021 3.6764418332 0.1203394369 0.1734454968 0.2134562558 0.3002140795 -0.0007124945 0.2392763435 0.2497366222 0.3458642171 -0.0053285592 0.2503603684 0.3934111061 0.4663485885 -0.8643097178 2.5897363541 2.5503676619 3.7386656267 -6.5647016509 12.2928859709 16.3400610277 21.4762060763 -1.5900704517 2.4839162029 3.7844955741 4.8000052375 -4.6375889045 10.1124513184 13.5628538990 17.5425023353 -26.1977196782 49.5779328168 67.5182671967 87.7668948052 -2.7695594617 5.3532387819 7.1574952137 9.3582499746 -22.3884349077 43.0057063435 59.0290776381 76.3883779269 -20.1923495755 38.6300574231 52.3608663104 68.1362824731 -2.3518215313 4.6521820387 6.2626883183 8.1495157521 -13.2290247289 24.6406611738 33.2409920423 43.4513017308 -2.7555525005 5.6044862228 7.8225510064 10.0107501935 -0.3856575268 -0.1935996267 -8.0694111543 8.0821462932 -0.1700198732 0.1817706397 -3.7853507922 3.7960911116 -0.1393546990 -0.1124263020 -2.8394636948 2.8485247523 -0.5496364477 0.0345779230 -10.8653927865 10.8802360290 -0.0599666348 -0.1093677661 -8.5702929121 8.5723367695 -0.4739300305 -0.1076762049 -100.0283401483 100.0296181961 -0.2146944244 0.1093600759 -65.5051859585 65.5057777648 0.0407467941 0.3172691005 -42.7471334398 42.7483302283 -0.0950305199 0.4575559055 -69.7832800846 69.7848448273 0.5636803633 0.0890369827 -203.8031382985 203.8039850524 -0.0145824693 0.0069323535 -3.6776467286 3.6776821731 -0.3657698263 -0.1254705869 -237.5195720251 237.5198868004 -0.2661854002 -0.0877227553 -179.5134100886 179.5136288749 0.1685450477 0.0457703519 -30.1627665601 30.1632721852 0.0056656406 -0.0447296846 -9.4188924183 9.4190003308 0.0255872028 0.0767906875 -63.2775186328 63.2775704008 0.1651441353 -0.0887178411 -200.5747213161 200.5748574828 0.5148142941 0.3322825936 -419.7243583091 419.7248287667 -1.2950540331 3.7702327371 4.7067683344 6.1681024630 -5.9547960613 20.8213834581 24.8679335918 32.9758051663 -0.8276978103 3.4351722288 3.8127325117 5.1983094475 -0.8077529629 0.7993873831 1.4251903893 1.8281500125 -0.0740668636 0.2773257459 0.8782384147 0.9344399219 0.0735243423 -0.5659160195 2.6091771942 2.6745003619 -0.2988097929 -0.9265359373 6.1331522354 6.2115048308 -1.2399989768 -4.3637272721 34.4706923661 34.7714248533 0.2013879783 -0.6836031469 7.7157228067 7.7485643064 0.1971905575 -0.4319915854 6.1811973236 6.1994113591 -0.2287871907 -0.3079518546 3.0951323004 3.1219387671 -0.4789703939 -3.0924842830 31.4593061906 31.6148746235 -0.1308647214 0.0194970951 4.7707021673 4.7745769096 -1.1405741245 -1.1911998785 19.5520918146 19.6220192792 -0.7134458078 -1.1158707048 43.1743626792 43.1974930530 -0.3182420662 -0.3074575347 7.2282201389 7.2430970109 -1.2074453209 -0.4183831213 63.6236642162 63.6364959511 -0.6601052406 -0.1312953135 31.9121535374 31.9192500034 -0.0715554238 0.1298272652 0.6058419949 0.6237145343 -0.0224071975 -0.0051435324 0.5451471686 0.5456317200 -0.0399857760 0.1156511243 10.6111254490 10.6127488016 0.0205976620 0.3145286905 3.4141427990 3.4315016244 0.1378670410 0.0179377285 1.5438678192 1.5501151333 0.3019078397 0.1155694814 6.4409336261 6.4490410624 -0.0750051673 -0.1601451936 14.2945870254 14.2963621341 -0.4995576158 -0.1276763680 30.0278035064 30.0325543747 0.3450102303 0.0882632998 16.1339528416 16.1384861914 1.1616578160 0.2823133084 27.8318424894 27.8578550112 1.1195968867 0.0767247344 45.4053446430 45.4194252034 0.1252632004 0.0224074374 3.9703956902 3.9748854932 0.5358482211 0.1358391117 28.8390252130 28.8446605216 0.2646837261 0.4145369780 27.0323254482 27.0367993209 0.1170776389 0.2367883251 20.7353691386 20.7370516033 0.9645084251 0.2831339643 40.1445380289 40.1573636421 0.0912048757 -0.2102273851 19.4079534081 19.4093062569 -0.0091415867 -0.1675735421 23.5952224660 23.5958192840 1.2715856613 0.8889110345 270.9780018142 270.9840676327 0.1457156088 0.0584853965 46.2191814116 46.2196588447 -0.2984364826 -0.0866166683 305.5907731633 305.5909630357 -0.4879804540 0.0067003189 548.1394079111 548.1404304252 -0.1874018267 -0.3283961142 451.5944083000 451.5945881552 19.5282809015 -48.9866885052 38.1187420648 65.0700190723 17.5799631128 -43.3519895368 33.9221016223 57.7854573256 29.7149896843 -73.1367465462 57.4503246557 97.6345436326 48.3788439038 -119.0038107396 93.8378792145 159.0848407714 37.4695087941 -93.3508282688 73.5551668593 124.6142980529 7.3269058861 -18.1086072140 13.8205203514 23.9344869029 3.6608053964 -11.4192031987 7.2375961776 14.0072115733 1.2602273604 -2.8570551870 2.5154996478 4.0122506906 2.2236670658 -6.2740822410 4.0965287301 7.8172776980 2.2436406750 -7.0932544689 4.5254891379 8.7090593155 0.0444073567 -0.3970049375 0.1216394726 0.4175896251 0.3327447061 -1.2803881993 0.5701638487 1.4405553772 0.7138404053 -2.0997934179 2.1559454676 3.1321625662 0.1186222246 -1.0071289201 0.7252068609 1.2545057473 0.2926752728 -1.1760645410 1.7840550908 2.1612771621 -0.0102674426 -0.1382978211 0.6255649409 0.6557766296 0.3487347894 -4.9602141889 7.6601618109 9.1336137157 0.8171484238 -6.1811131178 10.4786987250 12.1941173389 0.2710269296 -0.5927121246 1.0712774712 1.2616966610 0.1575378162 -0.4257651550 0.4885862190 0.6813885889 0.2265638185 -1.2024004781 2.1908160171 2.5132156054 1.1034897189 -9.3171918628 14.0329447396 16.8810773240 0.7795239726 -1.6974792529 1.8883205378 2.7015715521 -0.3081003302 0.1322999328 0.8506791568 0.9249669715 0.4949641484 -1.9341545458 1.8504491518 2.7257265386 0.6206892696 -0.8667504563 1.0881541482 1.5297289819 -0.1826959552 -0.0985658646 0.6284369725 0.6763917911 0.0349770542 -0.8136010456 0.3662551344 0.9037658237 0.2113378527 -0.3595809085 0.2799187460 0.5213409700 0.0395163839 -0.0914372310 -0.0571896250 0.1148606330 0.2284322006 -0.1222933458 -0.0079848858 0.2592309609 -0.0445093637 0.1565055193 -0.2699275315 0.3446965596 -1.0352365878 0.3507218009 -0.6953660693 1.3029713464 -0.8017136178 0.3022668600 -1.9629891337 2.3383299407 -0.2780480113 -0.1589154415 -1.4856623091 1.5261838342 -0.9926689095 -0.1191851362 -1.4753700057 1.7876781307 0.3048158218 -1.3657271931 -12.6158852143 12.7028470884 0.2302121839 0.0475158472 -1.7704740133 1.7860105366 -0.3067802327 0.0779275175 -2.8884114238 2.9090526202 0.2179116174 -0.2413469676 -105.8228873936 105.8233869717 0.2967086099 -0.2240919589 -169.5569406917 169.5573483808 -0.2431565275 -0.0808003988 -9.5084393934 9.5129150782 -0.3018706182 0.2525291888 -31.5126881783 31.5154548257 0.1323933932 0.1595355664 -278.0616806323 278.0617579166 -0.0168255131 0.1389755344 -196.7341553798 196.7342051863 -0.7290111995 0.4058583241 16.8878006930 16.9083999998 -2.4452422176 1.6149617794 56.8963910202 56.9718055022 0.0744377452 0.1723422381 5.0802969937 5.1076708321 0.3398962173 -0.2137904205 5.0087456819 5.0267533134 -0.1703026525 0.0812607332 3.5144914561 3.5545649416 1.5226972747 -0.4893422488 6.2109624735 6.4135885177 0.6773984742 -0.4136551394 4.7403147731 4.8063045488 1.8543094325 -0.5018964814 9.2568946655 9.4670007583 -0.4764267745 0.2629811596 -0.5346243509 1.2092623170 -0.0331004427 -0.0524341353 -0.1354406920 0.2041297230 -0.3208010821 0.2119591642 -0.0326250454 0.4103464391 0.0201913357 0.3223543757 0.0435901008 0.3545418387 0.2686319243 0.1365512082 0.2487262503 0.4149142992 0.3010137969 -0.1572989258 0.7267398514 0.8142375910 -0.1479170282 -0.0334318933 0.2305306020 0.3092269104 1.2662774178 -0.0952736777 0.6730865495 1.4439739819 0.6793612559 0.0414194630 0.5499757605 0.8861153480 0.0106878895 -0.0154384195 0.1681071124 0.2192997080 0.9104142913 0.0238048802 0.1408221177 0.9320576741 0.3618323875 -0.1274900834 0.1010477878 0.4205553927 0.4079247248 -0.5049702897 -0.5192611405 0.8429172507 0.2847401954 -0.2680341847 -0.5872945419 0.7192454150 0.4122793343 -0.1025859892 -0.2681640380 0.5214306002 1.7054415698 1.1610871587 -2.6504987142 3.3617372826 1.0195428916 0.1597484930 -1.6698231541 1.9629815727 0.2160412146 0.3452320502 -0.7864079033 0.8856050842 -0.6170883184 -0.4635434489 0.1694690513 0.8024151457 -0.4345944643 -1.0381926661 0.8378748720 1.4100462568 -0.5201395369 -0.6995514300 1.9721001656 2.1606888228 -1.1249203987 -0.5755568360 3.4596674061 3.8011579710 0.0254540578 -0.1459074282 0.4160064412 0.4631177288 -0.4421232617 -0.0009951464 1.5554898109 1.6171031262 -0.4311637412 0.1331539705 1.5378390855 1.6026793829 -0.5582919081 -0.5593974102 6.3818377849 6.4321029698 -1.3692030539 -1.4277225303 12.9404202530 13.0914882552 0.0354390919 0.1072861242 -1.2092523507 1.2145194479 0.8211616991 1.0420746050 -14.7466176937 14.8061797713 -0.0229718099 -0.0577325660 -1.5095256916 1.7791347199 0.0076450622 -0.0509855876 -0.0956002794 0.1086157932 0.0144557191 0.0496547128 -0.4912427805 0.4939575161 0.0769057598 -0.1089175010 -0.7317342874 0.7437826196 0.2533337651 -0.1129213032 -0.9530258606 0.9925661228 0.0544404171 -0.0233143401 0.1208432214 0.1345748922 0.0134676796 0.0750847673 0.0212063365 0.0791758131 0.0254626006 0.0447438788 0.2380765366 0.2435791370 -0.0020388480 -0.0593287471 0.0580583716 0.0830351230 -0.0799551769 -0.3392787610 0.1874031077 0.3957560268 0.0359746064 -0.1918323242 0.1796874748 0.2652949331 -0.0751555753 -0.1661976954 -0.0923301545 0.2044379903 -0.3076809189 -0.3104393804 -0.0734372590 0.4432078382 0.0992317049 0.0033412843 -0.0683306073 0.1205286992 0.1112920881 0.0334379856 0.0632244292 0.1322926915 -0.6598644839 1.0756566830 -0.9885730513 1.6091037566 0.1589111312 0.6237573252 -0.8424217789 1.0693363301 0.0706739977 2.0943592421 -1.5406794184 2.6009668431 0.1343183045 1.7010624642 -1.1391686293 2.0516725080 -0.1412573848 0.1287210148 -0.0655062723 0.2020243058 -0.0476311575 0.1647679665 0.0290561475 0.1739582411 0.0584086037 -0.0909419891 -3.1501545563 3.1520082073 -0.0532192823 -0.0465851576 -4.5981741543 4.5987180846 -0.0630487575 -0.0055035565 -4.2224814065 4.2229556785 -0.8895696410 0.0855032902 -35.0520089479 35.0633993823 -0.2382090951 0.0748696840 -109.3443095532 109.3457271965 -0.1161746457 0.0945994545 -102.5704703383 102.5717870882 0.5010260448 0.4005877489 -38.0176084063 38.0230199560 0.5770454025 0.6192013492 -44.9122338281 44.9202085830 0.1605397225 0.2859756861 -1.0018379692 1.0541510386 -0.0184199360 0.0287071185 -0.2220666769 0.2246708741 0.0406953476 0.1303697893 -0.7371990518 0.7626235114 -0.4489930311 0.4411195064 -1.3949005400 1.5366874967 0.0262072285 0.6433164664 -0.9603582013 1.1562139809 0.1455247685 0.7433744536 -0.9759314759 1.2354049062 0.4629786040 5.6006070388 4.6752609331 7.3102129369 0.2247664242 3.2275055265 2.5711352591 4.1325595446 0.3781579762 4.6084230685 3.8798994582 6.0360737602 0.7845136120 8.5002402571 6.9531282593 11.0097928512 0.0474135902 0.6623984060 0.5619058640 0.8699183277 -0.0198729159 0.7468729989 0.8024392822 1.0964137042 0.3199597311 8.8544057083 6.8195985808 11.1807781250 -0.0123447448 0.7226530223 0.5598925522 0.9142534951 -1.9718795816 8.7238829640 12.0925017812 15.0699499991 -0.2529183661 1.4180317589 1.7920652712 2.3034234283 -0.1472803184 0.3332573316 0.3834195321 0.5289257782 -1.0467984741 1.8575265657 2.6269420799 3.3833440084 -1.4742266912 3.9722529441 5.3877133943 6.9180881752 -0.5089219125 1.1553313062 1.5729669090 2.0217558264 -0.1111775925 0.3211509579 0.4974732852 0.6024766090 -0.8072523706 1.4734435545 2.2808887715 2.8328688438 -0.7676699289 1.5543504189 2.3396812313 2.9119461891 -0.4504999647 1.1682644581 1.7176788752 2.1256088024 -6.5353021005 12.9151488905 17.6562002492 22.8309581851 -5.4021897443 10.4602917591 14.2457245829 18.4808556786 -11.6556976313 22.0282179482 30.3153917316 39.2443709223 -5.7864453232 11.1406831293 15.2723492488 19.7697349918 -14.8606655122 26.3994837282 35.6221057818 46.7623535010 -9.4665525339 16.4014457247 22.5667607514 29.4598324766 -13.7931590999 25.9219398479 32.4817171921 43.7867518202 0.1172058315 -0.0567431998 -8.1238691458 8.1249127315 0.1657231964 -0.0340514612 -4.5132255989 4.5163955746 0.0234279202 -0.0105077096 -0.7655879593 0.7660184089 0.0499442567 0.2805443897 -7.9629403482 7.9680373100 0.0879967640 0.0586461155 -2.7058318339 2.7078974705 0.0699581409 0.2638478430 -4.8787328493 4.8863630688 -0.1048754289 0.2038069630 -17.5237159608 17.5252148977 -0.0396054939 -0.0158671713 -2.6026411304 2.6029908213 -0.0075306435 -0.0255828969 -6.2501377992 6.2501946933 0.0886033357 0.1469464464 -32.4021722301 32.4026265762 -0.1628152842 0.2211692582 0.2246944781 0.3548411843 -0.0089294599 0.1954489917 0.1485242529 0.2456409927 -0.5831721943 1.5838178117 2.0182396072 2.6309427552 -0.0399358829 0.2626066534 0.3195650025 0.4155465317 -0.1964929398 1.2118181842 1.7614184965 2.1470230336 -0.1419743345 0.4825343617 0.8301811164 0.9706682275 -0.3004886429 -1.9729090834 15.1366618324 15.2676519185 -0.0250505108 -0.0513920958 0.5644092045 0.5672974755 -0.1701215058 -2.7629387610 21.7512184458 21.9323038286 -0.0032216871 -0.0026215344 0.0604870096 0.0606294487 -0.7453894232 -4.2359138278 30.5538878216 30.8551232757 -0.0351529024 0.0380378966 0.7141012083 0.7159770554 0.0672512346 -0.0551717432 0.9330583554 0.9371043402 -0.0729467938 0.1454456159 3.4602119491 3.4640355649 -0.0523455118 0.0264703330 3.9982603897 3.9986906451 -0.0415843432 -0.0201491334 0.1127599826 0.1218608175 0.0826389647 -0.0927811873 0.6775107103 0.6888093421 0.1965224851 0.1047061906 20.5961173190 20.5973210173 0.2204333493 0.2181332492 18.8249603305 18.8275145578 1.4663259248 -0.1738972943 71.9337748533 71.9506496987 0.7540600734 0.2454373402 113.4196670871 113.4225251351 1.6562964885 0.6567185529 182.3570153354 182.3657728828 0.0848186861 -0.0250497453 60.6940481451 60.6941125806 0.2597280241 0.0417488664 85.3993958566 85.3998010202 -0.0747065285 0.0094453141 42.8370846113 42.8371507954 0.0388968240 -0.0631508116 46.1522422976 46.1523018936 -0.0600027658 -0.0525485157 53.2207440251 53.2208037919 -0.0756461922 -0.3138538559 121.0926298976 121.0930602558 -0.1309148623 -0.0659114758 52.7965593891 52.7967628397 -0.2025224943 -0.2924486439 177.1563278554 177.1566850017 81.0870296479 -204.0589135528 160.6144245504 272.0517229335 8.7167845485 -21.9431265518 17.2159332509 29.2210796076 5.5336149152 -13.6205237373 10.6200128165 18.1362684456 4.2856124466 -10.6090113394 8.4099023274 14.2001427034 33.6224973481 -84.4948915206 65.6141800284 112.1397668859 15.4374183194 -39.5400000472 30.9348833233 52.5232566995 2.4351031704 -6.0923137782 4.7732546096 8.1135672913 4.6096317174 -12.2747318567 9.2744992936 16.0609328389 2.9531501328 -6.9924401127 5.4073091243 9.3206108269 0.0630876913 -0.2434722058 0.1649979988 0.3008041081 1.6823559203 -4.2255027172 2.9011656920 5.3946229737 0.1246785033 -0.3354020070 0.2555648657 0.4397188148 0.0811969042 -0.7735459322 0.6053375516 0.9855961636 3.0093123437 -8.4409290490 6.3023585248 10.9668884555 1.7321055429 -6.5915082157 3.6565462740 7.7342420975 0.6448692596 -2.2150656283 1.2945510744 2.6454176578 0.2620756429 -1.8321766455 0.9573306099 2.0837554558 0.0654084919 -0.2358385182 0.0855120516 0.2592496643 1.6394793905 -7.2215927987 4.8092417737 8.8439684016 0.0525955784 -0.3171937732 0.2187114548 0.3888610099 -0.0590806249 -0.0975977446 0.0952141892 0.1485987275 0.0778677517 -0.3373864798 0.5208784993 0.6254657741 0.2499264930 -0.3955608893 0.6926682042 0.8358952747 1.0903821684 -6.6233111751 11.1437207767 13.0092158467 0.3475230461 -1.7429127905 3.0195273554 3.5037212664 0.1008639544 -0.4532543459 0.8309165784 0.9518589179 0.3210295009 -1.0516395764 1.6068654548 1.9470547832 0.2235256213 -0.8281362685 1.0537164870 1.3587096149 0.2597745514 -0.5492936969 0.8030851804 1.0070512350 -0.0396018895 -0.0860489447 0.1839822598 0.2069352615 0.0598962043 -0.2892528740 0.3084675099 0.4270913076 0.0538326336 -0.2932423401 0.0440880641 0.3013847705 0.1406903029 -0.1970097399 -0.0250436608 0.2433799168 -0.0182684113 -0.0668295098 0.1128036096 0.1323804086 0.0023649034 0.0626070260 0.0530828247 0.0821158861 -1.7802539002 -0.2160634134 -0.5518785582 1.8814986250 -0.9251057108 -0.2505161662 -0.5834491038 1.1306951700 -0.1047730793 0.0471520629 -0.3000378088 0.3212839895 -0.1820465494 0.2592578391 -0.4912669841 0.5845501030 -0.1348551468 -0.2015783413 -0.3569867594 0.4315776693 -0.2059457904 -0.1714489945 -0.3028591990 0.4043913709 -0.2567054138 -0.2138616478 -0.3788570120 0.5051409403 -1.7698443233 -0.4119062917 -3.2911938839 3.8748320604 -0.1475399271 -0.0633847255 -0.4991410772 0.5425930827 0.2807833874 -0.0187214693 -9.2074944746 9.2252273540 0.0204962192 -0.0153081868 -0.3536977371 0.3546216644 0.0357066468 -0.0785632838 -0.1051867529 0.1360566323 0.0394236213 -0.1770416803 -4.4375567347 4.4412619549 0.1032427719 -0.0384333496 -2.7417130667 2.7439254240 -0.0379187752 -0.2143786281 -2.6799771667 2.6888052447 0.0056001514 -0.5962818585 -10.1654179809 10.1828928180 0.0026453360 -0.2052871186 -3.4511553081 3.4572565365 0.1450258447 -0.3570073392 -8.7775824964 8.7860367184 0.0751373800 -0.0189135409 -6.3903695346 6.3908392357 -0.0495573563 -0.0083783826 -10.1037554706 10.1038804793 0.3480211330 0.1434118237 1.6290002884 1.6719233236 -0.0064021534 0.0279422978 0.1079388119 0.1116805564 0.0714146990 -0.0913908699 0.0473245430 0.1252675645 0.0100685952 0.0463150095 0.0294351281 0.0557932207 0.5351940537 -0.1561842159 -0.2752151576 0.7963950001 0.1803211042 -0.2164692350 0.2539035840 0.3792646310 0.0770723338 0.0053675855 0.0787534194 0.1103225121 0.3756660349 -0.2373998770 0.1952425134 0.4853898540 -0.0033216056 -0.0248673414 -0.0062355230 0.0258514889 1.1862234527 -0.5047009298 0.7095920533 1.4715196194 0.5429164801 -0.1577976558 0.2458648196 0.6165289240 0.5149720413 -0.0634860710 0.0842437607 0.5256650033 0.2253541536 -0.0790277773 -0.0371792299 0.2416861172 0.5227695073 -0.0199535391 -0.4359806416 0.6810030994 0.2240355171 -0.0945027398 -0.1661656176 0.2945058458 -1.4864577442 -0.5737630528 11.1251862015 11.2387067176 -0.9754190013 -0.3617553594 6.5390179800 6.6212585896 -0.1150458048 -0.0851783401 0.3954047293 0.4205184738 -0.2066062133 0.0337508251 0.5483306175 0.5869341630 -0.7347979167 -0.3178502988 3.3021093965 3.3977762223 -0.1769217231 -0.0412801465 0.5460400280 0.5754694247 -1.2067275135 -0.4658534178 4.9310538289 5.0978919724 -0.0818744782 0.1209500962 0.4573907706 0.4801444293 -0.2430164640 -0.0618507379 1.3577956269 1.3807575746 -0.0772109431 0.0294311668 0.2157761650 0.2310564362 0.0458311771 0.0082501723 -0.0194214688 0.0504554812 -0.0249685139 -0.1199035302 -0.1559487951 0.1982934944 0.2925598286 0.3576616684 -1.0601221626 1.1648398632 -0.0099873644 0.4966146478 -0.6403284717 0.8223297346 -10.0308866631 18.0888204222 26.0171758618 33.2410172343 -14.5241616616 26.4618227587 34.7931395553 46.0650580291 0.4360993635 0.4494445622 -45.5980829460 45.6025967594 0.1578069659 -0.0319346541 -26.5471785442 26.5480336617 -4.9998185405 14.2977049834 18.5095709967 23.9174884028 -7.0919268261 21.9195855103 27.8545144907 36.1477124082 -18.9609748428 55.3728854856 68.0785909950 89.7796694449 -0.3735001615 1.0336266452 1.2431302657 1.6592948110 -5.8172476310 17.6807532296 21.2645170133 28.2600263371 0.1617340941 1.2900930176 1.9657695343 2.3609802113 0.1142609199 0.1390970302 0.4186803366 0.4766304132 0.1576995274 -0.3497359763 0.2109638469 0.4595322879 1.3480092177 -2.8209804800 2.3626942381 3.9213344115 5.6187041435 -20.0193468595 12.2429565535 24.1299305819 7.4697400091 -26.8246458986 15.8509843536 32.0410959262 -0.0581175486 -0.1373407129 -0.6328520042 0.6501859581 0.0204524276 -0.5292450851 -2.7641253346 2.8144106892 0.0475875974 -0.1938374060 -0.7820518371 0.8071199386 0.2706147981 -0.3119981320 -1.5730218893 1.6263373166 -0.0085696514 -0.0168347102 0.4366049838 0.4370134531 0.0909994984 0.1501046034 1.2678491907 1.2799429171 -0.1547132944 -0.1085284534 2.6425259067 2.6492749567 -0.0256713084 -0.0894591790 0.6111965000 0.6182419610 -13.7592294308 25.3888755307 33.3873653903 44.1434824491 -2.2868391978 4.0469469591 5.5039693064 7.2055930440 -20.3738217688 61.2787096553 77.0032228179 100.4983426244 -0.5748058709 1.6521070852 2.1058490666 2.7376011217 -4.5106663429 13.7261944263 17.8613382805 22.9735049450 -2.9244709890 8.9954425135 11.2935926710 14.7314545107 -2.2980941918 6.7081547579 8.4118086273 11.0017771997 -9.3012250708 27.9902376471 33.7872603687 44.8502525587 -8.2384336573 24.9676754758 30.2924719093 40.1109768289 0.1785463422 -0.6166766417 0.4769136998 0.7997596850 1.2061457664 -3.7419954079 2.5401741455 4.6807907379 0.5773035562 -2.0965275581 1.2420881254 2.5042943336 0.1733448300 -0.9089649150 0.4747141411 1.0400092127 0.0605583518 -0.0932414895 0.0795693255 0.1367207625 -0.0497692157 -0.1515314654 0.2377574891 0.2862994646 -0.1245684660 0.0529431309 0.3044833611 0.3332122372 -0.1751004960 -0.0185797832 0.1680379696 0.2433971061 #END -0.1719475451 0.0625967438 -8.6476895872 8.6507513715 -0.2245484432 0.7123582195 -12.1453386787 12.1690840922 0.5562665200 -0.1691011525 -7.9327942396 8.0093722522 -0.1196687526 0.1996129016 -8.8433349851 8.8474979154 0.0359667906 0.1742201369 -1.9195076291 1.9327792397 1.2046716238 -0.9776020582 48.5978846844 48.6228425237 -0.2140449648 -0.0040115717 0.6204537186 0.8212399872 -1.3093862453 0.6167854027 3.6287665522 4.0178618512 -1.1967090977 0.9839986906 2.5560721537 3.1331553947 -0.3143347229 0.2902513074 2.0934921812 2.1930350231 -15.8561524356 10.7116075464 36.2683595696 41.0069444356 -16.9058763976 14.7373261393 49.2191351252 54.0962428711 0.1810659083 0.0020871495 0.2289939349 0.3235849602 -0.3699129456 -0.0393911976 0.0757200196 0.4044756606 0.3293087804 0.1523379103 -3.0367907524 3.0615729569 0.5001480946 -0.5947948199 -0.3150772912 0.9730589158 0.2798771305 -0.4184209123 0.7149194100 0.8854359467 0.1132535661 -0.1023108533 -0.8975070283 0.9210279755 0.0802672264 0.1207497272 -2.3468318933 2.3554454026 0.5772552607 0.2642565481 -24.3313526629 24.3577118827 -0.2534183477 -0.3709234483 -17.1541326183 17.1857168234 3.4726596343 -1.7922173972 -41.8421994772 42.0347643720 0.5700549031 -0.2360892935 -19.3746010965 19.4071806345 0.8530154954 -0.0712855433 -23.6005359476 23.6212119723 -0.0458140201 0.0743146073 -19.7623311077 19.7630167783 0.4461197240 -0.0902396991 -1251.0449420135 1251.0450325961 1.1039804547 -0.4920546230 0.3989521895 1.3651719327 2.1027282509 -1.9964504876 0.9877468296 3.0663340051 -0.1198518295 0.0710856040 0.0225195220 0.1985057629 0.7037052716 -0.9566537029 1.5164952964 1.9312237533 0.1375366678 -0.7189185655 3.9763752267 4.0732003563 0.4665020679 -0.1883981696 9.9209281731 9.9346571984 0.1346068132 0.4446648426 2.9754752805 3.0147601473 -0.0016989669 -0.0232543404 11.8047436244 11.8055917037 0.2029797018 -0.7248400888 1037.3883398790 1037.3886223546 0.0338853878 -0.0239288441 -0.4187657149 0.4208153194 -0.1433936766 -0.0728808087 -1.8151622849 1.8276124491 -0.4575669435 -0.9474555950 -11.4030691004 11.4523580238 -0.1808894444 -0.3980485632 -2.0401307985 2.0911186264 0.2443458305 0.1826937644 -1.1601788348 1.2077154508 0.4165695836 -1.0251916425 -4.2542928199 4.3980717712 -0.1339869257 0.0757536078 -0.8184857688 0.8444464720 0.0836054600 -0.3040254525 -14.4807888059 14.5146635364 0.3868766942 -0.2323882707 -6.4717324130 6.4889504618 4.1664824664 -1.2230650606 196.6782343464 196.7261633081 4.9047065090 -1.5530976186 228.5906230807 228.6485102041 0.1321838907 -0.1452080034 3.7901931819 3.7978417669 -0.3174358614 0.2097663010 1.9689391161 2.0102160219 0.5977547966 -0.7823651588 6.4088867905 6.4855775160 0.6436430656 0.3515707725 3.3784228971 3.4599276670 0.6557363616 -0.0326654596 2.1586402769 2.3096376367 0.3486593192 0.2489697582 2.6941944886 2.7316136236 0.3138236065 0.1387750929 7.6790876698 7.6880173652 0.3143116659 -0.1011279211 0.6011518616 0.6999157273 0.4508448170 -0.0519175919 2.8335588656 2.8730631937 0.3024693491 -1.0007127200 3.7104110790 3.8863485420 -0.2788733679 -0.6696476615 2.4284679191 2.5383330287 -0.6210393650 -1.7996201670 5.4527471936 5.7969345369 -2.3755438011 -6.2785570323 18.0835264130 19.3121144591 -0.1970091144 -0.7144089113 0.6778751836 1.0139956771 -0.0142996961 -0.1347357075 0.8905212952 0.9115185979 -0.9572869675 -0.9283177570 3.7807959100 4.0114922030 -0.3896553074 -0.9832809583 2.5486867229 2.7629615448 -0.4743479744 0.3742264531 1.4761654329 1.6011232336 -0.8458102279 0.0795075513 2.3089348390 2.5092902269 -0.2888197569 0.4109531560 0.5181512953 0.7350237398 -3.1866306199 2.2645610495 7.1159840760 8.1191182294 -3.8773093520 2.8410391759 8.4778915825 9.7457517460 -1.6565128474 1.1171349266 3.3476893144 3.8985957733 -7.2468062008 4.2766394346 16.1592733116 18.2188901672 -5.0565546840 3.5493215017 11.5611302821 13.1089908681 -104.5061805747 66.1045863993 233.9903599407 264.6561281103 -20.2668454366 13.1132990508 45.7793059471 51.7539174240 -17.4536706476 11.4088211560 38.7574890180 44.0108424596 -145.1004422800 93.1561386373 327.1426359240 369.8033642826 -222.3733275718 141.6814503784 500.5707166823 565.7690271447 -15.5831160065 9.9229350943 34.7188443547 39.3280599405 -198.1229294063 126.0526446045 445.4713357635 503.5739025756 -6.8275833045 4.6711582623 15.0544304850 17.1782120811 -2.0742738968 1.4822821636 5.2317817693 5.8199066224 -0.7502047654 0.5030222775 1.6870924247 1.9136664943 -17.3319064931 13.9581865349 47.3568927078 52.3333697707 -7.1310098798 6.0656086827 20.1121502872 22.1847014755 -4.6376964698 3.1753401379 12.6331752343 13.8277839809 -21.6661481431 18.0365028374 59.0755882866 65.4640580163 -20.7757140879 17.5182775913 57.7947563948 63.8720170572 -2.1165527011 1.7464575195 5.6674185194 6.2983348326 -2.2645379823 2.7544097720 7.3593900998 8.1926289472 -1.3616193691 1.1459901421 3.0466584816 3.5311341522 -0.1900332646 0.1554079022 0.1080314822 0.3023488776 -0.3882364757 0.0298882010 0.3136308950 0.5191001722 -0.0670002289 0.3156799409 1.4743401264 1.5156851418 0.1481157220 0.3367238808 0.7594107373 0.9775821536 0.7254012591 -0.1877982406 -4.1491476612 4.2455361156 0.6834437560 0.3238894900 -3.7578431905 3.9466665680 -0.0986306917 0.3186491466 -1.4123807956 1.4579316132 0.5503668936 -0.5729563765 -3.9789533422 4.1648582462 -0.2082542154 -0.1028238172 -6.4565528546 6.4622362310 0.4432509084 0.2598456244 -5.0676259173 5.0955179657 -0.2129084116 0.2156849454 -3.2892536790 3.3031863030 -0.5717573966 -0.2479589604 -11.7326842944 11.7492242688 -0.3542835971 -0.2139192451 -5.9641560019 5.9784977315 0.1183394621 0.1222392185 -1.3960078041 1.4063372440 -0.2635758967 0.0303797119 -0.3615681024 0.6699269376 0.1191569230 0.4468493064 -4.4562364046 4.5077257012 0.2142419417 -0.2932333202 0.2438151668 0.4591416014 1.1523686128 0.1461541836 -0.2882729551 1.2946260934 0.1191465040 -0.0648484562 0.7566592347 0.9135509669 -0.1098001099 -0.3440836653 0.1888024129 0.4307850611 0.5814071579 -0.3443737768 -0.4073394785 0.9306954347 -0.1470851745 -0.0768610376 -0.5233542068 0.5664989659 -0.1390689743 0.2397665843 -0.8743876075 1.0416442976 -0.0357043783 0.7848074797 -1.1854661329 1.4289882155 -0.2588790676 1.5910045895 -11.4190287357 11.5330833270 0.4001408017 -0.0758435125 -0.2514652735 0.4985774446 -0.3383187908 0.5959303311 -4.0536916022 4.1407305068 -0.0747310001 -0.1493300032 -0.6300025256 0.6665336746 -0.2489880599 0.3889861939 -9.9421377069 9.9971095463 -0.0360818854 -0.0945632836 -4.5354731638 4.6328773696 -0.1613157834 0.0268338942 -0.6798148817 0.7130013311 1.0205401273 -0.2883832395 -39.7572036150 39.7715901884 0.7944198926 -1.0826394003 -21.0220973758 21.0707244791 0.1993169944 -0.2976447561 -2.4432827026 2.4733438529 0.2935178691 0.0645862879 -2.0196570270 2.0466603088 0.0612331994 0.2514422184 -11.9070003670 11.9106301352 0.3537992173 -0.2853938035 -15.8363941041 15.8435312199 0.2531122769 0.2683490510 -81.1371470163 81.1381056149 0.1157135917 0.4790847707 -67.1834631420 67.1870841201 -0.2413550625 -0.0517761197 -39.9475063025 39.9485127709 -0.0650414338 -0.0238442743 -94.3039550397 94.3052722599 -0.2033897023 0.0231338668 -40.1769867607 40.1777506525 -0.3654483064 -0.1384329741 -35.4536158977 35.4560442825 0.4148442353 0.0345297872 -143.6818659057 143.6825367188 -0.0751774986 0.3352801751 -413.9587770008 413.9589431336 -0.0274342101 0.0708651536 -41.1838078744 41.1841144778 -0.2714071778 0.2069841415 -363.6761092711 363.6762962287 7.2481608766 -4.4961409678 2.9033417056 9.0100229054 42.0814421039 -26.1736417071 17.0327452901 52.4026829624 20.1076408860 -12.3453550148 7.9427176416 24.8964104995 26.8284524861 -16.5560955472 9.9756532366 33.0663548046 1.4433830306 -0.9111298378 0.5676281402 1.7988090115 3.6903561606 -2.1731875816 1.3537823130 4.5186104466 5.1092906023 -3.1864780281 2.0491272928 6.3621454816 4.2184659436 -2.4778734131 1.4692510870 5.1082296664 15.3009231032 -9.0996117135 5.5959720692 18.6610847634 4.7280348937 -3.5072766237 2.3151346725 6.3449817008 7.5428136169 -5.0539675787 3.1330643254 9.6058418370 0.2938549044 0.0634616045 5.7237090507 5.7531642429 -0.0407713622 -0.4047704642 1.6956599952 1.7493553203 -0.0766868193 -0.2418028044 1.0760927290 1.2107708231 -0.4083569199 0.0767501691 1.5865539936 1.6459888584 1.0255184466 1.0155082948 7.9631347034 8.0928647268 0.1236540538 -0.0419112040 0.3552762077 0.3785076720 0.3399218264 -0.1244279764 3.7982043089 3.8179660719 0.4553753993 0.1893456565 2.9854139447 3.0258742461 0.5834671212 0.2753353570 3.0777857902 3.1446794448 3.4868069609 -0.3046321812 23.5254627350 23.7848165902 0.8397578576 -0.0092631063 7.8107632348 7.8570211377 0.6725051215 0.2089907152 3.4741579675 3.5475616451 3.0317301057 -0.9445494449 22.0662788225 22.2940283921 0.2835814942 0.3988237969 63.8011490755 63.8031784633 0.1503878783 -0.0766065893 276.4767695609 276.4768563039 0.3190522387 -0.1220017490 811.6239264546 811.6245421771 -0.1053779898 0.1170538255 420.9807512172 420.9808038157 -0.0364320712 -1.5674719832 -14.3710178224 14.4562944411 -0.0025863515 0.0169889678 -0.7354915405 0.7356922729 -0.1615099634 -0.2151622423 -5.6056539408 5.6121062323 0.4612010564 -0.1798683490 37.8318765140 37.8351151658 0.2006688919 0.0119232640 15.4199205971 15.4212308649 -0.0652797095 0.2272589496 3.0279629878 3.0371809176 -0.0861638626 0.3605162907 7.4504245451 7.4596395429 0.0096959472 0.0060039542 0.0547352126 0.0559106641 -0.2402891708 -0.3085019786 1.1726102823 1.2360935363 -0.1943034324 -0.1762645866 1.4098652534 1.4340652220 -0.0902876520 -0.0743477131 1.3412754483 1.3463652070 0.1163551149 0.0677400293 0.8435747728 0.8655780765 -0.2495266939 -0.1331820223 0.8982648695 0.9520297174 0.0173412348 -0.0914472164 0.4449685935 0.4545991212 0.1000408606 -0.0256397025 0.2035421200 0.2282432096 0.0112654761 -0.0934565748 0.3025708584 0.3168756328 0.0223149340 0.0443054144 0.2617293763 0.2663891748 -5.6589483746 -12.8006495959 33.4038349031 36.2295026686 -0.4665283403 -1.0106501759 2.5551642835 2.7905925483 -1.4392589619 -3.4490032849 9.0254860643 9.7686482543 -1.0504884987 -2.2409380137 6.0478606904 6.5346727690 -0.0756205238 -0.1049249373 0.2884916810 0.3161568536 -0.5411686254 -1.3777362789 4.0148989165 4.2790692966 -0.1764764059 -0.5719260207 1.4802033692 1.6723996945 -1.6730457961 -2.5320397628 6.5027562833 7.1933178927 -0.3457869103 -0.2146596800 1.8067108706 1.8519858357 -0.2612444024 -0.1654957083 0.9272769457 0.9774865734 -3.2889859977 2.1573765357 8.2535339627 9.1428947978 -2.2381076921 1.3467404109 5.5803670287 6.1614391137 -13.3814366820 8.7117627259 30.1276076394 34.0973664605 -1.2436515474 0.7970764969 2.8728774579 3.2303908434 -8.7308394982 5.6477529453 19.6498028206 22.2314961836 -15.6205538903 10.3194689705 35.3456013545 39.9975584103 -0.8676018383 0.5982220905 2.0257206418 2.2834506209 -12.6065672109 8.0814545701 28.6187215835 32.2996388507 -2.4766635183 1.5479184157 5.5697980197 6.2890828890 -25.1988567171 16.0182640454 56.1587597098 63.6032503494 -15.0680676327 9.7901011535 34.3978446151 38.8085616449 -6.1843929619 4.1028358697 14.0995979470 15.9335696172 -0.4845845830 0.2727601336 0.9203461087 1.0752940381 -0.9236691431 0.7371517939 2.0572770079 2.3725400187 -4.3520920707 3.4162389599 11.2565294946 12.5427608717 -0.9287805689 0.7893003603 2.3859592257 2.6792591943 -0.0722609317 0.0205521241 0.2029724356 0.2164297615 -0.1284407500 0.1236702624 0.1359588543 0.2242234825 -1.7725367902 0.6846821759 3.0086045199 3.5584234587 -0.1937321021 0.0717400511 0.4183064710 0.4665394582 -0.1739357924 0.2499250300 1.0233894318 1.0677275447 -0.3359379413 0.4690626310 1.3801638527 1.4959031762 -0.8762653886 0.9676091642 3.0446269125 3.3498562643 -0.3802031690 0.1287464787 1.5618910502 1.6126480578 -0.1631094342 -0.0081110058 0.4313504282 0.4612306016 -0.0660657175 0.0400362439 0.1975465751 0.2121137176 -0.0843860202 0.3194365690 0.5480612435 0.6399467546 -0.0969773689 0.1283323757 0.1158332125 0.1982199330 -0.2558729380 0.0675432125 0.2015873662 0.3326717784 -0.0515883702 -0.0299672792 0.0355467983 0.0694476251 -0.0611024576 0.0149323447 -0.1005874198 0.1186352151 0.0344728916 0.0472574726 -0.2899182080 0.2957604036 0.3129591755 0.0705287530 -0.7846511897 0.8476999705 0.2489457290 -0.1339233316 -0.1513236265 0.3496970969 0.0201879157 0.2122219532 -0.1587983241 0.3002372429 -0.0380941912 0.2865653896 0.7727920644 0.8250930037 0.0054510707 -0.0067988230 0.0003116292 0.0087198210 0.4012892398 0.2764771836 0.1564983246 0.5118245916 0.2195054541 0.1262711284 -0.0145730182 0.2536521538 -0.1387415534 -0.0326161607 -0.6112691324 0.6276647073 0.0182783966 0.0317485405 -0.2237328484 0.2267122782 -0.0244400757 0.0575588493 -0.1373470728 0.1509124144 -0.2411511508 0.0057749511 -0.4318503821 0.4946533939 -0.3319471439 0.4012434359 -3.6729649919 3.7123222945 0.0439429453 0.5743805443 -3.7803988374 3.8265832210 -0.0363856893 0.0327083054 -1.1586918307 1.1597243251 -0.1919239332 -0.0455292230 -1.7587229745 1.7697497584 -0.0349210292 0.1217290654 -2.5644163091 2.5675413240 0.0375779713 -0.0196417662 -0.7636233577 0.7647996701 -0.2104382911 0.0429955004 -7.7476195404 7.7505961983 -0.0362057777 -0.0408886544 -0.9514633619 0.9530295219 0.0089985329 -0.0071379630 -0.1761117620 0.1764859111 0.2150251714 -0.2047850672 -32.7922568149 32.7936012015 -0.1047767907 -0.0525253647 -7.4853742528 7.4862917919 -0.1728270977 0.0782087244 -9.1573980748 9.1593627131 -0.0466840750 0.0982212366 -5.8242977006 5.8253129117 -0.1641690330 0.2493662108 -32.8683692317 32.8697251422 0.3823074215 0.0050715225 -1360.1166469822 1360.1167917712 -0.2545129694 0.3772347746 -1631.1625932399 1631.1629265707 -0.1446662127 0.0251977016 -242.8782391689 242.8783236619 112.4595383456 -69.2010991510 45.3300906566 139.6093012931 3.1610815925 -1.9327274463 1.3131503062 3.9309332153 0.7113719775 -0.5037178743 0.3398408442 0.9355605735 17.9285077003 -11.2321201766 7.2211944897 22.3548107100 15.1424405945 -9.5702778858 6.0065412192 18.8934449846 0.2275093341 0.2509093907 1.6452161969 1.6797179388 0.2088583835 0.1256438826 0.8115759052 0.8473863696 0.1680622233 -0.1271147848 2.0949718937 2.1055427601 0.1326981814 0.0218030736 1.1543161051 1.1621229935 0.2842909905 0.5106504221 7.9832152958 8.0045806686 0.0938787571 0.0631860131 1.2139355920 1.2191986363 -0.1390958797 0.3321357838 13.7969400041 13.8016381389 0.0276709099 0.0494926391 1.5270031792 1.5280555977 0.0323458041 -0.0982435779 24.8773386912 24.8775537063 0.4371198011 -0.6913351577 291.0134372941 291.0145867542 -0.2938802930 -0.2324529020 -4.2888071370 4.3051442063 -0.5980693791 -0.6798087861 -9.6911043439 9.7333103635 0.6972072341 -0.0787326900 -4.5386307999 4.5925446434 -1.8981394759 1.6241919709 4.4586594799 5.1127348035 -0.3671963574 0.3755444432 1.3137292105 1.4217000447 127.1878595274 -79.8415274259 52.6601266767 159.1367652508 9.6295818040 -6.0604615535 3.7281150251 11.9739868626 22.5140410523 -13.5680503324 8.9453644858 27.7671219232 -0.5073320734 -0.0177762585 1.4402830986 1.5334917727 -0.1737213180 -0.2959369190 0.8468821285 0.9243629594 -0.6111973920 -1.3437222539 -23.5059134062 23.5522210644 -0.0857723189 -0.6902213926 -15.2573068996 15.2731521399 -0.1361531611 -0.1721509145 -3.4308544451 3.4378679213 0.0242028852 -0.0031505955 -0.6969617795 0.6973890076 156.4716526414 -98.6943226334 63.0656076289 195.4513692604 158.3931345403 -98.8803929429 63.1015851471 197.0978099978 7.0125938271 -4.4299726824 2.7865339593 8.7501943783 20.5272269436 -12.8032639706 8.3218416512 25.5840509451 -0.0983475134 0.1467337796 -4.7852793156 4.7885385207 -0.0799714139 -0.0064074357 -1.3078665645 1.3103249340 23.8146261535 -15.0255628830 9.8723691825 29.8390286715 15.9643038721 -10.0425256095 6.4985807059 19.9485054560 119.0563011431 -74.7301235977 48.8578627756 148.8156072790 18.4482787126 -11.8304013898 7.5743397730 23.1876692985 0.0491320055 -0.1728343452 -1.8588730492 1.8675370619 -0.0688758517 -0.0665669693 -0.9443880189 0.9492332561 -0.0895134486 -0.0031074417 -5.0813063202 5.0820956538 -0.0343064061 -0.1225693409 -4.6145036781 4.6162586981 #END -5.9182574995 -9.6237886943 10.3521933909 15.3241792097 -7.1437021113 -11.2466967908 9.7329150674 16.5005995059 -47.0110732839 -71.5034160350 57.5081104603 103.1018029158 380.8843766784 596.4367877591 307.6511255762 771.6598892894 0.0614400748 0.0829061932 -0.0606341029 0.1838602703 0.4383285492 -0.0828421414 -1.6216549757 1.6876727711 0.5230132488 -0.1008540704 -0.9496524497 1.0977403891 -0.1929932961 0.3779145709 -2.7309486816 2.8074521361 -0.0692972990 0.6559195229 -1.3128606970 1.4758440062 4.0321751056 0.4562361429 -41.6619601488 41.8620251768 -0.3656577210 0.0850024813 -7.7340360155 7.7443995161 -2.4114474374 0.1955745133 -30.4295073775 30.5399508507 -1.2438346308 -0.5312539887 -10.2481683825 10.3379780600 0.3699146771 -0.1668792321 -11.2224738261 11.2306760308 0.5324336918 -1.0684566650 -193.2992850927 193.3030216588 -0.1518515680 0.1152614714 -76.9977642499 77.0037167557 -1.1754799935 -0.0738030015 -86.5964848541 86.6059006658 -0.2810355240 0.3124350066 -93.1264081433 93.1274608805 0.6006359266 0.0296845907 -1.2053185349 1.6415809620 0.3130908025 -0.4865562230 -1.9786360710 2.2655143555 0.0032810008 -0.2433516756 -1.1665178919 1.1997810550 -0.0733695203 -0.3610012897 -6.4879246415 6.5170938410 0.3292388744 -0.5071905955 -12.5778631681 12.5931633117 0.4134385539 0.3474936340 -16.0112433137 16.0209573840 -0.1151614490 -0.2926180312 -19.7098148968 19.7346406436 -0.1872956040 -0.8486666426 -61.0889210991 61.1023072098 -0.9891648226 -0.6851856796 -48.0939683268 48.1092215242 -0.1089657033 -0.3778786421 -76.9331190950 76.9342508852 -0.3850067827 -1.3584642954 -1743.1520182561 1743.1528433266 -0.1865988222 -1.2562492893 0.8047629791 1.5824872227 -0.9695263399 0.4839233421 2.8830417200 3.1192520969 -1.3786847815 1.2068579788 48.4802401292 48.5239502996 -0.5557843235 -0.1028937187 68.4187141132 68.4274997060 0.1429115406 -0.3670642558 13.3762309632 13.3827573557 0.7560035381 -0.0371414538 180.8059085555 180.8099273824 -0.3025904153 -0.9025779524 171.2519780091 171.2571940986 0.0902003590 -0.8810052518 7.8575049475 7.9084872221 -0.8208043617 -2.2129750315 6.2765152936 6.7237834201 -1.4023122455 -3.3854334510 7.0681363692 7.9768309483 -0.7917093028 -0.0875575858 2.7502485310 3.0134911180 -1.9408297923 2.3402913602 6.4680339358 7.1483373391 0.0981436121 -0.0062050775 6.6687372375 6.6709224849 0.1222714989 -0.0651386749 2.0650160425 2.0743587942 0.3235963926 0.4751828835 19.6196217987 19.6505181791 0.6266769211 -0.4870593680 9.5538109371 9.5994216061 -0.3786622159 0.5595882997 25.8899286501 25.9157813201 0.1428027916 0.4815292026 62.2334398523 62.2425389059 -0.4786042397 -0.0475121843 185.9742287088 185.9772240223 -1.1466637674 0.8415345041 -3.4549183987 3.8525668123 -0.4379120277 0.5014893836 -1.0237643513 1.2291589717 -2.6572760495 2.9386419384 2.6183443647 4.8407448033 -0.4333546316 0.1137924556 0.6914474390 0.8356580075 -0.3380045073 1.3586226498 -0.2646723840 1.4316542205 -1.6471306786 1.0125341362 0.1510762292 2.1544000253 -0.8247410953 0.8618791006 -0.4207077006 1.5756967388 -0.1642657145 -0.7830133116 -0.7520496513 1.4443068725 -0.1841749990 -1.4742986840 -0.2349263839 1.7728558990 0.6489319395 -2.0902518977 -0.2256781714 2.3919755199 0.1797929924 -1.8811156104 0.4746694309 2.1631052479 -0.0531493513 -0.3287436177 0.8008353128 0.8784726534 0.0228379663 0.7375968695 13.9888129719 14.0089592356 -0.2156820942 0.8324330490 5.1296010677 5.2030520318 0.0591537468 0.4705201915 6.8507691677 6.8848796333 -0.1394643274 0.9305796548 11.4691256559 11.5182426205 -0.0964194160 0.1182627408 6.1492163749 6.1708820897 -0.1908952344 0.0939966528 0.4805899240 0.5438040283 -0.9709130950 0.2876977959 4.6965227628 4.8064798040 0.2427722298 -0.3742396492 -83.3229512925 83.3242622863 0.0329041580 -0.1013789660 -4.1237118811 4.1274495565 -0.5122389166 0.6784895633 -57.0658829091 57.0723856938 -6.7086717126 -11.9805025465 9.5580906516 16.7373670355 -2.5914772364 -5.0508361398 4.7663820150 7.4289123330 -1.5034965935 -2.5572707670 2.9785268031 4.2060952776 -7.2477133034 -10.8117483230 12.4962882029 18.0443882845 -27.8228245268 -39.1909997465 46.3970406436 66.8038089187 -8.0314087604 -11.9841042321 13.9848729294 20.0922609921 -41.4193058320 -61.3465686521 71.5189032502 102.9267404667 -1.1291162405 -2.0358694362 1.3855703144 2.7091461648 -0.5279532931 -0.9154507886 0.7351076820 1.2873104249 -5.1214172703 -7.7667506225 5.7162508422 10.9199969581 -2.2917707084 -3.5693589562 2.2606680193 4.8086002138 -4.9362840469 -7.2288041694 5.1705674914 10.1674361507 -28.2332079155 -44.6602583310 31.4299688202 61.4847622914 -51.0961937552 -78.9276933466 55.0888944402 108.9734259519 -15.4806578148 -24.0898671577 17.2255385955 33.4172279782 -169.5462288302 -264.6294972019 184.8353626362 364.6089496040 -58.0270056918 -90.6906750329 63.2620872237 124.8761109547 52.2998472396 81.4247314517 41.3121665027 105.2234550573 7.4392565423 11.9163258605 6.2909985536 15.3927743601 10.6224390493 16.4253969355 8.1120877666 21.1767637651 48.1999347795 76.3755816902 38.6906891287 98.2519826584 2.4163977391 3.3239400062 1.1018515597 4.2568899261 0.7562883059 1.1342967054 0.1740578559 1.3814401687 13.0830882148 15.9176739854 2.6440700745 20.7792763187 1.8289136062 1.6001375309 0.2308627280 2.4450240246 0.6256499943 0.7383181315 0.1346474196 0.9869960949 0.3650260789 0.4974260298 0.1942146595 0.6468353944 0.5904094735 0.7741607876 0.1336447012 0.9827355584 1.0907284033 1.8026656844 -0.0650209396 2.1125812475 1.1497001599 1.1756638893 0.5086280498 1.7268984673 1.1655756452 0.7157891111 0.4016365733 1.4323799629 0.9596994267 0.9123492991 0.0145911626 1.3315768547 0.4778170106 0.1592919618 -0.0587965255 0.5259466142 3.0417665686 -0.1812316210 0.2520080162 3.0607477164 0.4750945349 0.2547670247 -0.1414375740 0.5745480191 0.1585871795 0.1319758003 -0.4316113063 0.4983328305 2.5690016249 -0.6863678427 -3.6074034671 4.4837160619 2.5111201879 -1.0554874927 -4.7237718865 5.4546566405 1.4682614500 -1.7997163559 -5.0980595109 5.6804729740 0.5280647782 -0.2411690312 -1.0814454060 1.2353213600 0.5168392692 -0.1305315161 -0.3361717508 0.6454862801 2.4014460669 -2.0847474728 -5.9276101625 6.7919090150 0.4394678842 -0.3949153663 -1.4358088202 1.5588832288 0.4952503949 -0.6942319201 -1.9529015196 2.1355409251 -0.0093737185 -0.1847801068 -0.1382630680 0.2698666621 0.1517897835 -0.1075204315 -0.7371844194 0.7729951065 0.2717708052 -0.6016152657 -1.0795104400 1.2730368705 0.1392418156 0.2468854992 -0.5728799323 0.6542262106 0.1379294118 -0.3695958638 -0.9418302406 1.0306064293 -0.1457919321 0.1928222674 -0.1133033294 0.3012526242 -0.1033294639 0.1342006664 -0.1834226029 0.2496610666 -0.0381081504 0.3057488646 -0.2223363872 0.3799579824 0.2245283355 0.3258820571 -2.1864706812 2.2263750612 0.0622259778 -0.1410832190 -0.7848691238 0.8119580490 -0.0200590932 0.0067049270 -0.0053456520 0.0218151154 -0.0024933107 0.1023883058 -0.5860888462 0.5949703501 -0.3565628001 0.5634831338 -1.2985815515 1.4597822846 -0.3270529216 0.7984823730 -1.7399975033 1.9421969583 1.1623214577 2.1688982906 -10.2587157740 10.5614409873 1.9872788048 -0.3076106190 -18.1835651353 18.2944238054 0.2192433314 -0.0185733567 -1.6420967438 1.6567722607 0.0518794454 0.1132113249 -5.6300198135 5.6331262339 3.4488582914 -0.8776119722 -56.2378682842 56.3525181017 2.1739993244 -0.5844227757 -38.4418458008 38.5108682397 2.0183908737 -0.6512394891 -59.5052639770 59.5450929677 2.2577206970 -0.4839446569 -61.3123267453 61.3577750334 0.3314968871 0.0790966977 -6.2751974661 6.2859947102 0.4658786782 0.0353209905 -10.6447809459 10.6559434912 0.9561244333 -0.3413178515 -32.9083982264 32.9243500379 0.3630377940 -0.0570984619 -10.0966908458 10.1043407749 -0.5287587611 0.4573323128 -5.9425830932 6.0038881944 -0.4628141620 -0.1474294344 -4.4701047361 4.4985829461 -0.3827743743 -0.1320098998 -5.0213298355 5.0395610858 0.1040905839 -0.1820604060 -4.4576907023 4.4648031338 -0.1930829472 0.1786617389 -2.0594700564 2.0762027730 -0.9275318842 0.8500497841 -12.4660461361 12.5293737393 -1.3075180852 -0.3594408740 -24.0133494787 24.0699003958 -0.0627342738 0.1701800843 -5.7851493774 5.7896744256 0.3881234280 -1.0064841792 -133.0758008025 133.0834895891 -0.2049341119 0.2027437334 -30.3977995160 30.3991664101 -0.0545173399 0.1191528000 -35.7932732673 35.7937852218 0.0936921925 0.3156126323 -45.4961117623 45.4975170183 -1.8348439727 0.6385126457 -188.1508508963 188.1609325115 -2.3604565750 0.3687654079 -252.8962837346 252.9076067455 -1.0443910058 0.0948239200 -103.8091225365 103.8145131749 -0.0454126321 0.0917964229 -5.1349357955 5.1378530827 -0.4777405069 0.1773124600 -58.4598061370 58.4620270712 -0.2493853909 0.0053208771 -23.8830785575 23.8843811469 -1.3001794955 0.4599129428 -95.6442474868 95.6542918208 -0.2334682325 0.4117942362 -47.8355952893 47.8381410422 0.0011740136 -0.1071113333 -1.2253096471 1.2378762993 0.0508270326 0.1031373843 -0.4368092988 0.4727608864 0.0204116390 -0.0463975261 -0.2110772766 0.2580751190 -0.0839449241 0.5422880608 -2.0960542946 2.1711855015 0.6737550138 0.1945218951 -2.0467127830 2.1680169711 -0.3106586628 -0.0770376929 -1.3712904314 1.4150480002 0.0866168386 -0.1882555244 -4.8958830840 4.9022539282 0.1710088549 0.2291926418 -4.6155686211 4.6265242652 0.3691411986 -0.0003983299 -6.1092359074 6.1219693351 0.5711385817 -0.0933488531 -23.9772465766 23.9846356334 0.4919685644 -0.4347967255 -16.0593535931 16.0733754661 0.0705656128 -0.0295071676 -2.9573532573 2.9583421822 -0.0454542757 0.0267471037 -4.1735040435 4.1738372632 0.0581390908 0.1429389392 -6.5108233017 6.5141470313 0.2815795652 -0.7284663782 -21.4740983390 21.4887489067 0.2274573061 0.3408184928 -14.0281284784 14.0429326747 -0.2172519898 0.3383373695 -37.2876373548 37.3016402037 -0.5164225631 -1.5323694588 -126.7473083390 126.7611052783 0.1608835993 -0.0916002332 -31.5683417601 31.5691931383 -0.0497710157 -0.0306294568 -20.1501181459 20.1506862513 0.0416827499 0.0934121719 -55.1405592767 55.1406541549 0.1469762609 0.0356313110 -151.9192853819 151.9193606574 -0.3377662294 -0.0511373688 -23.4924957588 23.4949794218 -14.2380085825 -21.9979823115 24.8628764762 36.1222122887 -15.5413203369 -23.3456396219 26.0567484883 38.2821779519 -26.4801903094 -40.8011451759 44.6791767868 66.0466711109 -4.5385170926 -6.8592385167 7.9308563032 11.4265153006 -0.8331622171 -2.0734990748 2.6223427066 3.5711385788 -0.6963505014 -1.2735920457 1.2392873927 1.9137015823 -1.0315448576 -1.6272715736 2.6055363389 3.3736134594 -0.2506550475 -0.0562359345 0.2342827909 0.3746446906 -0.4777507754 -0.0569521828 0.2944937141 0.5811158982 -0.5727101180 0.0038592738 1.8866115830 1.9765613634 -1.0355624566 -0.0520647892 2.0228606496 2.3269596001 -1.6563381462 -0.1026481655 3.7986894561 4.1746467209 -0.3717950584 -0.3195459433 1.3814396415 1.4724796920 -0.6303502639 -0.0051334496 2.4603685821 2.5436708026 0.0207599799 -0.1685729789 0.2750654919 0.3521202007 -1.3276802620 0.7443388989 5.7695054882 5.9685382329 -0.0895510494 -0.0950783863 0.3863669470 0.4310666916 -0.1981002986 0.1906703510 1.4049429221 1.4383821851 -0.3250392312 -0.0204859604 1.4191270593 1.4626932596 -1.4400744237 0.1607977818 3.2382872347 3.5504442358 -2.1668441973 0.2966448410 42.1900960616 42.2496279106 -0.6100603786 -0.2113700742 6.4349090946 6.4687236619 -0.3596433739 0.1535813219 11.0790563366 11.0868345199 -1.6253078420 0.4662950648 37.0271493589 37.0776104531 -1.0040422071 0.4671437771 24.6246830145 24.6499658704 -0.4149124164 -0.1376833510 6.7316303340 6.7458102532 -0.3260318115 0.0088760350 4.5877778129 4.5993565623 -0.8687723719 0.1738535683 32.6933128644 32.7188093966 -0.4580071369 0.1334010400 13.1994090384 13.2087639514 -0.3671787164 0.3517166999 47.4038479827 47.4067801923 -0.0378915310 0.0437201943 61.2206070557 61.2207934878 0.0952797619 0.0705125070 38.4640596428 38.4644955021 -0.4871282309 -0.5920277166 85.6611258830 85.6646704194 0.1118604090 -0.5992064206 82.7403115742 82.7426746018 -0.0700276871 -0.6903965696 164.7438724379 164.7453930673 0.0545290530 -0.0190521062 10.4616482526 10.4627386638 0.1314761332 -0.1066163777 8.8658580710 8.8685721593 -0.0609615722 0.0926315531 0.9667826695 0.9830795659 -0.0754027265 -0.0925326114 0.2032462420 0.2357050916 0.0737770364 0.0568559472 4.2758026850 4.2768170701 0.0390868610 0.0156621307 0.2351630237 0.2389031869 0.1712308552 -0.0619401666 3.6780182713 3.6825229115 0.2576776565 0.1083559600 2.5105090563 2.5298763400 -0.3196777015 0.0167505997 1.7477102669 1.7767851846 -0.0009452140 -0.0051486914 -0.0000141251 0.0052347542 0.2888343542 -0.1840807442 1.1032531065 1.2562322164 -0.1776594872 -0.4524482140 1.2803153823 1.3765752950 -0.0706745302 0.0863093584 1.3098315522 1.3219616767 -0.6125441455 -0.3358048464 2.2564706286 2.3662448537 -0.3574444976 0.4505957384 1.0526323499 1.1995157157 -0.1964331098 0.4355047272 0.9518259070 1.0649990100 -1.8385896440 1.6979979485 5.0105998083 5.6789145040 -0.6718109934 0.6469926298 6.6343789301 6.7651832973 -0.1161153508 0.6016554071 3.3241044033 3.3829900787 -0.3867693792 0.0548829686 3.6837912411 3.7070743702 -0.0280390409 0.4905233001 11.5993191184 11.6105591205 -1.8553597850 2.5970305146 24.4173209507 24.6429560244 -0.2187873278 0.3206860280 5.3796019590 5.3953965976 0.1956685078 0.0724355843 0.2031350854 0.3229190713 -0.8815574505 -0.2288862035 2.5166471587 2.6800233467 -0.3495130762 0.4485158781 1.7286998983 1.8251599948 0.2300397069 0.0008656621 0.5640374696 0.7840269404 0.4187972750 -0.1199913557 1.9375744755 1.9908449754 -0.3566316141 -0.0040117673 1.4813360528 1.5300452570 -0.2326735131 -0.2131989362 0.4159617923 0.5404579055 -0.1357839478 0.0567803848 2.0836979362 2.0935467911 0.1897973432 0.1499845747 0.5303152151 0.5828830342 0.0344799019 -0.3773641082 1.2973586376 1.3515664868 0.1088201017 0.1428244821 3.5388737501 3.5461736916 0.2572319072 -0.1565639418 7.9885322629 7.9954241927 -0.0255958046 0.0104820562 5.2212278407 5.2231661823 0.0251659019 -0.0080540425 0.2656727448 0.2669835155 0.3318614814 -0.1785965818 13.3343165474 13.3396411709 0.1770946610 0.2656283516 25.0836622477 25.0860820472 0.2549609221 -0.5028276281 496.3112381891 496.3115780166 0.5526300959 -0.4532325625 608.0974327811 608.0978688127 -0.3300540325 0.8205401107 -0.1997157652 0.9067017837 -0.2569452970 0.5251747881 -0.0298515930 0.5854234035 -0.6808616041 -0.1051452058 -1.2641803003 1.7191776101 -0.0348622037 0.1284806209 -0.0412801070 0.1972472441 0.2112893073 -0.3988204236 -1.4587609924 1.5333506838 -0.3783787573 -0.2782208159 -1.2958897043 1.3854195094 0.1512208074 0.3119102086 -0.7293329641 0.8194889067 -0.0877895879 -0.2843348039 -4.7291808418 4.7405890469 0.5820544262 -0.6193942847 -4.7091472767 4.7872731794 -0.0883859462 -0.2127982652 -0.5087908859 0.5757109758 -0.0257066492 -0.0868683496 -5.5892901703 5.5917663877 -0.1180484940 -0.1508041618 -5.1167996274 5.1222842126 -0.0412574584 -0.4595770017 -19.5633013383 19.5692399504 -0.0599739281 -0.3496798668 -21.7308397719 21.7341839014 -0.2410044235 0.1897583849 16.9551880430 16.9585368689 -0.6817151643 -0.0872876536 158.1310910445 158.1326461848 -0.0641385375 -0.0023644328 12.2500235969 12.2509867868 0.0878222706 -0.1463907201 8.8317582501 8.8345105448 0.4986388533 -0.0668174107 37.3338772008 37.3372668003 0.3879822980 0.0335585378 35.7157111444 35.7178341868 -0.2847494893 -0.0238669656 -3.7486951785 3.7918344380 -0.3627090649 0.3952371412 -6.2083948350 6.2330904434 -1.7130071769 2.1008217659 2.0221986644 3.5099750574 -0.1253194807 0.0609006478 0.0579590339 0.2055550915 -0.3985704463 0.5822519853 0.2266187657 0.7541297136 -2.0495899556 2.2185147331 1.2887026547 3.2867705920 -1.6740433932 -0.0497567350 0.1324868064 1.6858023472 -0.1069999168 -0.1621405987 0.0589639041 0.2463637206 -0.5595261685 -0.4365622749 0.0009181003 0.7232819512 -0.6723255454 -1.4027554704 -0.4119019003 1.6152050981 0.2218004422 -1.0028812637 0.3591763867 1.4367757428 -0.1052859690 0.0829488788 0.0882315283 0.2126740211 0.4210964583 -0.9188048148 -0.0835159392 1.0237085581 0.1412104760 -0.2893188303 -0.0429292616 0.3535088266 1.2152572925 -1.1856713783 0.7149122770 1.8422178124 0.3361156698 -0.3924253189 0.1554965093 0.5395836717 1.5483570683 -1.1083084198 1.2277894417 2.4527567883 1.2975485232 -1.2010874890 1.1959373148 2.1391561823 1.0524626199 -1.7052173611 3.6060853738 4.2307973399 0.2133675747 -1.0308545918 0.5670971539 1.2038545918 1.8453067507 -0.8493856267 5.5448130140 5.9794946352 0.5352916226 0.2419203039 1.8006123207 1.8991437726 0.5154171936 0.0449659082 6.8925874416 6.9295800317 0.1879135135 -0.0455146037 0.5180738250 0.5703186309 0.5625964786 0.3411934362 14.5892032183 14.6040329465 0.4958453200 0.3770771032 11.5045547122 11.5214074162 0.3481462757 1.1330352767 11.2975028337 11.3603708051 0.4315867239 0.0768231271 3.0431413998 3.0777196521 -0.0420438527 0.0786100643 2.8803660065 2.8851231073 0.1111947148 0.0972640985 4.7446654741 4.7490161945 0.6107058360 1.6531511140 22.2635022049 22.3386901156 -0.2558716178 0.2657353250 3.7382023903 3.7589523066 -0.6279668583 0.5808117548 6.7480984757 6.8035283120 -1.2303283718 1.9893697929 22.5402510551 22.6617231800 -0.6997367805 0.3213158592 5.3005278412 5.3579800880 0.0045978980 0.0510992099 0.3001052989 0.3044592917 -0.1645443741 0.2896470804 0.8330438704 0.8971802340 -0.8760434943 -0.1265354144 -66.3213103469 66.3290532912 -0.4911995252 0.3003530845 -29.8948561251 29.9007256012 -0.2883951161 -0.1475382172 -6.0782684166 6.0884945592 -0.4646556579 0.3049348756 -12.4621814083 12.4753491093 0.0233077277 -0.0023875761 -1.8310433281 1.8311932230 0.3203506469 -0.3094370762 -11.6635686630 11.6720696450 0.2702017607 -0.0737433132 -45.8334991820 45.8345674587 0.2391468614 -0.2190950227 -42.8643280909 42.8657823482 0.3596892855 0.2287277647 -9.3302158060 9.3409902871 -0.1249910022 -0.2577320714 0.1676147186 0.3318783891 -1.3621390565 -3.0304261269 2.4838723805 4.1483162033 -1.4008156273 -1.9291118513 2.2918059847 3.3069822540 -0.5521565306 -0.7472490658 0.7802928971 1.2133074655 -1.6268120687 -2.3367537333 2.7906268765 3.9867949384 -2.1616188140 -2.9173964006 3.4085176063 4.9801395490 -3.6603018275 -5.0046197203 5.7765511556 8.4753791096 -6.1462635335 -8.8822375304 10.0421022668 14.7490337546 -0.5939232131 -0.8945141982 0.7456130474 1.3072257840 -0.0641787274 -0.1657874267 0.0784295760 0.1943079471 -23.5912913790 -36.6637675703 25.4461313203 50.4805554699 -5.0787347941 -7.8934893298 5.4059009984 10.8316428354 -2.5438515598 -4.0718238103 2.8853664281 5.6014524299 -8.0597379334 -12.4929428006 8.8200596136 17.2865973217 6.7969347490 10.7268320421 5.5272652278 13.8496898356 36.1237407940 56.4684458481 29.0567744933 73.0609756943 5.5092017846 9.1975941729 4.4974803549 11.6264514111 1.1801293973 2.0021945752 0.9094838103 2.4957262094 0.2229487314 0.4196185349 0.1837057926 0.5094444718 0.1083208825 0.4490879026 0.1102012160 0.4749291166 10.5158272505 12.4305282199 2.9595029661 16.5561767272 23.2309473756 28.8582966786 5.6195339013 37.4740582251 4.2618404114 5.0311359209 0.7716221464 6.6386002353 0.2284549368 0.2754918168 0.0735082989 0.3653640230 0.0841032254 0.0074673176 0.0198814297 0.0867432107 1.0356862411 0.8710190734 0.1435575703 1.3679944361 1.4134378132 1.5959072276 0.3603306711 2.1665743256 0.0546548512 -0.0156761351 0.0039781026 0.0569975374 1.9584080505 0.2044459595 0.4012534797 2.0095184989 0.0407661892 -0.0373221566 0.0939798767 0.1090277156 0.0876559055 -0.0697365887 -0.0285491648 0.1155932714 0.2203151291 0.4407982752 -0.8126366215 0.9503789529 -0.0069387508 -0.0020081036 -0.0002117524 0.0072265885 1.5387362947 -0.4368315935 -2.0599419844 2.6080437505 0.3161392424 -0.0502501589 -0.3400310619 0.4670013085 0.3328331149 -0.2082254538 -0.5407937384 0.6682765816 1.5084349585 -0.8379727293 -2.8639031470 3.3435782561 -0.0191108419 -0.0101248881 0.0181062928 0.0282059475 0.0668395283 -0.0514208626 -0.1682106248 0.1881659957 0.4836047001 -0.3377343629 -1.3139295557 1.4402600054 1.2438186699 -0.6701313950 -2.8413223032 3.1732118430 0.1305707205 0.0784996505 -0.9824268402 0.9941697061 0.1828600075 0.0327893789 -0.5830479323 0.6119295851 0.0891482105 -0.0322635037 -0.1115234117 0.1463755733 0.0116238039 0.0621260062 -0.0112577464 0.0641988343 -0.0165813403 -0.0780272576 -0.0014440094 0.0797826982 -0.1060412566 -0.2621101718 -0.2795686650 0.3976243563 -0.2331147925 0.3258468416 -0.7732782446 0.8709063752 -0.1422856784 0.3560550276 -0.9698046427 1.0428525504 0.0081929965 0.3525703898 -0.9717236504 1.0337407111 0.1204289725 0.4057934645 -0.9116503021 1.0051257367 0.2625240021 1.4653144641 -16.2556218357 16.3312272051 0.2620610128 0.2441260628 -3.4172958864 3.4360129051 0.5599377759 0.8276534656 -9.4706934059 9.5232648897 0.1856555897 0.1214678924 -3.8256705672 3.8320983463 0.1178305796 0.0136465158 -1.0334955561 1.0402804128 0.0650003721 0.0459121553 -0.9761999624 0.9794382783 1.1363110347 0.1910227356 -13.7008601261 13.7492276382 0.2770605883 0.0343619196 -3.8172716750 3.8274673547 0.2201847240 0.1424930581 -4.4733612503 4.4810430102 0.6081919405 -0.3130464899 -10.9354391531 10.9568118088 0.4075517120 -0.1251391644 -5.7130877637 5.7289728577 0.2427049458 -0.0689061526 -3.5428664170 3.5518384250 0.3494297171 -0.1851907221 -8.0440682672 8.0537836461 -0.0020478633 -0.0064911493 -0.0694528339 0.0697855637 0.9931013795 -0.1795863460 -19.2156160019 19.2420996759 0.1769792356 -0.0356765323 -4.0128304495 4.0168896775 0.5309569806 -0.3478963910 -12.4579190310 12.4740808799 0.5694778237 -0.0540035712 -10.0821706011 10.0983852871 -0.0974363972 -0.0251966733 -5.3095304138 5.3104841529 0.6604233239 -0.0690227895 -25.9950759834 26.0039300545 0.2084057371 -0.0123125231 -5.9831264486 5.9883943118 -0.0493113011 -0.0620794093 -1.1938174387 1.1964470463 -0.1393575288 -0.1789207770 -1.2882713875 1.3080811646 -0.0028531277 -0.0537742903 -10.1356650588 10.1358081078 0.2246477007 -0.1161981986 -70.9345375770 70.9349884745 -0.4162790607 0.2853959269 -73.2674311571 73.2691695562 -0.0352312860 0.0032561515 -12.0159259158 12.0159780068 -0.5526139327 0.1840184054 -38.1493061234 38.1569977600 -0.2627684002 -0.8634253887 -16.7180867849 16.7498254263 -0.0254293322 -0.0449389453 -0.0872282873 0.1013653484 -0.1526456205 0.0815327028 -0.4068631407 0.4421378544 -0.0270411706 0.1490113019 -0.2903171727 0.3274441232 -0.2022984372 0.1812345234 -0.6137487001 0.6711617369 -0.1590175162 0.1705217497 -2.4744190144 2.4853799904 -0.1017656415 0.3497686066 -3.8867905627 3.9038231520 0.1011661650 0.1516125452 -1.1933276222 1.2071668364 0.1098960640 0.0699908759 -1.8226964210 1.8273472880 -0.2932076454 -0.0906703398 -1.1818779932 1.2210763386 -0.0659637287 -0.0468570386 -0.1345036000 0.1569650088 0.1279707513 0.0269499484 -2.5229980596 2.5263851689 -0.0323821773 -0.0076798238 -0.9863145210 0.9868758379 0.0555209794 0.0489592243 -0.9211249632 0.9240945746 -0.0094347707 0.1298820387 -4.4382252485 4.4401353262 -0.0356764957 -0.0129541383 -0.1982388010 0.2018396499 0.1017247900 0.0065374515 -1.2694880197 1.2735739097 -0.0343863467 0.1850660888 -5.5250149419 5.5282205082 0.0441844005 0.0334133675 -0.7436630693 0.7457234574 -0.0757712757 -0.1749396660 -1.7161050680 1.7266620333 -0.0580456938 -0.1068025824 -0.4584686721 0.4743096219 0.4321018957 -0.0297682029 -17.0372630195 17.0427676564 0.0732649710 0.0453600836 -2.4279331202 2.4294617777 -0.1050253506 -0.0127040321 -4.4911980090 4.4924437974 0.0331068449 -0.0459211602 -1.8260932889 1.8269705843 -0.0896116698 -0.0604605539 -81.6885541146 81.6886256407 -0.0876323439 -0.2745013499 -321.8901361163 321.8902650895 0.0845899406 -0.0171079768 -25.7093847847 25.7095296369 0.0283740998 -0.0911962420 -80.1282783191 80.1283352394 -7.0122011287 -10.7350160681 11.8969713738 17.4914111072 -0.3750298955 -0.5819877570 0.6006439405 0.9165862289 -7.7074851322 -11.5764429326 13.0636112683 19.0808096632 -6.9062567080 -10.5294219618 11.9585302331 17.3658156705 -0.0161234609 -0.1309355460 0.1086167030 0.1708849653 -0.0521104065 -0.1175931104 0.1450746520 0.1938828224 -0.3674840979 -0.8353402941 1.0293364923 1.3756350691 -0.1331464578 0.0869850790 0.1052571057 0.1907182254 0.0264514470 0.0042286617 -0.0065960483 0.0275874696 -0.6447306652 -0.2048251628 1.4490866895 1.5992133103 -0.1046188890 -0.0642652802 0.4026956119 0.4209974988 0.0529196738 0.0646846727 0.0156174284 0.0850206023 -0.0380700877 0.0060188847 0.0989710963 0.1062112821 -0.2870837316 0.0370829579 1.5831669850 1.6094129107 -0.4765195486 -0.1106912482 2.5361675682 2.5829187688 -0.7121563132 -0.0060076237 8.2295794746 8.2753160944 -0.0346920156 0.0080185635 1.9792180224 1.9795382829 -0.4442049965 -0.0958965124 9.9313924956 9.9417841016 -1.0150352229 0.0845321240 13.5005444764 13.5389121920 -0.2176760378 -0.0439273710 3.0572984258 3.0653525304 0.0184270253 -0.0278288130 1.9884284736 1.9887085741 -0.0513911182 0.0979816423 2.5815213731 2.5838912611 -0.2838639572 -0.8775389825 87.9448432401 87.9496793965 -0.1440414747 -0.5443987305 44.8932038017 44.8967355774 -0.0794371505 -0.0176763676 12.7639531096 12.7642125374 0.0410803295 -0.0365985606 3.4506880516 3.4511266388 0.2099531955 0.1309440919 13.3067315429 13.3097637409 0.0933166580 -0.0186506817 4.0552868614 4.0588036611 -0.1565059600 -0.0493994902 7.8884786696 7.8901856851 -0.0415684098 -0.1040008888 3.2557909899 3.2577168519 -0.1273965559 0.0212397319 3.1344302792 3.1370900822 -0.0624883151 0.0789628673 6.0622209463 6.0630572095 -0.0589306749 0.2527972164 13.3876793580 13.3901955866 -0.0323245673 -0.0073439485 1.1964171028 1.1968762238 -0.0427288972 -0.0514797617 3.9574275328 3.9579930017 -0.1022429002 0.0262223868 2.0038357345 2.0066137833 -0.2874809625 -0.2393917742 5.8093980103 5.8214310069 -0.0577844438 -0.0582931312 0.6018011734 0.6073728537 0.0579195329 -0.0072757797 0.2170657380 0.2247779880 0.1255112270 -0.2047590132 0.4074200854 0.4729381013 -0.2204168928 0.0941428055 0.9435508040 0.9735166122 -0.0037110388 -0.0261948158 0.0559078426 0.0618516536 -0.2223889952 -0.1971888040 0.7276565306 0.7860180127 -0.2440262906 -0.0719073658 0.4852746899 0.5479151617 0.3218592474 -0.2506588306 1.4349411932 1.5726267457 -0.2789439976 -0.1339436138 1.7190566182 1.7466843739 -0.1681405860 0.0032694745 1.3535391203 1.3639465152 0.5641394400 0.1785432250 3.2415346193 3.2950990393 0.1830530936 0.1166482211 1.5655162834 1.5804924790 0.1227429751 0.2901578468 8.3412711936 8.3472188505 -0.0339993212 0.0646983467 1.5173497419 1.5191089721 0.5262670560 1.1332306526 28.6165624318 28.6591898827 0.1505960986 0.2854876093 8.7400841232 8.7471556878 -0.1157740067 0.1174543099 21.4919466718 21.4925794375 -0.3418992205 0.2106792171 32.9600342406 32.9624807615 -0.1880166944 0.0953141886 18.2588524490 18.2600692175 -0.1103205598 -0.0343984506 6.5556040646 6.5566224941 -0.0277763652 0.0189925496 0.5225173367 0.5235996663 -0.1274844878 0.1252211151 13.3054108067 13.3066107389 0.1506121653 -0.1488511353 33.1246997762 33.1253766159 0.3594714897 -0.1476938576 46.5693726386 46.5709942043 0.3869891881 -0.4785665017 422.0013919802 422.0018407776 0.7963266757 -0.8410053986 690.8234833019 690.8244541905 -0.0107313320 0.0305689475 -0.0988831496 0.1040552705 -0.1676936440 0.0386776877 -0.0754584845 0.1879124920 -0.2095038304 -0.1152595348 -1.2924624807 1.3143956328 -0.4604597344 -0.0436592014 -2.5389357983 2.5807216589 -0.3782398285 -0.0198395455 -1.1936130813 1.2522664107 -0.2306071940 -0.0674169883 -1.1223500270 1.1477779887 -0.4851661512 -0.1111920612 -2.7190870781 2.7642692356 -0.2294563566 0.0355387473 -1.1162595069 1.1401528446 0.0156712906 -0.0514644298 -0.0888097137 0.1038332420 -0.0011137634 -0.2980783552 -1.4110803638 1.4422204198 0.1295972592 -0.0869863868 -2.9849831894 2.9890611774 -0.5120784674 -0.7489702747 -12.6722171088 12.7046553389 0.4110997624 -0.4072619184 -13.8321570100 13.8442563120 0.4978266572 -0.3095753527 -13.1989805179 13.2119928471 0.5496692362 -1.2233302550 -53.2859923163 53.3028671866 0.1328034291 -0.4426351937 -16.4331339862 16.4396306307 -0.0151624860 -0.0033273166 5.7987119473 5.7987327254 0.0275771895 0.0828706111 2.6444818727 2.6459237356 0.1202769355 -0.2498196464 -1.6573340422 1.6861531097 0.5271816186 -0.1215505291 -5.0841556208 5.1147642322 -0.3844399588 0.3029434169 0.3570259961 0.6058352562 -0.6224790076 0.4942719513 0.3792406221 0.8806862814 0.0043551465 0.0857879612 -0.0685970528 0.1099276910 -0.0679018035 0.0346280209 0.0364217602 0.0844766203 -0.0738116738 0.3043536707 -0.0402854439 0.3157566104 0.0505623180 0.3748758852 0.0007681334 0.3782711558 -0.1437615877 -0.1537848103 -0.1525856130 0.2599990986 -0.4281282746 -0.7880110370 -0.8604363214 1.2428217399 0.0054234218 -0.2332115917 -0.0220698108 0.2343163173 0.1539037433 -0.2728645143 -0.0667317622 0.3203038143 0.3025093768 -0.1678951268 -0.2414925808 0.4219234092 0.0455444065 0.0195041891 -0.0059749281 0.0499039689 0.0056668453 -0.0415636456 0.1938524969 0.1983392052 -0.1061515546 -0.0762065453 0.1242809195 0.1803367323 0.0132954767 -0.0000934171 0.0334409374 0.0359871466 0.6903026869 -0.8073346562 1.0845169538 1.5180527229 -0.0069315046 0.0164021368 0.1238495524 0.1251230893 0.2769827198 -0.0992321250 1.4353356221 1.4651808045 0.1542086716 -0.0582640457 1.2896761041 1.3001690147 -0.0033102172 -0.0372777343 0.9336254743 0.9343752529 0.2705326904 0.2911067676 9.9208603464 9.9288167019 0.0034574767 0.0073536705 0.0267759806 0.0279818468 -0.0190604912 -0.0409845514 -2.2641862933 2.2646374117 0.1845238222 -0.0967263147 -8.7844124006 8.7868826238 -0.1418396798 0.0147600402 -3.3262906698 3.3293461781 -0.3711529056 -0.1764594776 -10.9844473288 10.9921324385 -0.0877035580 -0.0417962392 -5.6381497652 5.6389867542 -0.0926011626 0.0335504865 -16.9882744188 16.9885599254 -0.0227715681 -0.0573270203 -2.9435994073 2.9442456423 -0.1872965803 0.0088274013 -14.3214136024 14.3226410101 -4.0584707663 -5.7266133658 6.4156165410 9.5092282128 -4.8086415902 -6.9624382891 7.8798910356 11.5624938316 9.6582465979 15.3957253576 7.6329251227 19.7127144844 9.7802117483 15.2879413342 8.0349689108 19.8482718961 2.4896951849 3.8827782447 1.9844125499 5.0231386567 1.9231689903 2.9432475405 1.1318433512 3.6961918519 3.0787214566 3.6052499647 0.5991062341 4.7786275640 2.6459763200 3.1574836762 0.3999900235 4.1389474351 4.6845175919 5.6387296067 1.0389252235 7.4040085269 3.3852791608 4.1065070442 0.8687627683 5.3924265269 0.0499798877 0.4021298662 -1.1051475717 1.1770970962 -0.0781380185 1.1356158980 -2.9393931110 3.1521041986 0.0520986545 0.4697307300 -1.9999252917 2.0550090999 0.0253080387 0.5019644865 -1.6083465764 1.6850482345 0.0250716779 0.0287585545 -1.0690127871 1.0696934058 0.3838037275 -0.1170323945 -10.3062102687 10.3140182269 -0.2209352886 0.3068964819 -14.1635603385 14.1686075291 -0.2607340492 0.3841435377 -23.9394889502 23.9439904715 -0.1255716019 0.1252822711 -17.9748219161 17.9756971155 0.0117084264 -0.0231800849 -2.0780136680 2.0781759329 0.3331685142 0.3284940684 -2.9891957764 3.0288084764 -0.0346253234 -0.0282410341 -0.4996247303 0.5206737223 0.0618588474 -0.0008099982 2.9693523686 2.9699967444 0.1703034894 0.0224966179 2.4226885318 2.4287711087 -0.0483426237 -0.4276982937 1.1052046762 1.1942445315 -0.1655185811 0.0232509088 0.3898694046 0.4465590028 0.7425073915 0.7760905545 7.8874959880 7.9602906188 0.0407215980 0.0092446111 0.4032919117 0.4054479960 0.0580963349 0.0236278284 0.2923363758 0.2989883191 0.1396745133 0.0244196279 2.4951740685 2.4991996559 -0.7453308908 1.7840201757 16.9034499735 17.0142395339 -0.2566408366 1.5769785340 14.0566616664 14.1478600080 -0.0967855813 0.5534501190 3.0978944051 3.1515240778 -0.1761808187 0.6274763859 6.8337670101 6.8661938240 -0.1493106010 -0.1517792681 -5.0696703426 5.0760582906 0.0122326497 0.2267462899 -5.7946201929 5.8007470624 #END -0.0870011740 -0.3325148391 55.1232931925 55.1243647374 0.9503864966 -0.9434141788 -5.9923090573 6.1417027304 -0.0674063188 -0.1765739086 -0.0593642863 0.2423341916 -0.7412584642 -0.3834585977 -7.1025047812 7.1527308462 -0.7913457725 0.4066990075 -2.7437544393 2.9263392827 1.6830340657 -5.0960013775 -23.3478463345 23.9571125545 0.4636873224 -1.2989690131 -4.6651712673 4.8667883833 0.7832733925 0.2794330984 -1.9661020565 2.1910724134 5.4471709951 -0.1094335735 -11.1165279349 12.3896925645 1.2943292449 -0.3954243017 -3.5858227146 3.8352643844 -0.5527868703 0.6321115818 -9.1051373604 9.1448425089 -0.9133969524 0.9060589018 -52.6512180390 52.6692475614 0.1109065086 0.3305323279 -77.2115375354 77.2124508109 0.2093849809 0.1201268175 -37.8903889813 37.8943728096 -0.5503286871 -1.2271748338 -30.5283620600 30.5582916667 -0.5991979365 -1.9770283326 -69.2321085392 69.2646820027 1.0305865537 -0.2671866834 -15.3767023746 15.4141478218 0.3377867118 -1.1645738461 -4.0733838996 4.2786013438 0.1696747258 -0.0903716397 0.0227415700 0.2386493447 -0.5138336663 0.4566481549 5.1953595924 5.3239707419 -0.0831547119 -0.3216931319 14.7651032639 14.7986156840 -0.6771365656 0.1943142393 31.4623410460 31.4842107514 0.4616625851 -0.6491372717 88.9218950834 88.9304263374 -0.2698641228 0.2200991668 19.6106771424 19.6142654223 -0.2263752416 0.0111909567 359.8508703466 359.8509687913 0.1214234165 0.5459934219 1606.5897323719 1606.5901044781 -1.6982147527 -2.2509123762 5.0939227520 5.8973671641 0.2334174178 0.2153123959 4.1184057584 4.1329878895 -0.5717483277 0.2119515852 2.8063187437 2.8751911764 1.0629712232 -0.5149202348 4.7702799576 4.9163097266 3.0211707968 -0.4830093660 -0.8873210518 3.1886657813 0.0002401324 0.3171593903 -0.0254681332 0.5872646101 0.3828007815 0.2757407377 82.5341355437 82.5369598441 -0.5055358075 -0.4778191256 80.8148143777 80.8232694974 -0.7241985441 -0.4640504200 57.0437992004 57.0504541027 1.7179151606 0.0900657582 62.9791655781 63.0096614261 0.1348631439 0.4418329596 1.2035371340 1.2966826325 -0.2673488376 -0.0590504865 4.0433290908 4.0549910336 0.1704351839 -0.2793605342 2.2549187172 2.2828115704 -0.3400450548 -0.3904544314 2.3802624589 2.4399209947 0.0794387033 0.3295328065 -1.6624561805 1.9388175580 0.6101256988 0.2837924156 -3.0304256447 3.2433104811 0.8911663269 2.4891939513 -21.4584725463 21.6211883983 0.1490517271 0.5328745153 -3.7774946301 3.8203556289 -0.0951669078 -0.0604151786 -18.3340084029 18.3348861637 -0.0171611389 -0.0663646933 0.2620827252 0.3047390965 1.7530309512 -0.9206688549 4.1640178846 4.6371795910 -7.9620480794 -0.4014558619 -6.3316861652 10.1816062538 -5.3417808803 -0.3407401000 -3.3824740210 6.3333511727 -90.4776815741 -14.9972461808 -60.4964670500 109.8679674034 -5.2666598765 0.6161457067 -5.0637639102 7.3486520999 -4.9519452767 1.1020671825 -5.5458284477 7.5323414839 7.5304564044 -4.9650250301 -40.2370099078 41.2358544632 15.2197276150 -10.1465841128 -77.9887957055 80.1052153947 4.1304557301 -2.7486646609 -21.4628680607 22.0288566963 1.1422678454 -0.6260863825 -4.8235241069 4.9982621563 1.2308067856 -0.5879067717 -7.7803472755 7.8990077505 0.0910422400 -0.0754385096 -0.1753552617 0.2114926145 0.9720959830 -0.7498467963 -4.6672807782 4.8512257874 1.1011432178 -0.9641208357 -7.0423291043 7.1941590454 0.3770328187 -0.2320166821 -3.6308361706 3.6603874890 0.1336774156 0.0454710032 -0.6196083355 0.6506393301 0.2951504618 -0.5203359727 -2.8390666140 2.9430942082 1.2812856446 -0.7689604013 -6.4465852434 6.6189828590 -0.6266331786 -0.0078747524 -2.4918450365 2.6164219457 -0.3605866116 -0.2266312264 -0.9488731439 1.0493924172 -1.0794819998 -0.7966582090 -9.2513828340 9.3491983515 -0.3427584698 0.0791099922 -3.2810946964 3.3028478547 -1.8078002301 -0.1277948909 -12.8424270833 13.0035670948 -0.5066128746 -0.2136634833 -3.9478851831 4.0949306100 0.1426216080 -0.0372859148 -8.4764991556 8.4789297015 0.0443715360 0.5065632811 -14.5412107295 14.5507685177 -0.0678265970 0.0233302055 -4.3208220402 4.3236706204 -0.1852950979 -0.0933429169 -6.9740380548 6.9785194524 0.6497993617 -0.0441047589 -105.4312783949 105.4374648738 0.0095055970 0.2115917547 -17.7810495217 17.7828586933 -0.0308014968 -0.2107152646 -10.5906288441 10.5936891002 0.3912129587 0.0796724013 -573.4461279372 573.4470345133 0.2603488015 0.1968201586 -361.8647325891 361.8649066865 -0.2766613726 0.6598287708 -1756.0233968056 1756.0237932314 -0.0590479975 -0.1929143862 -576.2689853663 576.2690375836 0.0406984343 0.0109311732 -32.2038019674 32.2038295395 0.4575374172 -0.2997640198 -295.3887487156 295.3892551646 3.2823156204 -2.9818689980 -17.5795335749 18.1307644364 5.6393780253 -5.9681644004 -33.5360990751 34.5269603612 3.0042655622 -3.6427249992 -18.0160384578 18.6310584686 3.7248855903 -3.7270267725 -21.3425313423 21.9838264437 0.9277013079 -1.4313711106 -5.9868017520 6.2266144875 0.7369104985 -3.9160693847 -13.6762038498 14.2455841591 0.0878730549 -1.0841054646 -4.7151502064 4.8409841547 0.3092490627 -2.2185006386 -8.6036012779 8.8915023928 0.3538507693 -0.7242058481 -2.7583701070 2.8771113829 0.1184407100 -5.6192874010 -19.4217005848 20.2191085977 0.2052096977 -0.1861049935 -1.3385059545 1.3668739075 0.4626368922 -0.7276458096 -4.4761219282 4.5584173607 -0.0622130182 -0.4444848938 -0.8492705233 0.9706582752 0.4780360733 -0.3094442273 -1.1956097947 1.3316293716 -0.1334704309 -0.0363261693 -1.2624742746 1.2776756338 1.5352841074 0.5025011685 -3.6132410558 3.9603781925 4.2297809568 0.2416668389 -6.0136029091 7.4157413887 0.5583387043 0.3901534697 -1.5875514530 1.7331362438 1.0987099944 0.2746537948 -2.0377699614 2.5130569766 0.0503815438 -0.0498477581 -0.2311048340 0.2417282425 -0.1914700125 0.0459063908 -1.3627881182 1.3839940038 0.0162499052 0.0187965386 -0.8817824218 0.8931054773 -0.7412643533 -0.0667961559 -11.9071060975 11.9311604620 -0.2591399906 0.4997339268 -7.3987330705 7.4214296713 -0.5785716133 0.5280989697 -13.5953733638 13.6268650648 0.0079358359 -0.0526823797 -2.3070299861 2.3118619233 -0.1474294183 0.1280510638 -7.8684440079 7.8721041278 -0.3626930347 0.7438100032 -37.4626385425 37.4720371198 0.2958867397 -0.1042962057 -48.4438892573 48.4451061803 -0.7411760350 -1.0197915713 -48.3306780347 48.3471173501 -0.0377652629 -0.3786778891 -26.1725767414 26.1753432918 0.2717857811 -0.4543879142 -15.6142976246 15.6238953524 -0.2870280475 -0.4862260848 -11.8943456992 11.9179654924 -0.0008625717 -0.6392752542 -16.2055102027 16.2187149402 -0.4317654959 -0.0386455356 -6.9429601630 6.9564797668 -0.0666086983 -0.0261062485 -2.3043869407 2.3054972191 0.1944102280 -0.0746462257 -0.8707150714 0.9060860424 0.2547011309 -0.0631254458 -2.3138095977 2.3328206376 0.0459224492 0.0113351322 -0.9352370077 0.9467763210 -0.6551326304 -0.0956863609 -1.3803139487 1.7955422114 -0.4402810433 -0.0082201787 -0.8977037523 1.0095874307 -0.3880586783 -0.1054462677 -0.9977442244 1.0847496372 -1.4911028693 0.0645657729 -1.2484618480 1.9508186171 -4.2758005177 -0.2540916515 -4.7844070034 6.4405918959 -1.0645355335 -0.0869048335 -0.7467838533 1.3107075420 -4.1704212309 0.1413599930 -2.9564512665 5.1159045893 -6.7214273903 0.5179850354 -5.2244615683 8.5299691163 -10.9812858477 0.8824634938 -8.9501404434 14.1947833526 -6.5737541039 0.7011151347 -4.5885056738 8.0485818350 -10.0144006454 0.6120461624 -7.6048708351 12.5903280734 -48.7864656389 3.0925427276 -36.9701857333 61.2920983828 -0.1744817407 0.1060700951 0.5970855527 0.6310355775 0.2698790723 0.2761291536 0.2877842684 0.4815618426 -0.1181492628 -0.0963447183 0.5625931887 0.5993600203 0.5448590417 1.0797898567 6.0163532051 6.1383062146 -0.0991954738 0.0111712356 0.5218228243 0.5493117361 -0.1640719025 -0.1119278100 21.9081093567 21.9094541875 -0.3757032774 -0.0710496348 98.9000541171 98.9008917308 -3.4112729192 0.5869579789 11.4696452111 11.9907341238 -0.6237258479 0.0334833991 3.1771973436 3.2410211071 -1.6927480715 0.1605487594 8.7052005479 8.9191949810 -0.0390923294 -0.0342212478 0.0131051678 0.0535821746 -1.0156687351 -0.4788967970 0.8945537406 1.4356711032 0.1403964037 -1.2104612787 1.7060950470 2.2974942332 -0.0445518443 -0.2587226208 0.9887509981 1.0324875702 -0.1061047793 -0.7037474008 0.1475260249 0.7401096819 0.0030710788 0.2036589940 0.2060975570 0.3216246341 0.0664847935 -0.0063530531 -0.0125073765 0.1552314672 1.7816335919 0.4191134950 0.3573473270 1.8700404473 0.8183810707 -0.1935213908 -0.1324688962 0.8626852838 0.4538324957 -0.2499562061 -0.3643611887 0.6485991828 0.4325994448 -0.0704508624 0.3443272271 0.5745838737 0.4292027648 -0.4414146585 -0.4423271251 0.7708404404 -0.1637201741 -0.2576483448 0.9640116017 1.1252316620 -0.0986561619 -0.4962267653 0.8518250961 1.1068970121 -0.5355345976 -0.4141873020 0.8527438447 1.1954754079 -0.0102249211 -0.0186372506 0.0257045785 0.0333559811 0.2389552179 -0.1449534319 1.0675040313 1.1034835524 0.0296638970 0.0640748962 0.0630423561 0.1686406317 -0.2191312399 0.1253376739 0.2403126607 0.3754437276 -0.3633165213 -1.2086396619 3.3993166846 3.6287246291 -0.0076307593 -0.1433196411 3.1171990036 3.1236210015 -0.2771830040 -0.1411631823 82.3560763377 82.3581429378 -0.4987460856 0.0027167018 72.2404096305 72.2422661494 -1.0294262543 0.1059350068 260.5137833005 260.5163063440 -0.2544552233 0.1195288440 60.2751883010 60.2760055006 -0.3753796092 -0.1044768788 60.2969405362 60.2983610315 -0.6634263044 -0.7353394526 63.0375307465 63.0454647138 -1.1845176221 -1.3646714938 150.6709872875 150.6847443210 -0.0442653516 -0.4038808264 18.5007103728 18.5056975882 0.0411302406 0.1114452630 7.7316949324 7.7338669536 -0.0332509154 0.0855011492 41.5966666040 41.5996962681 0.3081267183 -0.1703736155 17.2056620783 17.2098302311 1.1321906557 -0.3551541309 85.9306288015 85.9439428171 0.1744542066 -0.0885412819 8.6807159688 8.6840418783 0.7596268773 -0.0042450606 16.9139591329 16.9315842243 0.0378796388 0.0551606663 0.2978870823 0.3053101373 0.4255723291 0.7816686189 6.8337799317 6.8914922761 0.0453912912 0.0128893981 0.3503519745 0.3800694632 0.1556826688 0.3099344525 1.3979417001 1.4470719540 0.1004431968 0.0841065459 -0.0546238976 0.1419384270 0.0806106784 0.0422764789 0.0744815961 0.1176133083 0.3518337308 0.8942221112 0.2465037761 1.0018303523 -0.3957968675 -0.2783808842 0.1829096698 0.7150160728 0.4066045049 -0.1361275347 -0.0628934061 0.4552947337 0.2127360352 0.3603729083 -0.1400357758 0.4412881963 0.6058838937 0.8381084807 0.0662905163 1.0362989678 0.3881524466 0.7375081123 0.0250395871 0.8337910520 -0.0299384922 -0.1751543558 -0.1911604814 0.2959687082 -0.1110126435 1.3028162620 -3.9117016243 4.1268078950 -0.0812428464 -0.0225762981 -1.1889801015 1.2001098100 0.1081900974 -0.0903006645 -1.3999332154 1.4139137525 0.5735882845 0.9976177803 -14.0087557501 14.0566340994 0.3792958369 0.1998137417 -4.7886458575 4.8987459413 0.0025766428 -0.0093740326 -0.1471524202 0.1474732055 0.8854298869 -0.6023016798 -5.4826284990 5.5862302724 0.4023978277 -1.0194222893 -11.1775799042 11.2703056269 0.4692447655 0.0562961840 -47.7912800235 47.8028258243 0.1543172500 0.1263988732 -5.6915174513 5.6967219672 0.2005652689 0.0196291372 -63.6137239313 63.6141962452 -0.4931225178 -0.1551246371 -90.7279259081 90.7295059661 0.3281017696 0.3591992780 -77.8203459984 77.8275383010 0.1729329500 -0.2280344850 -27.0605780818 27.0624513198 -0.4014140272 -0.2040100161 -63.5874809775 63.5892284130 0.6032677187 -0.1699258373 -4.4824442439 4.5281997433 -0.4847992474 0.0050204844 -5.3294202363 5.3532471786 13.0721616379 2.3799067824 19.8149507196 23.8578523339 84.2198286847 15.6927797099 129.2025165086 155.0243614103 475.3757418092 87.1506465870 727.7019959738 873.5717174481 20.1440435263 3.9366613972 31.2832386057 37.4155156347 14.3400332564 2.7458146805 22.0727225848 26.4647148928 16.9167679206 3.3123677859 25.9059601388 31.1209130474 37.5691166193 4.6091059057 53.5963521299 65.6145625774 4.3333750434 0.7205872975 6.6123640162 7.9397873390 3.7969137994 0.6904446856 5.5959111615 6.7990418278 4.3049639553 0.4411413712 6.1539541273 7.5244901190 2.3589895254 0.5585733203 3.3915326527 4.1711879908 1.0225826806 -0.4657318838 1.4257728070 1.8206837749 0.4634673409 -0.0381369143 0.6473408215 0.8091886828 0.3962637012 -0.1757507277 0.2814874301 0.5353766874 -0.0598268198 0.1608839269 0.1050371556 0.2448989082 0.1146639413 -0.1824962773 0.4563275570 0.5236099071 -0.1549479043 -0.7977194249 0.9768728093 1.2783291455 0.3883602313 -0.0549882923 0.1309856697 0.4364451994 0.1317639703 -0.0480532216 -0.0760011438 0.2119594649 0.3624911115 0.0136724208 0.0371966386 0.6136866390 -0.0697143775 -0.3597657188 -0.3950783564 0.5566490452 -0.4852702953 0.2480513318 0.1462074512 0.5812685493 -0.3609537796 0.1296203854 -0.2496902795 0.4784496796 -3.7411641252 -0.0685348668 -2.8052304014 4.6765717833 -0.9078458812 -0.0058319379 -0.6003574394 1.0884149992 -0.5862389037 0.2106038780 -0.5141576939 0.8077055031 -0.7322084663 0.2979025037 -0.8573410415 1.1661512772 -2.8181205243 0.1427128163 -1.9215588754 3.4138773776 -1.7513841593 0.0688119164 -1.0692080794 2.0531165262 -11.3391403137 -0.3710796812 -8.9891262093 14.4754161589 -7.0398412444 -0.4343202426 -5.3735070739 8.8680356831 -6.6535061067 -0.8552947309 -4.3543816068 7.9987993818 -1.8969704172 -0.1717202098 -1.2274003133 2.2702369718 -32.5291087981 -4.8965798811 -22.5503292384 39.8830320096 -8.6939115604 -1.2111183838 -6.0055461521 10.6365864040 -42.3980428751 -5.7539740904 -29.5250125991 51.9933551239 -1.2655334251 -0.2070703083 -0.8531223749 1.5465285429 -22.7341428613 -3.6036303875 -16.1482264190 28.1331294149 -27.5147210703 -4.6262192229 -18.8387503300 33.6657061958 -33.3791003684 -6.0426562973 -22.0946483434 40.4829717502 -40.7238376151 -7.2987027719 -27.2288638259 49.5291077781 -51.5103119414 -8.8459161077 -34.0288073131 62.3661901596 -72.9769482032 -13.0728773785 -49.6934852325 89.2524344001 -8.9831916629 -1.6291807004 -5.4882192665 10.6532620689 -4.9759200582 -1.0645595300 -3.3726754258 6.1047528161 -8.4499746560 -0.8680564716 -5.5310453029 10.1799237548 -3.4856441405 -0.2050748479 -2.6537896311 4.3879209153 -8.5347798814 -0.5658240015 -9.5448046179 12.8509248777 -1.9456649591 0.1057630379 -2.2177694887 2.9554659942 -4.5476629296 0.1323150702 -5.8313613910 7.4126352960 -8.7229024752 0.2593553670 -9.8619709772 13.1687039739 -6.4448190998 0.2410257436 -7.1307870310 9.6146716179 -7.3467487629 0.2962823456 -7.8387667134 10.7484065789 -2.1814037816 0.5574000007 -2.3927344493 3.3223540335 -1.4440520997 0.2985310391 -1.7745594143 2.3594722552 -0.9342994408 0.1879275267 -0.9963175693 1.3857707907 0.1815578004 0.0117226148 1.9069784117 1.9207152580 0.0418554385 -0.2433680658 0.5369358470 0.6072559443 -0.3937837288 0.1631826254 3.0409255661 3.0706550593 -0.5131186535 0.0579004912 3.9452005743 3.9788504358 0.6181168537 -0.0458355005 8.7191973231 8.7411996487 0.1683435670 0.1791886766 1.1911444780 1.2162537999 0.0685877559 -0.1498161307 6.8119022449 6.8153239932 -0.2229944304 0.0814121460 12.3278393376 12.3309146851 -0.0012270116 -0.0384772503 0.4698116421 0.4916144509 0.2113731641 0.0699482398 1.0076474547 1.0413474677 -0.1112835570 -0.1740218573 8.5249985371 8.5286427689 0.0085440097 -0.0146668401 10.7763772149 10.7772943627 1.1315469795 -0.9999389568 -5.9516516450 6.1402307601 0.9067629472 -0.6822314098 -4.7900252012 4.9226009555 0.1229818962 -0.0587032573 -1.0963625347 1.1047992699 0.2759303565 0.0576546390 -1.7547529038 1.7772505092 0.6972041072 -0.1569979304 -3.5027767758 3.5776622036 0.0885937464 0.1159527363 -1.0863588102 1.1049656729 0.4672554513 -0.3719719736 -1.9953773720 2.0828398072 0.0205350408 0.0043108931 -0.1636190151 0.1649589458 -0.0100345695 -0.0013278325 -0.0104095185 0.0145194283 -0.0567841557 -0.1167804921 -2.3804128657 2.3839520832 -0.1519711919 0.4661466020 -1.3749098538 1.4597140144 0.0087598390 0.0821014793 -0.3966681340 0.4051703298 -1.6136277351 -0.5236514205 -8.6936902279 8.8576664566 -0.4189949187 -0.2093615366 -2.3414580689 2.3878473325 -1.0385513740 -0.7150178140 -7.0598857857 7.1715986181 -0.1980467466 -0.0842728435 -1.4232740502 1.4394559556 -0.7242076058 -0.1085898850 -3.4551237194 3.5318760363 -0.5252342413 0.0142220802 -2.1734125112 2.2360221868 -0.1342469644 -0.1327274202 -0.4430822618 0.4816229918 -0.1679861432 -0.0818739517 -0.8496929083 0.8700004176 -0.0102504505 -0.3851552776 -1.9845806420 2.0264475737 0.2175009574 -0.0138354576 -1.0610858136 1.0921909060 0.0723048473 0.0188774865 -2.9315667129 2.9325190097 0.0101844053 -0.0875912687 -1.7445551246 1.7467823377 -0.1224120509 -0.0561593151 -1.2805436754 1.2876065717 -0.2207057955 -0.0478365359 -4.4518196487 4.4575438940 -0.2996301990 -0.3494524579 -58.9391018686 58.9408994193 -0.0764470202 -0.1421051583 -32.1648286670 32.1652334237 0.1096790779 -0.1070513621 -0.7020847244 0.7186184345 5.7602502087 -5.8670803675 -33.3583907560 34.3567365787 2.6508364569 -4.9543958387 -22.8750380346 23.5603058674 0.1097008398 -0.5647978576 -1.8086529944 1.9030860026 1.0573797268 -5.1724046373 -17.8776808704 18.6414263056 1.2135437078 -3.7652019737 -16.4535044355 16.9297051915 0.6750256383 -1.1043451969 -4.8079410714 4.9810656548 0.3515346721 -0.1952930974 -1.7558659018 1.8067265619 0.2778237669 -0.1836978269 -0.8483701972 0.9114071146 0.3257760178 -0.2345173350 -1.5011913630 1.5539317561 3.5226313968 0.7703311238 -8.2201208410 9.0251359675 0.3843905862 0.1415950794 -1.1466816009 1.2256279076 0.0410904210 0.0790692029 -0.0560681666 0.1052805815 0.1508152486 -0.0121627600 -0.1662535544 0.2247963885 0.7231481396 -0.0315347398 -1.5076268930 1.6723864745 0.9471177233 -0.1023776910 -1.6766043036 1.9283451881 -0.0072238583 0.0292926177 -0.3667554813 0.3679943269 0.0153217060 0.0965432873 -0.1349436172 0.1666287515 0.0159372123 -0.0729761844 -0.2531386806 0.2985607053 0.7440432956 -0.0896215829 -1.5082469760 1.6899470937 0.8413998826 0.3381336260 -2.2637511970 2.6128926856 0.1176380090 -0.0337515760 -0.4908439371 0.5247717842 0.1266484331 0.2193655102 -1.2037474238 1.2301093094 -0.1291918595 0.0105927004 -5.0746096162 5.0762649161 -0.1289583039 -0.0225192213 -0.6388714737 0.6521457807 -0.2579758034 0.1143384934 -2.0479225805 2.0672715598 -0.0587522422 0.0567638318 -5.5992231648 5.5998191049 0.1245982080 0.0861423830 -11.2531205881 11.2550054633 -0.1710072685 0.0278810150 -4.5226027147 4.5280719889 -0.4740242753 0.6330509953 -71.5276541451 71.5320261147 -0.0996741157 0.1853362607 -25.5453481305 25.5462148971 -0.0012412765 -0.1489985846 -27.1674848532 27.1724513211 -0.2935626640 -0.1232957793 -13.3306833106 13.3344853075 -0.1519583190 0.0327659669 -5.9718928005 5.9739156807 0.1118385076 -0.0318191062 -0.4311623685 0.4465661153 0.0006869178 -0.1061117479 -0.3225557520 0.3395620533 0.0057422111 -0.8292554597 -2.7334985636 3.0066696827 0.0418043254 -0.0377992371 -0.2058528002 0.2550128314 0.0784189558 0.0607223820 -0.0821713258 0.1287977759 0.2304761057 -0.0524609576 -0.2676267045 0.3570650366 -0.2243845946 0.2309064578 -0.3059833503 0.4441756963 -0.4307457289 0.2168218782 -0.5165340636 0.7066548299 -4.6322325167 0.7170720037 -3.2496596125 5.7036881002 -2.9615355729 0.3765523236 -2.1567758528 3.6829562421 -10.9242828531 0.7014967301 -8.2457068901 13.7139130471 -9.9897729091 0.3748365569 -8.1151685109 12.8760252089 -0.1568017329 0.0167425949 -0.1116641384 0.1932251996 -26.1186605583 1.6750073043 -19.5434433557 32.6639902190 -36.4767601036 2.4696692589 -27.4156367099 45.6975976405 0.0221267945 0.0237392607 0.0327958616 0.0461380111 -0.1262398504 0.3551089647 0.8201440683 0.9025935793 -0.1573992600 0.2516650197 0.3184131809 0.4353122592 0.0139884951 0.1480392897 0.1670375425 0.2236355292 -0.0229207878 0.2773569865 0.3617153172 0.4563882461 -0.2462391970 0.5944468675 0.9224006411 1.1246438384 -0.0939732721 0.2225125123 0.6411706024 0.6851587665 -0.0065717381 0.4326085759 0.9573079398 1.0505388424 0.0520542985 -0.1116452814 75.9340348583 75.9341347761 0.0414995949 -0.0237853537 132.8248871130 132.8248957257 -0.0012428115 0.0441879842 176.9896007906 176.9896063111 0.1523728311 0.0862668771 237.5640127498 237.5640772787 -0.9968718827 -0.1759827648 4.7545487477 4.9508391078 -0.0231834143 -0.0341767978 0.4599663873 0.4824462525 0.0213269048 -0.0474961847 0.2500709471 0.2554333631 -0.1371446868 -0.1259031128 0.4295992641 0.4682048554 -0.2350395092 -0.0443619263 1.4549003059 1.4744308907 -0.2545924611 0.0695710156 2.1588975144 2.1749703274 0.0309811652 -0.0492518784 0.0174967426 0.0607594941 0.4036101861 -0.1002357365 0.3333348565 0.5329732749 0.1681981614 -0.1969164509 -0.0373841348 0.2616568051 -0.0181021440 -0.0790082143 -0.0322991958 0.0872537884 0.2279995745 -0.0081446857 0.1879294848 0.2955801637 0.5533445798 0.0332357635 0.2192228277 0.5961153313 -0.3293608729 0.0906596906 0.9256476986 0.9866718938 -0.0741034774 -0.0230768764 0.1066425526 0.1318957983 -0.0397089379 -0.1149253085 1.0382176995 1.0453136457 -0.0935865797 -0.0009450103 1.3430043628 1.3462615123 -0.5322121564 -0.0048873064 17.4397570052 17.4730864090 -0.1493748627 -0.1139396098 3.8592872508 3.8663772389 -0.4231077576 0.1612634509 42.1403719133 42.1532480559 -0.2080090702 0.0033977668 10.2628546129 10.2659117427 -0.0096586380 0.0137907349 6.7236530946 6.7236741749 0.0439367021 -0.0564092219 2.1856799837 2.1868492003 -0.5286085186 0.0151111271 95.2229993723 95.2244677841 0.0037164537 -0.0054635050 0.3149296047 0.3149989172 0.0210443733 0.0695878209 43.8841352148 43.8841954339 -0.1154421608 0.0787894294 45.4812407395 45.4814554942 -0.0595223415 0.0079956275 90.2666814669 90.2680733444 -0.0997500095 0.0493490828 9.2537796125 9.2544487957 -0.4992409651 -0.0525090088 47.3927636074 47.3954221533 -0.5132881368 0.0497811567 74.7684476410 74.7702260631 -0.2818189262 -0.0728203799 41.3309387093 41.3319636517 0.0547430206 -0.1300755865 21.7246510690 21.7251094480 0.0177282700 -0.0833555277 41.4979710302 41.4980585336 -0.0389340416 -0.3971135758 46.5919113011 46.5936198824 -0.0654761983 -0.3882451141 32.9890252453 32.9913747522 0.0478473365 -0.6497496704 20.0605111955 20.0710879981 -0.0649350220 -0.2420676991 7.6871478791 7.6912324008 0.0110670930 0.0309734712 0.5970243158 0.5979296531 -0.1708448534 -0.0061290506 6.2104982221 6.2128506899 0.1334612422 0.4990752477 1.1885909494 1.2960078900 0.2585715529 1.2193440019 2.4029541390 2.7069997482 0.0064913875 0.0373025108 0.2087162187 0.2121227838 -0.0910450121 -0.0863339902 0.4242643826 0.4424285461 0.6148689023 0.5612512493 0.3486652693 1.0306840596 -0.1726046911 0.2282676542 -0.4798179178 0.5758502587 0.3937314966 0.0655228679 -0.1976399923 0.4667537778 -0.1216599709 -0.1074800141 -1.4737843297 1.4826979977 0.0098685384 -0.0020703957 -0.9029101475 0.9029664496 -0.0078814192 0.0115173689 -0.2064560196 0.2069271722 0.2129593122 1.3544772898 -10.7957634176 10.8824844666 0.2187280062 0.6414959390 -7.8273442601 7.8723790924 0.0502959277 -0.0291779608 -0.5813279742 0.5842287628 -0.0148739413 -0.0536282634 -0.0851876482 0.1017553938 0.2301893682 -0.2864576950 -2.7682926504 2.7925775467 0.1560555594 -0.4227780490 -3.6797391475 3.7072327699 0.2068409212 0.1073294265 -26.1644168656 26.1654545668 -0.0211067032 0.0115184852 -3.8885592224 3.8886335640 -0.0289735719 -0.0077910241 -0.4741256617 0.4750740058 -0.1436021987 0.2072288674 -1.4590876017 1.4807099731 0.1952887224 -0.2182387228 -1.7410951595 1.7655532220 0.1727401938 -0.1457115182 -0.8047136454 0.8358439281 16.4235305905 3.0330451619 25.0151549409 30.0780600559 57.9339237968 10.5733904186 88.6060270173 106.3915604512 8.4090615880 1.5045668299 12.9284878837 15.4958651612 127.4932849190 23.1426054352 195.3560886735 234.4229495326 30.2604180610 4.5613512008 44.8029940386 54.2570417606 14.2173973304 2.2725342134 21.5098893182 25.8842349099 2.5710408605 0.6527510781 3.5977592895 4.4699224805 0.8270532818 0.1598806971 1.2439609692 1.5023374658 0.0557341558 0.0102242554 0.1252604955 0.1374809923 2.7863700299 0.4359067041 4.2517981948 5.1021231352 4.0273070367 0.5210739314 5.9077024217 7.1687982196 5.8487356397 0.7409579245 8.8656968861 10.6469389266 6.2674655130 1.1054180735 9.2737964684 11.2475052350 1.9819931541 0.0872472626 2.6132092920 3.2809711598 0.7939593376 0.1060989789 1.2345264100 1.4782299093 8.4311996513 1.2352877852 12.9960925286 15.5412021501 2.4377321797 0.3270161813 3.2191448481 4.0512184977 1.0218562880 0.0496241161 1.3272010529 1.6757432563 0.2553504512 -0.0407388239 0.2672275722 0.3718522288 0.1165415385 -0.0752288815 0.0467842322 0.1463901608 0.1628898488 -0.1215686858 0.7952365882 0.8208003895 0.1798380497 -0.0284374742 0.4170656137 0.4550759719 0.0845906906 -0.0088530415 0.1132947830 0.1416674597 -0.0451280711 0.0352815557 0.0981930763 0.1136803027 0.0900908237 -0.1266332655 0.3448742612 0.3782731771 -0.0116382702 -0.2721568151 0.5442049626 0.6085752399 -0.0686468856 -0.0452141425 -0.0021967055 0.0822285783 -0.5987211834 0.0041724917 -0.1250949759 0.6116643018 -0.6188134449 -0.0114965583 -0.4589695437 0.7705292289 -1.5792030948 -0.2378114802 -1.2574605770 2.0326445379 -0.5372763382 0.0178624458 -0.3592962368 0.6465900683 -6.3614938586 0.3353201312 -4.8072677604 7.9806558015 -0.2731286648 0.0038559682 -0.2377142438 0.3621079918 -3.1219919325 0.1763632235 -2.1669687297 3.8044304552 -0.0843748573 0.0142756545 -0.0521850964 0.1002307096 -9.1176580700 0.6468108317 -6.8789057507 11.4398163123 -2.9011740246 -0.1586573955 -2.1788676142 3.6317278216 -3.9431401809 -0.3523320046 -2.8710159995 4.8903195394 -14.5344129675 -1.9996016777 -10.3876001198 17.9763679153 -15.2126808805 -2.0421053915 -11.0254100555 18.8985586988 -5.7952702425 -1.0137177680 -4.1692886054 7.2108077476 -1.9068301903 -0.3490154653 -1.2816889773 2.3239061522 -1.9958250230 -0.3243824164 -1.3437586068 2.4278032597 -11.6037872330 -1.9046643694 -8.2078838642 14.3403271245 -22.0672949974 -3.5753605989 -15.1080840912 26.9815291787 -10.2144111591 -1.6553496758 -6.8826422478 12.4275959939 -9.7689778717 -1.8594577737 -6.7862523252 12.0392579709 -6.4432476342 -1.1172324113 -4.4362986340 7.9021765297 -3.6388921062 -0.7537436233 -3.0243527587 4.7912811251 -2.3453656205 -0.4098416166 -2.0397615277 3.1351773689 -0.9758244717 -0.0544714529 -0.8930635845 1.3239195990 -0.7970346332 -0.0854386965 -0.8964919431 1.2026062454 -15.6723773756 0.5816875566 -18.0754177398 23.9359598703 -8.5059081824 0.7151759925 -6.8462478221 10.9535718092 -2.6061008600 0.2192051681 -1.8311710942 3.1926478313 -6.8260005429 0.4502907866 -5.0112747931 8.4799717132 -0.7955039042 0.0835504682 -0.6664782348 1.0411533892 -1.2450274576 0.1249612586 -0.8319582565 1.5026187896 -0.0485500075 -0.0039442442 -0.0640747487 0.0804874755 -1.7593311842 0.1468507619 -1.2539197037 2.1654389821 -0.0084826820 -0.1038893124 0.3847377124 0.3986076423 -0.0944885954 -0.0189015292 0.6529137902 0.6599861967 -0.0356310468 0.1921317249 3.1268862234 3.1329860557 0.0148844573 -0.0059342512 0.0555115573 0.0577779837 0.0664396283 0.1187665994 1.1542708008 1.1622653788 -0.0324200900 -0.0100369162 0.1428338202 0.1468104291 0.0066310396 -0.0770690351 0.8587089415 0.8621859736 0.0270960809 0.0077635707 2.4595398879 2.4597013906 -2.3283658619 0.4485071691 -1.9747292337 3.0889288756 -0.7810405621 -0.0554222836 -0.5639129893 0.9749736579 -71.5645454350 5.6898828554 -53.9671214533 89.8127419021 -10.4881293650 0.8769475339 -8.0305188394 13.2392827287 -0.3219921303 -0.1443066646 0.4280518256 0.5720240342 -0.0387608514 -0.2620132949 0.0428828717 0.3024435417 -18.2599013888 -2.9880868703 -12.1848258990 22.1549570942 -13.7635829216 -2.6004126839 -9.1090478948 16.7090572535 2.4017337111 0.2058154857 3.6731675597 4.3935002851 1.8062169764 0.2711933392 2.7497503947 3.3010744957 1.6198370258 0.1630885349 2.2373501906 2.7669849540 10.6906979551 1.1638848266 15.3567403424 18.7476698446 0.2702535822 -0.1499744346 0.4606782190 0.5547555779 0.0866255851 -0.1202802423 0.1196239625 0.1904763006 0.1559358506 0.1438506156 0.1091253656 0.2385735411 0.0465427313 -0.0012991256 0.1071596094 0.1168379024 -21.1356473429 -3.6674074381 -14.2221973425 25.7378391317 -10.8004666691 -1.8236139498 -7.3613762231 13.1971780319 -2.6460100199 -0.4745500598 -1.8343842332 3.2544634426 -1.9590897021 -0.4246208397 -1.2584272486 2.3668490570 #END 6.2275060523 8.0763037877 -93.2724261653 93.8330261104 2.0114086275 4.5095806769 -44.7184568915 45.0000313322 2.1423883879 3.4974935087 -46.7314000454 46.9112515164 0.0089311029 0.1709897691 -0.4229692311 0.4771792337 -0.4219012529 -0.4260844669 -7.9213408952 7.9452293865 -0.1348464248 -0.0321099110 -11.3358103982 11.3375170021 0.0221412649 -0.3175131166 -22.7401635287 22.7428191285 0.4837717359 -0.4511575510 -0.6814600143 0.9599196655 -6.9899083427 12.7184848847 6.1163069175 15.7566344018 -4.8650729439 9.2936561450 4.5482877468 11.4344820829 -0.8940263210 2.4212713553 0.8571773817 2.7232463875 -24.9289858749 11.2108872249 22.6509998507 35.4996563807 -3.3899992263 1.8322836085 3.5839887693 5.2643910625 -1.5544119887 0.8420035865 1.1219282368 2.0984206975 -4.3597726532 4.2698957811 5.3884160200 8.1421210110 -1.9820116272 -0.6302689973 4.4497846168 5.0006542400 -2.5313208233 0.2162282569 6.8499290127 7.3072119877 -0.3717400764 -0.2942338579 2.6937081810 2.7386689827 -0.2810345464 0.6361740512 4.6066541411 4.7526573620 0.0224523639 -0.0238550932 0.4200983727 0.4438869245 0.5777701998 -0.5074057171 604.3959359610 604.3964412246 0.3580270655 0.2447607390 3691.2191768430 3691.2193219012 81.3278746992 -97.0072047770 127.6130498535 179.7514791773 31.7796629307 -37.1462261501 49.5722398046 69.6281293948 35.6076186398 -43.1169527488 56.9565963784 79.8188415748 14.0232806899 -15.5063465433 20.3354761992 29.1659091486 1.0293100144 -1.2063689542 0.8434984210 1.8016033222 1.7810301558 -0.8225742841 -0.3981090938 2.0617537872 -0.2137657535 -0.8086768202 -0.6948760740 1.0963514674 0.0796460273 0.0129547843 -0.2992111691 0.3398800152 -0.5785876318 -2.2610443911 -28.7230495063 28.8180522957 -0.1673112082 -3.3527855200 -50.1875135637 50.3020806970 -0.7167766840 -1.5796688580 -12.3663022510 12.4881557351 -0.9328090423 -0.9679835756 -7.4086162919 7.5457512040 -0.4426488590 -0.4617389039 -3.3582398464 3.4540637883 -0.1732187794 -0.0788865425 -26.2457873171 26.2511184654 0.1482219420 -0.0848929146 -3.5217815949 3.5286827483 -0.5853354904 1.0788897001 -35.9935875515 36.0147809272 0.8851469575 0.6422808435 -13.2661100864 13.3118430891 2.9575279418 5.6512980346 -60.0045630713 60.3499339036 0.9842854796 1.3395105023 -16.7027382204 16.7858288486 0.6379537787 1.5783690836 -16.9688211921 17.0540061756 4.4887749179 9.7082344163 -124.7079171116 125.1692608297 0.0794128405 -0.0819263126 -1.2615566493 1.2743717214 -0.1963288403 0.6798190751 -3.6757269102 3.7458172795 0.0697333899 -0.0220820320 -2.7168091225 2.7213750118 0.5690649074 -0.1869566519 -3.3454730816 3.4015375322 0.1229644547 0.0989996875 -2.5344163359 2.7075780956 0.0205047291 0.2002813479 -2.7926414384 2.9533321944 -0.1030085341 -0.0431512395 -1.3744105402 1.3859858965 -0.1813069790 0.4979489778 -5.4470758162 5.4745721420 -0.3114004773 0.1832494275 -16.6902322204 16.6947261722 0.0798499473 0.0047498727 -1.8170390479 1.8187989106 0.1123752764 -0.0375013640 -2.8089899420 2.8149491708 0.0297713234 0.1585914208 -0.8882895560 0.9135511429 -0.2173264768 0.4812183406 -6.2050186676 6.2274439824 -0.4598201444 0.6748356740 -10.7145481985 10.7456214734 0.1345007024 -0.0954963913 -2.7568377439 2.7652927749 0.0500644429 0.0111406826 -1.1129411105 1.1228304696 0.5814292396 0.7741565788 -5.4149178154 5.5025624123 0.5388718031 -0.0338233938 -4.9926861258 5.0237357989 -0.4155216787 0.3047246221 -1.0082667455 1.1323061383 -0.5911232346 0.6508843750 -1.7358383522 1.9458190906 -0.0419479022 0.8484740076 -1.2259312628 1.5723392312 0.6248766313 0.5803622552 0.0861496688 0.8571539635 0.0806558156 0.0410279827 0.0468924658 0.1019193765 -0.4075133845 0.2773007381 0.2911415917 0.5724738285 -0.6648741166 0.6638582913 0.6287968934 1.1305533844 -0.8097003884 2.2204617177 0.2946285623 2.3817789462 -0.6236619638 1.5110720182 0.2939244491 1.6609287977 -0.7118649421 1.3469464682 0.4653209489 1.5990684333 -0.7602957293 1.0609004882 0.1907233836 1.3190659009 -1.0367463279 2.5337117520 0.8840355147 2.8768136857 -2.0413955209 4.3729929435 2.0610913212 5.2495657131 -4.9215046786 8.6404134996 4.0125697292 10.7237190080 -9.2582853234 16.5015364406 7.6401110485 20.4115528519 -24.0921137612 45.9833660033 20.9518325745 55.9832369881 -8.8768481738 16.3671980544 7.3936577180 20.0342022524 -1.9761593166 3.7211060026 1.5136728994 4.4769455183 -0.7821469251 1.6183065015 0.7053335059 1.9308456954 -11.2575609590 20.9838449988 9.7555163875 25.7341020720 -17.8239343459 32.4745553192 15.0632012353 39.9901099021 -1.2094284460 2.5237393546 1.1683126735 3.0358543746 -10.2851046938 20.4466658086 9.8400448477 24.9133699819 -3.3512748323 6.5056447034 3.1783715594 7.9785024772 -4.9653192453 9.0480143271 3.2742568056 10.8278213922 -2.2830150448 3.9763513244 1.4718567063 4.8155882002 -4.3446649000 9.5429401310 4.6583539228 11.4744743013 -0.3526883691 0.7194162203 0.4411358607 0.9252185776 -6.5444395572 15.8061552271 4.8145218673 17.7788496239 -5.8591302682 12.9252196803 4.1236798493 14.7788675672 -6.4215937708 16.0900927512 4.9955495347 18.0368264230 -0.2548565695 0.6385466363 0.1996528320 0.7294070990 -1.0181664930 2.4438553580 0.8838532043 2.7911088308 0.0675857645 0.0924025079 0.0577872260 0.1282397072 -2.1368526022 0.7241858777 1.6946218467 2.9740745145 -2.2777761173 0.9466470054 2.2129822714 3.3168019103 -1.2855103914 0.3712135652 1.0772308525 1.7234391698 -8.0376874349 3.5935623258 7.0613622143 11.3253581664 -2.8915172074 1.2248457677 2.2303519210 3.8542273404 -2.4522539210 1.0385919817 1.7024733600 3.1607970734 -0.2780211001 0.1581658517 0.2388506292 0.3992014427 -22.4925461469 10.2233617232 20.2936327207 31.9731569583 -2.6976283974 1.3443045755 2.6324920098 4.0042287308 -11.2681919279 5.1333685475 10.0446909322 15.9448712029 -183.8866713079 83.9672276872 163.7229157413 260.1350495886 -2.4865568514 1.1739207492 2.2298682859 3.5402496343 -26.2017782722 12.4828782134 22.9895888235 37.0253511447 -121.2179686944 55.5237074224 108.1470377567 171.6755057533 -4.0844422313 2.4102909610 3.8585762718 6.1155753194 -2.7599129865 1.1939513293 2.6041401892 3.9804102025 -2.1564746389 1.1803712030 1.9915992141 3.1669553612 -0.0914358034 0.0766294642 0.0730529205 0.1398903504 -1.2791746956 0.5175251340 0.6626619893 1.5307648670 -0.6281357761 0.2348242025 0.8131949811 1.0540318006 -2.4942899083 1.7636268234 2.5639310865 3.9906245276 -0.2970518234 0.0709797781 0.3587012531 0.4913494566 -1.2722349677 1.4440883371 1.2691299700 2.3095764988 -0.5074484496 0.6589284462 1.4560458421 1.6826288673 -3.4557703966 3.0452181977 4.2447288396 6.2652139319 -0.8429742515 0.6779397370 1.1557289205 1.5891497721 -3.1404390417 1.6614899882 5.6335827772 6.6618046389 -0.1492742244 0.2086921205 0.2808429437 0.4052008627 -0.5653460734 0.0970967294 0.4703901811 0.7548447953 -0.2249208036 -0.1131349810 3.2934254754 3.3030350064 -0.0433161058 -0.0452370221 0.3046850586 0.3110557155 -0.9093547943 0.0843851375 2.6227221181 2.9313936780 -0.8367393072 -0.1484367713 3.2931952524 3.4039360891 -1.1139916351 -0.4273707966 4.8553318240 5.0017347058 0.0024320757 0.0894780145 0.2269311633 0.2439466805 0.0878117421 0.0438359042 0.6769843159 0.6840615853 -0.1761276015 -0.0636502860 0.9032949358 0.9330025814 -0.4814157793 -0.0888923643 1.6233910930 1.7013351906 -0.5332962071 0.2203804620 3.9119751300 3.9567665581 -0.3573920783 0.0376973268 1.5885675014 1.6346793806 -1.0024656210 0.5428777729 5.6357635322 5.7516053388 -0.8279227285 -0.1920108931 3.7925060857 3.8890752658 -0.5387676471 0.9060674947 7.1699737549 7.2483951543 -0.8164732450 0.3926861670 3.7104829089 3.8220405790 -0.5743116557 -0.4578284434 2.4991910150 2.6048793621 -0.4018911441 -0.2065417948 1.3483823333 1.4220797873 0.0916378584 0.1994644453 1.3071596075 1.3327901510 0.0037048161 -0.0480347711 0.7227617512 0.7376892292 0.2472225001 0.2734819051 1.5228487355 1.5668374479 0.0984927624 0.0154983616 0.3259157400 0.3408256050 0.0476049108 0.1634691353 1.9296825998 1.9371792177 0.1986755893 0.9175250148 3.0190949827 3.2983405588 -0.1459558069 -0.0400212191 0.5089130305 0.5489781900 -0.9015471907 1.2986209150 16.8981045396 16.9978084247 0.0681804735 0.3654966555 3.4531980356 3.4759592691 0.0764943180 0.2664035683 3.0347490072 3.0505743006 -0.5099928326 2.0896534263 11.9820206792 12.2097647591 -0.2352455660 0.0677360561 0.7320049708 0.7843721769 -0.6605854754 0.8149686917 7.2257893691 7.3028801805 -0.4334324882 -0.1773743302 15.2969330972 15.3329149003 0.0015041485 -0.0815145193 6.9723704336 6.9742437675 -0.1138230298 0.0044020074 43.6057840713 43.6160540549 0.2518904450 -0.9869680492 82.1927568139 82.2044231048 0.0501381293 0.0553020191 14.4089142304 14.4097835247 -0.0690568925 0.5865577342 106.4971343428 106.5029050902 -0.1193345114 0.1019197234 36.4190125685 36.4196181282 -0.0129102478 -0.3865872462 21.6530227960 21.6569271219 -0.0729760110 -0.0254139613 100.4511327456 100.4512594298 10.4248736102 -12.0203341666 14.9898271419 21.8600398218 7.6175075186 -8.6632786328 10.9833903911 15.9283923215 89.7530135243 -101.1322895275 130.4195980222 187.8633398240 45.3751977810 -51.5656610311 65.7196672755 95.0632427273 17.8556313121 -20.5145139199 25.5696119119 37.3295242942 28.0394746314 -32.2625667362 41.5841960090 59.6351422192 15.6617701448 -17.2836490268 22.2056060481 32.2044094418 28.8504955413 -33.0398745924 42.5666751619 61.1222195292 3.1126551796 -3.6722257682 4.5747917426 6.6409776274 1.4263935688 -1.5658979054 2.0796191683 2.9684087906 20.7669083854 -23.9418903312 30.7513324560 44.1604180700 20.2411432465 -23.5021892234 31.4223996958 44.1550407294 8.1809049839 -8.9123139664 11.8951575027 16.9667556825 22.1152108543 -26.8032797203 35.1046210427 49.3971296170 14.7501858692 -17.1764003746 22.9798149833 32.2596976033 9.4701411709 -11.5895066778 15.1916999957 21.3262154959 0.9169749864 -1.3702185260 1.9916609219 2.6322416535 1.8350100026 -2.7582089258 4.3474471758 5.4676096166 0.7672857786 -0.9007153512 0.8474202025 1.4620589572 1.0537921475 -0.6945924893 1.0474275930 1.6460622600 1.8156878591 0.0389159798 -0.1300569066 1.8207557920 1.2250676240 0.1360114228 0.1789294748 1.2533097512 3.4751271157 0.0502176322 0.2500083164 3.4872645761 4.8908374206 -0.3298163409 0.5448024311 4.9341016373 1.0747317288 0.0524734155 -0.0662414953 1.0870462129 3.2041511587 0.4752326206 -0.0211573893 3.2392712648 0.0928729774 0.0593552844 0.0960631002 0.1462072466 2.1205277288 -0.8292987222 0.1144060717 2.2840627735 0.9141512628 -0.8497026136 0.5421639507 1.3678774058 0.6037742489 -0.5386000996 0.3530199888 0.8937204867 8.2142727828 -4.0082374956 0.6369570553 9.2101199805 4.1153664270 -3.4536181985 0.2321764881 5.4587522387 0.8049483874 -0.4089452071 0.2027524258 0.9358239257 5.5475619847 -3.1399075901 0.0877676749 6.3942011051 3.0564427505 -1.7019980030 0.5403669603 3.5426142502 4.0358374857 -3.0218737057 -0.0610730052 5.0421656871 0.2425939634 -0.2137430663 -0.1434930893 0.3537346409 4.3335056169 -2.4956320723 -0.0587967740 5.0253903721 3.4743040017 -1.9597280495 0.4783083029 4.0198981258 18.2140641882 -10.4892314269 0.3507985783 21.0423848840 7.4914882182 -4.5060068402 -0.0002602718 8.7433387913 3.4264466161 -2.3793008161 -0.0216250973 4.1739137768 7.5924114544 -5.1730158213 0.0849364487 9.1886614023 0.3834238733 -0.2378650697 0.0137504598 0.4514230091 1.1542144408 -0.7354310185 0.2815776766 1.4042206134 1.6135276398 -0.9455685151 -0.0199025018 1.9343237399 -0.1010857199 -0.0200607192 0.3266792094 0.3698916679 -0.3873967123 -0.0094329453 -0.5187567761 0.6623847604 0.2024611325 -0.0744680185 -0.0082782814 0.2570686889 0.3341709467 -0.1046924516 -0.2012786982 0.4273448611 -0.0509183502 -0.3843721096 -1.2272240226 1.2945629315 -0.1595273384 0.3480934914 -1.0743314004 1.1490368981 -0.4166471861 -0.1418910396 -1.9728680246 2.0213698789 0.1319229552 0.0941094689 -1.2424304913 1.2529540231 -0.4442035140 -0.9688708224 -12.4110246476 12.4574893145 0.9434557310 -0.9778128701 -16.3118493973 16.3757839032 -0.0613667592 -0.3114664786 -4.1208514902 4.1354170328 0.3363756358 -0.6591290032 -12.7138434333 12.7361255585 -0.1321663319 0.0830542422 -1.5900095076 1.6037381225 1.1456534487 -1.9792874042 -41.0760105855 41.1396250113 0.2284138393 -0.5241112652 -9.9456394455 9.9620584961 0.5669545108 -0.7103447515 -19.6890103298 19.7104701779 0.2516332675 -0.3160137673 -3.9527777552 3.9758163652 0.2393994273 -0.2100478554 -18.2461815709 18.2494946201 2.3246868477 -2.0434410316 -76.5581051445 76.6207724008 1.2613640425 -0.8443303375 -54.2691300892 54.2905322629 0.0030697422 -0.3179250299 -8.6720179050 8.6778442192 0.0051789475 -0.4765074400 -9.2016985504 9.2140296491 1.4024757287 -1.2633325288 -76.2248174779 76.2483129425 2.8111419107 -2.3194104887 -114.1516184858 114.2098667654 -0.1385103562 -0.2705555996 -9.1688097252 9.1749080111 0.2384819256 -0.3172352088 -12.0444063191 12.0517515396 -0.9244042328 -3.0210188610 -33.8632293749 34.0102834720 -1.0862429221 -3.4351212801 -37.1367740935 37.3111239708 0.0389070688 -0.1212766306 -1.7401826429 1.7448373597 -0.0587883706 -0.0140753268 -1.3098452831 1.3112394339 -1.3550839560 -0.5402724466 -8.6951074626 8.8177389628 -0.4113454769 -0.7065083199 -2.8590952915 2.9769556225 0.0061476331 -0.1793044040 -0.7198487221 0.7548839847 -0.3569756627 -0.6243344864 -2.8573802982 2.9498012015 -0.2940884944 -0.1674602475 -2.9051686175 2.9248137843 -0.1685660664 0.0041517883 -1.7341751717 1.7423533746 -0.7272467332 -0.6299499648 -4.2118197729 4.3484240282 -0.0329154353 0.0130650702 -0.2565864257 0.2942286538 0.4089374057 -0.4836298154 -37.1259156744 37.1315798485 0.0347997633 -0.4700355050 -79.5772612487 79.5787794077 0.4137178602 0.1225854186 -81.0436905541 81.0449594242 -0.3053404589 -0.4436936444 -2452.8593180044 2452.8595565928 -0.2052388022 -0.0248058580 -587.5494831282 587.5495360753 0.1295715053 -0.1856481920 -316.0389835983 316.0390955050 0.7686185491 0.8370406339 -10.6461211925 10.7066011386 1.1728199028 1.3537061692 -15.3256970807 15.4300038213 1.9191054757 2.3924719531 -33.0606002897 33.2025628437 0.9192675676 1.1606310424 -14.9803141747 15.0533029615 4.9452141167 15.0703992973 -163.3824140425 164.1505552100 0.9659907987 2.5115715168 -33.0873654224 33.1969028689 3.7033424590 9.2838266830 -102.4078271909 102.8945418037 0.0770122252 0.1655136145 -1.3745870910 1.3866561615 0.4194374404 1.0417034523 -6.2900863397 6.3895430204 0.4147363577 0.7709838213 -5.7705462925 5.8365766347 0.0975866736 0.0979622931 -0.7013193986 0.7148207248 0.0454588085 0.0307659951 -0.6849259120 0.6871219358 -0.0495123813 -0.0123444208 -0.1404818639 0.1494624191 0.1883583546 -0.0602926623 -0.8985642125 0.9200715836 0.1686076405 -0.0710009112 -0.4019548761 0.4416303751 0.0520109814 0.0015916235 -0.8923975847 0.8939133765 0.0637204143 -0.1612357023 -1.3146922172 1.3260742320 0.0779281710 -0.5714636889 -2.7493122180 2.8091566741 0.0439294354 0.0375810140 -2.1661349825 2.1669062948 -0.4213796698 1.3277350070 1.0594120432 1.7500842700 -0.0270918955 0.1336796902 0.0578111283 0.1481430286 -18.1381395099 34.0780592741 15.0711286651 41.4420697843 -4.2585320616 8.0731608674 3.6237407092 9.8205151820 -3.4163237573 6.6402685027 3.0323191418 8.0597390268 -1.9535863870 3.9551448026 1.8718652285 4.7920298011 -1.1387452449 2.1903727832 1.0158207327 2.6695253180 -13.6242259395 25.3556884940 12.1061627288 31.2264254674 -8.0289499244 14.9528374098 6.8902611405 18.3173983435 -9.3499558154 17.2683466712 7.8341894369 21.1421851908 -0.4371492119 0.6368183259 0.2222719575 0.8037672778 -0.0014888367 0.0115907269 0.0260178932 0.0285217873 -3.7050452684 7.2956694762 2.9550699849 8.6998041451 -1.4219655840 2.7635893114 1.0361051219 3.2761144406 -0.2731856442 0.2307192153 0.2142035900 0.4168272189 -0.7131912856 0.3488804877 0.4195333488 0.8979797522 -0.1350824480 0.0576235354 0.2433040723 0.2841911525 -0.0279854746 -0.0317174736 0.0041800050 0.0425047922 -12.7979259610 5.4403665322 11.1898810665 17.8562485035 -23.3919079095 10.7209565593 20.5788366337 32.9485778508 -15.9778434212 7.2104858932 13.9625048538 22.4105807377 -0.1712086655 0.0978508822 0.1808562192 0.2675746145 -1.5343808169 0.4646004042 1.6593720726 2.3073130915 -3.4938717288 1.6976711833 2.9708491442 4.8903140739 -4.5733683361 2.0517639966 3.8365018362 6.3122246296 -1.5020263514 1.2953205136 1.4093325179 2.4331371805 -1.3570460210 1.0121402321 1.1608703930 2.0527108472 -0.5439128568 0.2754958319 0.6173006861 0.8676400672 -0.0787997259 0.0562867032 0.0834975241 0.1278658922 -0.6448689547 0.4684332815 0.7098061866 1.0672913335 -0.3679566814 0.3468597222 0.4777121131 0.6956383035 -1.3252090064 1.4385721341 1.5476006303 2.4941404143 -0.1960525463 -0.0200298492 0.2748948159 0.3382380161 0.0181102626 0.0059422121 0.0727783723 0.0752328583 -0.6257010480 -0.1160846002 0.5531360418 0.8431707518 -0.0807580005 -0.0542648379 0.1372787589 0.1682616561 -0.3315180083 -0.0510656304 0.9039239300 0.9641526641 -0.2411810932 0.0771817712 0.6359571610 0.6845194345 -0.2558777652 -0.0755520882 0.7641413625 0.8093785089 -0.0129624564 0.0124875860 0.0776535136 0.0797138216 -0.0539701264 0.0138067412 0.3351698020 0.3397682400 -0.0335535231 -0.2352462312 0.9586761963 0.9876875404 0.0171656763 -0.1088748640 0.9629407930 0.9692282328 -0.1923340333 0.2233105003 0.8876340032 0.9352828896 0.0023074446 0.0596142734 0.0826048462 0.1018957630 -0.2667407962 -0.1000850767 0.8674489212 0.9130363114 -0.2036389911 -0.0127896776 0.3717981459 0.4241064440 -0.0172118602 -0.0123489043 0.3257717146 0.3264597274 -0.0604242240 -0.5163137428 3.0327587947 3.0769882799 -0.0161637278 -0.0208947537 0.2716306642 0.2729122104 -0.0668400553 0.1652892143 0.7385588830 0.7597745330 -0.6457797608 0.2644391221 2.8595169775 2.9434328416 -0.4552886286 0.3127620547 2.1624717122 2.2319031664 -0.1922409163 1.2181583511 4.7209866122 4.8794037475 -0.0088766257 0.0140310586 0.0257898792 0.0306721855 0.0836307165 0.1568970500 1.3591674619 1.3707468660 -0.0308436675 0.0216349563 0.1091668745 0.1154851057 0.0009362555 0.0555162942 0.5096497333 0.5126653744 0.0469843537 0.4198251441 9.0977029696 9.1075056960 -0.1730323815 -0.0621718495 6.0055958223 6.0084096669 -0.1263360093 0.0699656079 5.0655644696 5.0676226546 0.0923637974 -0.0777564888 0.1703957637 0.2088345252 0.7804290377 -0.8339483776 1.0184247563 1.5302706831 52.4774051567 -61.7762763456 82.6583052331 115.7695201473 4.6148210419 -5.4685524344 7.2503792356 10.1867383414 1.1065474989 -0.3163717042 0.9603051440 1.5793669052 1.6828547214 0.0636614254 -0.0710677178 1.6913258692 2.2891638432 -0.3074063929 0.1745132593 2.3204965964 0.2568151677 0.0291980048 0.1394921093 0.2937083629 1.0083417464 0.2838267953 0.3336635283 1.0993825892 11.6766278151 -0.0348684348 1.0005290065 11.7194671907 1.8579569754 0.0381513681 0.1276805833 1.8627297122 0.6652975241 -0.0636270703 -0.0200625006 0.6686342076 0.1461699341 0.0463235266 -0.0253609851 0.1554178186 15.1503328564 0.5243991238 1.5274097135 15.2442853543 0.5630313504 -0.1318427797 0.1660741663 0.6016373067 0.4501556465 -0.1085595464 0.2642046396 0.5331316655 0.3894603412 -0.5495271917 0.0134215284 0.6736762050 0.1318384678 -0.0799682858 0.0188809732 0.1553473511 0.2221462876 -0.1864232462 0.2259080554 0.3676099146 0.0242537671 0.0236708932 0.0172100115 0.0380097474 0.5385574079 -0.3535403603 -0.0241058163 0.6446828355 0.9026421403 -0.5251266243 0.1233974387 1.0515454022 2.9550413140 -1.9438836397 0.1502658528 3.5402729554 0.8438254040 -0.4999307052 -0.0124473647 0.9808807060 2.8782838805 -2.5260430970 0.1639491542 3.9462186638 0.7496078018 -0.6686210140 0.1453198472 1.0244820934 0.1693130287 0.1423164393 -0.0895107490 0.2386064643 0.0643249069 0.0391567201 0.0478566913 0.0892255864 0.0430077645 -0.0712190452 0.0294121443 0.0882433819 0.2078947828 -0.0394153482 0.2312432306 0.3134441610 0.1306705459 -0.0069607277 -0.1338957847 0.1872199895 0.0281050287 0.0841356916 -0.0544320246 0.1040747450 0.1583275020 -0.6157218994 -13.1374878290 13.1528615712 -0.0144168662 -0.0159204868 -0.2316451814 0.2326387715 0.4200922375 -1.2326973273 -21.2830902774 21.3233541388 0.3023203300 -0.2643515466 -7.1643141592 7.1769183135 1.1138913243 -0.5925976649 -35.6274370119 35.6497713024 1.2372384458 -0.8059406251 -39.8864671025 39.9137890607 -0.0348826006 -0.0395284817 -0.1475073965 0.1566452320 0.0144218115 -0.0162309622 -1.0080824539 1.0083162533 -0.0971892775 -0.1666019158 -0.7207528189 0.7461143210 -0.2874233453 -0.2903345308 -0.9937746886 1.0744740345 -1.0217432074 -0.8447214527 -5.5650899287 5.7208163254 -1.3839448413 -1.0151867280 -7.7270710538 7.9153985678 -0.2228898572 -0.1437237077 -38.1166040782 38.1175267147 -0.1597924120 -0.1783510505 -21.7169635531 21.7182837416 -0.0489512652 0.1040264917 -139.9584652326 139.9585124528 -0.0276535149 0.0609483479 -336.1078382656 336.1078449292 -0.2535172139 0.0450566999 -268.6503669976 268.6504903942 -0.0284591007 0.0215851298 -129.4469314995 129.4469364275 0.1522162541 0.3680729093 -5.9229360636 5.9379540966 0.3986152972 1.3678858975 -17.7000163149 17.7578169637 0.0000919552 -0.0235057720 -0.0022990139 0.0236181125 -0.1466725874 0.1257139516 -0.2022993071 0.2797174559 0.1950913437 0.3055112580 -0.0474988394 0.3655870634 -0.0217688518 0.0341378761 0.0064260657 0.0409947779 -0.2944471916 0.9995728500 12.1040080801 12.1495817385 -0.0535212359 0.1903984365 1.4454351996 1.4655643242 2.0617419914 -0.2304050650 0.0151379143 2.0793209166 2.3576803312 -0.7125188354 0.0247222055 2.4670692344 -0.0241884536 -0.1224042096 -4.1862700156 4.1881289993 0.0241001847 -0.0180904250 -0.1815370317 0.1840211299 0.6147973619 -0.6651221984 -12.9514419455 12.9830740506 0.0166720558 0.0052830145 -0.2566810079 0.2572761308 -0.7063909011 -0.4321469975 -4.5280569708 4.6052707681 -0.5415875138 -0.8432785737 -5.1261720503 5.2250890387 0.5468319671 1.2240124379 -13.2467529342 13.3144168084 0.3239188176 0.5258757342 -5.6995692981 5.7329363220 0.1824528591 0.1453975062 -2.4225263417 2.4337344466 0.6588525997 0.8843094610 -12.2770114291 12.3264390479 0.1388894965 0.1744193449 -3.4765092023 3.4836516235 0.1268352266 0.2744900977 -2.9788534728 2.9941609845 -0.1074236313 0.1417365979 0.0563145578 0.1865487313 -1.4042109591 2.7632328764 1.1001615544 3.2890150186 -6.1311771149 11.5570902469 5.2075578319 14.0810626858 -2.0899885116 3.7741843583 1.7180141729 4.6437153496 0.1754192319 -0.0185950406 0.0938709464 0.1998235147 0.7063323537 -0.2393699220 0.6706536917 1.0029854075 0.2986471229 -0.2676584190 0.0820605663 0.4093471262 0.1344824991 -0.0267584045 0.0610897993 0.1501116863 -0.0141930472 -0.0433124545 -0.2949227234 0.2984238999 -0.4601815925 -0.1507945126 -3.4508605020 3.4846727661 -0.0452425080 -0.0050375539 -0.2696272426 0.2734430680 -0.4072647320 -0.4153300351 -2.1012704750 2.1802984220 #END -0.3773276006 -0.0035634074 0.7652775387 1.2691849007 -0.5446789535 -0.5034794035 1.2124095440 1.7037885313 -1.7729860623 -0.4349949616 2.0105918140 2.8736686345 -1.3405797477 -1.5089964462 3.1738645851 3.8769101774 0.3349919645 -1.5436713398 0.5678688997 1.6843680399 2.3418936902 -2.5090616442 5.7774393255 6.7214686889 2.2659563239 -0.1915851784 3.9467996506 4.5817170782 1.1695997094 -0.6617446855 6.1116197691 6.2770539803 -0.4760784336 -0.0583095332 15.0975869273 15.1343163803 -1.7828014618 -1.8115890879 25.5695541137 25.6959493585 -0.8120594882 0.6574209185 60.4536822499 60.4699900037 0.7822137528 0.8284313356 104.8782217043 104.8845032618 0.2315911182 0.9950799012 79.3909447835 79.4030775465 0.5854593185 0.5510673529 18.3299736663 18.3481293933 0.0595009231 0.2071908421 16.7432855851 16.7452548614 -0.0869029838 1.1849069472 22.1257439716 22.1774762651 0.6062362839 0.5966845665 23.8129668500 23.8466714006 1.6952775537 4.6850127927 22.5930013102 23.1362593960 0.6800303862 1.3910802750 5.7113619223 5.9191790352 0.0451615453 0.1724344025 0.4439166956 0.4983121571 1.3220356125 4.9690031723 2.4501884483 5.7727797380 -0.0668294677 2.1001489180 0.9334192609 2.4837783631 -0.0171773130 0.2112866614 -0.1735885955 0.3074896726 0.0378885844 0.1651710853 -0.2675106845 0.3460618203 -2.4599230938 0.8132067262 -2.5682390624 3.6507339636 -0.9752776290 1.9162881756 -4.2154654848 4.7342323416 0.1925326820 0.1639234914 -0.5376537732 0.6103204973 -0.4812701733 0.3024532480 -1.9604472420 2.0459550632 0.4517492867 1.3720810089 -2.1455678169 2.5902943375 -1.7073442335 -3.4281928994 -11.2002503024 11.8472266241 0.4076125638 0.1294755789 -3.1397028121 3.1717700832 0.7818467836 0.7239631780 -17.2372606519 17.2772162925 1.3377890420 0.1999734466 -14.5888205775 14.6814067901 0.5011116407 0.5469720730 -13.8288881712 13.8806062966 4.5991443314 -0.1238020721 -172.6182463623 172.6821045288 1.1596512493 0.4808970387 -40.0812453598 40.1118764603 -0.3712487524 0.6007167048 -18.5666087372 18.5805577414 -0.1468947995 1.0098525127 -24.8390949553 24.8604404257 -0.2884569274 -0.5346003261 -51.4061521045 51.4099305473 -0.2612498816 -0.2138105515 -33.6694119901 33.6713936450 -0.1026628102 -0.7260220557 -11.5421821875 11.5662914157 -0.1081140465 0.2406783713 -0.1528519849 0.5801891198 2.7021321267 -1.4273498803 -2.0657747477 3.7215469874 19.6870335013 -4.4091465853 2.8122116390 20.3913890304 20.6346371264 -5.6606006227 2.6977194149 21.5868277098 67.6852221801 -16.4248606334 11.8246423182 70.6463515982 43.2610905302 -10.1864075675 8.2120715391 45.2062310146 36.8260403682 -8.0225099735 6.1818912377 38.2049275164 51.0430870591 -9.5307090744 7.7887457947 52.5063347876 -4.4689679303 6.1173318097 1.7893441406 7.7855414115 0.3849843917 1.2810482244 0.3027569580 1.3785641427 -0.2482967209 -0.1745033165 -0.8838070049 0.9448265851 -0.2207159517 -0.9475748637 -0.9380225690 1.3586683843 0.4695018166 -0.9218445139 -0.4884002193 1.1524946086 0.3351237029 -1.6977575212 -2.1647514023 2.7749444888 0.5794776203 -0.7242348989 0.2490535016 0.9704730458 0.9798756434 -0.6854506849 -0.1732637481 1.2163465909 2.1531232170 -1.5641386767 -2.6268367995 3.8555846176 0.6886420320 -2.6818319056 -1.2305217018 3.1719054951 1.1952022500 -17.6296200097 -13.0220400583 21.9505129136 -19.9170893757 21.5710491206 -5.6537645944 29.8995843322 -1.1663923018 1.3446759167 -0.2125448448 1.7981322028 -64.6129601636 70.1221657938 -19.0503517616 97.2362490985 -1.6297970381 1.7505741027 -0.6105473043 2.4724473443 -8.8443466430 9.0772054517 -2.9664310118 13.0168090978 -16.7547229489 16.6238580312 -2.9673061676 23.8066934583 -6.4395912742 6.7354150445 -0.3732755523 9.3270019847 -29.5663543990 34.4289710195 -0.4712791256 45.3846333212 -7.0026640062 6.8332958625 -0.0323083084 9.7852827828 -0.5160601361 0.5463970964 7.5651035990 7.6036267727 0.0818407888 0.4887353909 689.3621917624 689.3623839981 15.9799133713 -247.0702726831 -212.0241536205 325.9665616964 12.8775332432 -200.7551408801 -175.4355063244 266.9212518368 -0.0778491871 -0.6227780339 0.9137430432 1.2134579862 0.0097077327 0.8699720401 0.2905268999 0.9278099240 -0.2719274384 0.2067029107 2.6116396007 2.6375768830 -0.0530143006 -0.3126479798 5.4226854584 5.4337424158 -0.0492935752 -0.0400550659 3.4768164153 3.4801963214 -0.0592040606 -0.3551603636 3.7965915775 3.8454378907 0.4114174709 -0.4090859694 1.9534472886 2.0967147959 0.4626647157 1.5345667185 -0.8265255686 1.8087503845 -0.4203285697 0.6507323560 4.5831979326 4.6503023321 0.0932781675 0.6076712805 1.5693791233 1.6912704749 -0.4912648161 0.2943307643 3.6401299737 3.6875463019 0.2863648772 0.7337713678 3.8853459531 3.9668398282 0.0119714996 -0.1277040305 21.8282528114 21.8488412557 0.2371173318 -0.3966546368 12.5012487643 12.5105659337 0.2122208600 -0.7462322868 112.0712586905 112.0778714795 0.8283616868 0.0610223078 180.2710138639 180.2753758507 -1.5219762628 0.4400681536 -1.6035869040 2.4422027901 -0.7763762152 0.2383100159 -0.5307461402 0.9801647522 0.1136773449 -0.1524238345 -0.1507610107 0.2799361201 -0.5895337737 -0.7374231470 1.9189471348 2.3359137097 -1.2444122168 -1.7377363979 1.7808539345 2.7855358685 -0.2306141334 -2.9926376032 3.0652413831 4.3183802981 -0.3634761508 -0.6473512407 0.9247652364 1.1940892213 -0.2340844617 -1.0049662810 1.0332986916 1.4602941304 -0.5638349097 -1.6214229603 0.8702715843 1.9246544760 0.4199693916 -0.8249355012 0.7482099056 1.2885464268 0.1355117844 -0.3328258963 0.3836778630 0.5256854797 1.1304644171 -3.3561726957 3.2693734646 4.8198182344 1.0174932855 -0.8117630828 1.2991020061 1.8442878560 0.0553320329 -0.0251359538 0.0291223782 0.1549882184 0.1255499312 -0.0283784874 0.6479580600 0.6606192332 0.8584821990 -0.3704022430 1.9267112449 2.1461326878 0.5185650370 -0.1274740807 0.9330677916 1.0840916140 0.6667619101 -0.2284772283 3.6519477242 3.7219585239 0.5038944918 -0.2247993155 1.2550830416 1.3710134326 1.1501303588 -0.7389848436 3.2318738456 3.5091176947 1.6830333550 0.0901492381 4.8546241625 5.2240688838 0.9031802636 -0.7755383620 5.3948637534 5.6039754677 0.8386942677 -0.2689644097 3.9254172861 4.0254354527 0.8065816243 -0.2246315731 2.5739622909 2.7103126978 0.2917981258 0.1372547341 2.9674816022 2.9882121499 0.3274833626 -0.2844958353 2.9694785352 3.0042413000 1.2029940276 -2.3497849825 18.2799416953 18.4695682808 0.0146220186 -0.0571855490 0.5306980901 0.5339704611 -0.1512027206 -1.2750721955 4.9150035299 5.0818708022 -0.1962004342 -0.8685252261 3.8810656607 3.9843419942 0.0852167571 -1.0505193373 5.6633060575 5.7622363765 0.1169577085 -0.6134550146 5.0588910110 5.0992023108 -0.1273316995 -0.5000800976 3.1422556152 3.1874038968 -0.1413033648 -0.7976100657 6.3974803104 6.4500684155 -1.2534024192 -0.9573804288 19.8710646401 19.9556908331 0.1091563619 -0.2858633972 4.2382812158 4.2516044551 -0.5659549925 0.0054081561 4.6577228707 4.6919842968 -0.3713094991 -0.5069248334 5.6908732337 5.7254590814 -0.2297489707 -0.2534956258 19.7727398799 19.7761919177 -0.5343674947 -0.6462133834 15.7445084061 15.7668222957 -0.5413534135 -0.7526342161 15.1700428089 15.1983459825 -1.3570756562 -0.0870281965 43.3554683942 43.3770140479 -3.2259835197 -0.7289345674 70.5117074352 70.5893666248 -0.8390115061 -0.1152039223 83.7292761710 83.7388156768 -0.0293753038 0.0764334542 11.4209079676 11.4220542623 -0.0414237761 0.0826263250 11.8103340249 11.8106956958 0.1069958165 0.1645776194 22.2311274297 22.2319940782 -0.1552972700 0.0685792519 7.4964908257 7.4997116505 -0.6289685435 -0.4244054304 19.8440980400 19.8590893095 -0.0677524283 1.7911351872 227.8419232441 227.8490162871 -0.1327177017 0.4370430023 49.9683434275 49.9728687031 0.2652728237 0.3755960177 100.9679905037 100.9691340370 0.2105703134 0.9941277022 138.8473541260 138.8542427445 0.4754733922 0.3297399436 59.4899088429 59.4928864428 0.1420207859 -0.0958006715 71.0527847675 71.0531283665 0.6433534045 0.5938675313 36.4880510365 36.4988209463 0.3606886477 0.3879555399 15.3730792521 15.3828362560 0.0192950163 0.1603903364 3.8072160299 3.8131969580 2.0085665575 0.6267194794 37.6059328758 37.6650074229 0.6180102337 0.8111334120 16.6028061283 16.6340928636 -0.0498316661 0.5248323320 7.2893307476 7.3083701958 -0.1593621590 1.7038758834 17.6865150187 17.7939370184 -0.5933039801 1.5683283659 18.5940792779 18.6761645714 -0.0836606495 0.3889792111 2.0030923846 2.0469887193 0.2675659977 0.5958097195 2.4216086355 2.5120208904 0.1203384143 0.1733850317 0.5575146861 0.6122467748 -0.6012615661 0.6974912601 3.5383686514 3.6588990184 -0.4163343752 2.1266844624 4.2051777075 4.7327709063 -0.1161504236 -0.0262206927 0.3304581052 0.3779692975 -0.3269613554 0.3253761059 0.5387071566 0.7228129244 -0.3912778925 1.2318264117 2.9614604880 3.3646832707 -0.1738989784 0.2409542799 1.1436306823 1.1898196259 0.3108147529 1.0340133229 2.1899575672 2.4416599904 0.3035766732 0.6587370194 1.5742819122 1.7333368964 -2.1064185428 3.4046420102 6.1351283177 7.3857116354 -0.9481610574 1.3278372553 2.5537942626 3.0337280840 -0.1179881886 0.2727116640 0.2683892959 0.4240347432 0.1847475193 0.6471035016 0.4623724166 0.8283372648 -0.3613950445 1.0494115594 0.0234224555 1.1188831018 0.1531449454 0.4368383797 -0.5654918784 1.1903167619 -1.3370887783 0.6751689030 0.0567954040 1.7690893000 -0.2227000652 0.0430398189 0.2004443790 0.3333248851 -0.6462236211 -0.0737978549 -0.4490662812 0.8026153510 -0.9303179273 -0.1570989819 -0.7126588599 1.1906023566 -0.0103443834 -0.0316268556 -0.0497255211 0.1518541294 -0.7571437411 -0.1437421343 -0.4391410012 0.8979159481 -1.0072428114 -0.0101347329 -0.6465978198 1.1969668059 -1.9163828986 -0.0314693108 -1.4571398756 2.4076483025 -0.8948085496 -0.0628236632 -0.9959683227 1.3476133859 -0.3240259081 0.0539814518 -0.9475243253 1.0125161323 -0.4996988955 -0.0268506902 -0.8192005080 0.9700459798 -1.3468410932 0.4045841456 -2.7997654540 3.1362135838 -0.0446785767 0.2246261498 -2.0932325505 2.1103448481 -0.0100199147 -0.0489996929 -0.4155080825 0.4411667713 -0.0400533430 0.0290265618 -0.3631447132 0.3921742970 -0.0345160533 0.4786206676 -0.7834933404 0.9293065698 -0.0524442567 0.0170627509 -0.4136132656 0.4172738562 -0.3130397011 0.0756755439 -0.7760274587 0.8517153539 0.0499793020 0.0080225293 -0.1289662026 0.1966579719 -0.4446832828 0.2612749579 -1.6283881963 1.7138073779 -0.2906742129 0.6637316882 -1.5625154511 1.7279946678 0.1681529865 0.0351436982 -0.0534482071 0.1799089137 -0.0200956237 0.0149993873 0.0163384059 0.0299292369 0.3950283454 2.3115588939 -4.5464401096 5.1397611825 0.0158266731 -0.0599104258 -0.6458847335 0.6636916578 0.3029865837 1.0208648595 -1.8604247039 2.1436291680 0.0033013432 0.1260440211 -0.2940785798 0.3199690691 0.4209942831 -0.4847993148 -1.5624870827 1.6950257315 0.0362205133 -0.5679786693 -1.4637106954 1.5766548383 -1.1333819931 -1.8286123187 -5.1188959505 5.5543634461 -1.1799530016 -3.6379757208 -14.1780355376 14.6932475500 -0.2732553516 -0.9206913070 -1.6436526449 1.9087731064 -0.0318626209 -0.1409403036 -0.2742619178 0.3399687931 -0.8504067750 -2.2765119647 -9.0854334082 9.4058640437 -0.0253696383 -0.8997822245 -3.9421744031 4.0436358262 -0.1566434361 -2.0468379698 -7.0330598196 7.3278573302 -0.0446918987 -0.4912719089 -1.9455198039 2.0119325403 -0.0899479829 -0.5185309148 -1.9006520207 1.9770996025 0.1701662750 -0.8938611812 -6.5782412012 6.6423400590 2.2156925100 -1.1811331649 -15.3789749470 15.5832191494 1.3937921439 0.0581168697 -9.7132217776 9.8138774802 -0.0290245825 -0.6904772028 -1.3017642683 1.4804293935 0.3951039566 0.4232181837 -2.2778090208 2.3543819757 3.1159539078 0.6087198474 -21.6161600698 21.8480682160 0.4596721895 0.4975089985 -2.6961454672 2.7834320345 0.5705249944 1.1023069319 -9.0112709519 9.0974206946 0.1562140737 0.0048918685 -2.0883298026 2.0988158367 0.7374823187 0.4157815893 -7.8996423543 7.9601975344 1.4162079806 0.3628831173 -78.3177273550 78.3370061914 0.2665729808 0.2000900470 -15.9260031285 15.9301020906 0.8122056583 0.8537351483 -29.9721796362 30.0100464122 0.5207151271 0.3216495858 -16.5395848482 16.5514938733 -0.2134654044 1.8335491515 -69.0621323194 69.0931862216 -0.1986371357 0.1530482746 -15.2842176680 15.2869117219 -0.5588498869 3.0217653963 -79.3177510110 79.3828180183 0.1045629393 0.7302732049 -19.1755649754 19.1902580565 -0.2589443850 0.1994443646 -6.6780104353 6.6874609089 -0.5450089012 0.2823925459 -19.9759740673 19.9858900221 0.2786162934 0.1037757683 -11.4521449448 11.4568538470 -0.4345415712 0.0293149057 -42.8534177923 42.8558581994 -0.3221198811 -0.1996512797 -58.4924674620 58.4938616559 -1.2264674226 0.2590665438 -91.4277355037 91.4364349531 -0.0625556034 0.0887467373 -2.8940467789 2.8960828623 -0.2066754249 0.0573529217 -10.0776131896 10.0798954205 -0.3370850761 -0.4136160457 -79.8339858445 79.8358909275 -0.2056329774 -0.1805714070 -116.0288424789 116.0292491475 -0.3414961117 -0.0975004589 -28.9511072406 28.9532854162 -0.5550108254 -0.0426208102 -56.9369855321 56.9397064888 -1.1735520640 -0.1389267425 -148.9946461879 148.9993979771 -1.0226018318 -1.1460597176 -297.9975582888 298.0019321898 0.2123725409 -0.0431496791 -280.4291362371 280.4296543799 0.4426038941 -0.4470475345 -205.4413733054 205.4423838820 0.6710585950 -0.5918042329 -80.5846654414 80.5897532939 -0.1281676958 0.1689990628 -59.2098027890 59.2103471847 0.1605004680 -0.0661347139 -6.9051954908 6.9087870680 -0.3044405851 0.2342631000 -7.7938950462 7.8046039647 -1.0317556688 -0.1415561528 -8.4780864555 8.5429495864 0.0987001436 0.0383455251 -1.4598553462 1.4703297298 -0.5148629480 -0.3292604062 -0.6588417233 0.9094220536 -0.6019820901 -0.0554861169 -1.7662466578 1.8720491946 0.2109476851 0.2659957954 -12.2312706179 12.2367770839 -0.0088221488 0.5964075103 -34.1415574883 34.1470526877 -0.2653940920 0.2458566022 -84.6444291252 84.6452022351 0.0341032071 -0.2188553297 -17.1425572537 17.1445562691 0.4116783307 0.5079472913 -89.1241965344 89.1267040633 -0.1789283800 -0.2042469200 -362.0020001569 362.0033213129 0.0533183150 0.0957715146 -149.0343064122 149.0344120751 -0.0403189859 0.0282046067 -2.5497106342 2.5501853734 0.5459875494 0.2115737124 -278.5421919841 278.5428074482 0.1259446917 0.0437063953 -0.3487808852 0.3733904394 0.2934105515 -0.0844803077 -0.3791098239 0.5063898870 0.3722183745 -0.0886551029 -0.2049824848 0.4559647460 0.4100373542 -0.0001676003 0.0157605157 0.4334268550 0.6149650203 -0.3188217535 -0.4189112508 0.8214594985 6.5613441776 -1.0603439832 0.9861778610 6.7373403145 1.4306959390 -0.4123312413 -0.0956458146 1.4985112042 10.0603524379 -2.2084708591 -0.3067730171 10.3162873823 8.3059882811 -1.4607329465 0.2074237651 8.4371610432 6.4736882502 -1.5906434602 0.4386644183 6.6821173617 26.5884901606 -6.4250504641 1.6176084251 27.4019199928 48.2673607754 -11.4080363186 2.5237675091 49.6702486716 20.7489325030 -4.7561618302 1.2425031411 21.3237559827 0.9410337579 -0.1591324525 0.0429388083 0.9553593105 5.6305049108 -1.6860418208 0.9003721338 5.9477283341 12.6643919120 -2.7114027244 1.5455442490 13.0440298238 7.4431764164 -2.0320651059 0.4767204845 7.7302927617 0.0036708857 -0.0064160514 0.0250867011 0.0261530819 14.5129401321 -2.6600164843 2.1452213512 14.9104853511 4.0536525248 -1.0463029943 0.4154959664 4.2070756644 6.1037315692 -1.2898743381 1.2341699922 6.3594410483 6.5458826863 -1.4161470052 1.0483969299 6.7803147707 -13.2644048612 17.2711828125 6.3534162120 22.6853161629 -2.0714960274 2.8444595719 1.3808351511 3.7826223109 -0.7261753877 1.1648771428 0.8748380904 1.6337352665 0.0391565256 0.1742775426 -0.0049826072 0.1786916947 -0.2140181633 0.6275133806 -0.3680412709 0.7583081129 -0.1921183366 0.0547771443 0.1258220043 0.2360956746 0.1687049423 0.0743090983 -0.0735471535 0.1984751457 0.5000218320 -0.0075025749 -0.1335870800 0.5176133973 -0.2300571239 0.3819216708 -0.3132106067 0.5624687653 2.9440732410 0.8947998230 -1.2794033785 3.3324325914 0.9937614455 0.2967329590 -0.4597338449 1.1429992356 0.7065605083 0.1629711890 -0.4317347975 0.8553724806 0.1707574284 0.0278235867 -0.4333795619 0.4870625021 1.1973717772 -0.7600615686 -0.7439503300 1.6075865884 0.8359418788 -0.5625770196 -0.8134476854 1.3858678958 -0.0697014508 -0.4056307172 -0.5036683592 0.6652489549 0.3149903891 -0.6669573469 -0.7430803202 1.1575233778 0.2062652678 -0.1562811037 0.1237283020 0.3189947048 1.1867523987 -1.4243401358 -1.4250900329 2.3425386795 0.0232098959 -0.0412317346 -0.0400219392 0.0619718551 -0.1416165154 -0.0236439867 -0.1147723922 0.1838123433 -0.3943489253 -0.7261290114 -0.8434751563 1.1889930783 0.2204875303 -0.6161922288 -0.3592589013 0.7595092869 0.2982079616 -0.9603615351 -1.0080029963 1.4306544279 0.0027223480 -0.4929773465 -0.7792509108 0.9326016525 0.0085573715 -0.2485617926 -0.0580516164 0.2553941728 0.0088365369 -0.3163862176 -0.2432336547 0.3991753172 -0.0824005405 -1.2753841439 -0.4496568458 1.6487503229 1.3535358097 -0.5879449624 -0.1526753323 1.5635501860 0.1465442780 0.0277169446 -0.0630071219 0.2137595302 0.1776168652 -0.0621607304 -0.0112401598 0.1885153798 0.1173856724 -0.1240438129 0.0338371880 0.1741011743 0.4256347410 -0.7202438794 0.4119278528 0.9325238520 13.2200964782 -9.0250768558 3.8595863833 16.4662943609 1.5116850122 -1.2876341107 0.3979386826 2.0300315661 -0.0749168432 -0.5683463760 -0.0738764948 0.5946155547 1.3730153997 -0.2123210524 -0.0780850025 1.3985094099 0.2957988557 -0.7914060720 -0.4952130848 0.9892099464 -0.0479478545 -0.0907818507 0.0137731950 0.1738097436 -0.2636009071 -1.4836117632 -1.4348757232 2.0854106138 -0.0826712295 -0.9958623885 -0.7784860175 1.2744005231 0.1099019789 -0.5238416567 -0.6136109205 0.8261275161 0.0288870947 -1.5676136156 -1.0795809493 1.9087225370 0.0553690588 -2.9256870069 -2.4537850123 3.8506378747 -0.1259098870 -0.7908125316 -0.3457831290 0.8833365820 -85.8291394962 120.6691109284 41.7111805951 153.8432375716 -38.6748404426 55.4938508197 19.6416429621 70.4352495566 -1.0258275881 1.4691271206 0.5365883003 1.8704501440 -22.2818748249 32.3032224583 11.1367731167 40.7922522344 -10.1147145613 14.0478625627 4.7759707469 17.9577078047 -2.6041382969 3.1577378057 1.2069088319 4.2695378008 -0.6661685009 1.0567324697 0.2367147731 1.2790534207 -2.0867908106 2.9357221870 1.1274289313 3.7767362136 -1.1557602296 1.9731823183 0.7661127566 2.4157066689 -2.7920894522 2.0055283710 -0.3651289191 3.4926926737 -2.1129648896 2.3295779555 -0.5145492781 3.2248962766 -2.5604672046 2.5023919031 -0.4481637341 3.6417645771 -1.3529271363 1.4719850198 -0.3208717235 2.0841668258 -2.8879784356 2.5969839699 -0.8922071114 3.9875128211 -1.5778636943 2.1253855930 -0.5959202801 2.7168950149 -2.1177876811 2.3046352523 -0.0244152769 3.1686914293 -6.0052011953 6.1994040009 -1.7791222260 8.8263224628 -2.8908627022 3.6890366969 -0.9261368090 4.7794652513 -24.7014745793 26.7211782533 -7.3481589313 37.1238421142 -5.1594991419 5.9538194068 -1.6223061545 8.0436480643 -1.7318211771 1.8575595047 -0.6583273572 2.6272812177 -15.0078425636 15.3258311694 -3.5917822580 21.7494096246 -12.7455325581 13.8340097786 -3.5041041299 19.1344362938 -29.8080231837 31.7970432483 -8.7983628920 44.4634779883 -4.5946569911 4.8934784557 -1.2393145395 6.8273263123 -4.4957122968 4.7323913482 -1.3609717477 6.6692338998 -7.5877494018 7.9881536806 -2.1907014737 11.2340194472 -9.4667513688 8.7925199145 -2.0737152720 13.0948752718 -23.8320354128 22.6093441055 -4.9846996407 33.2397108154 -2.6129686199 2.5414019352 -0.3178507182 3.6615348788 -4.8736916432 5.4250055803 -0.1388859272 7.2953632442 -15.2242919979 19.6708011486 0.1499671958 24.8922141526 -5.4924766527 6.4381890125 0.1391801255 8.4650120161 -1.2811582999 1.4867511158 -0.0633064901 1.9685738407 -7.6830958929 8.5270486435 0.1548209447 11.4797199608 -5.2423987001 6.0855417737 0.0248643554 8.0334712815 -3.1287649943 3.2068328616 0.0437026588 4.4826707552 -39.8036464997 42.8029235674 -1.5102044707 58.4698275858 -6.6084900800 7.0398950716 0.5110021636 9.6691978451 -5.9171814016 6.1291719420 0.4938995115 8.5336815714 -0.4651041086 0.4913174083 0.2248577837 0.7129345344 -0.4286293407 0.4148289541 0.0711358139 0.6007216301 -1.1714410137 1.2067835177 0.1980938901 1.6992120178 -0.3217517297 0.4826575601 0.0256562646 0.5971771301 -0.0155156700 0.5262732356 0.2644735616 0.6055000447 -0.0816341353 0.0734882063 0.3139535930 0.3607094287 0.0680709474 0.0069337426 0.1761810222 0.2349495013 0.0157206351 0.1067378219 0.6868462089 0.7091386328 0.0842363305 -0.2690767734 1.6855662731 1.9496108133 -0.1377626065 0.8603458951 12.8316927869 12.8955149240 -0.4233843042 0.3523090256 8.6878179120 8.7558179387 0.0700814411 0.1818757449 0.8844474187 0.9163608549 -0.0341771244 0.4656881417 3.9728721969 4.0026524704 -0.7083058595 0.3416893431 3.8453617855 3.9274337479 -0.3157130498 -0.1082932065 4.1377434588 4.1535289651 -0.1669642179 0.3093662036 7.4848347459 7.4943855957 -0.0353224506 0.3141193365 0.9976028549 1.0557508580 -0.6335976968 0.2105618635 9.2988783239 9.3238618720 -0.0261020104 0.1786644748 3.8068552313 3.8111348784 0.0185453886 -0.0496757363 32.7896177635 32.7896606370 0.7840460324 0.7185679238 374.1039198041 374.1066081098 5.2436795406 -79.5373842982 -69.5070629669 105.7588906815 15.7496035636 -245.6507391717 -213.2813166508 325.7012053709 0.6943729057 -12.9308503854 -9.9256738887 16.3158832910 -0.1020618441 -1.2972708294 -0.9671528814 1.6213306019 0.1014503134 -2.1130369388 -2.1316967495 3.0064643832 0.1836679927 -1.9717166684 -1.4408509463 2.4529434943 2.0501482498 -37.8604534139 -27.9227342100 47.0883807972 -0.5509308645 0.0620311905 45.2413159345 45.2449281131 -0.1900094675 -0.2197301967 33.7953724811 33.7969091172 0.0624496832 -0.2122794969 8.9957815790 8.9995849098 0.0766310062 0.0585990253 3.5377034194 3.5417695331 0.0439131849 0.1087149157 4.8065439083 4.8099991090 -0.1020302218 -0.2111794524 -0.5474133296 0.6116764387 0.3377530812 0.0953990750 -0.1506246623 0.4066272263 0.2886390650 0.0743219511 1.0543363382 1.1045094663 -0.0004253055 0.4803871654 6.0321688973 6.0528764567 -0.3342579506 -0.1352304396 5.7835021958 5.7964120870 0.1027569632 0.4342172264 6.0777123931 6.0956682416 -0.8968050360 2.9022658847 61.8616105969 61.9363039902 -0.2040357177 0.5718622690 8.1330813788 8.1569080862 -0.8029489273 1.0607630292 13.9699714813 14.0338707475 0.2660054483 0.6432492588 7.5677534660 7.6009802535 0.4494737352 0.6138376589 6.5487760986 6.6112731497 0.1057973042 -0.1601867267 1.3001313407 1.3216180026 0.0302726981 -0.0387092452 2.1549924555 2.1600664597 -0.0374954189 0.1759403162 0.4665792010 0.5191693722 -0.2044957083 -0.4418403226 2.0877206168 2.1482780369 0.3194363348 -0.9476959564 3.2134856269 3.4015140793 -0.0369144097 -0.3345082790 3.1474807971 3.1684970594 0.0100441640 0.2094015396 -0.0680426973 0.2608821258 -0.4312922598 -0.3023655494 -2.0478062267 2.3138150457 -0.4647066822 0.5095917152 -0.0101370798 1.1655601923 0.0186217192 -0.1069847117 0.0543954222 0.1850166042 -0.0397460979 0.5685988686 -1.0585929138 1.2996708594 0.0537334585 0.2989363479 -0.0561415628 0.3389423028 -0.1109767739 -0.0075875930 -0.5798459836 0.6066914912 -0.9717975565 -0.4677922007 -7.8181178668 7.8933938707 0.0040320618 -1.1946762747 -10.1932159157 10.2748508176 0.2443094882 -0.1950667800 -5.1866291929 5.1979169235 -0.1126540943 0.1240916167 -1.7415831632 1.7551869911 -0.2652285108 -0.1368087647 -1.8732455852 1.9019967425 -0.1919458674 0.0112908612 -3.5293734089 3.5373616078 -0.0297085277 0.3437828290 -1.5599893070 1.6037816725 -0.0405236969 0.0089659388 -1.1806089681 1.2803128733 -0.0425778149 -0.7652040090 11.1731327033 11.2002555433 -0.0693869046 -0.5649441547 37.2352823658 37.2429036229 0.1933418206 -0.7389019907 22.2042594238 22.2178300821 0.3247443580 -1.1457701126 51.3881953583 51.4105792811 0.0383311292 -0.6699128963 14.4493004863 14.4655458553 -0.0936560391 0.0025439323 7.4488056917 7.4507022450 -0.0346486105 0.0040284153 8.3261981669 8.3274409306 -0.4522960145 -1.7146317040 61.6411971393 61.6738559692 0.0465973593 -0.1052138173 9.7476673207 9.7493455801 -0.0010822535 -0.0663460492 2.5655797254 2.5664376667 0.6691394486 -1.8041596385 80.5377019232 80.5606862600 -0.2833314723 0.3213355914 10.4213671219 10.4724026737 0.2089467865 0.2041883147 5.5890009074 5.5983714199 -0.8310057068 0.7002139818 9.3048240761 9.4149334456 -0.1571438986 0.2159305988 2.6830619301 2.6999298758 -0.6804365183 0.9213319795 4.8999493379 5.0339675973 -0.0516548939 -0.2832496792 1.8124067549 1.8404338182 -0.3451969790 -0.0771812138 0.6807859483 0.7671945004 -0.1135972123 -0.0348760178 0.4548493327 0.4701154950 -0.0951895887 0.5961128749 0.9335049788 1.1204119545 0.1198729587 -0.1012681537 0.0189937701 0.2108679999 -0.1628888631 -0.1817810100 12.5825131527 12.6198084354 -0.0555234320 0.0231884875 0.0102478775 0.1523330606 -0.2432644585 0.7448322403 0.7312597906 1.0808206740 0.1034315550 0.1545225259 37.4725166848 37.4732379409 -0.3138950563 0.3299293871 42.9433071151 42.9459484617 0.6152425695 -0.7568190489 114.6387941929 114.6429432302 0.0776336410 -0.1600681133 16.6586538178 16.6596037109 -0.5214687226 -0.0470156742 28.9223792325 28.9274547853 -0.0179681094 0.0044421945 0.1643469250 0.1653859057 0.0175381219 0.3698007912 1.2063201838 1.2618512578 -0.1225744658 -0.0035273418 -0.0109908167 0.1231167732 -0.5489416693 -0.2546478575 0.1206554634 0.6170415127 0.0808850807 0.1688832067 0.2557197025 0.3169487340 -0.0112982429 -0.0064633013 -0.0085082309 0.0155503874 -0.0125240368 -0.0007090654 -0.0055070306 0.0136996955 -1.0420810337 -0.7142049963 0.6177186540 1.4062709529 -0.0069546897 0.0024412495 0.0169825187 0.0185130589 0.4414376456 -0.4769657948 1.2148548752 1.3777648319 0.0298601822 0.0001931235 0.0287652231 0.0414621012 -0.0322240546 -0.1282613758 0.5921079933 0.6066969968 0.4403239864 -0.0682753512 0.5448189876 0.7038284350 0.1925950471 -0.0373537573 0.4092914987 0.4538806961 0.4769748452 0.0621252995 1.0146589390 1.1228968422 0.8626445068 0.0548686696 1.4565213360 1.6937002445 0.9089542202 -1.0599496741 4.5167791445 4.7538048293 0.0739866983 -0.2009601466 0.7423567704 0.7726270683 0.0415823136 -0.2499829082 0.4907851665 0.5523500908 -0.0438485575 -0.0932595714 0.6227726738 0.6312415123 -0.0079756123 -0.2902803432 3.3875432657 3.3999670094 -0.3341758526 -0.2968760756 7.0451052767 7.0592717234 -0.6928832356 -0.6928977167 18.7736552426 18.7992107705 0.7200953589 1.3958664472 242.5599137400 242.5649989880 0.3825715089 0.6936866598 108.7522170309 108.7551022770 0.0482426622 0.2886465659 22.7716903160 22.7735707354 0.2358748287 0.5555579255 37.7602797937 37.7651030932 0.3025357839 0.2894925375 21.2397190292 21.2438461270 0.0106077962 -0.0091930517 2.0984109556 2.0984579043 0.3256805279 0.2424260492 14.6770166515 14.6826310989 0.2384105293 0.3461494073 15.4556796095 15.4613935718 0.3141915450 0.3009569854 2.6395816489 2.6751976965 -0.0096892232 0.0414549415 0.2465343072 0.2501830486 0.2792596103 1.0120406442 18.2584611918 18.3126723304 0.1594139799 0.3094360428 5.3164798798 5.3296905707 0.2339622504 0.2633098361 2.3665793958 2.3926488336 0.0285148465 0.0722237407 1.0786564049 1.0814476432 0.0052509545 0.0228452148 0.1185246515 0.1208204013 0.6398124402 0.6099172505 2.0970762951 2.2757609713 0.1785230647 0.1398996922 1.4202531681 1.4382494463 -0.0030335829 0.0961114871 0.5241081104 0.5328563896 0.0288586558 0.0030058623 0.0958828233 0.1001767090 0.0068467201 0.0898201964 -0.0055903516 0.0902540708 -0.1196003219 0.1489022280 0.4767919845 0.5136211707 -0.1969205320 0.1510228641 1.1179073179 1.1451211171 0.0286843529 0.1363799841 0.1030164946 0.1733051942 0.5482414421 2.7489136531 2.8764594044 4.0163557682 -0.3185377234 0.5660817097 0.4564779146 0.7939060837 -0.0215051718 0.1294411285 0.0468152092 0.1393166967 0.1509308109 0.1948765765 -0.1192207384 0.2738075496 0.4179512350 0.3355379344 -0.0969076812 0.5446650704 -0.0107055845 -0.0281843005 0.0160343296 0.0341476802 -0.0001657235 0.1547247301 0.1176025529 0.1943453884 -0.0010339338 0.1475057620 -0.0920190886 0.1738577910 -0.1287907655 0.1429582583 -0.0428397640 0.1971278019 -1.4255104224 -0.2283204319 -0.7348971450 1.6199641965 -0.0124055983 0.0026670733 -0.0237757218 0.0269498997 -0.4142123188 -0.2400944256 -0.4545435375 0.6601719517 -0.2346936053 -0.0306381048 -0.2515368591 0.3453846744 -0.2930271698 -0.1018080141 -0.3866106420 0.4956789107 -0.4478588456 -0.0302651816 -0.3991851066 0.6007014867 -0.0357911076 0.0232905446 -0.0678134453 0.0801381071 -0.9092849255 0.0998306884 -2.5236889129 2.6843567146 -0.3456237880 -0.3602835296 -0.8437865200 0.9804262929 -0.1974123350 -0.1271051592 -0.5650993292 0.6119351300 -0.6812182908 0.0962861814 -0.6107033592 0.9199391183 -0.7808072504 -0.0332331528 -0.7174583449 1.0609009763 -0.6632905805 0.4445856287 -1.8169785653 1.9846969245 -0.2169429825 0.2161792601 -0.8576275669 0.9106716058 -0.3480584410 0.3783913426 -0.3487614823 0.6212561936 -0.3238521914 0.5463680368 -0.5192539299 0.8203797397 -0.6844820227 0.1216282986 -0.9798667999 1.2014358193 -1.5031927011 0.4382579161 -2.0187823496 2.5548268969 -0.1501433640 -0.0204109340 -0.6972499862 0.7135244769 -0.2958407349 -0.1128717208 -0.8081983055 0.8680128264 0.0626570591 -0.2538621848 -0.2301717391 0.3483546259 0.0826546119 -0.0973461487 -0.2339677268 0.2665500979 0.1128921437 -0.1975877105 -0.5323204244 0.5789219064 0.0122404322 -0.0659932161 -0.0417719858 0.0790558762 0.1305400743 -0.2730287483 -0.8679398660 0.9191871515 0.0639444773 -0.0847692087 -0.1357004596 0.1723059188 -0.7724731435 -1.9056077407 -6.5273303348 6.8435441782 -0.3778153570 -0.7141539355 -2.4956168803 2.6231400841 0.2817098336 -0.3591918976 -2.5222942922 2.5632689571 0.4543203279 -0.6484586630 -5.4535309455 5.5107082459 0.6473095172 -0.7194958457 -3.2672940661 3.4076229835 0.0738228409 -0.1612665111 -0.6793856884 0.7021549779 -0.1047258903 -0.0952661543 -1.1571705049 1.1657987518 0.0234492097 -0.1371049554 -1.0826402202 1.0915390422 0.0237120703 -0.0187626406 -0.0495381200 0.0580372664 0.1278582581 -0.2777988698 -1.8724233352 1.8972319554 0.6243188869 -0.1097200550 -4.3254875059 4.3716878579 0.8413065942 -0.0927195109 -6.8738742488 6.9257881055 0.2421951222 0.0674737631 -2.8995271136 2.9104069593 0.8328980878 0.4385586977 -9.0773396745 9.1260149311 0.3880506936 0.4464257164 -8.4348920549 8.4556066156 0.2578702120 0.2518221237 -6.8026440166 6.8121859226 0.1084840808 0.1093619997 -1.3514205293 1.3601714192 0.0746990537 0.0972268800 -2.7588530338 2.7615761943 0.3317698861 0.1403227102 -6.2417922491 6.2521781966 0.0836741669 0.1257907451 -2.4639434323 2.4685708245 0.3870264129 -0.0549050655 -4.1369386710 4.1553658778 0.5606486008 0.2803305686 -16.3661926048 16.3781919777 -1.2535191036 2.0038018025 -61.6628710128 61.7081533782 -0.2118572828 0.2603259665 -8.0256531858 8.0326684343 -0.0311072412 0.0323989748 -4.4223094876 4.4225375700 -0.7511638369 0.1720919823 -48.7578041424 48.7638936874 -1.1327698242 -0.2206424719 -255.1233219123 255.1259321083 -0.1058639552 -0.0650147656 -27.3622522258 27.3625342570 0.0457467414 -0.1041117026 -38.2158381558 38.2160073524 0.0353383208 -0.0603974862 -5.8378582023 5.8382775750 -0.3808971272 0.0181513234 -78.9556376756 78.9565585170 -1.7357272851 0.1171247089 -305.6121513849 305.6171028288 0.0475604291 -0.0669409410 -27.7736545278 27.7737759211 0.2674160849 -0.0019749816 -89.7732730636 89.7736713731 0.4330005443 0.4440548615 -33.1748847376 33.1806819029 -0.0094075013 0.0128303461 -0.5613206068 0.5615460288 -0.1977248115 -0.1378213277 -1.3973708019 1.4180038708 -0.4279874181 -0.4943629618 -2.9923425964 3.0629531799 -0.1794573655 0.0294999752 -0.3798898978 0.4437018300 0.0270723648 -0.1820516350 -0.0233877527 0.2321690820 0.1474493395 -0.0082038002 -8.0869540848 8.0883023546 -0.0227243783 -0.0209180342 -0.7933445765 0.7939455766 0.0560456647 -0.1007485486 -40.4103630511 40.4107685289 0.2814449511 -0.0539814199 -26.9706051223 26.9724886820 0.0018320881 0.0346791230 0.0821711023 0.0892081172 -0.1442473119 0.3360353146 0.2064184737 0.4199233334 0.7571471966 0.0349278199 -0.0010329484 0.9067349811 0.5107871183 -0.0396690502 -0.1304024994 0.5467739117 1.0512855322 -0.1100447159 -0.2620849791 1.0979432731 0.0461392496 -0.0257395740 0.0585888679 0.0788924044 0.6078632355 -0.2343876926 0.1692017386 0.6731006848 57.5869350654 -14.0596793577 3.4538408147 59.3789414712 6.6213890283 -1.7191779506 0.2413966403 6.8451908540 27.3173307673 -6.4497763869 1.9912146765 28.1545993076 6.0738709886 -1.3388184462 0.3693292472 6.2321928320 3.5659460625 -0.8254988083 0.5616512723 3.7030894878 3.1547190635 -0.8609912971 0.5096497673 3.3095772040 17.6070311669 -4.1934966709 3.1416318184 18.3701608954 30.7458770655 -7.4928209985 5.4248470516 32.1073245315 9.9675924289 -1.8359129407 1.7858800505 10.2913965384 9.3132028797 -1.7787129922 1.5543042706 9.6080918788 0.0994531819 -0.0262403939 0.0104038358 0.1033814947 17.5458689998 -3.2204166450 2.9551552799 18.0820780071 1.7574307801 -0.3234331260 0.2275469450 1.8013743492 9.6430663343 -1.7654866661 1.5676124600 9.9278940526 9.3309337451 -1.6816697388 1.4086940730 9.5853407168 112.6285976101 -21.0443820113 18.8007441851 116.1100124699 -1.1309164449 1.3451509577 0.1750318993 1.7715865926 -0.2193631121 -0.0182287049 -0.0452287301 0.2645333317 0.0385349089 0.4463740782 0.0319705211 0.4491735423 0.0853868105 0.4573134896 0.1657707563 0.4938688883 0.0056766556 0.0148762230 -0.0715341725 0.0732848160 0.1156522888 -0.2776223079 -0.7310339507 0.7904810149 0.0991543120 -0.4249213554 -1.1066115895 1.1895288756 0.0288057555 -0.2347118894 -0.3819346956 0.4492143745 0.0577583373 -0.4503080960 0.0661941562 0.4587974206 -0.0003110630 -0.0454673724 0.0566119775 0.0726105688 1.2760796125 -1.1352519375 0.0425180606 1.9498142756 0.3614619168 -0.3386330535 -0.4252135928 0.6527891403 0.1586957657 -0.2507806446 -0.3588298797 0.4656545505 0.0187470881 -0.0279288877 -0.0904893588 0.0965391119 -0.0555105435 0.0685430538 -0.0321311398 0.0938721514 0.1042412029 -0.0983675955 -0.1303063932 0.1937063973 0.1210789636 -0.4293942456 -0.4230882753 0.6148521955 -0.0188278874 -0.3468797382 -0.3156897512 0.4694039424 0.0206636487 -3.8640055565 -3.0056172310 4.8953754571 0.0440009175 -0.3401267133 -0.3827414178 0.5139195022 0.2475972099 -2.1774968553 -1.9647768414 2.9433220975 -21.7595812968 30.3916257724 10.7448363943 38.8919246688 -4.2717034451 6.0521175737 2.0947521972 7.6982831993 -14.1863249291 20.1470807774 7.0830714389 25.6383809913 -6.9546585225 9.8792319520 3.3747163591 12.5441304852 -3.2583747989 4.3298757788 1.6698316603 5.6703763864 -5.7608215131 7.3996458821 2.9829132327 9.8407111044 -0.7740172228 0.7518133815 0.4661514051 1.1754246698 -0.4110746449 0.5166082109 0.2172508595 0.6950283039 -1.1638580542 1.1456815328 0.5190203171 1.7136317675 -1.3871523470 1.2312217804 0.4777185016 1.9152842277 -1.0106828515 0.9293108019 0.4134813770 1.4338986164 -3.7737164895 3.7279075628 1.7919235292 5.5990374954 -1.9259850614 2.2559887637 -0.1580294316 2.9737782105 -0.3017821599 0.2467251087 0.0374501322 0.4157259297 -0.2813855134 0.2474553958 -0.1308528994 0.4207306101 -2.0202362147 1.5906161550 -0.1423577267 2.5789842230 -0.4237388584 0.3911686326 -0.1091636395 0.5869277804 -2.1019833153 2.1052061069 -0.2786992995 2.9879591547 -1.5482854183 1.0004955320 0.1382851804 1.8485945573 -0.0611810201 0.0583395154 0.0310782499 0.0900692728 -6.9919222018 7.5931937218 -2.3517288749 10.5865100800 -17.5459499492 19.1414319434 -5.7051177905 26.5857696045 -48.9947887981 53.0817417044 -14.0542292245 73.5913173604 -10.9173653428 11.9098456417 -3.1755506312 16.4656433536 -21.8738037386 23.9343640315 -6.3132516684 33.0329262739 -5.8654095002 6.5186219701 -1.6893451304 8.9302490426 -11.5924665688 11.2296159552 -2.7030189049 16.3644696476 -12.6323541750 12.3531754905 -3.0746312489 17.9340646263 -0.3813275077 0.3543084120 -0.0256997807 0.5211579392 -3.1922845786 2.9733670281 -0.6078530116 4.4046654355 -1.2578073259 1.1771785748 -0.3990239538 1.7683463410 -4.3721547311 3.8266605311 -1.1874270409 5.9303499720 -2.9365641082 2.4678750831 -0.6849030642 3.8990240035 -1.0000679752 0.6371826328 -0.0741019365 1.1962894902 -10.7419778504 12.1076261297 -0.2096237713 16.2145438587 -0.1218391341 0.1931565203 0.0322477388 0.2306385323 -2.4191489303 3.1588731619 0.1278110981 3.9808412273 -3.2902885426 3.9840006935 -0.3030666390 5.1759163060 -0.1736991978 0.2223702018 -0.0473407819 0.2861137319 -12.4033198944 15.0557491584 0.5677232067 19.5151284076 -0.6668346211 0.7869791313 0.0576051792 1.0331132182 -1.0655350196 1.0650612381 0.1388880581 1.5129475244 -4.2308900734 4.5631437185 0.4339765385 6.2378719965 -51.4205428551 54.8699071166 -0.3279386032 75.1989792366 -8.0735342913 8.6915730871 -0.0398572946 11.8628406077 -1.2077172565 1.3728762130 -0.0119304025 1.8285273863 -7.3067025753 7.8135511468 -0.0982655145 10.6980904912 -0.0375631965 0.1103113898 0.0775486043 0.1399763640 -0.0365328649 -0.0283843615 -0.0095314596 0.0472352720 0.1328024768 0.1324944475 -0.0814385796 0.2045079918 -0.0218156683 0.0904956105 -0.0122675468 0.0938928730 0.0063194075 0.0591651435 0.0106149689 0.0604411009 -0.0137786504 -0.0000192738 -0.1263270550 0.1270762622 -0.2929807463 0.1929856744 -0.1358704177 0.3762206250 -0.5913562444 0.4623192691 -0.0968109022 0.7568445449 0.0101012193 -0.0037182497 -0.0262958876 0.0284136185 -0.1901488782 0.1429057136 -0.0207286116 0.2387646840 -0.0091242631 0.0069205145 -0.0011314411 0.0115189391 -0.7382401537 -0.2734239441 2.7557712705 3.0156898160 -0.0930108269 -0.0282997820 0.7308140417 0.7503471463 -0.0567548991 0.0232824299 0.1485318460 0.1607012738 -0.0456651339 0.2928018364 0.5801628788 0.6514654141 0.0190808351 0.0447571933 0.5727714210 0.5748342243 0.0363393486 -0.0038232481 0.0317928584 0.0484350217 0.0690615539 0.0742548256 0.8234845392 0.8297048051 0.0651788769 -0.0372260724 1.4921417958 1.4940285155 0.0846900245 0.0137748537 0.4872198428 0.4947174163 -0.0226831002 0.0450330168 0.9536522385 0.9549843389 -0.0930261979 -0.0040848715 0.7280173832 0.7471008331 0.1267980449 0.0199339084 1.3010196909 1.3147650459 -0.0836335759 0.0478008638 0.3196230218 0.3338238663 -0.3555995916 -0.0386860749 1.7594463628 1.7954384383 -0.0666889858 0.0849221912 3.0504807940 3.0523912387 0.0420145882 0.0973348214 1.4516925747 1.4555585266 -0.1083681299 0.0503799431 4.5308564519 4.5324322364 -0.2398465101 0.0282079220 4.4835649380 4.4900642076 -0.0342838985 -0.0060227591 36.1893122050 36.1893289456 -0.1184945266 0.0923565132 33.8967261732 33.8970591046 0.0803648117 -1.3006513608 -1.0766275478 1.6903488817 0.1425884902 -7.0840555182 -5.7109978894 9.1005313557 0.0856249734 0.1276847407 12.0634540966 12.0644336697 0.1264126950 -0.0027537639 8.7875784411 8.7884880731 0.1749817256 0.0159482198 21.0592764654 21.0600094538 0.0068858873 -0.0532295834 5.9017587313 5.9020027895 0.4197545912 0.1290503697 14.7376579842 14.7448598012 -0.1068841317 -0.1386593380 1.2639221869 1.2759897822 -0.0534296557 -0.2945546046 3.0759455558 3.0904786370 -0.0209613165 0.3707402802 14.0524713705 14.0573766881 -0.0565077576 0.2899102432 7.6277773008 7.6334938021 -0.2507596590 -0.0060706055 5.8207510376 5.8261530962 -0.1100205738 0.0374049167 1.3441939768 1.3492075829 0.0672245902 -0.0807639057 0.8009152278 0.8077791506 -0.0589475482 -0.0698131398 1.1417433169 1.1453935959 -0.0618108074 0.0644254879 0.1008595307 0.1346991623 -0.1125924054 0.1187001023 0.6158186332 0.6371807852 -0.2522388600 0.1373600913 -0.6178806849 0.6813727159 -0.1706554467 0.2223260809 -0.7757729129 0.8248489438 0.1169421345 0.0665501416 -0.4398044545 0.4599264532 -0.0268622859 -0.0185647915 -0.1596879074 0.1629922134 0.0518716199 0.2138209935 -1.7491179425 1.7684183453 0.1783714846 -0.1712641639 -2.5384448049 2.5542767298 -0.3003875725 -0.2498359576 -1.6321173036 1.6782304944 -0.1221643953 -0.0191012546 -0.7054396784 0.7161942036 -0.0745703248 -0.1544437715 -2.5985097238 2.6041632815 -0.3625290372 -0.2644471622 -6.9809241918 6.9953314558 -0.0587717804 -0.1349660601 -1.3099231618 1.3181686726 0.0645984988 -0.0589142399 -0.6065235038 0.6127924725 0.0781592776 -0.5947338278 -4.4246553801 4.4673115199 0.0090200935 0.0233385025 -1.3726619339 1.3799661653 0.0364509454 -0.0269818080 -0.1100639185 0.1190409826 0.1968828293 -0.6421868011 -2.6214141525 2.7061003114 -0.3462539964 -0.2529049484 5.4280446841 5.4449537955 -0.3472374075 -0.1871833900 6.7284344844 6.7399882826 0.0016887929 0.0136170970 0.2261552883 0.2265711627 -0.4004533114 -0.1770382310 6.7239085921 6.7381490148 -0.0004314729 0.0080284020 4.5880905259 4.5880975704 -0.8505053229 -0.6332429785 17.7716074884 17.8032128757 -0.0065872196 0.0153013237 0.8923835040 0.8925389853 -0.4633264800 -0.0277904421 9.3434363946 9.3549584390 -0.0421197724 -0.0836539690 6.4761493559 6.4768265795 -0.0801622751 -0.2082623672 6.2848968044 6.2888573721 -0.1682780783 0.2180564437 1.2852576926 1.3144403603 -0.3755968148 0.2549797941 1.6998467726 1.7594222668 -0.0520421212 0.0574619707 0.0186711799 0.0797425446 -0.0146267752 0.0017318533 0.1623898228 0.1630564209 0.0372192943 0.0360921243 0.2412785334 0.2467858342 -0.0569195300 0.4306126716 1.9506271673 1.9984027251 -0.0788752614 -0.0030967803 5.9931344488 5.9936542625 0.0139988462 -0.0142769850 0.1496260467 0.1509561322 -0.2172313699 0.2502515480 0.4503502384 0.5591338324 -0.1223814432 0.3324114095 0.3917661872 0.5281621988 -0.0238845041 -0.1006952266 13.6783553010 13.6787467898 0.0596270200 -0.6483336167 57.4164182013 57.4201094646 0.6949090312 -0.0127040716 131.1070852751 131.1098720337 0.0811517266 -0.2563681436 69.1699271723 69.1704498702 0.0921582606 -0.0415546893 27.7471816248 27.7473657859 -0.3264518443 -0.1977737721 55.0548479333 55.0584202612 0.0322012943 -0.0630036391 1.6669687810 1.6684697476 0.1087709231 0.0211699713 1.0534391440 1.0592512976 0.0368322659 0.0817456591 20.6977655088 20.6984302741 0.8037070181 0.6632330738 88.3807517292 88.3870045826 0.0522276326 0.0145899824 0.3708411428 0.3747849335 0.0929684650 0.3153560869 1.6809612093 1.7128114853 0.1374084970 0.0838328965 0.6128405640 0.6336265512 0.0093232791 0.0844987208 0.1475440816 0.1702827454 0.1663000490 0.4067127324 1.4618629063 1.5264711297 0.1826134399 0.2308226446 1.2670133129 1.3007495903 0.1499578711 -0.0054878047 -0.5625737126 0.5987373766 1.0605296956 0.6657797931 -3.8813426800 4.0807213519 0.4462608321 -0.0319774009 -0.3269970327 0.5541645458 0.0155283320 -0.0020892505 0.0138336195 0.0209012701 12.0354372479 -2.3678709383 1.9919162709 12.4276213631 44.3500083813 -8.3389648354 6.7369265918 45.6274833585 9.9432869480 -1.9691467676 1.6884676978 10.2760604071 19.1886115874 -3.7101116747 3.0880192152 19.7864500597 17.6084593030 -3.7466338218 2.7951254339 18.2183377456 5.4947926328 -1.0983992942 0.8399745079 5.6661083876 0.0588133847 -0.1778552703 -0.0081872360 0.1875061124 0.1144332056 -0.0752835562 -0.0816190741 0.1594498217 -0.0080493724 0.0073859007 -0.0153778661 0.0188632630 -0.7055973950 0.8443607011 0.0173396960 1.1005059484 0.0030556382 -0.0280880121 0.0342570922 0.0444051992 -0.0923304794 0.0937395228 0.5414849199 0.5572413607 0.0842606116 -1.2830922213 -0.9849710020 1.6197510221 0.5210477682 -5.7647583053 -4.1246987022 7.1075360343 0.1862059775 -1.5268509438 -0.9042750183 1.7842813062 -0.0216802061 -0.1650270794 -0.1155365523 0.2026145680 -0.3416329892 -0.1981698250 28.2883034234 28.2914046088 0.0241220078 0.1030149034 15.2158290095 15.2168369306 -0.0309089809 -0.0840452740 0.5595145291 0.5666352278 -0.0748748573 0.0337511461 0.2859194089 0.2974815835 0.0161020399 -0.1065597789 6.0416162451 6.0425773570 -0.2286345427 -0.7890946666 39.7055415407 39.7140400009 0.0101623463 -0.0427420566 1.7893351490 1.7898744180 -0.3353305206 -0.5947943667 21.1587939060 21.1698083707 -0.1099442416 0.1172609739 0.4812506038 0.5262316988 -0.3190238286 -0.0501076257 2.7024101465 2.7252132691 0.2396600889 -0.1200803712 0.5471051398 0.6092456711 0.9289715602 -0.3737668247 1.5390879732 1.8361594669 0.1161154287 -0.0717623353 0.0652201374 0.1512821598 0.0112005227 0.0256407543 0.0922910901 0.0964393349 0.1832146988 -0.9481546002 6.4421719525 6.5141495406 0.0525761144 -0.4072983596 3.3681703142 3.3931147147 0.5990851579 -1.6408624195 11.5064828424 11.6383194624 0.2903624754 -0.5830118125 4.0416572777 4.0938010077 -0.0261126837 -0.0861863322 1.9823853749 1.9844298251 -0.0004509726 -0.2109946171 1.8760955661 1.8879230665 -0.0407754467 0.0475725006 0.7197855130 0.7225074149 0.1060494063 0.0804500534 1.1835331916 1.1909951735 -0.1172191770 0.3888983820 -10.0002166093 10.0084621456 0.0383320370 0.1049203715 -2.8800469139 2.8822123197 0.0158467217 0.0859764385 -0.8542157248 0.8586778040 -0.1632404032 0.7110508905 -10.0973608574 10.1236819924 0.0876748066 -0.2056120957 -1.1968557730 1.2175495665 0.0618192329 -0.0023898964 -0.2168798249 0.2255309017 -0.2160941511 -0.2146829476 -1.4779032902 1.5089677218 -0.0619137151 -0.1950818424 -1.2858349907 1.3020222182 -0.2146292967 0.2755162617 0.1831801607 0.3943728144 -0.7220237311 1.3756562219 0.7409579975 1.7212690269 -0.5621891456 0.9359126037 0.1924987377 1.1086229301 -0.2714744753 0.4723325130 0.1941026725 0.5783357512 -0.2107409526 -0.0753115385 0.2819959464 0.3600073481 -0.6905804377 -0.0386472716 1.0983372924 1.2979752542 0.0104629861 -0.0936355663 0.0829659506 0.1255406003 -0.1126726178 -0.0337288618 0.0977384520 0.1529233792 -0.3054405668 -0.3717901308 -2.0900800766 2.1447509338 -0.2272841088 -0.1245234095 -1.0744072060 1.1052216927 -0.0955461250 -0.1572980338 -1.8992772505 1.9081734218 -0.0212549513 0.0287335462 -0.4137419752 0.4152828093 #END fastjet-3.0.6+dfsg.orig/example/data/cone-midpoint-problem-ev1.dat0000644000175000017500000000107011766120141023161 0ustar sunsun# Cluster this event with # # ../fastjet_timing_plugins -midpoint -r 0.7 -incl 0 < cone-midpoint-problem-ev1.dat # # and compare the output to what you get with # # ../fastjet_timing_plugins -midpoint -r 0.7 -incl 0 < cone-midpoint-problem-ev2.dat # # which contains an extra soft particle 4.000000000000000e+02 0.000000000000000e+00 0.000000000000000e+00 4.000000000000000e+02 1.100000000000000e+02 0.000000000000000e+00 7.397603280415953e+01 1.325611309149182e+02 9.000000000000000e+01 0.000000000000000e+00 2.161315626191299e+02 2.341214478858930e+02 fastjet-3.0.6+dfsg.orig/example/data/single-event.dat0000644000175000017500000007000211766120141020666 0ustar sunsun -0.8807412236 -1.2331262152 -157.4313156510 157.4393822839 -0.0051712611 0.2381550800 -9.7396045662 9.7435168946 0.0362280943 0.2694752057 -6.9243427525 6.9310844534 -0.2206628664 -0.1438198985 -0.6838608666 0.7460038429 1.2716787521 1.0422298083 -6.1740167274 6.3907254797 -0.5695590845 -0.3627761836 -58.5430479911 58.5544811606 0.2839991726 -0.4668202293 -49.6978846131 49.7097441380 0.6510530003 1.3970949413 -62.7226079598 62.7485783532 0.1434555273 -0.0312880942 -6.9382351613 6.9411919273 0.4931562547 2.1627817414 -14.8865871635 15.0516040711 0.2396813608 -0.0786236784 -1.9340954697 1.9554625817 0.3355486441 0.0516402769 -0.8346540063 0.9118040941 -0.7853865645 -0.7810520475 -1.5367790662 1.8994852039 0.1094889185 -0.1754670827 -0.6843130641 0.7283822313 -1.3395280577 -1.0677537402 -6.4527380155 6.7420362761 -0.4610425267 -0.0168193957 -0.8357253135 0.9647588756 -0.8586330562 -2.0252604440 -6.1169276419 6.5019392609 0.1506846470 -0.2812835366 -0.3038867955 0.4622264166 1.9980221318 1.1300023793 -3.4459595617 4.2454664891 0.3272882037 -0.2364585949 0.1553473919 0.4545798417 1.0076426762 1.4440286855 0.8523588299 1.9612643798 0.0379998790 -0.3660104062 0.1528715253 0.4222050407 10.0151541250 -2.3211630182 -15.0785563543 18.2503000364 11.3598983026 -1.2325298244 -15.8349153125 19.5276839884 1.6687709743 -1.1585763834 -2.8709909456 3.5198245120 3.2014431503 -0.3128004506 -0.5513753788 3.3957985464 -30.7151484971 7.1828179172 -30.3287168815 43.7617176202 -7.5956115238 2.5973350872 -7.5388480549 11.0234901429 -0.9213602936 -0.5107772285 -0.1419601961 1.0721150358 -1.0794599717 -0.6668199287 0.5316879271 1.3827705828 -0.7396340255 -0.6182167240 2.5119449763 2.6941784942 0.2074176533 0.2794277179 0.9960164767 1.0642511636 -0.1539166871 -0.7751679292 2.5738103560 2.7372826624 -1.3215623416 -0.6371922652 234.4350568153 234.4396892268 -1.0575338040 0.0953188302 464.9467453555 464.9479787674 -0.6276410883 0.2361957514 71.0828886604 71.0861889671 -0.2082020096 -0.4373362216 0.9028588667 1.0340430193 -0.0179791764 0.0902483897 0.2648461382 0.3131952817 0.1020198339 0.1098009129 1.7787412558 1.7904928168 2.0706642474 2.4044116603 1.0424047727 3.4696174649 0.7973260719 0.5349870337 57.3601218239 57.3683274589 -0.2096823488 0.0247005810 -23.7890553577 23.7951971424 0.3102511281 0.1319028264 -314.2349531398 314.2355280746 -0.2551007217 0.1414141961 -264.4206622484 264.4208599525 -0.0667217187 0.1675665310 -440.2993433749 440.2994024371 0.1230808742 0.0544787546 -9.2334321211 9.2344131146 0.0149244718 0.0926408620 -13.1527203128 13.1530550328 -0.7273456972 0.8103042163 -69.3094134240 69.3181065354 1.3444919516 -0.0354346667 -75.6843009141 75.6962503634 -0.2673665474 -0.0908126999 -12.8334289873 12.8372937636 0.3478059093 0.1156549525 -5.5306033046 5.5427356000 0.1066857461 -0.0194790151 -1.0350365802 1.0407026486 0.0216700641 -0.0151983847 -0.0808217620 0.0850455160 -0.0908971368 -0.1795934739 -2.1471276079 2.1565419240 0.1619100903 0.1096391138 -5.1549916876 5.1605866621 0.1658801571 -0.4323029725 -10.9719847384 10.9928382207 -0.0738683424 0.2189545272 -5.2858871411 5.2927762347 0.6032480190 0.0236332859 -3.2008192361 3.2944425092 -0.0357683833 0.1856094526 -0.6235460716 0.6515673024 -0.3533710661 0.6295703546 -2.8607535473 2.9504475593 0.0481173336 0.0105768278 -0.5957002119 0.5977339622 0.2075827055 -0.0308763006 -0.7487101323 0.7775672240 0.5304017839 1.4777754272 -3.9322188565 4.3370823357 0.0413924064 0.1486652835 -0.0938036137 0.2282402258 0.0836183570 1.0175603398 -5.1671981062 5.3502475764 0.3485824980 0.7400614406 -2.3277750515 2.4712784483 0.2840798497 0.1448084307 -0.3598613881 0.5006504231 0.0615749422 0.1226682661 -0.2567909641 0.3228937304 0.4447081942 -0.4703237310 -41.1153447304 41.1206763305 0.0124634495 0.4015541485 -14.9710629970 14.9771027945 -0.0316220376 -0.1433969883 -40.0395270888 40.0428387244 -0.3087482155 0.1806952265 -13.8307938752 13.8354195977 -0.3356629575 0.0993822522 -10.0800461630 10.0861229965 -0.3201882660 -0.2024976612 -41.8446572615 41.8568897287 0.1061884633 -0.3151853343 -14.3998854139 14.4044020183 -0.2527720657 0.9069338223 -58.5238686950 58.5316077815 -0.1792120633 -0.0360308668 -33.2666000360 33.2673950427 0.9675598538 0.3593779851 -47.8071191709 47.8274640622 -0.0714174325 0.0908505489 -6.7152464947 6.7176907894 -0.0778201914 1.4032563894 -90.8847339885 90.9004422830 0.0244495106 0.0548209263 -26.7828085908 26.7832395149 -0.1660314882 -0.0217473452 -18.6254257666 18.6267013767 0.0157049989 0.0168585335 -0.3203174380 0.3211450112 0.3107606707 -0.1971654391 -2.5216196955 2.5483352004 0.0555180663 0.1012407689 -2.8568822700 2.8592146218 0.4924054759 0.4638065599 -11.5988585156 11.6185669746 0.0246279353 0.3500825457 -1.4762107229 1.5237592353 -0.1337804291 0.0207566609 -0.6922983624 0.7054112734 0.1425990775 0.2159252673 -1.4422250588 1.4652547008 1.1509079385 1.3932642481 -11.9161396276 12.0523922095 -0.2817355269 0.1171350200 -3.5044085055 3.5204338196 -0.2938296833 0.5477549955 -4.0607872094 4.1104554447 0.2320766870 0.2725578877 -2.4417843515 2.4718288765 -0.1166849087 0.3561484951 -1.0167846717 1.0926060461 0.4301305393 0.3390614943 -3.7153711906 3.7581162630 0.2292214322 0.5342372509 -4.0278522037 4.0719804844 -0.9524325280 0.0334349530 -3.6861382279 3.8073429911 -0.2656944809 -0.2572725338 -2.3412698888 2.3703011214 -1.0311407020 -1.0586248548 -4.0709688056 4.4316494143 -0.0950317920 0.0651839091 -0.4709223689 0.5045073299 0.0664907355 -0.2283387225 -1.8762930749 1.8964480162 -0.5611110795 -0.6953888597 -1.9606771050 2.1592002697 0.1891889671 -0.1472085995 -0.2096350365 0.3184488743 0.0792704574 0.0251844818 -0.0983276385 0.1287881517 0.1611736633 0.0711833539 -0.3690578008 0.4321197344 -0.0054785644 -0.1772470704 -0.1887858326 0.2942217092 1.2592788545 0.6027682305 -1.9731707573 2.5928490514 0.2029562446 0.1650861534 0.0141930687 0.2968600737 1.2748961578 0.4162795142 0.2649070316 1.3741558745 1.0762322510 0.3311719610 0.5525788508 1.2620514638 0.1617039199 -0.1197724715 0.0749212600 0.2560987754 -0.0323954715 0.2494233491 0.1560907622 0.3272698956 0.4783653778 0.0155338834 0.0730680592 0.4841628626 0.8887630855 0.0859887077 0.3171179068 0.9475535060 0.4620391835 0.0959242469 0.9549103797 1.0742510351 0.4929608353 0.2924063523 0.4046649124 0.7153637789 0.8090379891 0.3357430404 0.1242812216 0.8956514187 -0.2218609894 0.0554977900 0.1140035220 0.2911681494 1.0947245051 -0.6236432380 -0.8821510424 1.5443519278 1.2312355422 -0.7380880549 -1.6968461982 2.2269893898 0.9823668004 -0.1980014204 -1.1323956352 1.5185679940 0.3072642138 -0.3616367001 -0.8863081947 1.0149947787 3.5267082850 -0.8709343198 -6.0396048282 7.0492910411 0.0302309577 -0.1093072034 -0.1454183249 0.2312752681 8.3195138078 -1.2696507106 -13.6925071989 16.0726648724 1.9111207173 -0.2604029574 -2.8768617815 3.4664110534 0.5301770085 -0.2474488120 -1.1645712928 1.3107343956 1.7420326246 -0.2822907394 -2.8168929273 3.3240414394 7.1662439694 -0.8989264899 -11.6921124639 13.7429478399 4.0278455019 -0.7538804612 -6.1367606781 7.4387161891 2.3520608039 -0.3594541793 -3.9148734196 4.5833515040 0.8874010232 0.1118054115 0.0320276498 0.9058071435 0.1500724686 0.0233402575 0.0493207873 0.2120821501 4.2962697295 -1.7142289365 -0.1690138675 4.6308271300 1.8430690942 -0.4354147487 0.3986540928 1.9353074110 17.9174665745 -3.9541912904 4.1909545762 18.8211407058 3.7381128073 -1.1588289400 1.2894704313 4.1229341070 40.1307210930 -9.9455385011 9.4372399972 42.4083658029 46.9323028742 -12.1457646999 11.2983938225 49.7778448306 49.9481498640 -13.6951263923 11.6387976852 53.0834743878 55.4631919903 -13.9171302743 13.2275436067 58.6925897426 8.2260209293 -2.0146434912 1.9795098478 8.6973943203 552.6086009193 -143.3841889206 127.4057239389 584.9508777791 -58.5643305599 13.6721150775 -60.7292192202 85.4679184928 -20.7055785892 4.9367170132 -21.3460862941 30.1457632088 -63.1393333534 15.4319228136 -63.1699054399 90.6388674177 -184.7092504379 43.8836483458 -185.9895634959 265.7736690492 -132.3436726570 31.1975659982 -133.8117860858 190.7714585356 -249.6259700938 59.9806981396 -252.0534723625 359.7801849802 -84.6956389844 20.2530979512 -84.9405599439 121.6489105704 -1.4896061764 0.5394718049 -1.1697689680 1.9742835694 -15.6910439822 4.0928980329 -16.0308697076 22.8077421088 -6.5161499932 1.4530419848 -7.0414172713 9.7042557013 -1.6887821332 0.6217356263 -1.7453944171 2.5108607565 -2.9066030431 0.8578299581 -2.1768165890 3.7339287264 -4.3216629645 0.4876667295 -4.0106317127 5.9177053101 -0.1313279989 0.1710015195 0.2960934797 0.3662784619 -0.1378802261 0.0239116355 0.1336123094 0.1934811936 0.1228571341 0.1038820753 0.1856298240 0.2456497354 0.0880826051 -0.0369854789 0.0702432827 0.1185773575 0.3000337170 -0.0143366600 0.8191164649 0.8835481533 0.1103182833 -0.3276972527 0.5695489167 0.6807505905 0.0246169502 -0.0632054218 0.4462814427 0.4514067409 0.3462650138 -0.1370493016 1.8335961124 1.8710309122 0.1072718009 0.2347141259 0.8106008195 0.9835205177 -0.1228669036 -0.3420825771 0.4269449947 0.5778222728 -0.0537484106 -0.1418315633 0.1658218865 0.2247264604 -0.1921583292 -0.2051056097 0.6510375898 0.7227190760 0.0719282041 -0.6389806821 1.3260724361 1.4803438348 0.0770785256 -0.0961694649 0.7126381724 0.7365613449 -0.1024788272 0.2570404755 1.0007133278 1.0476061595 -0.3569652766 0.0132486739 8.2719979695 8.2808834026 0.9119741942 -0.5440359019 10.4508006448 10.5046135631 0.2130354298 0.0824739706 12.4438615581 12.4813728536 0.0796437059 -0.2190335365 1.8949965789 1.9143695121 0.0257844816 -0.0205887972 0.4134653053 0.4147798172 0.3407013815 -0.9771232757 20.8001110981 20.8258365743 -0.0484682129 -0.4170975131 51.2421047601 51.2524142879 0.0897243336 -0.1477960689 33.5942223016 33.5949571509 0.3309172902 0.2053558941 15.3759445633 15.3815092983 -0.4513428002 -1.0629724624 198.6483838807 198.6517896193 -0.5096208939 0.2808545308 526.2829357022 526.2840937694 0.0439210002 -0.0909597094 62.6115892566 62.6118262930 -0.4921468048 -0.2259270362 263.1629036404 263.1651334325 0.0256741895 0.0647083476 60.1293229885 60.1295252698 -0.2129474818 0.3356181212 10.9531127852 10.9612109561 -0.3345049992 0.0053042168 10.0385185055 10.0450612392 -0.2168883064 0.0832963463 14.9196810412 14.9221426402 0.2190731187 0.1408132403 1.5507985399 1.5786948078 0.1157490730 0.0973727931 0.2776072109 0.3455790172 -0.2700182117 -0.2659794788 3.8116405429 3.8304384274 -0.0503520285 -0.0502248492 1.5957756572 1.5973596371 0.3728285538 -0.0813045131 0.3833836648 0.5586361729 0.2045526783 0.5531671529 1.4067251294 1.5317281325 1.1124557930 0.6363451605 0.6161236815 1.7036584277 -0.0045760421 -0.0333413613 -0.0266276402 0.1460185011 0.2034731156 -0.0975389956 -0.0758288761 0.2759437765 0.2198871730 0.5955469316 0.7259653412 0.9744393147 1.6512411277 1.3209100794 1.5552345144 2.6286184355 0.1485630649 0.3302111341 2.2869277289 2.4987878260 0.1434858277 0.1748231234 1.2536107327 1.2814721851 0.4466109566 -0.3708574769 3.3454935959 3.5230832803 0.0645162267 -0.3240107647 0.8653597227 0.9367350499 0.7297178455 -0.0230670048 8.7581561340 8.7896415668 0.0818687057 -1.0590802908 6.0448998742 6.1375213268 -0.0165520648 0.0496969805 0.9381702085 0.9396313643 0.1856788128 -0.2651426402 3.5296675023 3.5472256346 0.2462301231 -0.0254015715 9.5838219962 9.5880341234 0.4564255134 0.1547243999 36.4834178279 36.4899947345 0.2420013869 -0.4750765942 8.8978425902 8.9148945584 -0.5836449074 0.2713063655 97.8985090318 97.9007242003 0.1098728236 -0.3173326524 192.1524793330 192.1528234652 -0.0884675198 -0.0343950604 37.9162600215 37.9166357068 -0.3479866282 -1.6163644207 3219.6952699557 3219.6958312012 -0.4502778003 -0.0845033682 -15.5304915887 15.5378743620 -0.0136188828 0.0749919179 -11.8647621575 11.8658278304 -0.2356122901 0.2546257088 -464.6232035239 464.6233539976 -0.3366930922 0.0001267148 -314.7906873590 314.7912608153 -0.5908021127 0.2714310441 -62.0570105158 62.0624117444 0.0950294025 -0.0979437150 -6.5075134406 6.5089442107 -0.0258241148 -0.1651896244 -7.6613397231 7.6631638929 -0.0283746791 -0.0128186850 -1.1860948704 1.1865034693 -0.2445470072 -0.0367850366 -2.3234980477 2.3366213976 1.1134230020 -0.0084955425 -8.1756524679 8.2511257554 0.7423074922 0.0450351928 -4.7803853081 4.8378851035 0.0631614949 -0.0147897750 -0.3372075109 0.3433904735 -0.0615524241 -0.0730339500 -0.4109508860 0.4219043606 0.2721762563 0.9356454684 -1.1899345164 1.5380040671 0.0195567553 -0.0613884496 -0.2438139881 0.2521830074 0.0015753821 -0.0127040661 -5.1798684309 5.1798842494 -0.2336502048 0.2398589892 -61.5027554276 61.5036669633 -0.2111577946 -1.2264310644 -54.4484267777 54.4628256623 -0.1724150208 -0.6710138080 -46.7073487537 46.7126952108 -0.0083548891 0.1191926839 -1.6273211403 1.6317018091 0.1782576111 0.2370603640 -3.4515411588 3.4642617920 -0.0157160274 -0.0172284475 -0.8321853782 0.8325120519 0.2055123178 -0.2277451049 -4.7400462090 4.7499622323 0.1433996625 0.1319354611 -4.2237703099 4.2282627709 0.2505217514 0.5109550496 -14.5866293938 14.5977256202 0.0907354824 0.2212240967 -1.6245224103 1.6420249969 0.0442826976 0.6827900032 -4.2712530344 4.3257098411 -0.0286900410 0.1272840718 -0.9586700336 0.9675084427 0.0168298416 0.0212462677 -1.2498808277 1.2501746801 0.0191626579 0.0396505095 -0.1096013028 0.1181178053 -0.1826163842 0.1583483453 -0.3493583086 0.4248225159 0.0736986630 -0.4757600112 -0.5567925582 0.7360686341 0.0718737115 -0.1073098612 -0.0922689901 0.1587287096 0.3823052378 0.2473184083 -0.9764937570 1.0774338714 -0.0099669892 0.0144860894 -0.0618195721 0.0642716668 -0.0893120375 0.0045092023 -0.4219473328 0.4313195157 -0.0173901063 0.0980486800 -0.2280732197 0.2488641256 0.0470683860 0.1067218125 -0.0220928902 0.1187142536 0.2236348783 0.1462105889 -0.2007592535 0.3342070810 0.2304940378 -0.1786278713 0.2738302916 0.4000230574 -0.0034266964 -0.0207838453 -0.0099250562 0.0232855581 -0.0198610958 0.0339167728 0.0860577817 0.0946084161 -0.1495093893 -0.0992705397 0.1721689527 0.2486962923 0.1388593068 0.0621639466 0.1820504657 0.2372522611 0.4364050518 0.1711414837 0.2526138346 0.5324965034 0.1135784502 -0.3755312317 -0.4819257884 0.6214307973 0.0656586648 -0.1174273893 -0.3106626572 0.3385432596 0.6794157833 -0.2958876229 -1.3108688155 1.5058327741 0.2105562628 -0.0146095214 -0.3598329775 0.4171656141 0.8891967174 -0.2859846717 -1.2899195992 1.5925924171 0.9709628090 -0.4638594187 -1.5007185975 1.8466430748 0.8378588087 -0.0907723342 -1.0811879512 1.3708444061 0.1779040294 -0.0469475636 -0.1539205319 0.2398863222 0.4696086571 -0.2188612179 -0.5030102129 0.7221161941 0.4511368236 -0.1140360671 -0.5914121373 0.7525270589 1.0715035537 -0.0504322193 -1.2598340838 1.6546435245 0.0668091207 -0.0378517174 -0.0814590598 0.1119454758 0.6316389071 -0.1273235117 -0.6462307006 0.9125749854 0.2684052593 0.0083959523 -0.1886456222 0.3281753282 0.3892874920 -0.1743366297 -0.6509560390 0.7782555985 1.3389273647 -0.3627304714 -1.9218592665 2.3701989205 0.0045094441 -0.0453764540 -0.0434900736 0.0630138411 0.3133525938 -0.1008805853 -0.3655345011 0.4919168751 1.4519335046 -0.3776623331 -2.3436634930 2.7827141980 1.1774890796 -0.2142441295 -1.7232930015 2.0981229346 0.2355847301 -0.2200748912 0.1401791546 0.3515441909 0.3730544183 -0.2033339289 0.0678202445 0.4302486156 5.7036562093 -1.3847122534 1.0304717985 5.9591101942 0.3132978256 -0.0441957346 0.0509066642 0.3204688424 12.0524189062 -3.0888845437 2.7804315114 12.7488355783 31.6297261863 -7.9897036677 7.4822494855 33.4702704005 0.1298166828 -0.0603422723 0.0449212824 0.1500382703 5.6041248096 -1.7827306116 1.3929423696 6.0435611820 15.2635626061 -3.9126479532 3.5227360906 16.1460467918 12.6420333259 -3.3156273590 2.8203654708 13.3704469927 -6.8280628114 1.6575170026 -7.0642230364 9.9635862759 -28.7310801665 6.6899382857 -29.6661493612 41.8367142558 -23.0805998372 5.2804748057 -23.7593817157 33.5428860164 -9.5867328041 2.3566842001 -9.6302827557 13.7920713461 -2.4941626575 0.7605935548 -2.3465485517 3.5079395695 -12.8361288251 4.1724746846 -12.3930282133 18.3238341103 -0.2218939688 0.0177591193 -0.1601445527 0.2742236267 -0.3547183900 0.1627198093 -0.4375984432 0.5863405751 -1.5077751291 0.4846678610 -1.3722432145 2.0955524844 -1.0249084149 0.3454253853 -1.0884030972 1.5343980115 -0.6851007890 0.1387858818 -0.6931465231 0.9844169414 -0.1348478831 0.0027831157 -0.0667382711 0.1504848634 -1.7172317946 0.4278616379 -1.5483601280 2.3514611847 -0.1185075147 -0.0023470526 -0.1255368894 0.1726529765 -0.2481981444 0.1582306347 -0.1468021309 0.3289226630 -0.9966635486 0.3389627921 -0.4783137759 1.1562949761 0.0088328598 -0.0568652170 0.3666038530 0.3710930576 -0.0824728099 0.0441797782 0.3879523579 0.3990747413 0.1199632582 -0.0647633161 0.3012285579 0.3306419733 0.0018630421 -0.0049969991 -0.0147954815 0.0157272757 -0.0136056330 0.0078110768 0.0042779078 0.0162612013 0.0895632652 -0.1214885998 0.5518245090 0.5720938272 0.3093767760 0.0801078725 4.7396091515 4.7503711613 0.1443427580 0.0774488471 4.1438348166 4.1470712729 0.0800206896 -0.2831535685 44.4006608942 44.4016358606 0.0077367737 0.0117045964 0.7717758140 0.7719033374 -0.1114386512 -0.0611335023 10.4091099025 10.4098859187 -0.2179700232 0.0686322286 20.7719389630 20.7731959408 -0.0517190611 0.1441402526 13.4281329719 13.4290061578 -0.0315432027 -0.0288834445 4.1154298514 4.1156520855 -0.0210490068 -0.1913294761 14.6251063933 14.6263729969 -0.4133059803 -0.9942214423 74.9928286595 75.0005576544 0.0017189742 0.0003086548 0.1162765244 0.1162896396 -0.0197978822 0.4918674160 1.4905912780 1.5697731904 0.1498213953 0.2658028537 0.0262280525 0.3062442134 0.1485723914 0.0742812231 -0.0073876616 0.1662709630 -0.0050837918 0.0002284770 -0.0021956656 0.0055423901 0.1905224494 0.0721540097 1.0400756752 1.0598407498 0.1789403158 0.0666764902 2.9045526860 2.9108231992 0.1943735087 -0.0680286041 3.0118739143 3.0189059985 0.0150257083 0.0162010005 3.8405935297 3.8406570928 0.0864382180 -0.1775350230 10.9516521209 10.9534320844 0.0112700861 0.0077621474 6.2645553713 6.2645703178 -0.0880690210 -0.2011746802 24.3996872285 24.4006754876 -0.0428591497 0.0438332411 44.4944475561 44.4944897890 0.0444439323 -0.0497049989 94.1332069530 94.1332305677 0.3963642912 0.0673770453 -289.8837440594 289.8840228682 0.0542374607 0.0178424362 -96.5357422683 96.5357591535 -0.0134026835 -0.0410107441 -5.2778715751 5.2780479229 -0.0074119146 -0.0297613121 -58.9036529918 58.9036609767 -0.2811166895 0.8565449965 -1345.2132113785 1345.2138415713 -0.0217590821 0.0295680705 -1.4316647060 1.4321353144 -0.0411871732 -0.1433145865 -4.1950850614 4.1977344040 0.0000161243 -0.0197893201 -18.6652813563 18.6652918468 -0.0037080800 -0.1644263966 -20.7846855998 20.7853363041 0.1864447321 0.0253239348 0.0515967916 0.1951029695 0.1036221868 -0.0670423838 -0.0340109532 0.1280194664 0.4672472776 0.2236570795 -0.0501273890 0.5204375686 0.1891841769 0.0409518465 0.0506236100 0.2000761265 0.0261105832 0.0529552694 -0.0657671278 0.0883817754 0.1618126437 0.0242326171 0.0023687129 0.1636342329 0.3565264181 0.0124879620 9.3933918502 9.4011997783 0.5033500838 -0.5007399100 16.8454871381 16.8610206829 -0.1398195181 0.0757052286 -118.9195521575 118.9196584511 0.0018271729 -0.0111140989 -74.4314662452 74.4314670974 fastjet-3.0.6+dfsg.orig/example/data/Pythia-dijet-ptmin100-lhc-pileup-1ev.dat0000644000175000017500000110162411766120141024726 0ustar sunsun# ./gen-events -pdgid -ptmin 100 -pileup -lhc -nev 1 -out Pythia-dijet-ptmin100-lhc-pileup-1ev.dat # top mass: 175.00 # W mass: 80.45 # Random generator sequence: 19780503 # Stamped by ./gen-events on 17/05/2011 at 12:44:12 #SUBSTART -1.3598786362 0.5822197507 -24.1335979887 24.1792944770 -211 0.8663263312 -0.3013364397 0.1632291633 1.3231630688 -2112 0.4434775013 0.4335343240 0.3149920866 0.7094533838 -211 1.5403445409 2.0056592713 6.8774234665 7.3874646901 2212 -0.0208747186 0.4764763149 1.4455044487 1.6001842093 -321 -0.9675262351 -0.7717025185 34.2295118789 34.2647262627 2212 -0.2732743169 0.3850777305 3.1129811504 3.1516813193 -211 -0.4151249419 -0.5583792205 61.8863397529 61.8904083349 -211 0.2505725773 -0.1368444356 94.0104580235 94.0155865939 2112 0.4545758916 0.4251970621 79.0027228248 79.0107615284 -2112 0.7531391894 1.6122915787 352.0858653706 352.0916160438 2112 0.2626769599 0.1902867465 2.0468286625 2.0770641756 211 0.6374402923 -0.7964382657 971.1496020754 971.1505911062 2212 0.7539223667 -0.0231700816 496.5975051355 496.5980975823 211 2.8449672341 1.9772319537 -2.9150263892 4.5299164889 -211 -0.2389089184 1.0006337895 -0.4113027905 1.2129123618 -321 -0.0388212869 0.0396050890 -0.4210693430 0.4470512632 211 -0.4626101376 0.0274569054 0.1485929365 0.6931686965 -321 0.2252893130 -0.1509959405 0.9577173116 1.3687838698 2112 -0.1038330361 -0.6151532935 8.1332483701 8.2109240964 -2212 -1.6705791858 -1.9248359686 16.6603884371 16.8803057374 2212 0.2111684392 -0.3548191737 3.1079426376 3.1383556171 -211 -0.6983638352 -0.1837448313 2.4152807098 2.5247841297 211 -0.3292191052 -0.5824086084 4.0399727530 4.0973704539 -211 5.4116769977 1.7213282501 -2.4696639962 6.1941858958 -211 0.7536903829 -0.8760507855 -7.4226665027 7.5133861852 211 -0.2242604514 0.1934868093 -13.0313933788 13.0684847584 -2212 0.5595197379 -1.4075450430 -229.2228042536 229.2278510894 -211 0.0894125118 -0.2609655147 -53.9232564966 53.9241427246 211 -0.3141856830 0.5188153125 -209.3209225063 209.3223832317 -321 0.3203567704 -0.0070948033 -49.8687006401 49.8699254272 211 -0.1076263226 0.2222075177 -0.5912791344 0.6557822855 211 1.9060967443 -0.6783910941 -3.3126157547 3.8841115069 -211 -0.5483521900 -0.2428739016 -117.7774804482 117.7790900727 211 0.2253077081 -0.1563694631 -213.1441920384 213.1444141760 -211 -0.0861185025 -0.1015689910 70.8605031740 70.8607657489 211 -0.3261417554 0.4503080755 132.6824517692 132.6836901548 -211 -0.8575800362 0.4048660512 419.4906802982 419.4917754818 -211 -0.9794071132 -0.1382741367 426.1440467954 426.1452175691 211 -0.0625522586 0.2082771912 -15.0554377199 15.0576550929 211 -0.7797180203 1.2045678313 -76.1766570706 76.1959632663 2112 0.1876344264 0.7547509163 -29.9368277888 29.9472535212 -211 0.0088859631 0.4568058393 -22.0157223266 22.0404430693 -2212 -0.2581427218 -0.0694353430 -5.7683446043 5.7762217920 211 -0.2186856615 0.0387545679 -10.8897675710 10.8929262767 211 -0.9726186409 -0.0306814083 -13.5803938410 13.6159283573 211 -0.2509195783 -0.1930861778 -0.9152999323 0.9685127117 22 -0.1826251724 -0.3208144520 -1.0630865337 1.1253563189 22 -0.2227625908 -0.0275421423 -1.1866910011 1.3062513933 130 -0.5780826716 0.0923073564 -2.2925924524 2.3661530753 22 -0.2482285086 -0.3375664724 -2.3933357174 2.4297375109 22 1.9247190130 -1.4502099329 0.0458071310 2.5869948215 2112 0.4691016331 -0.1865309379 -0.2261220511 0.5704919806 -211 0.1286461926 0.2872597242 0.0760467293 0.3238071912 22 1.5398407950 0.6128166773 0.5640922159 1.7506724371 22 0.8023586233 -0.0191734709 3.5680055451 3.6598210799 211 0.3158468309 0.2854577686 0.6957645456 0.8275345588 -211 0.8029720800 1.4746066480 5.4465952531 5.7012374590 211 0.2266760122 0.8519125176 3.4492598381 3.5601306694 22 0.2314344542 0.5855989494 2.8417128446 2.9106390926 22 -0.5218986792 0.8471032223 18.6522701210 18.7024045125 -2112 0.1191180473 0.1264045589 3.6905405080 3.6972606410 211 -0.3492161275 -0.1238043704 11.9226730166 11.9292452012 -211 -0.3991802403 -0.0130462221 41.3883011895 41.4008910798 -2112 -0.9092236930 -1.6211280756 49.0057758984 49.0410115655 22 -0.2235230256 -0.1921883944 14.7685460867 14.7714878207 22 -0.1014578053 0.0829992280 9.1151510726 9.1171619169 -211 -0.3074072799 -0.5220014998 26.4488279540 26.4561328377 211 -1.5679269355 -3.0637472014 104.4363372519 104.4931239851 211 0.1348866533 -0.0006136250 12.8891215514 12.8905829557 211 -0.2139517857 -0.0776839448 8.2871915776 8.2903169062 22 0.1978202593 -0.1031505795 26.6177613066 26.6190621484 211 -0.0947285389 -0.1074859061 32.2259253462 32.2265460595 -211 -0.5684876838 0.0015312370 91.0172960256 91.0239207471 -2112 0.4718774070 0.2617750105 104.6907746106 104.6933482053 130 -0.2369362965 0.4902066241 117.4521874315 117.4535323163 -211 -0.0152215477 0.0181682572 6.8643322416 6.8643731618 22 -0.0899554285 -0.2340313591 53.3533877452 53.3539768578 22 0.0597292486 0.1833916672 24.6074796258 24.6082354837 22 0.5960696521 1.5533309597 267.7306853113 267.7358548894 22 0.1884195373 -0.0149519934 62.3651410337 62.3655836293 211 -0.8190799660 0.0304540115 73.3122411950 73.3184845004 321 -0.4107542339 0.3143111649 76.0986310040 76.1005166278 -211 -0.0848175185 0.3291191597 31.8656445589 31.8677626508 -211 -0.2809006270 0.0441127313 20.8152467148 20.8176566087 211 0.3996200015 0.2753544749 19.7431160563 19.7495728468 -211 -0.2809282141 0.3420312574 23.6608600402 23.6654111241 -211 0.1035618498 -0.3144654906 14.5469033295 14.5513397962 211 0.1697621767 0.2716486673 3.8699581467 3.8857004564 211 -0.2591859679 -0.2203973639 2.2372685668 2.2672897453 -211 -0.0747656168 -0.2748700872 3.0083402533 3.0250180705 -211 -0.1127591583 0.0489867073 0.6509563427 0.6770068465 211 0.2680538521 -0.0646074837 4.4354605987 4.4462138390 -211 0.0105478183 0.3910360902 7.0292175010 7.0414770426 211 -0.0319162515 0.0094660923 1.7408185143 1.7411367993 22 0.0169446307 0.3410500741 13.5744336166 13.5787278596 22 0.0162419827 -0.6939516668 12.7743753337 12.7939820880 -211 -0.2443666179 0.1512158942 63.8613222495 63.8619688136 22 -0.1324017369 -0.0196214224 31.0125742468 31.0128630835 22 0.1510507627 0.0277379679 127.5759342989 127.5761030826 211 0.5428841421 -0.2143111010 227.5276912409 227.5284826426 -211 1.6355666364 0.7346075652 -1.8199835972 2.5586220072 -211 4.8234484767 2.4426361152 -5.5459209635 7.7465376471 211 2.9859325064 2.2209504532 -4.0710153489 5.5173417154 211 2.0622832479 2.3201063167 -4.4188357124 5.4019898513 211 0.6438320313 0.6246993517 -1.1403368660 1.4576065716 -211 0.3297934016 0.7614945249 -1.7313171902 1.9249874278 211 0.7534115172 0.2905664414 -1.5500757406 1.7533603046 -211 -0.0296799638 0.0208087707 -0.0380334830 0.0525399945 22 -0.5512814645 1.4049791203 -1.5889133022 2.1914659622 22 0.4873622098 0.6391602183 -1.0859345785 1.4397836802 130 -0.6278808058 0.4288315716 -1.0062926927 1.2689505867 -211 -0.1837580870 0.4860200017 -0.3211471585 0.6265762195 211 -0.9266121088 -0.1613841015 -0.1213496272 1.0691218454 321 -0.4935097821 -0.8623933605 0.2021270910 1.3814775304 -2212 -0.2630686657 -0.0645899230 0.2426171895 0.3895123446 -211 -0.3404636663 -0.1057855053 0.4436292644 0.5859972614 211 -0.2844852172 -0.6810553389 2.9568101621 3.0872537162 321 0.1591698878 0.0217300369 0.5334767944 0.5743557459 -211 -0.2067242633 -0.1399792190 0.2793076063 0.3997769711 211 0.0721494692 -0.3698438180 0.5958515662 0.7186855150 -211 0.1077902334 -0.2576289688 1.5201355673 1.6224809777 -321 0.1398791015 -0.0676350324 2.6414065644 2.6496507475 211 -0.7291224929 -0.9022901785 3.8774987591 4.0773011617 321 -1.2296117226 -0.8068302421 8.7334334638 8.8563976929 22 -2.7150345792 -1.5679932530 19.1268763260 19.3821416153 22 -0.2040667874 -0.4085926353 2.1368802512 2.1895954393 211 -0.3158510602 -0.9199981324 6.9607863301 7.0298068660 -211 -1.6942777176 -1.3666397055 9.9085266885 10.1568116634 -321 -0.2730470464 -0.6346482090 2.5357892778 2.6319270669 211 -1.8085946205 -1.0273237134 8.1748956146 8.4365162602 211 -1.9710696706 -1.8129751224 8.1789796089 8.6073911070 -211 0.1657823387 -0.4236498781 2.6026049141 2.6420664909 22 0.0569783687 -0.0382920763 0.2420020399 0.2515507999 22 -1.8803977825 -1.3869631021 14.8708709408 15.0539644210 211 -1.7820955808 -0.5439528476 13.8342443484 13.9598547928 -211 -2.3158908954 -0.5816869231 22.4335957280 22.5607492648 211 -7.0445712597 -2.1490679090 59.2015595045 59.6580975615 -211 3.1670379234 1.1029544366 -1.6689434726 3.7485316855 211 4.5916073147 1.4910859695 -2.3420163003 5.3675613863 211 6.1918581442 2.3591147213 -3.2150343918 7.4245381992 2112 0.9941806462 0.2078281797 -0.3574697946 1.0857495791 -211 3.1850189130 0.7346817253 -3.1020140730 4.6031930013 -2112 0.2050009169 0.1226067763 -0.4153386253 0.4990428399 211 1.4459967349 -0.2674735927 -1.1890785741 1.8911257323 22 0.3508239392 -0.1316064767 -0.2808247966 0.4682523544 22 1.3170541402 0.9398848132 -1.2386704831 2.0424983283 -211 1.1324272034 0.2254391533 -0.8524582771 1.4420052295 211 0.5617045369 0.1808489429 -2.6442618919 2.7128986463 -211 -0.1226959136 0.0246336959 -0.1669694817 0.2510372461 211 0.3697572385 0.2627295319 -2.3423910202 2.3899838281 -211 0.1972949947 -0.8543317831 -14.2415666926 14.2994343159 2112 0.3721581740 0.1027117672 -2.3823413256 2.4174534928 211 0.9878541331 -1.9548062207 -181.2441615744 181.2574486959 211 0.1619986292 -0.6475628759 -30.5680552419 30.5756612731 -211 -0.6853074220 -0.4443119336 -153.9187528971 153.9209830807 -211 0.2440887195 -0.5781336675 -89.9764996377 89.9787963060 211 0.0453254645 0.1058045643 -25.7403501862 25.7409859270 211 0.2304383530 -0.1177274475 -43.5369287152 43.5379214401 -211 0.0504471169 -0.0477753986 -34.5427262821 34.5427961579 22 0.0580632087 -0.1194611843 -235.4475346308 235.4475720963 22 -0.5635957231 0.1480394899 -237.0154237570 237.0166540467 321 -0.1211117777 -0.2715104205 -109.0030399722 109.0035347543 -211 -0.1072369482 0.0393537198 -45.3752823644 45.3756407989 211 -0.2634481624 -0.5711080702 -104.5225093196 104.5244947541 -211 0.4182088020 0.1198222713 -133.4052255263 133.4060078613 211 -0.4063798410 0.9739433510 -136.3701517064 136.3743064746 -211 -0.0649988557 -0.1458384872 -11.9899769518 11.9918522675 -211 0.1171206088 -0.1414971113 -13.4706837328 13.4719359744 22 -0.4065608494 1.1879777006 -53.1224643206 53.1374846791 211 0.1747877023 0.2738392204 -33.1786692125 33.1935599349 2112 -0.0846711743 -0.1878364883 -5.2964970061 5.3023402451 211 -0.0296615513 -0.0849707616 -0.6059518355 0.6282971031 -211 -0.0612946245 0.5694060957 -1.3827052811 1.5031081172 211 0.4363765846 -0.4099735284 -4.9132660922 5.0377611201 -2212 0.2250275097 -0.0819428560 -1.0413047840 1.0775655200 -211 0.1261502999 -0.2424857203 -0.4332998272 0.5309818715 211 0.0581403900 0.0974064838 -0.1414009825 0.2287845073 -211 0.6009036402 -0.8209771834 -1.2734995067 1.6359613378 211 0.2338764881 -0.7037485377 -0.2346274280 0.7902468164 -211 0.2116766410 -0.1344281360 0.0638569723 0.2939990168 211 0.4873729576 0.3230479594 -0.5209955310 0.7954926223 -211 0.0343968149 0.0876261574 -0.8530150987 0.8581935929 22 -0.0816811098 0.2730401669 -1.5612166874 1.5870161567 22 -0.2710385149 -0.1604791525 -3.2471212811 3.2653471230 211 -0.0419043518 0.4813391414 -12.3049003563 12.3151734015 -211 0.1120822922 0.1786480126 -53.6697622802 53.6784002421 2112 0.5231907048 -0.2483062451 -72.9332576474 72.9416084779 -2112 -0.1279337279 -0.0185022211 -330.3338723929 330.3352301982 2212 -0.0678522486 -0.3257014599 -855.5619643368 855.5620290225 22 0.4127939278 0.3164719991 64.4581709236 64.4602695633 22 0.1053293862 0.0077345646 12.3120840462 12.3125370117 22 0.0226304296 -0.1036039171 15.5899020008 15.5902626758 22 0.0749333816 -0.0201957495 31.6474020917 31.6474972475 22 0.2286879075 0.0336824619 -20.6496026228 20.6508963763 22 0.0175945163 0.0603933581 -4.1935949599 4.1940667153 22 0.0632306042 0.0866038520 -3.4701360103 3.4717923709 22 0.0520283974 0.0987662265 -11.5160444974 11.5165855438 22 0.1894773708 -0.0125995505 -29.4806551611 29.4812667494 22 0.1745330172 0.0883613344 -19.2615816819 19.2625750716 22 -0.0018453216 -0.0041768516 -0.0119305528 0.0127745603 22 0.3984580464 -0.4163367923 -11.7692859047 11.7833864337 22 -0.1426405815 -0.0226896946 -3.0598268932 3.0632338752 22 0.0261413480 -0.0231846411 -1.3171872367 1.3176506040 22 -0.0778876500 0.0247047971 -1.6355555764 1.6375954496 22 0.0182952011 0.0715600202 -0.5311900584 0.5363006890 22 -0.0246146797 0.2021039244 -6.3988797663 6.4021179419 22 -0.0114478974 -0.0205786427 -0.4840246629 0.4845971618 22 -0.0997632527 -0.0335749907 -0.8533783106 0.8598456417 22 -0.3408009024 -0.4003472659 -5.2579908644 5.2842114945 22 -0.1376425228 -0.0322189528 -0.9591904815 0.9695513936 22 -0.0926188808 0.0778551070 -1.3677314063 1.3730727856 22 0.0446741439 -0.0071983946 -0.4543910342 0.4566385967 22 -0.0651488237 -0.0123497081 -0.1630414118 0.1760096205 22 -0.0369930604 -0.0192906542 -0.3315712022 0.3341856938 22 -0.1507358499 0.1309993982 -0.6159700748 0.6475347649 22 -0.1584991184 -0.0111573208 -1.8881908435 1.8999976060 -211 -0.0244568647 -0.0389567905 -0.1641318696 0.2203062080 211 0.3700798348 0.1312339873 0.7338761235 0.8323194148 22 0.1254556338 0.0181828464 0.1157889941 0.1716881566 22 -0.0658562916 0.1210103247 2.2513121222 2.2555236246 22 -0.5721987250 0.5978304275 10.0224207173 10.0565267183 22 -0.0160007222 0.0686803444 1.5396428837 1.5412570266 22 -0.1330897081 -0.0204814074 3.8348766580 3.8372400681 22 -0.1803119772 -0.2196620133 16.0679334272 16.0704464291 22 -0.1882669897 -0.1841118429 9.2423215848 9.2460721340 22 -0.2189497235 -0.2091299413 33.3737948337 33.3751682530 22 -0.2111877778 -0.1638271599 18.6126367724 18.6145557895 22 0.1592242537 -0.0901281970 4.0900360884 4.0965046618 -211 -0.4726225556 -0.8741879216 35.9486082501 35.9626124121 211 0.0710559525 -0.0480774269 10.6042944731 10.6046415149 22 0.4499116571 0.0229990434 42.8933685906 42.8957342693 22 -0.0390392124 -0.0473523597 4.8036762622 4.8040682695 22 0.0698343260 0.0333644869 5.2116520847 5.2122267289 22 0.0846141204 0.3086485300 59.6716953195 59.6727167603 211 0.3709329198 0.0165191701 81.4795050942 81.4804706313 -211 -0.2924887400 -0.0159236950 39.4753085422 39.4763953234 22 -0.2973356955 -0.1559311845 48.3295830038 48.3307491807 22 0.0581993238 0.1361661053 1.0378547499 1.0483658004 22 -0.0429161833 0.0393094318 0.1694918914 0.1792052774 22 0.0084576822 0.0582801457 0.8715077834 0.8734952343 22 -0.0483855516 -0.0427928408 2.7948749242 2.7956212602 22 0.0459379064 0.0595542083 0.2380636029 0.2496623200 22 0.0584927691 0.0282028688 1.1214557556 1.1233342413 22 -0.0183892644 0.0508739576 0.9588971989 0.9604218670 22 -0.0006253879 0.0697571721 8.1213601366 8.1216597394 22 0.3325062612 0.3267294613 144.0711992620 144.0719534446 22 0.2036691637 0.3797352339 135.3829443707 135.3836301273 22 2.6224766530 1.0250401359 -3.1987205560 4.2614439186 22 3.0027302896 1.1761364292 -3.4485697523 4.7214742855 22 0.0476494199 0.0345595351 -0.1191954159 0.1329374885 22 1.3743636719 1.6085197022 -3.0229970058 3.6898132787 22 0.2619822586 0.0942424717 -0.4445625217 0.5245495048 22 0.2507557448 0.2291562904 -0.6791303630 0.7593478116 22 -0.1149612312 -0.0274562274 -0.0502106639 0.1284174438 22 -0.0138206798 0.0632813113 -0.0750209736 0.0991144895 22 0.0874768878 0.0451188683 0.0485151409 0.1097343933 22 -0.0505193427 0.0470577553 0.0284812969 0.0746848083 22 -0.0203873256 0.0763445940 0.0985662971 0.1263307365 22 0.2088143946 0.4593308576 0.5900649872 0.7763794029 22 -0.5640164151 -1.2100122114 0.8248629894 1.6463044823 130 -0.0590012882 0.0449096184 0.1004632283 0.1248634697 22 -0.1081611492 -0.0986504257 0.2504039223 0.2900566582 22 -0.0842916054 -0.2253129126 0.4039720305 0.4701748449 22 -0.3129514301 -0.4003723039 1.1150893974 1.2254227611 22 -0.0307116311 0.0083473942 0.1306003906 0.1344222649 22 0.1245562964 -0.0582145903 0.3573336741 0.3828714721 22 -0.2423755460 -0.4707025984 5.4762801815 5.5018134708 22 -0.1809079589 -0.2240897361 2.2505328356 2.2688856171 22 -2.2051398032 -1.9272750265 11.0042004218 11.3981197103 130 -0.9347690572 -0.6622425789 4.0249104670 4.1847655479 22 -1.2060541784 -0.8263133116 5.7152320724 5.8992574119 22 -0.1424843245 -0.1270519462 0.5161333953 0.5503068793 22 -0.1481753838 -0.2603425723 1.3062807460 1.3401878923 22 -1.2918779271 -0.5006361041 12.2334722039 12.3116784904 22 -0.6562084984 -0.3392782508 6.0232843307 6.0684160581 22 -4.1902783237 -1.1217735826 35.8431600377 36.1081238133 130 -3.0357051410 -0.8565073204 27.5765313602 27.7563360758 22 -5.8679546075 -1.7001099543 51.8260459885 52.1848858190 22 3.3901036263 1.0986544928 -1.6421783308 3.9263308249 211 12.6325402077 4.3985766114 -7.1612403981 15.1733777430 -211 0.2086447597 0.0975260655 -0.0157532143 0.2308508890 22 0.1854685411 0.1572750013 -0.1456828872 0.2834740012 22 -0.0034393530 -0.0069369743 -0.0258076514 0.0269441206 22 0.3392341764 0.0690488025 -0.0822854122 0.3558348670 22 1.1971669691 0.6845753704 -0.9734187791 1.6880154944 22 1.0583093778 0.6854109606 -1.0263904375 1.6258180262 22 0.0064023599 -0.0016999180 -0.2321066894 0.2322011956 22 0.0319197450 -0.1125324592 -0.1469247073 0.1878012090 22 -0.0266128234 0.0185742583 -0.0632688447 0.0711069065 22 0.1403117325 0.0530627949 -0.1056966623 0.1835070213 22 0.1088754231 -0.1452941680 -0.0826401706 0.1994834600 22 0.0154646196 0.0088290420 -0.0779694735 0.0799771545 22 0.4168247377 0.1062081639 -0.8545856313 0.9567338382 22 1.2195894651 0.3333258059 -3.0681211372 3.3184140592 22 0.1349341583 0.0330906476 -0.6697034571 0.6839626733 22 0.0013821783 0.0138231776 0.0003712767 0.0138970682 22 -0.0204588139 -0.0326306806 -1.0292485642 1.0299688982 22 -0.0441998313 0.0540461337 -0.3087988771 0.3165933609 22 -0.0101414253 0.0196894120 -1.3458566821 1.3460389036 22 -0.0252792776 -0.1174103861 -1.4262412684 1.4312890681 22 0.0817878025 0.0137343547 -1.5050906059 1.5073737456 22 0.0597408829 -0.1317918745 -3.1307254800 3.1340676608 22 0.0751508621 -0.0196948003 -1.7313622512 1.7331043772 22 0.2469376920 -0.3541844402 -7.4515763642 7.4640749697 22 0.0069034236 -0.4982913377 -50.9468296217 50.9492668291 22 0.0037292585 -0.0645556582 -13.7738640547 13.7740158392 22 0.1165284797 0.0216554402 -9.0841796223 9.0849527932 22 0.2510094540 0.1220948117 -42.1811557342 42.1820792750 22 0.1854250671 -0.3418046880 -50.6610074698 50.6624998471 22 0.0324189725 -0.1922261165 -36.4736616951 36.4741826409 22 -0.1508043463 -0.2282106492 -59.7488368431 59.7494629780 22 -0.0357507331 -0.0611104079 -6.0767270583 6.0771394864 22 -0.4868602609 0.1529894218 -68.2048157285 68.2067249414 22 -0.0284329015 0.0130431594 -11.5544376359 11.5544799812 22 0.0404759227 0.3159172299 -34.8459919007 34.8474474466 22 -0.0761300209 0.1995072681 -19.6118140675 19.6129765703 22 -0.2234991099 0.0986544680 -32.2292417848 32.2301677094 22 -0.4498597836 0.3029571725 -51.7194177248 51.7222614226 22 0.0100992214 0.0092381664 -0.3736973373 0.3739479080 22 -0.2903240464 0.0721449346 -24.6001305917 24.6019494771 22 -0.0023005322 -0.0131910010 -0.4490486592 0.4492482535 22 0.0279352875 0.1485496327 -0.7317720267 0.7472199628 22 -0.1752352634 -0.2555640943 -0.4725337681 0.5650739472 22 -0.0665309040 -0.0020063866 -0.1355770927 0.1510348796 22 -0.0409026712 -0.0099771661 -7.5297026451 7.5298203495 22 0.0249572584 0.1000164845 -6.3002893307 6.3011325818 22 0.0233174545 -0.1632828702 -21.7538373419 21.7544626249 22 -0.0568509910 -0.0107873380 -7.7582712309 7.7584870235 22 -0.1467986441 0.0054751657 -42.1870141292 42.1872698922 22 -0.1097902819 -0.0581585537 -81.8313178966 81.8314122145 22 0.2761879330 -0.7305147192 -1071.6969310420 1071.6972246937 211 -0.3171456675 -0.1913209110 -785.3526951654 785.3527949071 -211 -0.2888985335 0.0623743535 12.9482844411 12.9524091456 211 0.0393375759 -0.1924034508 12.1119970415 12.1143930368 -211 5.0730403147 2.1510881620 -5.5709527117 7.8512466138 321 1.0150948958 0.3921616672 -0.7337497967 1.3198776344 -211 9.5911244710 4.6625081508 -11.4284342229 15.6313070362 22 1.9315687733 0.9769500983 -2.3940542067 3.2275199403 22 -12.9905798802 -3.5943896483 113.7436253108 114.5395415618 -211 -55.1847599770 -15.7575134537 479.6904518513 483.1113805750 211 10.7746506213 3.5989112077 -5.6857470895 12.7130111809 130 5.8358433818 2.2217278611 -3.1011974538 6.9721279616 22 1.1904494836 0.4198331620 -0.5693015681 1.3847505668 22 0.8053171624 0.2462629389 -0.3717354372 0.9205261552 22 6.0764991670 1.7258575751 -3.1448133570 7.0563643477 11 0.8367074348 0.2419204359 -0.4335855074 0.9729344691 -11 0.2603251090 0.0271867774 -3.9180903143 3.9293027091 -211 -0.0463880975 -0.1775304672 -6.3289112790 6.3331087694 211 -0.0476283455 -0.0869013850 -1.4854137006 1.4952437784 211 -0.1844484615 0.2096525368 -8.8159947354 8.8215201853 -211 0.0720804308 0.0105519683 13.4591413314 13.4593384797 22 0.0275949268 -0.1142469385 12.5198386138 12.5203902798 22 -0.0395646470 0.0816229450 14.3108997111 14.3111871697 22 -0.2352791097 0.0400251369 35.4999849457 35.5007871662 22 #SUBSTART 0.2833492261 0.4513381170 0.3529773407 0.6542672755 211 1.9288872256 2.2553796608 1.9861272408 3.6049529429 321 -0.2226686020 -0.2498087549 -1.3682694461 1.6932037037 -2112 0.1423596851 -1.0587999857 -2.2903985062 2.6963013169 2112 -0.3649488657 0.4322908482 -7.2837541822 7.3070252377 211 0.2786628314 -0.1168500511 -194.4370276166 194.4373125073 -211 -0.0589995187 1.0351770544 -1003.6043940468 1003.6049393573 211 -0.8188213542 0.1690693798 -1105.6248468066 1105.6251717507 -211 -0.0099878165 -0.2656521936 1.9008543675 1.9244214600 211 -0.1401387162 0.9034938021 14.5318011108 14.5612040443 -211 0.3995198527 1.2315368132 40.6845700999 40.7054053295 211 0.0000830083 -0.1511669726 25.5579779211 25.5588060492 211 0.7112347683 0.4259567376 1576.4093775762 1576.4098747962 2212 -0.4419643912 0.2199285987 14.7256945744 14.7346279761 211 -0.3633758381 0.5191938711 19.6767986011 19.6874957079 -211 0.3341523922 -0.1662910589 20.0256139057 20.0351731662 -321 -0.2644412561 -0.3165429092 12.0326361291 12.0405124721 -211 -0.3053292050 -0.3626883627 7.6795604516 7.6954465294 -211 -0.2590607056 -0.5905793926 -1.2895360033 1.7202180573 2212 0.0881728383 0.3769507051 -0.7074547872 0.8184365243 211 -0.6004550537 -0.0048745957 -1.3694372296 1.5018016326 -211 -0.0435617032 0.0203561469 -0.1855676515 0.2371226115 211 -1.2039790403 -1.4352226097 -5.4434347821 5.7584625970 -211 0.3191439129 -0.0287523682 -2.4520615842 2.4768458437 211 -0.4678469858 -0.1737396388 -45.7414528117 45.7443881954 211 -0.1565104062 0.5343307101 -123.4816829826 123.4865028561 -2212 -0.2113520358 0.1994922069 -431.9110021795 431.9111225128 211 0.2114337007 -0.4236557385 -2.3384658471 2.3899980538 -211 -0.0605054579 0.2801027022 -4.6791032820 4.7811000557 2112 0.0267562406 0.3365808083 -4.8861739493 4.8998140970 211 0.3403117487 0.0300225275 -21.3575429215 21.3607310939 211 0.4185094079 -0.2654090420 -6.8280995751 6.8474824335 -211 -0.2021349970 0.2211515050 -0.6706215490 0.7476493777 211 -0.1755155064 0.1483061275 0.2000373710 0.5800485412 -321 -0.1694859157 0.2064892507 -0.1286468825 0.3277088518 -211 0.1645828958 0.0701886415 -0.1516113458 0.2729098021 211 -0.2988868269 -0.0500443688 -0.1361934872 0.3603695673 -211 -0.1516983279 0.0024832140 0.4276627678 0.6704885920 -321 0.0895993757 0.0380686222 1.1200955606 1.1329479767 211 0.5375958661 -0.4881705869 1.1030713826 1.4112978924 130 0.3245496048 0.1895705428 -0.0695376645 0.4069210100 211 0.1805081219 0.1599597042 0.3410667494 0.4404277483 -211 0.5649645105 0.2697594561 1.0507201534 1.2310352099 -211 0.2282550691 -0.0477095077 0.0555063716 0.2773757666 211 0.4778279791 0.3866682931 0.3494923975 0.7207334232 -211 0.1742046398 -0.0652902839 0.0984507904 0.2525518179 211 0.4403383200 0.9626729472 1.0019643723 1.4642572955 -211 3.2490941245 3.3414858961 2.7485486660 5.4336300778 130 0.4951431574 -0.1252919994 -0.0956979752 0.5380545686 211 -0.3096672109 -0.0479932773 -0.0400666112 0.3453726312 -211 -0.0479093881 0.2196169830 -0.0645608131 0.2723505318 -211 -0.7907725438 -0.9924777804 -2.3255828996 2.6529509924 -211 -0.3616663027 -1.0407016042 -3.5329365714 3.7033745349 211 0.0157944141 -0.1860513742 -1.1540443246 1.2689853587 -321 -0.4657012596 -0.2567717038 -1.2187250197 1.3370040500 211 -0.4169707496 -0.7359857771 -2.0836613691 2.2488184389 22 -1.3436492208 -2.9004762182 -7.7998867436 8.4294951649 22 -0.1329728946 -0.1771227818 -5.5525634072 5.5587313702 211 0.3986647333 -0.0119102481 -11.9707185659 11.9781742429 -211 -0.0411039954 0.0788329030 -107.7902729678 107.7903999919 211 0.0504360437 -0.0231865506 -335.9456659601 335.9456995387 -211 -0.4474598027 0.3393018147 -151.9766080557 151.9776455342 22 -0.0504787950 -0.1810800782 -70.0251568651 70.0254091890 22 0.0015370518 0.0072219299 -0.3231382830 0.3232226303 22 -0.1163672692 -0.1916650073 -178.5241950609 178.5243904310 -211 0.0635383557 0.1269857698 -51.7575623615 51.7579453214 211 -0.0987554029 0.0287662236 -93.3541351488 93.3542961480 -211 -0.1137430832 -0.0332420343 -90.7310274701 90.7312122044 211 0.2030022071 -0.1123294384 -114.4978726435 114.4981077035 22 0.0220348963 -0.0732416632 -19.4196596246 19.4198102414 22 0.0099358313 0.0032208360 0.4501571681 0.4714131473 -211 0.2392810112 -0.3996581286 2.6419917439 2.6863697031 -211 0.0835043203 -0.0535176991 6.0309383743 6.0333684269 211 -0.0499735624 -0.2757892682 7.9749599501 7.9798836635 22 0.0394633226 0.2557544827 10.5800926852 10.5832570098 22 0.1436426827 0.1716072774 7.1630122498 7.1678662483 -211 -0.5316830472 -0.0839867258 44.4310508450 44.4345304871 -211 0.0606993514 -0.0336446749 7.7876167802 7.7891765467 211 -0.0414076854 0.2991612105 77.5909145311 77.5930723116 321 0.4308739640 0.3406620154 79.0202121393 79.0222443955 -211 -0.7076351434 -0.6346855414 143.0640132843 143.0680226718 -321 0.0634364837 -0.0634570353 338.4685276710 338.4685683407 211 -0.1659824702 -0.4188615418 1104.3609094256 1104.3610101513 -211 -5.8144128137 1.2741722966 286.8636945237 286.9254435341 22 -0.2423829650 0.0281856227 11.1797029362 11.1823656563 22 -0.2482226068 0.0035515045 18.3977390594 18.3994138378 22 -1.0472687029 0.1400476087 99.0339098444 99.0395460618 22 -0.2025487631 -0.2047701049 7.5671942306 7.5887433927 321 0.0097261101 0.5177128355 12.7090271483 12.7203369459 211 0.0181601180 -0.3974503330 5.0848284048 5.1022795149 211 0.3533470872 0.3333807997 3.6175409529 3.6526811046 -211 0.2132575234 -1.0124740880 4.4449619524 4.5659335401 211 0.1832732733 -1.7010605236 6.3299340043 6.6240510476 2112 0.0245440366 -0.1513962261 1.2296292793 1.2469928534 -211 0.5428896287 -1.9878712380 7.4337026578 7.7710416417 -2112 -0.1120662451 -0.3806528713 1.5926050622 1.6472176908 211 0.0730515808 -0.4069796027 0.0660122587 0.4413687049 -211 -0.3924678375 -1.3154573693 -0.2469508610 1.4017573280 211 -0.2438046292 0.2956822387 -0.3196952806 0.5182215172 -211 -0.0065412442 -0.2231751738 -0.4579552629 0.5282544405 211 -0.6562556910 -0.4334728077 -0.1300970293 0.8093053991 211 0.1299651792 0.0746846297 -0.0073847059 0.2049464821 -211 -1.2368731668 -0.9984895216 -1.7223405677 2.3479295926 211 -0.8967307447 -1.0903794562 -2.2764388498 2.8386650047 -2112 -0.2051650890 -0.0053495536 -0.6259044761 0.6733182973 -211 -0.2563420001 0.3309807822 -2.5454387810 2.5834081892 -211 -0.0125924627 -0.2283157501 -1.1450812727 1.1760006624 211 -1.7020138248 0.6280872984 -7.2903067427 7.5139468259 -211 -0.1767904315 0.5317999177 -3.5396413455 3.5837308582 22 -0.1635891422 0.3434860414 -1.8370389954 1.8760214121 22 0.3838707089 0.2725994537 -2.4275288524 2.4767000823 -211 -0.2342630548 -0.0192152841 -0.5612908555 0.6243201225 211 1.0245704304 0.1416287459 -2.3640826662 2.6272287835 321 0.3341121173 0.2946099491 -1.6319865811 1.7622278768 -321 2.4027375933 0.5139318126 -4.0670106360 4.7776065967 130 0.3100424380 0.4776054965 0.0739872534 0.5909206564 -211 0.8455673956 0.0741336263 -1.4241021700 1.6637387987 211 0.0382321420 -0.0283845609 -0.2607113162 0.2995288889 211 0.4187922660 0.4370727781 -1.7770401269 1.8824906302 -211 0.2016117336 -0.2501930322 -1.3892224991 1.4327116881 211 -0.2269728573 -0.1341749925 -1.1607999293 1.1985223683 -211 -0.0224751090 0.5037655364 -4.1801563533 4.2127748301 -211 0.0833319855 -0.2917812212 -2.4304231332 2.4532665758 211 -0.0920608164 -0.2468065029 -0.7747523162 0.8301262435 -211 -0.3513424971 0.1087228845 -8.0557735900 8.0653722874 211 -0.1456785547 0.2554700097 -20.3604799739 20.3630820781 -211 -0.0596187138 0.1800995927 -12.7010747609 12.7024915011 22 0.0558337364 0.1388868904 -6.6636077411 6.6652888235 22 -0.0610379995 -0.0020892869 -5.2036519058 5.2058815722 -211 -0.5395558136 1.0875478064 -137.9136722061 137.9222071049 2212 0.3556079070 0.1217838737 -101.2089297235 101.2139767752 -2212 -0.0154767706 -0.0675816997 -17.6561804805 17.6568682320 211 -0.3607581181 -0.0057333353 -203.8708335588 203.8733119019 2212 -0.0476076544 -0.0393107154 -60.8665874569 60.8667787899 -211 0.5811178939 0.0248253362 -307.1281332129 307.1301211489 2112 -0.6198050029 0.3636630194 -305.9530808819 305.9539566502 211 -0.3888926740 -0.1662336087 -0.4664286943 0.6296243733 22 0.4826950251 0.0176361247 -5.8431906066 5.9379267232 -2112 -0.1338402130 0.0901823145 -1.3797368408 1.3961373813 211 0.0708339700 -0.1854563751 -7.2326367802 7.2353608281 22 0.0526948626 -0.2544869720 -16.6549217872 16.6569493037 22 -0.0108975038 0.0432741547 -1.1422116317 1.1515722316 -211 0.5308690195 0.3748036207 -24.4967008306 24.5057162932 -211 -0.2231896879 -0.1960222688 -10.8007128091 10.8056982808 211 0.0097813469 -0.1927989495 -9.9755047111 9.9783486177 211 0.2114589423 -0.2041536707 -5.6669093900 5.6762430731 -211 -0.0311964169 -0.1115350508 -7.4364976790 7.4387089471 -211 0.0974382515 -0.2226185934 -5.1398477356 5.1474816932 211 0.0470584727 -0.5270850994 -1.4876970662 1.5790110078 22 -0.0031276865 0.0283245188 -1.4711705620 1.4714465275 22 -0.0986526321 0.3021105225 0.2140967487 0.6248851794 321 -0.2351475676 0.5154322790 -0.1883894687 0.6131355393 -211 -0.4429558105 0.6043504553 1.4224714573 1.6138011509 211 -0.1021211165 0.3830356324 0.6782243387 0.7978803523 -211 0.0241467891 0.1747228832 0.5835459447 0.6253933225 211 -0.1999991072 -0.3978106684 -0.0026979039 0.4666262255 -211 -0.0633012328 0.4946303369 0.1214401622 0.5318775368 211 -0.0441796580 -0.3314598617 0.0120878340 0.3625512140 -211 0.0492091757 0.1194646653 0.0200412368 0.1912453537 211 0.1603547795 0.1259830879 -0.0073903790 0.2040588431 22 0.1873058529 0.0241307151 -0.0919798144 0.2100620389 22 -0.0411315671 -0.1140510291 0.4183820370 0.4574087416 -211 0.4003131540 -0.2854808252 2.4741065336 2.5263477289 211 0.0370775714 0.1875089570 0.1233443623 0.2274822784 22 -0.0590551573 0.0471180218 0.0924251366 0.1193734705 22 -0.0524636899 0.4292987183 0.7023058218 0.8247928805 22 -0.0645699986 0.1710442945 0.4709248850 0.5051689645 22 0.0649781300 0.0666367199 0.0838414395 0.1252677005 22 0.0417112481 0.0663002372 0.3669806645 0.3752470623 22 0.0833850823 0.1212007528 0.0583254892 0.1582547223 22 0.0766785065 0.2666605711 0.3110733154 0.4168381713 22 0.0686149326 0.1787859925 0.2606021012 0.3233974262 22 0.3919543241 0.4177714437 0.6561220706 0.8710093817 22 0.0128276952 -0.0111962132 0.0189293528 0.0254602701 22 0.3002213395 0.3791314096 0.3181002385 0.5788447462 22 0.1727452542 0.0066123365 0.0699700440 0.1864951820 22 0.4378819415 -0.1362966095 0.3667306664 0.5872041741 22 0.1145582313 -0.3605873982 -1.2882024719 1.3498489744 211 -0.2726743237 -0.3255971723 -0.9975091366 1.0931006668 -211 -0.0194102966 -0.0306109980 -1.0658465817 1.0664627179 22 0.1082253372 0.0717957349 -4.7106641338 4.7124541305 22 0.0512579981 -0.0259977342 -4.0037789912 4.0041914883 22 0.0605777698 0.0087418127 -28.4213926719 28.4214585743 22 -0.0303356365 0.2082381413 -623.7826137695 623.7826492653 22 -0.0006182414 -0.0194699964 -113.6002989747 113.6003006449 22 1.5846251771 -0.5161951344 9.1365955853 9.3006746361 130 0.0810450597 -0.0429659074 0.7263884277 0.7321574413 22 0.0919785501 -0.0711742503 0.2609366329 0.2856812104 22 0.0484109128 -0.0237444774 0.1138268829 0.1259522765 22 0.3861333325 -0.0403939169 1.9804890034 2.0181841619 22 0.2318556121 -0.0839894741 0.5723389883 0.6232039587 22 0.3845073867 -0.1725985785 1.5093181748 1.5670601624 22 1.4231104256 -0.0803447512 7.0817644134 7.2237861104 22 0.3578432000 -0.0831509644 1.9658699469 1.9999026193 22 0.0084715800 -0.0001479303 0.0130611233 0.0155686381 22 0.1672470495 -0.4376192942 4.0564436999 4.0834076104 22 -0.0159518193 0.1963927777 3.7071090314 3.7123418423 22 -0.3085671281 1.1665943923 28.0764446688 28.1023646939 22 -0.0157702474 -0.0134113953 3.9317802503 3.9318347502 22 -0.2207182786 0.2015571223 19.9585425836 19.9607806434 22 0.1023403899 -0.1241052554 19.3566887662 19.3573571456 22 0.0117210936 0.0213653658 0.8072958409 0.8076635671 22 0.1138172417 -0.5749893695 1426.9663114607 1426.9664318444 22 0.1378334210 -0.4113014517 1335.3220434117 1335.3221138692 22 0.0145118339 0.0091693393 0.9545890747 0.9547434062 22 -0.2732728371 0.1910391953 9.8775455564 9.8831715677 22 0.0136551658 -0.0589483055 2.3055114033 2.3063053131 22 -0.1315981339 -0.0693130234 11.5838607639 11.5848156032 22 -0.1530273875 -0.0485778571 11.1964602125 11.1976112845 22 -0.1150544198 0.0819839877 9.2106107940 9.2116942032 22 -0.1283911797 0.1570867177 4.9273524830 4.9315274534 22 -0.1498665931 0.0538242869 6.5190408514 6.5209854065 22 -0.1095027206 0.0035624059 1.4468208777 1.4509631935 22 0.0095617638 -0.0150375743 0.0428650228 0.0464244143 -11 0.0040255767 -0.0032631418 0.0083238495 0.0098183467 11 0.1030016531 -0.6328610650 2.1864503442 2.2785275016 22 0.0018921923 -0.1160720571 0.2396189695 0.2662584334 22 -0.0678631819 -0.0350978326 -0.0362468818 0.0845642108 22 -0.2442259979 -0.4785633600 -0.1053951655 0.5475192859 22 -0.0123342779 0.0214243907 -0.0519328404 0.0575165962 22 0.0939381429 -0.1340271854 -0.1426153017 0.2170870456 22 -0.2744629382 -0.3732833327 -1.7531089346 1.8133012126 22 -0.3162589320 -0.2243470746 -1.4620144379 1.5125599289 22 -0.3878946262 0.0965058595 -0.7481897799 0.8482709288 22 -0.4807864707 0.1633310671 -1.3029949023 1.3984378368 22 -0.0441876850 -0.0785514395 -0.1801455945 0.2014331536 22 -0.1813894887 -0.0583156038 -0.8106056809 0.8326970795 22 0.1569339876 0.3649683536 -0.5481781738 0.6770003588 22 0.0408671843 0.0143125488 -0.1218055399 0.1292732198 22 0.5618335363 0.0294909512 -1.2258542944 1.3487940502 22 0.2755437004 0.0135292027 -0.4064861477 0.4912620059 22 -0.0184026995 0.0160802320 -0.0874909879 0.0908400032 22 0.1856237337 0.0066920785 -0.3003794924 0.3531696390 22 0.9779701431 0.3014868328 -1.8967641132 2.1552340968 22 0.3706903235 0.0338120426 -0.7452352282 0.8330246788 22 0.1992931504 -0.0770962216 -0.5122668000 0.5550485218 22 0.4738247913 -0.2859004373 -0.8950231063 1.0522905272 22 0.5518117696 0.9090193363 -0.6550171029 1.3444460632 130 0.0080582104 0.0879363217 -0.2503478464 0.2654652061 22 0.3995047670 0.5593143916 -2.3152173181 2.4150916913 22 0.0455072513 0.1124543601 -0.2614379155 0.2882129017 22 -0.0858551877 0.2136676571 -0.3507247385 0.4195626570 22 -0.0206751448 -0.0202936531 -0.0750458066 0.0804435644 22 0.0188678836 0.1413803160 -0.9201083728 0.9310981734 22 -0.0249710681 -0.0499149061 -0.5452306404 0.5480798330 22 0.1267909018 -0.4349972569 -6.8107831977 6.8258381400 22 -0.0484886604 -0.0132014173 -1.2305545951 1.2315803015 22 -0.1714904986 0.0437190631 -15.1877203264 15.1887513990 22 -0.1313765176 0.2628202083 -14.9756781488 14.9785603537 22 -0.1215799715 0.1626022414 -70.8489802580 70.8492711661 22 -0.0040952732 0.0929853467 -37.6478305634 37.6479456170 22 0.1175829089 0.0449101333 -33.1876591117 33.1878977938 22 0.0334865933 -0.0530704668 -108.4136791607 108.4136973218 22 0.0525028992 0.0825864473 -121.1675888390 121.1676283590 22 -0.1745516861 0.0017193829 -2.2522559726 2.2590104501 22 0.0225408820 0.0146440904 -0.2181531395 0.2198029413 22 0.0713206843 -0.0954840976 -1.4165973252 1.4216018552 22 0.4042586106 -0.9571792179 -16.6352352369 16.6676533582 22 0.0139413298 -0.2710467564 -2.1723085933 2.1891974167 22 0.0647186727 -0.1000908673 -1.6376712592 1.6420029968 22 -0.0170988799 -0.0202100234 -1.3086248608 1.3088926018 22 0.1963533942 -0.0982098221 -4.9087301273 4.9136372768 22 -0.2576069761 -0.1007822174 0.7341094031 0.7844966700 22 -0.2763951490 0.0183763989 0.5798233099 0.6425939941 22 0.1648948351 -0.1249985512 1.0088469551 1.0392626752 211 0.4427563086 -1.0997514896 6.7960744918 6.9001155621 -211 -0.2088871806 0.0173401401 -7.1499790452 7.1703424123 130 -0.4636652063 -0.0306655199 -60.7004752600 60.7022538509 22 -0.1078339549 -0.0582783585 -23.1752308617 23.1755550100 22 -0.0002039040 0.1174932788 -6.7119484420 6.7129767316 22 -0.0638042215 0.3354490874 -36.8814888347 36.8830694999 22 -0.0820862136 0.0196273794 0.0212642411 0.0870376265 22 0.0384393409 0.0409453556 0.0790316387 0.0969541386 22 -0.0592949025 0.2013635520 0.2245330142 0.3073731283 22 -0.1290726252 0.2228881468 0.5207004442 0.5809198062 22 0.0548939836 0.0400987271 0.0947068747 0.1165789409 22 -0.0717709364 0.0211873630 0.0421803813 0.0859020153 22 -0.0854989726 0.1903586136 -47.6977655987 47.6984262777 211 -0.2160415316 0.1181755354 -14.0436030441 14.0464552697 -211 #SUBSTART 0.1539014637 -0.0908512498 4788.2446571936 4788.2447527121 2112 -0.0148114974 0.0042860519 846.6231931050 846.6232047498 211 -0.2978887024 0.3819379995 -2984.2355445705 2984.2357317886 2112 -0.5233583900 -0.3506456537 -1445.4001683554 1445.4006110176 -2112 0.0868721462 -0.0416606861 -35.2978794538 35.3104789958 2212 0.1746554111 0.6529563456 -2.3615335379 2.4603204949 211 -0.2195675487 -0.5742046917 -1.1508595857 1.3122036836 -211 -0.0550847667 -0.3892513341 -0.5173114709 0.6645614159 211 -0.0807385478 0.1607809602 0.9611380492 1.0953522447 -321 -0.4835543645 -0.0768497810 2.9874327611 3.0672668900 321 -0.0189453315 -0.0112744597 10.9779226021 10.9890359749 -321 -0.1539909793 0.0018305918 24.8178599262 24.8232457356 -321 -0.1487284695 0.5415571508 15.8935109318 15.9110884293 321 -0.3322992007 -0.4254466298 4.5216541659 4.5804393839 -321 -0.2064484867 0.2586818811 -0.0030401864 0.3592023398 -211 -0.3392293512 0.3704859801 -1.0637601942 1.1846526705 -211 -0.0728379278 -0.2505438875 1082.3828634049 1082.3828948529 22 -0.0278413479 -0.0320738904 56.0728296214 56.0728457065 22 0.4610635867 -0.0819786364 -720.7985365406 720.7987021763 -211 0.1376024019 0.2890392108 -441.1687561554 441.1688943767 211 0.0218460944 0.0310036017 -3.3731367251 3.3733499435 22 -0.1814663336 0.2418564708 -42.1368272085 42.1379120482 22 0.3944234179 0.4506504534 -5.9163195876 5.9481907259 -211 -0.1528343568 -0.2734136917 -2.6068762398 2.6293339275 211 0.0580645529 -0.1451372789 -1.5560769179 1.5701246706 -211 0.0127147603 0.1581195899 0.2712092298 0.3437989253 -211 -0.1655699615 -0.2889078615 0.2646679672 0.4476718467 211 0.0409996840 -0.2980203348 17.6906431868 17.6937512484 211 0.0448063655 -0.2108823756 43.5032061506 43.5039642349 -211 -0.0239497074 -0.0003745352 10.6843301493 10.6852685625 211 0.3184510872 0.1561553225 0.5315797235 0.6541042478 211 -0.0005463108 -0.0608043787 0.4295776206 0.6571722476 -321 -0.0799385569 0.0915281456 0.6315302640 0.8107027869 321 -0.0300707450 0.1404962397 -0.4809779843 0.5210211602 -211 -0.1905350053 0.2092988994 0.0502001438 0.3195457038 -211 0.2279439953 0.0446643847 -1.5753096245 1.8482165398 2212 -0.1896473267 -0.1546565966 -0.4123897597 0.4994295448 211 0.1642332044 0.1272803043 -172.6523887686 172.6532310609 130 -0.1447053048 0.0328825244 -50.1317896034 50.1322035174 211 0.0429745669 0.0121452422 -172.3426148696 172.3426206555 22 0.1076985832 -0.1418531614 -260.0695813552 260.0696423414 22 0.0454648731 -0.0115903941 -0.2308027389 0.2355234515 22 -0.0936738388 0.0184608952 -0.3580203492 0.3705322701 22 -0.0505660713 -0.2144692740 -4.0490952047 4.0550864323 22 -0.1314692918 0.0600063454 -0.2808146875 0.3158192915 22 0.0475234108 -0.1771358454 -0.1533939840 0.2768484812 211 -0.0108821226 0.1655558771 0.0729270157 0.2287472482 -211 0.2307927364 0.4972020859 -0.0479955003 0.7419260059 130 0.0466062345 0.0400580537 -0.3655768827 0.3707064147 22 0.0134444529 -0.0234134062 -0.0035453278 0.0272306859 22 0.0389417993 -0.0647765218 -0.0262601103 0.0800128421 22 0.0668703480 -0.0811670484 0.1320154140 0.1687833011 22 0.0505242596 0.1162906009 30.7087570335 30.7090187851 22 0.1864880957 0.1647671557 32.6107813496 32.6117308074 22 0.2949618280 -0.2991087632 0.9991881160 1.1926947859 130 -0.0405117589 -0.3717622628 -0.0745048886 0.4060531320 -211 0.1786952830 0.0113706726 0.0085972959 0.2271893368 211 -0.0328005991 -0.0763083450 -0.1138670579 0.1983540637 211 0.0259065373 -0.3159277548 -644.0432480897 644.0435183796 130 0.0940699878 0.0114697188 15.8310247205 15.8319235787 211 0.1806926624 0.2905611232 9.2877799248 9.2951283649 -211 0.1154690559 0.1229823280 -1.6755216266 1.9277398865 -2212 0.0064932772 -0.0781725887 -0.4264996621 0.4555599444 211 0.1996706046 0.0390885584 0.1072155031 0.2690189858 -211 0.2236254356 -0.2827874459 -0.1974699834 0.4341097261 211 #SUBSTART -0.3681878701 -0.6464249872 5727.7556253248 5727.7557504854 2212 -0.1522931570 0.2096393342 385.4571356001 385.4575387352 -321 0.1780361099 0.2045711827 -0.0125791979 0.3052609480 211 -0.2189589321 -0.0342245761 0.4299868198 0.5034707396 211 0.0173858881 -0.0837828326 -0.9973381458 1.0106854081 211 0.6870508833 1.2320949370 -5023.2545421620 5023.2548281209 2112 0.0608879622 -0.0417071433 228.9839065888 228.9844592957 130 0.0625286557 -0.3381248377 175.5684197086 175.5694502986 321 0.0937830046 -0.1668265988 207.9072415189 207.9079155379 -321 -0.4950131112 0.3206480394 57.7741178047 57.7792366012 321 0.1110346847 0.0608550778 29.0153968468 29.0160087884 -211 -0.1455423327 0.0966445831 4.6597339615 4.6650962608 -211 0.3472045816 -0.2405385735 16.5066476337 16.5126407856 211 0.3339228437 0.5193198991 2.3063243000 2.3916122564 211 -0.3221008928 -0.6378269104 1.4839697522 1.6529422746 -211 -0.0766169483 -0.1123256849 2.4212215818 2.4290493921 -211 0.4589873048 -0.1444257755 0.2425874781 0.5566476624 -211 -0.1933450115 -0.0909637235 0.4764385111 0.5404906403 211 -0.1972822208 0.0756174857 -0.1599821327 0.2995201937 -211 -0.2085405002 -0.0326319045 -399.2301846584 399.2302648550 -211 0.3627062522 -0.1299164841 -982.3924624310 982.3925478927 211 -0.2751644366 -0.1376152642 -109.5582770283 109.5587979061 -211 0.1272017379 -0.0253590632 -55.8359535894 55.8362786760 211 -0.4621935292 -0.0071504429 -213.9562483254 213.9588106698 -2112 -0.0165675216 -0.0319438961 -47.6720472893 47.6722651804 211 0.8080746997 0.1296715448 -99.3121467757 99.3199631917 2112 -0.2564477371 -0.0188085629 -5.3764989168 5.3844535091 211 -0.1948432151 0.0655741605 -14.0546508065 14.0568471902 -211 -0.3457930063 -0.1481234296 -1.9046436699 1.9464482135 211 0.1846397883 0.1223655296 -2.7876225301 2.7998900567 -211 -0.1051200229 0.0183200016 0.7815895615 0.7888397076 22 -0.0615714129 -0.1073746961 0.7055105550 0.7162859118 22 0.1080850692 0.0914216720 0.0830092045 0.1641061618 22 -0.0058405308 -0.0351288890 0.0093248282 0.0368117245 22 0.0179247457 -0.0030150678 0.0156909557 0.0240123559 22 -0.0629238605 -0.1798861057 0.9709199711 0.9894463167 22 0.0330627056 0.1915215454 0.2217747263 0.2948858662 22 0.0844653285 0.2864918170 0.1344533184 0.3275509850 22 -0.0085808655 0.0064303997 -0.4415240956 0.4416542860 22 0.3041620822 -0.1058135326 -40.3383117932 40.3395972886 22 0.0034652706 0.0110518544 -0.0150543024 0.0189943046 22 -0.1494134870 -0.1010745510 -1.8550180404 1.8637683293 22 0.0198810599 0.0213598582 12.6833147010 12.6833482686 22 -0.0842753577 -0.0414237418 83.5131473367 83.5132001339 11 -0.0402383186 -0.0211826263 44.8785705747 44.8785936156 -11 0.0176333880 -0.0538307047 2.9154852363 2.9160354669 22 0.0247302321 0.0538516837 11.2535414906 11.2536975110 22 #SUBSTART -0.6360258415 -0.3542930987 -0.9496198017 1.2047032927 211 -0.3275051986 0.2981361514 -0.3394701693 0.5752083106 -211 0.8046668991 -0.6474516564 0.6237769757 1.5284406348 2212 -0.0141350962 0.0748255240 3.1649259590 3.3019548117 -2212 0.3152811001 -1.2141506580 7.7490798391 7.8511962229 211 0.3047599768 0.6730748441 657.8691384040 657.8702242575 2112 0.5063714840 0.3857868691 1675.2914256042 1675.2915523652 211 -0.4883482805 0.3835052784 -2.6347527500 2.8649315852 -2212 -0.2560736340 0.3095784579 -3.7058037831 3.8437930225 2212 -0.1112013850 0.0416441971 -3.1883308195 3.1935925204 -211 1.0585060467 -0.1781665621 -1.8777377946 2.1673849185 211 0.6250701468 0.7023599913 -1.9049974596 2.1289709607 -211 -0.4215351809 0.3394598608 -68.1147090502 68.1170022365 211 -0.1409188348 0.0941483694 -152.1192224105 152.1193808448 -211 0.3052580819 -0.1990301219 783.7670573628 783.7671545059 -211 0.3781829933 0.3228920801 32.4267471095 32.4308601422 -211 -0.1856704979 0.1513150191 7.4710963043 7.5335914642 2212 -0.1617762171 -0.2828905006 0.0235401877 0.3552921405 211 1.1686490550 1.0763126285 0.3757305305 1.8836546139 2112 0.2614289989 -0.1134042153 -20.7889407221 20.7913621913 -211 0.2675728073 0.2587465405 -10.8012737171 10.8189509589 321 -0.8395840584 0.0876543838 -46.1513100610 46.1592405138 -211 0.3139385076 -0.0565520655 -370.8111547550 370.8113182281 -211 0.7140897081 -0.1324011785 -537.1160176647 537.1165268040 211 0.0590301816 -0.1534056215 -0.6165015289 0.6380376025 22 0.0132933871 0.0228303166 -0.2566346540 0.2579908587 22 0.0532088210 -0.0549536351 -0.2041482904 0.2180082685 22 0.1685442840 -0.0105322278 -1.1525058480 1.1648123596 22 -0.1487108859 0.1753759502 -0.6658232088 0.7044091118 22 -0.2983565410 0.1459025271 -0.7228084833 0.7954597894 22 -0.0216745533 0.1788983448 -1.6611319661 1.6766972290 -211 0.1044277240 -0.2337825606 -0.2064279969 0.3572838339 211 -0.0276278951 0.0294956999 -0.0069831737 0.1454711192 -211 0.4866577790 -0.5079523051 -0.4612806674 0.8527080257 211 -0.2096765258 -0.1314274207 3.0073503680 3.0207405438 211 -0.2508804905 -0.2900363509 1.1816393237 1.2501253463 -211 0.3746085516 -0.0606766266 0.8151408588 0.9099162733 -211 0.1757998277 -0.5379002311 3.6270383578 3.6735717322 211 0.0199056507 -0.7146318421 4.1551611847 4.2185233389 -211 -0.3514310834 -0.1493662022 5.7473879244 5.7617498911 211 -0.1252231824 0.0182534543 7.6022263988 7.6045604763 211 0.3004512250 -0.2683892063 3.8216863614 3.8453959659 -211 0.4376303781 -0.4728734200 6.9967721232 7.0277613469 -211 0.3861922737 -0.2582936655 107.8289672546 107.8300585137 211 -0.0103724393 -0.0371995833 39.6651624213 39.6654267731 211 0.0467041252 -0.0950170329 11.7198364694 11.7211456849 -211 -0.5530635170 0.0818681310 -3.7326622220 3.7768808153 211 -0.5532623158 -0.1697810182 -1.0734559352 1.2274820625 -211 -2.6521152777 -1.3491222909 -9.4743302199 9.9315788927 211 -0.3979609221 -0.1509661978 -2.4453015593 2.4859893783 -211 0.1307693933 0.0705286514 -9.9341519622 9.9352629625 22 0.0840339453 -0.4601091324 -9.1896580582 9.2015529854 22 0.1802498434 0.0560400399 -359.5790078318 359.5790844635 211 -0.0111792997 -0.0367950810 -105.5536505771 105.5537498566 -211 -0.9408916928 0.4888292193 1879.5770186292 1879.5773825068 321 0.0173285880 -0.2452589981 191.1827323953 191.1835276884 -321 0.2380631000 0.0018717605 25.8693321649 25.8708040847 211 -0.1741812722 -0.5939399626 117.7946551781 117.7962813178 22 -0.0761602737 -0.0803877491 26.1118648842 26.1120996917 22 0.2476919290 0.2820033743 358.6859138434 358.6864498525 321 -0.0871441640 0.1375927772 30.1615887621 30.1623514056 -211 0.2491648393 0.1527566003 10.2696727334 10.2858772682 130 -0.3870063024 -0.2666463054 7.6015415897 7.6173347344 211 -0.1677730519 -0.1773489561 14.5977791896 14.6004875775 -211 0.9126534646 0.2172339526 2.9892673587 3.1361323415 211 0.4130438743 0.5795378417 1.1701395596 1.6601344927 -2212 0.2304807148 0.0952357860 0.1759738029 0.3356155226 -211 0.3249248814 0.2372093923 0.8106083083 0.9156473605 211 0.3145057600 -0.3112970109 0.4485199210 0.6453445642 -211 0.4378483641 -0.6005813829 0.0277492974 0.7567423576 211 0.0359561189 0.1083740347 -0.2325822585 0.2942992792 -211 -0.1490896757 0.0188161086 -0.1047104938 0.9572553733 -2112 0.5397582269 0.2892711597 -0.8831634238 1.0747066486 22 0.0223488315 0.0092405450 -0.1097157650 0.1123494861 22 -0.6118830448 -0.3620729250 -19.1497491514 19.1634514117 211 -0.2458083369 0.2273683992 -5.3638067588 5.3760599753 -211 -1.0243502077 -0.0029396220 -72.3859055264 72.3932876767 -211 -0.0451155970 -0.1776543483 -5.0363461547 5.0416127240 211 -0.3135349778 -0.0789135316 -4.0250636721 4.0380278716 22 -0.1972627228 -0.0384340803 -1.4818323315 1.4953985486 22 0.1363727424 0.1552849798 -18.9447031910 18.9463444952 211 -0.0896950523 -0.1446318363 -3.0881806298 3.0960140435 211 0.1797053129 0.0113607078 -4.7290081202 4.7344926498 -211 -0.8303675086 -0.0782627252 -22.0203609150 22.0365925193 -211 -0.1520021761 0.0462114010 -2.8791616870 2.8869173802 211 0.0716822023 -0.1363427332 -85.6707674231 85.6710195943 211 -0.1825954012 0.0367309765 -356.4967961388 356.4968721142 211 -0.0178479924 0.5530255740 -389.3128364374 389.3132546556 -211 2.1160184776 -0.3109768026 -2960.2293074106 2960.2302291351 2112 0.0388312848 -0.0102020953 -0.0435253200 0.0592149045 22 -0.0832114463 0.0901572419 -0.1548649478 0.1975743534 22 0.0285798481 0.1681634934 -0.3548456069 0.3937145831 22 -0.0781870433 0.1825880167 -0.6783342785 0.7068160942 22 -0.0565860909 -0.0208311249 -0.1715541200 0.1818426175 22 -0.0527203454 0.0910527352 -0.0818833301 0.1333225980 22 0.0087733335 0.0339432325 0.0829575583 0.0900614839 22 -0.0997854666 -0.0953395706 0.2454932103 0.2816268620 22 -0.0018808874 0.1160296899 0.9529860523 0.9600254385 22 0.0964903064 0.0282538410 0.6080438414 0.6163002286 22 0.2481431402 -0.1523912396 0.6498912391 0.7121493738 22 -0.0113506928 -0.0350331319 0.1269877699 0.1322197120 22 0.0772146572 -0.0894812094 0.1952612986 0.2282454049 22 0.1491662653 -0.1539087248 0.8611056325 0.8873789386 22 -0.0238037756 0.0541991748 0.3515436457 0.3564927841 22 -0.1068695799 -0.0704724335 0.9881118704 0.9963696801 22 0.0006899796 0.0208513258 2.2055235392 2.2056222106 22 -0.0145743019 -0.0020873359 0.0243511531 0.0284560346 22 -0.0642965485 0.0520451308 2.3422318099 2.3478441980 -211 -0.5193807200 0.2508545089 5.3707922608 5.4034779180 211 -0.0356246895 0.0200735314 10.6551975758 10.6552760379 22 0.0791319094 0.2284331086 40.4059836516 40.4067068492 22 0.0409853282 -0.0105039845 3.7083916268 3.7086329812 22 -0.0116575970 -0.0846834129 37.9719161056 37.9720123237 22 0.0366491329 0.0687099723 -0.3092543218 0.3189082231 22 0.3492923306 0.0908050709 -1.5198604102 1.5621223895 22 0.2983893407 0.1250028063 -0.7361235747 0.8040769972 22 0.0211095674 0.0651426300 -0.1042325524 0.1247140772 22 0.1848498123 -0.0144294778 -0.7514238238 0.7739608685 22 0.0064002225 0.0301837015 -0.0347363382 0.0464610791 22 0.3137612059 0.0135746431 -162.5984461162 162.5987494102 22 0.2690723970 0.1332643077 -180.3708162079 180.3710661355 22 -0.3798421650 0.2998323779 500.0624101327 500.0626442830 22 -0.1721382821 0.2730144726 349.3278492555 349.3279983539 22 -0.0592352920 -0.0171472146 1.6130919605 1.6142702747 22 0.0591358732 -0.0215851422 0.6061614265 0.6094215658 22 0.0281473022 -0.1640754604 0.5886841456 0.6117696058 22 0.0208307848 -0.1145884284 0.1443033920 0.1854397435 22 -0.0806365522 -0.0063316469 0.1430676328 0.1643492953 22 0.0429869807 0.0123924730 0.0154868326 0.0473423265 22 -0.1200702168 -0.0394650610 -6.8022041316 6.8033782341 22 -0.8132481120 -0.2857716424 -30.9190632065 30.9310767270 22 -0.4634690934 0.2369230996 -14.4061621609 14.4155625753 22 -0.4058547770 0.2829454169 -17.2017831529 17.2088965320 22 -0.0225658181 0.0972971296 -7.9064805338 7.9071113802 22 -0.0358468383 -0.0419915157 -6.1300470399 6.1302956694 22 -0.0317807527 -0.0182382466 -6.0204610683 6.0205725745 22 -0.0742008520 0.0874866218 -4.2123254894 4.2138872439 22 0.1861949652 0.1989426635 -15.4931036545 15.4961281417 -211 0.2941543519 0.6879218663 -18.7485897196 18.7640310045 211 -0.1606027400 0.2064175103 -10.9413700379 10.9444954079 22 0.0071537951 0.1170176359 -6.6656944119 6.6667253053 22 -0.1461629346 0.1148957599 -166.1662924402 166.1663964463 22 -0.0352800665 0.1399260460 -214.0203603192 214.0204089688 22 -0.0104439963 -0.0047373766 -3.3223763513 3.3223961442 22 0.0462960974 0.1515058127 -394.2200530480 394.2200848796 22 -0.0204949253 0.0652074360 0.2940135317 0.3018542835 22 -0.1630430830 0.0783674400 1.9108559784 1.9193996647 22 -0.0689356556 -0.2700285545 -11.6067475147 11.6109317111 211 -0.3813605618 -0.0885736200 -8.3909488907 8.4012370658 -211 0.3272555194 0.1351589305 -13.2495713737 13.2550362310 -211 -0.1003558670 0.0639695726 -10.9390624035 10.9406000502 211 #SUBSTART -1.5803470634 0.3618074662 0.1918687127 1.6385038515 211 -0.1140294032 0.2406242249 -2.3844980883 2.4033754681 211 -0.8202934467 0.4488533034 -15.5334840696 15.5622285599 -211 -3.3702169981 0.4473847253 -45.2888532342 45.4164972533 211 -0.5268680744 0.0379547576 -58.5431956313 58.5531175689 -2112 0.5230289499 -0.3293628654 -126.9330737251 126.9346553320 211 0.7931804407 1.2145665911 -1293.5845641205 1293.5857187020 2112 0.0764071264 -0.0850050989 0.1207770236 0.2170962693 -211 1.3800809824 1.2437800053 0.8168574950 2.0342930397 -211 -0.1931482227 0.5658064952 3.1049555102 3.1650705729 211 -0.3734963899 0.2148972364 4.7822300853 4.8036324536 -211 -0.3618375739 -0.0529464949 2.4973392902 2.5278277387 211 -1.3145913968 -1.0119969851 163.8650269038 163.8761182187 2112 0.2923010560 -0.1562397288 43.3272805810 43.3287730393 -211 -0.2882922986 0.1408430403 20.0125984652 20.0156570296 211 0.0688188472 0.2994677675 33.9164310685 33.9181101063 -211 -0.1909480340 -0.0069830773 490.0353000439 490.0353571722 211 0.1082536807 -1.9104702363 4.4044462488 4.8929656380 2212 1.1306460205 -1.9674778358 5.9561296717 6.4424499003 -2212 -0.5558807077 -0.3790110903 3.6657881955 3.7296294249 211 0.1777938678 0.0279246812 27.9407017797 27.9570305466 2212 -0.0077855433 -0.2919464833 1.2703894593 1.3109776989 -211 0.1827081541 0.2318751974 26.1855037202 26.2040177309 -2112 -0.4038052645 1.9178087844 151.6801701456 151.6936343607 321 -0.2268925679 1.1548032700 156.3559456980 156.3611538935 -321 -1.5148269752 0.2414455079 -0.0563646640 1.5413154961 -211 -1.6883796132 0.2842269608 0.2076392388 1.7303191966 211 -0.8788879223 0.0371725558 -0.0089262986 0.8907217538 -211 -1.1308672008 -0.8290802136 -0.1475120742 1.4168536351 211 -1.1472380985 0.4953874005 -0.3529106725 1.3891547193 321 0.0621632099 0.1302829778 -0.1501455688 0.2507217495 -211 -0.3108117329 -0.4482916664 -0.3616302084 0.6691976868 -211 0.1414528564 -0.0300727140 -0.3896141412 0.4383973570 -211 -0.5805536150 -0.8834323254 -3.1134401274 3.2909701282 211 0.1088244439 0.0811110442 -0.0822330305 0.1586947775 22 0.1950315976 -0.0328796967 -0.1811876222 0.2682300374 22 -0.3698756381 -0.0374892757 -2.5846446440 2.6112451760 22 -0.5598377140 -0.2004018330 -4.8291580018 4.8656290618 22 0.1488001953 0.1438482251 -0.6089589737 0.6431678176 22 -0.0213462742 -0.0062600377 -0.1020841478 0.1044797814 22 -0.5459121733 -0.2534454864 -5.4898372591 5.5244952378 -211 -0.6582048455 0.0926265311 -10.8914294837 10.9125858199 211 -0.1835957492 -0.0861526121 -3.2389323569 3.2452754096 22 -0.5342071584 -0.0141654536 -8.7404632558 8.7567845625 22 -1.3109495820 -0.2003460134 -10.6076263661 10.6911152009 -211 0.9835157168 0.2766903626 -20.0359633149 20.0839856220 2112 0.8679114871 0.1923576549 -12.3795300329 12.4114074807 22 0.0456877691 0.2669789884 -3.8655682652 3.8750462146 22 0.1780505994 0.1133153626 -29.9152959566 29.9160404225 22 0.0254843574 0.0352839290 -28.1942998768 28.1946789259 211 2.1906846691 0.7550669096 -358.7597316546 358.7684415230 -2212 0.3602212637 0.0855902140 -39.1537209453 39.1557202550 -211 0.0819831719 0.1790956331 -49.5837411975 49.5843288490 211 -0.4435766372 0.4510387584 -966.0270930752 966.0274263148 -321 0.1273559900 -0.1321484041 -247.3111374443 247.3112449254 211 1.2728598206 0.7059121281 -843.0366096254 843.0380105865 321 0.0367402892 0.0525868059 -31.4993474765 31.4997220059 -211 3.7247370659 -1.5439560346 4.1385146493 5.7796409693 211 1.1465204552 -0.2437184064 1.1354012785 1.6378411595 -211 1.6279807422 -0.6886580687 1.7560775048 2.4955679154 211 0.6207420427 -0.1835569698 0.6323406717 0.9156136493 -211 0.1196631811 0.0623502055 0.1927918921 0.2353200771 22 0.0475539188 0.0565773175 -0.0046740476 0.0740554843 22 0.1470755330 -0.0897908164 0.0381231796 0.2250039218 -211 0.2898956592 -0.0297713498 -0.0130106451 0.3233804080 211 0.5834333898 0.4565747840 -0.5506222321 0.9230600719 22 1.7214797608 0.6406417494 -0.6253978245 1.9403702886 22 0.2796145958 0.0754680404 -0.1852922665 0.3438211328 22 0.2053514251 0.0011021420 -0.2701134872 0.3393106519 22 0.5047445865 0.1853662972 0.1661542071 0.5798402945 211 0.8940447273 0.8470292979 -0.8903194962 1.7859994413 2212 0.4176241027 0.5194496050 -0.3111041938 0.7486677418 211 0.4708375566 0.6912782064 0.0402286912 0.8489120660 -211 1.8334876479 1.9078471306 1.5570843054 3.2107414950 -2112 -0.1588920957 0.1083428262 0.0899225222 0.2122991429 22 0.3526360094 0.3009623803 0.8219090688 0.9436445448 22 0.0686216803 -0.1296191526 1.4675262279 1.7479971059 2212 1.1273043911 0.5350080987 2.8296431959 3.2321388054 -2112 0.2324695956 0.1496347133 1.1307326092 1.1723773619 -211 -0.0721462279 0.0135969859 0.1812689339 0.1955719372 22 -0.3116846693 -0.2098423944 0.6736250075 0.7713311963 22 -0.2535306570 0.1615541571 3.1945432575 3.2116917580 211 0.2020368021 0.0674800690 4.5398512779 4.5469882164 -211 0.2028248250 0.0641991975 3.3580347492 3.3676604057 -211 0.3345864677 -0.3008974490 6.8496318293 6.8658155641 211 0.0715307416 -0.2039722186 4.3208822814 4.3262853584 22 -0.2351821502 0.1261458505 18.3005980821 18.3025439101 22 -0.0277558531 -0.2169735210 9.3126303867 9.3162445438 211 -1.1113614470 -0.6351967627 47.5068648765 47.5243126134 -211 -0.6790399571 -0.2308289238 60.8034762730 60.8078661352 211 -0.6982179963 -0.5478939077 53.1897682535 53.1973554113 -211 -2.0829349428 -1.6081975609 149.6781507905 149.7042301781 -2112 -0.1660280035 -0.1121326058 11.0473559984 11.0500539980 -211 -0.9662390401 0.0862772566 66.8589067164 66.8660896774 211 -0.4709234800 -0.3829712309 40.8503546969 40.8548640280 22 -0.6645298236 -0.7478945989 71.6970837458 71.7040637890 22 -0.6613911057 -0.8444053240 35.4710778927 35.4875655012 -211 0.0213500253 -0.0132059871 2.7795168781 2.9337169070 2212 0.0393265476 -0.2134194273 0.4357912007 0.5064466258 211 -0.3658768858 0.0171166490 68.0983196892 68.0993047201 22 -0.0415493233 0.0207912185 3.4566076431 3.4569198746 22 -0.1081825334 -0.0137533100 2.3237459315 2.3304865486 -211 -0.0140747355 0.4276304639 4.0735285562 4.1260606198 130 -0.0628733981 -0.2859713267 2.0155579544 2.0414911992 211 -0.2780411473 -0.1126471810 2.5345952952 2.5561004211 -211 -0.1900210328 -0.1872005663 33.1371851431 33.1382587239 22 0.3446761241 -0.0475474809 47.6703838809 47.6716536503 22 -0.0685155579 0.1864363190 30.6011303327 30.6020932341 -211 -0.1565715568 -0.3437690920 204.9317805762 204.9321762480 211 0.0759360835 -0.0166011758 5.1853514835 5.1859340427 22 0.0013951444 -0.0347134399 0.3249857113 0.3268373936 22 -1.8232742728 -0.0873012518 1604.5052129822 1604.5065263904 2112 -0.0457552055 -0.1961524512 586.3902763303 586.3903275326 -211 -0.8605925319 0.0769501770 1159.0801488138 1159.0804792570 211 0.0390871276 0.0020051727 1.2343429054 1.2428250148 211 0.4656548916 -0.0201753841 5.2654840482 5.2879148605 -211 0.3419009253 0.2644209887 22.2949554068 22.2995814104 211 0.1070575679 -0.0445477287 3.3353565836 3.3402887821 -211 -0.0113343470 0.0672016543 87.8677381082 87.8691509333 321 0.6078508991 0.0840622148 136.0411617014 136.0426172418 -211 0.1971958851 0.0921182441 140.7800134466 140.7802508798 -211 -0.2930655621 -0.2597222456 0.3298558185 0.5306860790 -211 -0.2522819114 0.4457011858 0.5485413940 0.7633303058 211 0.5051292238 0.0804680601 0.7299801743 0.9022092225 -211 -0.6785122966 -0.3075139232 1.4328251680 1.6209292078 211 0.8611255773 -0.0634822416 1.0167969891 1.3412394107 -211 0.1090979855 -0.0998911214 0.0764202714 0.2172566440 211 -0.1463331353 -0.1152770137 -0.3546468117 0.6388677221 130 0.0111082171 -0.2090339707 -1.0067586782 1.0282906347 22 0.1614640841 -0.2298652823 -1.4534657709 1.4803619307 22 -3.3978366941 0.0389041279 -37.4972747308 37.6509285406 22 -0.6944393590 -0.0329431139 -8.1904290080 8.2198819096 22 -0.0364103128 -0.1217542860 -0.8451499938 0.8546509984 22 -0.0076143624 -0.0160738304 -0.0053634857 0.0185772312 22 0.1751499942 0.2107686374 -2.3041298992 2.3203696971 22 -0.0053448322 0.0910370147 -0.4952925786 0.5036179541 22 2.7091969150 0.5749015882 -404.8701265111 404.8806890834 2112 1.5115330580 -0.4890597663 -414.8992534042 414.9025934631 130 0.2239526698 0.9361908492 -660.2624301858 660.2631466338 211 0.0685559513 0.1109700820 -242.8515350645 242.8516102011 -211 -0.0479774473 -0.0262667073 -101.3567527019 101.3567674605 22 0.0511257396 -0.1007701751 -79.6020434001 79.6021236020 22 -0.0984885269 -0.0580106351 -308.3700191813 308.3700403656 22 0.0173398229 0.0364007344 -186.1792048699 186.1792092358 22 0.0594054688 -0.0369523711 -40.5862099611 40.5862702584 22 -0.0561738620 -0.0904294222 -119.1438441234 119.1438916835 22 1.8764176029 -0.7471859357 2.2612029601 3.0724492020 130 0.1675630094 -0.1468804139 0.2206628012 0.3432536596 211 0.6338999644 0.1993974115 0.7350047922 1.0006499498 -211 0.4317983412 -0.2150700461 0.4662827776 0.6709132290 22 0.1601258583 -0.0047618980 0.2098395821 0.2639992734 22 0.8886656959 -0.4874791200 0.1761013168 1.0287731943 22 0.2797215487 -0.2458093245 0.0571217408 0.3767350025 22 0.0174095619 -0.2303195109 -0.2543658490 0.3435871870 22 0.1019808271 -0.1123515586 -0.2467494779 0.2896692367 22 0.0124052292 0.1138007858 -0.1254582565 0.1698360464 22 0.0373245677 0.4525771660 -0.1692064691 0.4846132930 22 0.7810744212 0.6336127996 0.6779277394 1.2129008414 22 0.3301502430 0.1675847278 0.2210561364 0.4312187836 22 -0.0269344235 0.1017704879 0.0379450612 0.1119040796 22 -0.1119440036 0.1750065312 0.3088853728 0.3722484647 22 -0.0345625916 -0.0069342740 2.0355705081 2.0358757207 22 0.0357047634 -0.0705524055 0.7811935300 0.7851852032 22 -1.6630429762 -0.9599357860 150.0735616798 150.0858457814 22 -0.2928545484 -0.2089161333 24.6672315931 24.6698545639 22 -0.0682501855 -0.2239782582 18.1270317174 18.1285438806 22 -0.0404989171 0.0086625415 2.5719862081 2.5723196257 22 -0.0794289698 0.0128505454 4.5053710232 4.5060894525 22 0.0088421723 0.0019602912 11.7156846631 11.7156881638 22 0.1748613941 -0.3680121771 5.0315564142 5.1344834221 -2212 0.0726515345 -0.0783243294 1.5983549450 1.6079898200 211 0.1070308925 0.0837328318 1.7317537716 1.7370774089 22 -0.0153125309 -0.0284660441 0.7184956394 0.7192223391 22 -0.2487377862 0.2756162390 7.4443381642 7.4535901082 22 -0.0012548461 0.0641138902 2.1625315671 2.1634821340 22 0.1405565508 -0.2102028894 40.2241636536 40.2249584590 22 0.0351296826 -0.0351741318 2.5610885599 2.5615709879 22 -0.0223578891 -0.0889632620 215.1455349551 215.1455545101 22 -0.1228515957 -0.1432169452 182.0551216093 182.0552193917 22 0.1870949873 -0.2098432634 4.9904031699 4.9983159692 22 0.2970127269 -0.3017105308 5.1053401382 5.1228647973 22 0.0633159916 0.0227993697 0.8165224795 0.8192909651 22 -0.0061391732 -0.0694728644 2.2595427863 2.2606188912 22 -0.0008816022 -0.0236496602 1.0412774273 1.0415463332 22 0.0573200170 -0.0631054194 0.3569763113 0.3670149386 22 0.0701828930 0.0372517282 3.5311292777 3.5320231179 22 -0.0468441667 0.0567776016 1.4373915853 1.4392750402 22 0.0657746035 -0.0569882175 9.6570422111 9.6574343499 22 0.0784636826 -0.1131835226 4.8675177278 4.8694656677 22 -0.1131004849 0.1818258451 57.3384280748 57.3388279131 22 -0.0663488598 0.0853358518 12.3120463597 12.3125208606 22 -0.0803858667 0.0765038553 16.7037338632 16.7041024812 22 -0.0351295683 0.0961702568 47.3135885372 47.3136993171 22 -0.4305021916 0.4214763407 88.7200563060 88.7221018990 22 -0.0428792458 0.1291798035 20.3993798138 20.3998338925 22 0.0033495071 -0.1370995103 -0.1170956564 0.1803299411 22 -0.0329990424 -0.0206688606 0.0275749376 0.0477128472 22 -0.2480591818 0.3016464272 0.2469475350 0.4620681873 22 -0.0066589135 0.1010323879 0.0313222735 0.1059857035 22 -0.0517746070 -0.0246653789 0.1075891770 0.1219197353 22 0.0846492210 -0.0158047795 0.2170410657 0.2334996914 22 -0.0860224763 -0.0263544891 0.0195252614 0.0920633551 22 -0.4990683828 0.1310934071 -0.0458145465 0.5180286717 22 -1.8810564225 0.3627144778 0.1412675165 1.9209090474 22 -0.1286295578 0.0294094828 -0.0254659617 0.1343837640 22 -0.1742775409 0.0830251695 0.0562867841 0.2010821775 22 -0.1369732812 0.0019423650 -0.0577388919 0.1486581050 22 0.3176360078 0.0098038859 -43.8847985421 43.8859491390 22 0.1243511886 0.0023711217 -33.4459578617 33.4461891122 22 0.3050997170 -0.0320147438 -15.7358814407 15.7394903120 -211 0.5292133958 -0.5838864625 -51.9590873400 51.9652501890 211 0.0255063739 -0.1783235852 -0.0678304094 0.1924859490 22 0.0521927220 -0.0015159572 -0.0527890472 0.0742499957 22 0.0335626829 -0.0206258363 0.0214811464 0.0448700173 22 0.0505213180 -0.1175169088 -0.1705477701 0.2131881078 22 0.2259300153 -0.1584064978 -0.0919790401 0.2908558649 22 0.2182112017 -0.0119352129 -0.0729811800 0.2304014550 22 0.5331017953 0.2406414927 56.1952952448 56.1985123761 -211 0.1960607193 0.2981766700 68.5121866224 68.5132581673 211 #SUBSTART -1.4073086856 0.2244084049 0.7586594861 1.6204693362 211 -0.2715875076 0.3381806225 -0.3047122252 0.5481379688 -211 -0.1434263522 0.0154243305 1.3289698392 1.6331933305 -2212 -0.3718276920 0.3084898354 1.5948857780 1.6722925106 211 -0.4297409867 0.4160429242 -3.0332116873 3.0947733286 211 -0.7926277650 0.5495319793 -3.3130761171 3.4534326855 -211 0.1381853144 0.1769882476 -2942.7730168081 2942.7731749532 2212 -0.3042028248 -0.2524771513 -1425.4500871686 1425.4501488207 211 0.2972749356 -0.3670605216 303.0838453358 303.0842455311 211 0.2916080890 -0.1483834141 13.8516644721 13.8562311379 -211 0.2913379747 -0.9958179705 91.2644077420 91.2704121363 211 0.0027885907 -0.7072888780 61.3065447520 61.3107835095 -211 -0.4357703372 -0.5091103315 76.0465078149 76.0552643263 -2112 -0.3381816563 -1.9711726561 85.0551753865 85.0838735618 2112 0.7188800577 0.4113850230 458.3573101727 458.3580797747 211 -0.2903275901 0.6683921995 87.8156226096 87.8236583339 -2212 -0.6726632516 0.4928389766 83.7726981347 83.7821168905 2112 -1.1045433173 0.7363925935 71.4515008057 71.4700080395 -2112 1.0446936986 0.0386739562 22.9455328317 22.9884907752 2212 0.6637980758 -0.1165318498 7.7250445762 7.8109456440 -2212 1.7261513373 -1.4701137154 5.6354807938 6.1465296831 2212 0.5341312443 -0.1593820988 1.4450189706 1.6255520985 -321 -0.0853882075 -0.0914491157 0.0910301827 0.2083755403 211 0.3648937798 0.2126945547 0.5445763931 0.7031569362 -211 -0.3841295327 -0.4214105180 0.1382026201 0.6030937503 211 -0.0489399564 0.0659862266 0.8078117628 0.8238864791 -211 0.6081472192 -0.2305814981 0.0620175589 0.6680844483 211 0.1057754185 -0.7796115931 0.1521013926 0.8133863127 -211 -0.1931394773 -0.3083753009 -1.4599364655 1.5110567336 -211 0.1844528889 0.0799340123 -1.1006420767 1.4610328814 -2112 1.0268184404 -0.8795911900 -0.9127564811 1.6372663039 -211 2.3811360712 -0.5868449580 -39.9372646980 40.0127328152 -211 0.1987071907 -0.4907348500 -4.1566771957 4.1925827762 -211 0.0427580057 -0.0403196998 -3.1556886137 3.1593202334 -211 0.1457056338 -0.0765693888 -2.9754707871 2.9832866428 211 0.4250984119 -0.2671449863 -18.8160681233 18.8232827772 211 -0.2162042345 1.1108102278 -49.5473648167 49.5691920016 -2112 1.8004625091 1.8539426095 -160.9400132332 160.9635033781 2112 0.6800951861 0.4608828499 -0.2292879631 1.2680165718 -2212 -0.4842635636 -0.3044188764 0.4782790855 1.1994685156 2112 -0.1958316225 -0.1564639735 -0.4696270612 0.5503275033 211 0.0242214596 0.7685691002 -0.7161183325 1.1609270291 321 -0.2448525069 0.4165125712 0.0620585056 0.5067213387 -211 -0.1793392402 0.0351416866 -0.1245341425 0.2211475839 22 -0.1554687474 0.1475976208 -0.0537988679 0.2210201513 22 0.3464038392 0.4726687358 0.0136933364 0.5861730641 22 0.0070062933 0.0869944202 0.0234794673 0.0903792160 22 -0.1321265254 0.0351219547 1.1200982878 1.2332828442 130 0.2585853238 -0.1699715449 20.2289993137 20.2374861423 130 -0.0668030997 -1.2628280592 186.3919879327 186.3963300139 211 0.2309028894 -0.3838699762 34.3686783686 34.3718810206 -211 -0.9944544957 0.5651682112 1.4104584660 1.8818578308 -321 -1.4188406749 1.2466226515 1.7329240818 2.5670377002 211 -0.2344180284 0.8406508243 0.3038032475 1.0495796600 130 -0.5746128673 0.7198529691 -0.1547752653 0.9443534360 211 -0.5910482736 0.7124621376 0.5236310894 1.0726647481 -211 -1.7545777209 1.7248032086 -1.2252209573 2.9047284324 2112 -0.1376547378 0.1834074230 -0.1809580517 0.3237479128 211 -0.1623937702 0.0829088275 -0.0199579355 0.2304858225 -211 0.1079086074 1.0628009158 1.4161623620 2.0073608730 2112 -0.0128872716 0.7555337672 0.9621790792 1.2313674190 -211 0.0367239000 1.1118253301 2.2619882288 2.6901462305 -2112 -0.1635483305 0.0723964146 0.3728829454 0.4364753981 211 0.1940775460 0.8543822134 6.4707481537 6.5487321030 130 -0.0916205274 0.4564440170 0.1625984886 0.6977210691 -321 0.0172684216 -0.0474114177 0.0352085332 0.1525302154 211 -0.2916069220 0.1686583846 0.0192551822 0.3651448953 -211 -0.2845411547 1.0902542292 -0.2780216810 1.1689284807 211 0.0821992512 0.0482666276 -0.2209382615 0.2781724007 -211 -0.2165311248 0.4202557578 -0.5661632982 0.7506805547 -211 -0.2452901795 -0.2663369417 -0.8225781474 0.9095148334 211 -0.8708068062 0.2375344960 -5.0154039239 5.0959791650 22 -0.4656214132 0.0821960416 -2.1757027081 2.2264864167 22 0.1583343417 0.0393639270 -0.5155504598 0.5584723306 -211 0.0806922829 0.8891298948 -7.3607920106 7.4160502980 211 -0.0644168292 0.1948967993 -3.9743606773 3.9821045778 211 0.0872750546 0.0066353098 -1.7108242832 1.7187380474 -211 -0.9958460119 0.4712635647 -15.0672844892 15.1081547613 -211 0.1367956641 -0.1249876171 -7.0635079538 7.0673162768 211 0.1103147978 0.0339030942 -56.0455350233 56.0458276289 211 -0.1206291930 0.1451066612 -79.9158775460 79.9161003259 22 -0.3681603456 0.1513067369 -152.7221988044 152.7227175093 22 -0.0082546796 0.0840658125 -42.7213485573 42.7216600513 211 0.2357582353 0.1517696000 -29.3151445209 29.3168175972 -211 -0.0625245159 -0.0804413073 -36.9894249667 36.9898285921 -211 -0.0738297296 -0.6002312137 2175.2652568989 2175.2655433189 2212 0.2845736213 -0.7229341665 407.5696090198 407.5703734232 -211 0.1347292021 0.1849934725 17.4769443070 17.4784426324 22 0.7455304045 -0.2238021965 33.2974425681 33.3065396669 22 -0.3754948826 -0.9994709816 94.5263223575 94.5324549393 211 -0.1705928907 -0.4981694386 579.0085384059 579.0087778451 22 -0.2451430439 -0.3741365517 556.1585565865 556.1587364572 22 -0.8698398316 0.4428968185 353.7856611017 353.7870351778 -211 -0.6803084172 -0.0215772354 214.4523318420 214.4554702249 -2112 0.1147605945 0.3420667800 50.7604686101 50.7619427620 211 0.0138363617 -0.0660850048 21.5928934392 21.5934500610 -211 -1.1783357251 -0.0128872450 196.8041564589 196.8099271695 2112 0.0222661559 0.1588997441 17.9943270972 17.9955836909 211 -0.0291045947 -0.1954292886 15.8783190620 15.8801617027 211 -0.5032543791 -0.0439154148 6.7266544245 6.7470403190 -211 0.2125775021 0.0727782255 2.2173749224 2.2330958770 -211 0.2818969094 -0.3229013163 2.4917199986 2.5321689249 211 -0.0386025102 -0.2709770833 2.3472255885 2.3672487156 -211 -0.1366767264 -0.3338381200 0.9760057606 1.0498549650 211 0.1291841829 0.0887845717 0.1219844878 0.2427576023 211 -0.2367607858 0.0918027332 2.7526400727 2.7678494479 -211 -0.4918229507 -0.9008479500 1.9534241947 2.2110546609 -211 -0.0113849321 0.0044217848 -0.0101067997 0.0158529575 22 -0.0264249797 -0.1752600880 -0.1130546693 0.2102284384 -11 -0.0093464341 -0.3541072918 -0.2037413840 0.4086442727 11 0.2021554593 0.4588086727 0.2441414099 0.5748539299 -211 0.5371777257 0.0549079081 -0.2623176504 0.6163319901 211 -0.1039642277 -0.2506450354 -0.4232596724 0.5217854249 211 0.5575016715 -0.3209493639 -0.1397161083 0.6729167733 -211 0.3322198701 0.0510629758 0.1473152329 0.3926309111 211 0.4890294551 0.1899892110 -5.1765307648 5.2872023086 2112 0.2012864294 -0.1708344598 -1.5422866918 1.5709324186 211 0.2159370147 -0.8374536556 -7.1766919079 7.2454471995 321 0.1888827412 -0.2703934412 -0.9140742576 0.9817335872 -211 0.0961639039 -0.0748510315 -3.3126609920 3.3178385744 211 0.9515906016 -1.0317363879 -14.1683500238 14.2462552274 -321 -0.0757139284 -0.0103448175 -2.2637682663 2.2693536883 211 1.0970490053 -0.2420135634 -18.5927362094 18.6331845855 321 2.0023280454 -0.8149866988 -30.6361010362 30.7125981872 -211 0.0302028820 -0.1423387585 -3.0298500745 3.0365512996 211 0.0369666684 0.2099644160 -1.6691905042 1.6885284466 -211 1.2792192770 -0.8677931734 -18.9208843751 19.0070955982 -2212 0.5684792439 -0.3696018054 -4.1241786548 4.1818779880 -211 0.0478064433 -0.0899281927 -1.9600103654 1.9676109761 211 -0.0419350813 0.1372476461 -8.6818311950 8.7335639322 2212 0.2896088597 0.0503279979 -4.9854055778 4.9960138870 211 0.3570761779 -0.3224608698 -11.5561691084 11.6042802731 -2112 0.2938150889 -0.0318399167 -2.2681527904 2.2915797940 211 0.0593179775 0.0181641691 -0.6054101854 0.6085803579 22 -0.3069871670 -0.0962606154 -6.3436924589 6.3518454988 22 -0.0725311020 -0.0768744831 -3.5201754790 3.5217617537 22 -0.2007497857 -0.1544957314 -11.7502809692 11.7538398853 -211 0.1580083280 -0.0153900566 -13.7337567400 13.7353834116 211 0.0545720055 -0.2055421314 -27.4614015772 27.4625796684 -211 -0.1246944612 -0.0401178502 -7.1365628109 7.1391292669 211 -0.0054318745 -0.5412320318 -184.7080895908 184.7088826286 22 0.2230783438 -0.3063610016 -47.9887677450 47.9902641240 22 -0.4096785203 0.1505520196 -23.8371977872 23.8416018868 211 -0.0428569866 -0.3859390289 -45.2260497160 45.2279320593 -211 -0.2607104349 -0.0047999643 -100.3311375270 100.3314763693 22 -0.4007609011 -0.1708944406 -188.8566308877 188.8571334223 22 0.1393463890 -0.0004270358 -21.6251756810 21.6260750164 -211 -0.4375133564 -0.1116217968 -85.7436341138 85.7449365747 211 -1.2048266588 0.5522436288 -81.4775692861 81.4937646011 -2112 -0.3407117917 0.0184556330 -30.6305847316 30.6328031025 -211 0.6907488015 0.4389634667 -75.6915938629 75.7018493574 2112 -0.0183040454 0.2350699444 -22.3486726493 22.3503521647 -211 -0.1916377593 0.2010476413 -4.8350038352 4.8449857643 -211 0.1872613545 -0.0062152054 -12.1676632472 12.1699060853 211 -0.1103173946 0.4985362686 -8.5212831950 8.5377078548 211 -0.1977428801 0.3283557174 -3.4231630834 3.4473823409 -211 -0.0974457282 -0.1339545461 -0.8594369539 0.8752550303 22 -0.2071332904 -0.4823650456 -4.0723038016 4.1060003031 22 0.0413038850 -0.0097964921 -0.0148397271 0.0449688745 22 0.2526841941 0.1470257734 0.1799119300 0.3432698393 22 0.0282405849 0.0338927352 0.1202185244 0.1280575720 22 0.2917414074 0.5092544889 0.6267527035 0.8586455233 22 0.6114514097 0.2965263516 0.6586222575 0.9463529900 22 0.1374858610 0.1008525767 0.2605961883 0.3114225065 22 -0.0402358604 0.3051960096 -0.7562287177 0.8283267394 211 -0.1453442669 0.1126728744 -1.8397345055 1.8541636843 -211 -0.2485005504 0.0453959529 -2.8219594483 2.8366790846 211 -0.5143013846 0.5924367407 -4.7153675743 4.7822231599 -211 -0.5997874934 0.5695644031 -4.7944216344 4.8652469059 22 -0.2366520778 0.2996291383 -1.8184218834 1.8580742645 22 -0.1371379721 -0.0169230861 -0.2396901206 0.2766668902 22 -0.2781789409 0.1623838678 -0.5516909626 0.6388387605 22 0.0051386329 -0.1312612754 -4.5614209610 4.5633120769 22 0.1853041625 -0.2234548303 -7.7998176954 7.8052178557 22 -0.0123870716 -0.0124588271 -45.2740680163 45.2740714251 22 -0.0017482752 -0.1230569877 -32.4867943438 32.4870274543 22 -0.1571135238 -0.3819053014 -220.9311079265 220.9314938752 22 -0.0733985245 -0.1929764685 -174.5326954796 174.5328175979 22 0.0747244754 -0.0526433294 204.4512786073 204.4512990402 22 0.0812010923 -0.0924754200 84.5163846931 84.5164742929 22 -0.1401062547 -0.0649775140 41.0245392913 41.0248299924 22 -0.1356553464 -0.1057567253 99.3410080287 99.3411569443 22 -0.5439045608 -0.6396478851 42.9540066406 42.9622120947 22 -0.0115365419 -0.0596764266 2.2732933920 2.2741058054 22 0.0791973129 0.0000737039 12.3432660568 12.3435201288 22 -0.0462761664 0.0384524090 5.5245407965 5.5248684222 22 -0.0343470783 -0.0094523572 12.3745339169 12.3745851942 22 0.0341766775 0.0987033892 10.4370098849 10.4375325505 22 -0.0982495399 0.1251032143 22.6988206766 22.6993780508 22 -0.1959404139 0.0261293230 31.4398552497 31.4404766743 22 -0.4378803685 0.6158985993 8.9699889323 9.0017649240 22 -0.0676874145 0.2211763060 2.6239414251 2.6341163883 22 -0.2986867849 -0.0365416970 1.7046658656 1.7310213183 22 -0.0334433032 -0.0489590654 0.6008831815 0.6038013270 22 0.2484395709 0.4785677243 2.9369071515 2.9859961326 22 0.0041604757 0.1309690227 0.5545587461 0.5698294458 22 0.5181978935 -0.2442365421 1.8529539218 1.9394893095 22 0.1935569199 -0.0403293485 0.8940320263 0.9156331152 22 -0.0774124079 -0.5757338873 1.5257093543 1.6385148790 211 -0.1682496199 -0.2668262081 0.4891607654 0.5820501819 22 -0.2851212791 -0.3546207208 1.0330294037 1.1288045661 22 0.4830674864 -0.3914343010 -0.2097636875 0.6561827589 22 0.3480080566 -0.1506498072 -0.1518427066 0.4084864495 22 -0.0257524366 -0.2866292839 -0.7010043457 0.7577774258 22 0.0495962635 -0.1847932063 -0.7505239044 0.7745285337 22 0.1420674626 -0.1005393247 -1.1054018135 1.1190194319 22 0.4147068138 -0.0666002429 -3.2984628938 3.3250977122 22 0.0361005887 0.0017994858 -0.6651374488 0.6661188456 22 0.3213805870 -0.3933630387 -6.1353583049 6.1563496889 22 0.3223663596 -0.1767910366 -2.5835154035 2.6095453590 22 0.8323700359 -0.4415664781 -8.3353887684 8.3884758300 22 0.1202947581 -0.3007357189 -1.7889286733 1.8180150163 22 0.0603739512 -0.2029036103 -0.6977619129 0.7291684141 22 0.8009141292 -0.9531460439 -23.8792193250 23.9300525905 2212 0.0116040591 -0.1048654411 -2.0743317177 2.0816972102 -211 0.2635800490 -0.1770750191 -9.6457522877 9.6509775257 22 0.0014224282 0.0088967123 -1.4624198555 1.4624476088 22 -0.0194250588 0.0157769812 -0.2612484607 0.2624442879 22 -0.0538118691 0.2063053973 -10.7499991168 10.7521132177 22 -0.3822178732 0.0022766991 -14.1446987021 14.1498620863 22 -0.2284378798 0.0456840426 -5.7362882227 5.7410167627 22 -0.0823806128 0.2977867805 -15.5645852254 15.5676516138 22 0.0006003603 -0.0149160848 -0.7141627576 0.7143187624 22 0.1363821414 0.0947799476 -16.5758441619 16.5766761749 22 0.1240645894 0.2900367962 -38.7299790683 38.7312637541 22 0.1584652475 0.1957714477 -15.7722773876 15.7742883100 22 -0.0151755746 0.1144476973 -6.8955830994 6.8965494890 22 0.0330709898 0.2543723703 -17.7123904895 17.7142478205 22 0.1175142665 0.1148276290 -11.9647500724 11.9658781242 22 0.0395684840 0.0706256030 -3.0080087228 3.0090978909 22 0.0558038148 -0.0566654388 -1.7627066253 1.7644998398 22 0.0754912541 0.1606681665 -1.0239819269 1.0392555873 22 0.0792865115 0.0316028653 -1.0946932550 1.0980156714 22 -0.0430194262 0.0253016251 0.4866299358 0.4891825198 22 -0.2073596151 -0.0545639159 0.7477831174 0.7779169760 22 -0.5137360859 -0.0723349699 0.7093761774 0.8898603597 -211 -1.0136196058 -0.7390948240 1.7424348280 2.1515679815 211 -0.1435789301 0.2516162283 0.4919791452 0.5709370498 22 0.0304753978 0.0800446982 0.1577593251 0.1795101898 22 -0.0279849115 0.0759967051 -0.0239799637 0.0844611930 22 -0.0757996771 -0.0400231364 0.0260091301 0.0895763213 22 #SUBSTART -0.3323374991 -0.1849449482 990.8964226915 990.8965055118 211 0.1851082386 -0.0668942268 6009.0752431881 6009.0753198664 2112 0.2238488133 0.1243611064 -1386.7806346456 1386.7809765763 2112 0.0897287955 0.0021402654 -3842.0488385844 3842.0489545184 -2112 -0.0949850912 0.6239550309 -1649.1696683033 1649.1700559809 2212 -0.0950551274 -0.6282164615 -75.5273635809 75.5358636111 -2212 0.1365263817 0.0469319655 -11.1986218920 11.2387866309 2212 0.2247187435 0.0842504512 -8.6333204404 8.6377831800 -211 -0.3375532546 -0.0015831824 -26.6132329715 26.6157395856 211 #SUBSTART 0.1810322254 0.0178146512 0.0892185688 0.2460279788 211 -0.2939165691 -0.8473522394 -2.0299790128 2.2236652951 -211 -0.0251269998 0.2986636221 -0.7130983881 0.7860155350 211 0.0595672856 0.0212654075 0.3968959133 0.4254487396 -211 -0.2081797921 0.3708634056 11.5917897841 11.6004288143 211 0.3044595833 0.1687424704 208.6629192129 208.6653249006 2112 -0.3077703576 -0.1537005470 245.7125868223 245.7146240278 -2112 0.2461047686 -0.3082749946 379.3205885676 379.3208193496 211 -0.0420705500 -0.4619819525 4369.2681157364 4369.2682411061 2212 0.3226933505 -0.1987493578 0.1925572573 0.6514227222 321 -0.4168787422 -0.4293726415 -1.4707740236 1.5939902022 211 -0.0714745648 -0.2131724828 -7.8183280144 7.8776363621 -2212 0.9214129261 -0.6178134153 -11.2178351706 11.2734201065 -211 0.0552191616 -0.4879636923 -73.9932083789 74.0007864453 -2212 -0.0175691986 -0.1899127456 -3.3873382113 3.3955729222 -211 0.0912017593 0.1609041419 -19.8548606411 19.8618564072 321 0.0296019750 0.1095821365 -6.2349475650 6.2554853225 -321 0.5287070335 0.1488847615 -3.1217131556 3.1727386608 211 -0.9872014151 0.4878894402 -6.1149721179 6.2332304764 130 -0.1546037430 0.3031467785 -6.2097851244 6.2206680801 -211 -0.0033282968 -0.6183878494 -3.8052693838 3.8577155776 -211 -0.2102238460 0.0257763583 -0.4667992189 0.5312624415 211 0.4983626645 -0.0460050053 1.4574542996 1.5472991392 -211 -0.0904809114 0.0309504573 0.0629561049 0.1805214175 211 -0.0044507503 -0.0743567545 0.9657583131 0.9686267885 22 0.2566031196 -0.5323530620 11.4152174086 11.4305045133 22 -0.0638548971 0.0866472233 2.2531207796 2.2600040313 211 -0.0384200749 -0.1222174271 1.6524364124 1.6632615801 -211 0.0615884420 -0.0455483303 722.5462595128 722.5468744625 2112 -0.4162307888 -0.3649134992 645.1774576789 645.1783773946 -2212 0.0024828864 0.1586327153 260.5247933301 260.5248790231 -211 0.0667940688 -0.1003494478 0.1981036725 0.2706590277 -211 -0.5597917977 -0.0908385050 1.5336975337 1.6411357045 211 0.5769956063 0.2996830848 -0.6859928022 0.9554055634 -211 0.0128466165 1.1856493653 -0.7212063398 1.3948289582 211 0.2928539826 -0.6027490636 -2.9560111083 3.1733047988 2112 -0.0069313949 0.5693822586 -11.7902506017 11.8412247696 2212 0.6398037326 0.0823799751 -57.8159620496 57.8197291829 -211 0.1916519700 -0.2431471992 -8.8006704395 8.8072203905 211 0.1131809324 0.3279531494 -222.8898128536 222.8900828594 22 0.3583488589 -0.1509286507 -185.5398167679 185.5402242093 22 -0.1692890662 0.1603674237 -189.0739757910 189.0741195878 22 -0.1698428646 0.1343450021 -315.3713889156 315.3714632647 22 -1.2987988061 0.3172114832 -3323.5097651885 3323.5101665492 2212 -0.1056512515 -0.1121608296 -631.8749007012 631.8749349026 211 0.1935358236 -0.3213394311 -987.5815127539 987.5815938586 -211 -0.2369081669 0.2751464571 -879.4737652040 879.4738512275 211 -0.0138602112 0.8827762193 -16.0025033374 16.0268399575 22 -0.0373644452 0.0599785436 -1.1854284019 1.1875327463 22 0.3355411691 0.0756266271 -6.0018612566 6.0117090587 22 0.0529694955 -0.0409067167 -1.5118966824 1.5133772514 22 -0.1206493712 0.2743459086 0.9933265310 1.0375545988 22 -0.0953701498 0.0438061856 0.4613666582 0.4731528724 22 0.0223632468 -0.0435730828 96.3789713558 96.3789838001 22 0.0898061219 -0.0303752447 36.1163424753 36.1164669035 22 -0.0826570527 0.0635830120 0.0891363062 0.1371869850 22 -0.0191033014 -0.0580761473 0.0936827493 0.1118670306 22 0.2062754916 -0.4073488518 -0.3469645937 0.5734693495 22 0.0000186702 0.0053112679 0.0063493150 0.0082779054 22 0.0621284386 0.0057110014 -0.1937957184 0.2035911071 22 0.2437469596 0.1152997579 -0.2792828485 0.3882080936 22 0.0340782664 0.0827969448 -0.0852655976 0.1236401409 22 -0.0051543280 0.0716801199 -0.3648869059 0.3718965727 22 -0.0792502316 0.0538145129 -1.0419407960 1.0463351391 22 -0.1297914381 -0.0118994731 -3.7253718675 3.7276511326 22 0.0108946615 0.2613177275 -0.9328346318 0.9788083998 211 -0.2082835872 -0.0080278468 -1.8057683384 1.8231087669 -211 -0.0400225206 -0.0353784130 0.0701484656 0.0881716592 22 -0.3514957024 0.0859383955 0.3205454659 0.4834087632 22 0.0634920507 0.0549100321 0.1152971723 0.1426176359 22 -0.0443661600 0.0903968748 0.3346474959 0.3494694516 22 #SUBSTART 0.3368696623 -0.8585951361 5.2974639928 5.3789656363 -211 0.0071880380 -0.1662948218 4.4521455075 4.4574415353 211 -0.7837243531 -0.0547847951 1.4540340341 1.9011133561 -2112 -0.8434469455 0.1509376090 0.2840034109 1.3019959454 2212 0.1150352615 -0.1322159852 -1.4732989156 1.4902361080 211 0.3590460836 0.1382200943 -65.6758316398 65.6771068201 -211 -0.1341584617 -0.1345165590 -27.1816111712 27.1867563350 321 0.3491750992 0.1292657251 -41.9743250996 41.9788785154 -321 0.2888000874 0.1297856795 -695.7325980811 695.7326841268 -211 0.3971589232 0.2626488563 -4647.0441135600 4647.0442326755 2212 -0.0158668582 -0.7132075801 427.4508606966 427.4524857545 2212 -0.0285185634 -0.0550855004 541.8765024022 541.8765239269 -211 -0.1612581004 -0.7567178223 7.5902834396 7.6308917248 211 0.1725965085 -0.3036194485 2.9467844461 2.9706889237 -211 0.6114937660 -0.7657569789 5.8938823283 5.9747934924 22 0.0490472552 -0.1355833714 0.7431229822 0.7569810106 22 0.0272769160 -0.0635907392 0.8284009662 0.8312857349 22 0.3181204909 -0.0853870585 3.2485827535 3.2652383531 22 -0.0720122819 -0.0951456055 0.7252210456 0.7481068138 -211 0.2613875374 0.0727677553 0.0576595134 0.2773863918 22 -0.1862279387 -0.0149300886 -0.0738870217 0.2009055616 22 -0.4506888046 0.1398419187 -0.3212666698 0.5708663889 22 0.3697503395 0.0744408423 -0.9273335582 1.0107838867 -211 0.4553620696 0.0215921172 -11.5208554229 11.5307159489 211 0.3965691932 0.4389910569 -11.2315696607 11.2480050276 -211 0.3348850359 -0.0538237233 -1.4651726970 1.5103826658 211 0.2594502435 0.2051003690 14.7039945726 14.7083757351 211 0.0789085410 0.0261817010 13.2510396237 13.2520354261 -211 -0.1314316568 0.3216804497 5.1512566145 5.1629640034 22 -0.0556909431 0.0101736394 0.7944451770 0.7964597437 22 0.2609930299 -0.0508045778 15.5262955764 15.5291993540 211 0.2511664606 0.1289706808 12.3455827446 12.3495996338 211 -0.2038200758 0.0459172805 6.5239564974 6.5287930879 -211 -0.1277010414 0.1584643002 5.3328273454 5.3385340470 -211 0.1162856735 -0.2314895133 2.1236001546 2.1438906581 211 -0.1027563410 0.8539899379 -0.7388377190 1.2366809673 -321 -0.1143405220 -0.1234521848 -0.1724221443 0.2409223791 22 -0.2730815767 0.0682566171 -1.0767145851 1.1216178476 211 -0.2571520168 0.4949288797 -3.5187828929 3.5967423821 -321 -0.2702889850 0.1316203716 -5.6566816309 5.6663839366 211 -0.0226088593 -0.0717747448 -0.4294609426 0.4360039859 22 0.1249473634 -0.0572161814 -0.8666077917 0.8774363793 22 -0.3020668904 0.3045573904 -20.9982208504 21.0030654496 -211 -0.1236766178 -0.2308697598 -5.3127823938 5.3210650532 -211 -0.2363705707 -0.0128816051 -16.2972448083 16.2995615005 211 -0.6544995275 0.1060512129 -20.5035333471 20.5147258327 211 0.0667084674 -0.0221893465 -2.3387810368 2.3439963545 -211 -0.0291284966 -0.1001494410 -22.4991847264 22.4998593667 -211 -0.2739666830 0.2637022572 -40.7588655911 40.7608783110 211 0.0569549382 -0.3876834303 -915.8598841531 915.8599786119 211 0.0645914946 0.0566318670 1.2084173821 1.2194800465 211 -0.0505956378 0.0454348898 20.4950376798 20.4956257169 -211 -0.3302139807 -0.5642301659 6.5513452770 6.6023604000 321 0.2342852500 0.0378351526 370.9782714063 370.9786811288 130 -0.3256501397 -0.3777810766 104.9410616270 104.9423397002 -211 0.1862088064 0.5869897934 506.7497253452 506.7509681479 -2212 -0.0633015585 0.0677961633 108.5603530496 108.5604823932 211 0.0250330885 0.2123452581 318.2002311822 318.2003336286 211 0.2516022095 -0.2812881277 3.7111208227 3.7302606401 22 0.0841557676 -0.2194918858 3.0383261666 3.0474062374 22 0.4586002886 -0.4496622154 5.1624691853 5.2022685842 22 0.4460362326 -0.6049332808 5.4038385080 5.4558558646 22 -0.3073715775 0.4735629943 0.9400438060 1.0965498408 22 0.0107405403 0.0213418365 0.0178791893 0.0298412232 22 0.0128147488 -0.0760367607 -0.0422139547 0.0879080470 22 0.0073705163 -0.2805906689 0.1017263936 0.2985526874 22 -0.0434895846 0.0055241575 -0.3964992607 0.3989154347 22 0.0794790577 -0.0595538914 -1.7345688863 1.7374097985 22 -0.2206242383 0.0701211784 -3.5165807175 3.5241923865 22 -0.1194413632 -0.0447177213 -1.2556238868 1.2620844896 22 0.1445738335 0.3153621856 24.2517330657 24.2542143057 22 0.3388193355 0.4973289155 53.6077454923 53.6111230190 22 0.3657810027 -0.1249384141 29.3215007663 29.3240483654 22 0.2783765255 -0.2307472765 27.2324525792 27.2348528777 22 -0.1166030866 0.1360596774 6.4150085245 6.4175106455 22 0.0141450807 0.1465078520 6.9530601358 6.9546178821 22 0.0925247223 -0.0654439136 4.1712817263 4.1728209847 22 0.5610713342 -0.0441785868 19.4293479567 19.4374976479 22 -0.0323884936 0.0696982267 0.7036091310 0.7077942261 22 -0.2005381296 0.2911601389 1.4649470582 1.5070035339 22 -0.2087065516 -0.2842740918 0.1112361987 0.3697886908 22 -0.0858159407 -0.0635366405 -0.0333783763 0.1118722323 22 -0.0586366139 0.0567762287 -0.3265184396 0.3365651260 22 0.0663339209 0.0036212500 -0.2559802497 0.2644601874 22 -0.2741617903 -0.2955972052 -2.0328142897 2.0771028180 211 0.3064948434 -0.0170570671 -0.8567511600 0.9207238281 -211 -0.1665786910 0.1003460362 -1.2168799598 1.2323208283 22 -0.0131392992 0.0829759230 -0.9857929779 0.9893661811 22 -0.0369434723 0.0120319362 -0.2648274145 0.2676623752 22 -0.2777115899 0.0303040330 -6.3841561964 6.3902654406 22 -0.1094355849 0.1410765685 -160.8258179266 160.8259170361 22 -0.0268905946 0.1333970439 -251.8301714473 251.8302082139 22 -0.1205128311 0.1415721200 1.0354311161 1.0519903059 22 0.0036628701 0.0245551706 0.7056755871 0.7061121775 22 -0.2033320150 0.2330877167 50.2916913074 50.2926424873 22 -0.0779639114 0.0109291401 21.1889049047 21.1890511557 22 -0.6028054782 1.2491670411 3531.4120765533 3531.4124735819 2212 -0.0943278989 0.1246921184 684.5156093973 684.5156414825 -211 -0.0927133414 0.2683709817 -0.0546293953 0.3210652631 211 0.0146599071 -0.1444725920 -0.0093230968 0.2016282414 -211 0.0621703933 -0.3348517048 -3.3920374845 3.4119479631 -211 -0.0603322492 -0.0835410515 -0.4086711130 0.4439717909 211 #SUBSTART 0.1142359251 0.1395056979 -863.2310185946 863.2310487091 -211 0.1809638934 -0.0410759759 -11.9591078168 11.9613617421 -211 0.1219265731 0.6556577830 -99.3663459927 99.3698098525 321 0.1161527327 -0.5576895742 -45.5408598817 45.5446364314 -211 -0.0586364764 0.9738226971 -13.8493026258 13.8843232419 211 0.3515100403 -0.4986848366 -1.2476044449 1.6767690689 2112 -0.0280487788 0.4093488187 -2.2032091519 2.4300772707 -2112 -0.0524468210 -0.0301435731 -10.4457658535 10.4468733770 211 -0.2902732449 -0.1406139607 -25.1453456868 25.1478015010 -211 -0.0089829773 0.0616980077 -20.6587585145 20.6593240568 211 -0.0040036542 -0.1395282607 -24.9575212318 24.9583018249 211 0.2561798501 0.1347489182 -187.6397072581 187.6399824267 -211 -0.1115570928 0.3216290743 -99.0573844678 99.0580677564 211 -0.3853323754 0.1570011374 -1802.1660828067 1802.1663750885 2212 -0.2764913891 -0.0757292056 -425.1719892016 425.1720858477 22 -0.5973907910 0.0355527360 -870.8620503270 870.8622559507 22 -0.1272779881 0.1579406326 -1.0891686336 1.1078958624 22 0.5789493810 0.5646674759 1.0778622642 1.4350817972 321 0.2366456242 0.1993203754 -0.0197493917 0.3399993925 -211 0.3055918854 0.4552260819 -120.9372832983 120.9386066917 -211 0.8133604609 -0.4805414234 -505.0913187551 505.0922022335 22 0.1987634300 -0.0491248523 -120.9240022096 120.9241755421 22 0.0452047972 -0.0714083492 -18.6709677837 18.6716807061 -211 0.3023335787 0.0609986356 -130.4514681870 130.4519074539 211 0.0245576211 -0.3495744206 -74.0434844561 74.0444452713 -211 0.3644104625 0.0939749666 -63.0437911533 63.0450688718 211 0.0068484888 -0.0184313386 -2.0434485571 2.0435431538 22 -0.0306685832 0.2120972943 -12.2438436618 12.2457189842 22 -0.1896389425 -0.0099187482 -7.1649194668 7.1687943240 211 0.1940908796 -0.4507259305 -66.5065046155 66.5101467617 321 0.2298698490 -0.1984866669 -64.9984321679 65.0010158563 -321 -0.1721037172 -0.0787967309 -17.1270757280 17.1353502163 130 0.1851716737 -0.4702834291 0.1616715706 0.5306531345 22 -0.0158180745 -0.0863869914 -0.0012300026 0.0878318659 22 0.3694440933 0.1903591955 1.0296125596 1.4545168852 2112 -0.1705376000 0.0051991829 0.2251294963 0.3150764661 -211 0.1286597214 0.0420071835 0.4216799539 0.4643400648 -211 -0.0460248003 0.1953606161 0.6833309355 0.7257444487 211 -0.0859561700 -0.5037912998 15.1698777102 15.2075368047 -2112 0.0267715340 -0.2981155329 3.6369422342 3.6519061031 211 0.2704828342 0.0706207318 286.5799478126 286.5801181455 -211 -0.4624789094 -0.1649113411 738.6069030537 738.6070794413 211 -0.0810448123 0.0557126475 88.9529579135 88.9531217749 211 -0.0863283411 0.0089982639 135.2860154397 135.2861152776 -211 0.2070904296 0.0632835837 25.0414322531 25.0427574426 211 0.0703308888 0.2389059629 128.8906143122 128.8909304802 -211 0.4197841408 -0.4250977924 4636.8804043455 4636.8805380257 2112 -0.0976754262 -0.0105189741 861.4167794643 861.4167963731 211 -0.1296238691 -0.1329452770 -16.6359002626 16.6375218745 211 -0.5428933539 -0.0069675306 -26.8372337298 26.8430880450 -211 -0.0549936734 -0.1817888845 -10.2575400376 10.2592981790 22 -0.1223048170 -0.1944567696 -22.1683011281 22.1694913521 22 -0.4138789658 -0.2115610157 -353.8366742447 353.8369795463 22 -0.1014295211 -0.0571938676 -50.0807971638 50.0809325358 22 -0.0305127005 -0.0230096877 -221.9231472619 221.9231505524 22 -0.0935593588 -0.1379443595 -213.5458402405 213.5459052898 22 -0.6795641000 0.3484790011 -2.4963485187 2.6568104688 -321 -0.2379642387 -0.1416653423 -1.0116535131 1.0581203446 211 -0.2225451784 0.1543063208 -2.0574496297 2.0798835449 -211 0.0943272134 -0.0568004560 -43.5188166898 43.5189559847 22 0.0202613632 -0.2033426741 -87.4076892446 87.4079281178 22 -0.0438349627 -0.0563075545 -16.5042054662 16.5043597306 22 0.0923187853 -0.0490468070 -33.0166476260 33.0168131231 22 0.1531377463 0.0451546583 -43.7041742726 43.7044658927 22 0.0811923806 -0.0619775690 -16.2925242500 16.2928444373 22 -0.1185671027 0.2412588052 0.9484848069 0.9956742352 -211 0.0403176966 0.1993698867 0.4471343731 0.5106689739 211 0.0536710944 0.0440173569 27.6960519465 27.6961389283 22 0.0037594382 -0.0351291768 2.2842547733 2.2845279735 22 0.0101439173 0.0375286158 23.6783449384 23.6783768514 22 -0.0209869705 -0.0872613979 19.0146709348 19.0148827439 22 -0.2865764223 -0.0388501286 -1.5232481337 1.6271328203 321 -0.3448869901 0.3943542737 -1.5668286245 1.6579789060 -211 0.0184596164 -0.0184123601 0.0344754152 0.0432241448 22 -0.1425826694 0.1023451124 0.2583163621 0.3123006285 22 0.1404652305 -0.4229920234 -97.8476270016 97.8499077056 130 -0.0154639620 0.0078644367 -0.5473004726 0.5475753745 22 0.1535005511 0.1889159221 -27.7842054333 27.7852716957 22 #SUBSTART 0.1712998803 -0.9617839056 5872.9775984778 5872.9777548860 2112 0.3703263090 -0.0100644096 -581.8946810796 581.8950083585 321 -0.0058688706 -0.0258741569 -298.7288254280 298.7292344021 -321 -0.1384036437 0.1554803187 -3.1521030006 3.1620504122 211 0.4032379019 0.3198375923 0.5768037736 1.2157097010 -2212 0.2335375227 0.1944140466 1.8993311373 1.9285422344 211 -0.2913094173 -0.2500267312 1.2210301208 1.3718345596 321 -0.3878217185 -0.0908334331 8.3524023614 8.3630593319 211 0.0021695394 0.2645686874 0.2337821624 0.3796513949 -211 0.4919864161 0.5230543356 -22.3577473176 22.3747210608 -321 0.1704951162 0.1604341000 325.0545426609 325.0546269663 22 0.0463857287 0.2002025734 232.1680313707 232.1681223236 22 0.1214647007 -0.0175407473 18.4064660947 18.4068752222 22 0.0858228934 0.0677696180 7.1336860875 7.1345241947 22 0.1303843861 -0.4141941836 227.9831831082 227.9836393622 211 0.0544944948 0.0117811388 -485.3393501514 485.3393734220 -211 -0.3219505401 -0.0681190106 -84.6680979210 84.6701762067 321 0.1963069692 0.1358441291 -48.5901897810 48.5909766602 -211 0.0502917293 -0.0412903628 -4.0242354390 4.0247614862 22 0.0558596663 -0.3604684451 -13.6394937331 13.6443705277 22 -0.2754435981 -0.0125336628 -4.5371897301 4.5477023539 -211 -0.2032493357 -0.1242593042 -3.6357692499 3.6462375801 211 -0.2119613998 -0.8064236598 -1.7238856800 1.9200282229 -211 0.0434979310 -0.2512007278 3.2155009442 3.3596475980 2112 -0.1998129792 0.6985751753 7.2617784072 7.2993724335 -211 0.0175258021 -0.5336439380 0.4368029027 0.7038178507 211 0.4346156576 -0.0089172350 0.6415830364 0.7874508648 -211 -0.2043552785 -0.4410627561 -2.5830162932 2.6320620036 211 -0.4774411191 0.1281491262 -5.7745383656 5.7973395054 -211 -0.5340445637 -0.1708982658 -14.2473061728 14.2590189978 211 -0.1282980424 -0.0743214376 -54.6832390622 54.6856677691 321 -0.3062084368 0.2461869450 -21.7710592267 21.7750515787 -211 0.0706536496 -0.3090732309 -70.9228424795 70.9236884501 211 -0.2244415641 0.2575344038 200.8745327919 200.8748232665 22 -0.1026759507 0.0187800403 80.6185405075 80.6186080791 22 -0.4285031390 0.5972928235 -4708.3645877353 4708.3647388669 2112 -0.1759376346 0.1413043999 -483.3241257098 483.3241985396 211 0.0789670365 0.0082460997 -0.9100976166 0.9135543021 22 0.3582915752 0.3603820491 -5.6150457275 5.6379949092 22 0.0698018127 -0.0001417290 -16.4548482123 16.4549962627 22 0.0680879864 0.1131360723 -11.8652401105 11.8659748282 22 -0.2603650236 0.0258529660 -0.5831379763 0.6391464783 22 -0.0414794208 0.0076059356 -0.3281936572 0.3308919298 22 0.0129886495 -0.0711266105 0.1661718112 0.1812202267 22 -0.0304683231 -0.0614454560 0.8356548002 0.8384645537 22 0.2316000106 0.2022796773 5.5886836808 5.5971368499 22 0.1020875460 0.0212127976 3.2878169072 3.2894698456 22 0.0544874929 0.0252758792 -0.5378409122 0.5411844452 22 0.1076719204 0.0850594189 -0.3011708352 0.3309565216 22 0.0140419451 0.0351790872 -3.9194811339 3.9196641570 22 -0.0916945482 0.0325965599 -2.1639198559 2.1661070076 22 0.1880914741 -0.0575242310 -9.8290002274 9.8309680556 22 0.2299009765 0.0741172495 -10.3296456154 10.3324695193 22 -0.0223078368 -0.0217840862 -1.9896847281 1.9899290196 22 0.0177272528 -0.1620453734 -2.2582318342 2.2641077659 22 -0.0380102191 0.1448128070 -7.4033526616 7.4061816034 211 -0.0424178092 0.3010973270 -2.9240487049 2.9431275006 -211 -0.0263220820 0.0219289133 -2.0927995188 2.0977281378 -211 0.4866905214 -0.2333952036 -5.4659002603 5.4942594065 211 #SUBSTART 0.2395897192 0.1991548139 -0.5679145490 0.6626255302 -211 -0.2236300562 0.1478589102 0.8971726733 0.9467160345 211 -0.4533439393 -0.0910755421 2.9805319349 3.0194148244 -211 0.0730960295 0.6210094869 2.4161314648 2.4996333436 211 1.0121538963 -1.6601913854 -38.8783337789 38.9300548334 321 0.5178983230 -0.3667867409 -51.8884363082 51.8925047910 211 -0.0970354329 0.8542814517 -2008.3932909660 2008.3936947724 -2112 -0.2915201199 0.4231604837 -1875.0692237451 1875.0695289070 2212 -0.5615516066 0.1312889257 1.1950126362 1.3342083700 -211 0.0287281723 -0.7218881156 0.9809924201 1.3145093562 321 0.1567535887 0.1661160655 1552.8422089428 1552.8425092041 2212 -0.1472018360 -1.0749564663 -11.0909134036 11.1438574969 22 -0.2411547779 -0.4230979443 -0.6813084390 0.8490161784 -211 0.1504584756 0.0016996665 -1.4673034120 1.4815868957 211 0.2362400565 -0.2100581549 -0.3301357686 0.4570814134 22 0.1645820855 0.3357464344 -0.3873620892 0.5383886321 22 0.3347580312 -0.1333790868 0.9493070595 1.0153998294 22 0.4185048624 0.2106625736 0.7727328980 0.9036820079 22 0.2309405816 0.1302003717 0.6666556530 0.7174367210 22 0.7360965856 -0.6170482763 -17.5889781215 17.6222136392 130 0.5242763077 -0.2288758909 -40.7226669141 40.7296758074 -321 0.5322039656 0.1124019956 -69.2497283287 69.2520052320 -211 0.0287688161 0.0648752252 -64.0610175710 64.0612089213 211 -0.3147910832 0.2265254264 -94.8651785952 94.8706240566 2112 0.1213179185 -0.0818917354 -22.6816271241 22.6825288069 -211 -0.3054907702 -0.1096050697 -95.9789992605 95.9841467572 -2112 -0.2282677324 0.0500291563 -44.0765686061 44.0771880814 22 -0.1728193972 0.0211778568 -62.9705183044 62.9707590122 22 0.2268638561 0.1570022600 -38.0787062473 38.0799614781 211 -1.0885970820 -0.0245373954 -423.0510464647 423.0534911242 2112 -0.0444880507 0.0774402685 -58.7433398932 58.7435735870 -211 -0.0436204987 0.0127751314 -1143.4898578192 1143.4898587225 22 0.0361039059 0.0556175311 -315.8034917098 315.8034986711 22 0.2141165831 1.4686056251 -44.7274653140 44.7619163173 2212 -0.2269130880 0.4192479228 -11.0789316885 11.0900615649 211 -0.2946748037 0.5235747052 -17.3037769725 17.3396081795 -2212 -0.4134418681 0.4195046411 -7.7158130485 7.7395199532 -211 -0.1061431458 0.0396157216 -0.1128578053 0.2122556051 211 -0.2456818371 -0.4685782239 -0.2891844744 0.7792263709 -321 -0.1931776158 0.1217742137 0.1974388814 0.3325784827 211 -0.6526582580 0.3998921099 0.7279485681 1.1659445008 -321 0.1256467557 0.1904863422 0.3199974752 0.4170735221 211 0.1533089184 -0.2707288731 2.3463365749 2.3709856294 -211 0.0697924937 -0.4578302833 7.5443114794 7.5598012569 211 -0.0831936777 0.0372450762 7.0317715127 7.0337471362 211 0.0332716345 -0.0059616338 1.4178588034 1.4251125969 -211 0.0674383800 0.1889772066 118.0740363045 118.0752385156 -321 -0.0185400353 -0.4242288475 1917.8848926234 1917.8849447104 211 0.0061957966 0.1999157645 3056.8246022937 3056.8246120235 -211 0.1718753762 -0.0005539583 -0.9822199936 0.9971447075 22 0.0297429214 -0.0711120528 -0.2960041355 0.3058758142 22 -0.4022390650 -0.2735768853 2.0488954853 2.1058521523 22 0.0010179752 0.0110657588 0.0338059458 0.0355855204 22 -0.0099501111 -0.0981509650 -8.9172302126 8.9177759156 22 -0.1554815916 -0.0586193940 -14.3397935936 14.3407562933 22 0.2951877903 -0.0595400931 -47.5178537540 47.5188079211 22 0.0235175866 -0.0584578161 -7.8066262869 7.8068805791 22 0.0432559800 0.0612423078 -7.0325632348 7.0329629142 22 -0.0479313569 0.2583068178 -43.0940881683 43.0948889647 22 0.0940468723 -0.1323425706 -120.7492079334 120.7493170826 22 -0.0420715480 -0.0279985079 -55.8780890954 55.8781119482 22 -0.0803691605 0.1558947185 -1.3300687408 1.3415831024 22 -0.0275511156 0.1079018581 -2.1006798535 2.1036296542 22 0.0381267560 0.2365297619 -0.6843624375 0.7383980692 211 0.0311054953 -0.1397428600 -0.1966859527 0.2804652699 -211 -0.0004164969 0.0468481971 1.8409207098 1.8415167626 22 0.1017829489 0.0108371180 1.0775190128 1.0823698235 22 -0.0302781454 0.0555626607 0.4255250686 0.4302040903 22 -0.3726013697 0.1024978319 3.7486467296 3.7685129547 22 -0.2573266498 -0.0530840905 169.5732796656 169.5734832203 22 -0.0331200668 0.0453799476 28.2487039230 28.2487597888 22 0.0523971263 -0.0587811506 -2.1965418250 2.1979528365 22 0.3588854986 -0.3503559929 -7.1998265252 7.2172744243 22 0.0634513656 0.0845581190 -3.9583942860 3.9598057370 22 0.0701737001 -0.0478905156 -2.2585952493 2.2601925470 22 0.1181537243 -0.1520519355 -12.8741318648 12.8755718850 22 -0.0105603614 -0.0928776842 -12.0156665483 12.0160301425 22 -0.0136742480 -0.0751344533 -9.8861522597 9.8864472220 22 -0.0401852201 -0.2072977074 -75.6778229083 75.6781174933 22 0.0226355505 0.0297080190 36.7108885385 36.7109075374 22 -0.1244410371 0.1022571320 57.8457357312 57.8459599659 22 0.0998652350 0.0682079391 10.7435241714 10.7442048105 22 0.0418066148 -0.0563732524 9.9691964006 9.9694434454 22 #SUBSTART -1.2010349565 0.9921074126 8.8355375849 8.9853841019 -321 -1.3617602224 -0.0896505823 5.1104238492 5.3720769393 2212 -0.4949684252 -1.0686730991 6.0510139528 6.1661418712 -211 0.1518616218 -0.1700662193 1.3080786496 1.3351157289 -211 0.5433246137 0.9473338574 12.0162384178 12.0665698760 211 0.2941683699 -0.2681603581 99.5543913899 99.5552849919 211 1.2044315288 -0.1610539203 49.5492622545 49.5643567842 -211 -0.2697837960 0.0006700391 1.0277857343 1.4184213218 2112 0.3424865471 0.1728428856 0.3055584580 1.0598723764 -2112 -0.1838267422 0.1329806693 -0.3970202134 0.4781014163 -211 0.5060672431 -0.0321591279 -1.0444458155 1.1693951900 -211 -0.6565712363 -0.6123601978 -20.7392956408 20.7799135000 2212 0.5295542379 -0.2250071661 -35.2493559799 35.2575069152 -321 0.1140872007 -0.4061326714 -24.4271616496 24.4312027063 -211 0.5793516503 -0.1786532287 -1911.6242361584 1911.6245625604 2212 -0.5705294503 -0.0929802913 -92.6514482675 92.6580021685 2212 -0.1249769719 0.1112276506 -9.9775245621 9.9799031562 -211 0.1267639857 0.6464357863 -131.5139942798 131.5189909874 -2212 -0.1015367278 0.3630853446 -71.7653513869 71.7664774121 211 0.3277860344 0.1102387126 -28.2690304232 28.2755256848 130 0.2047266662 -0.3857476378 -9.3170959762 9.3403764720 -321 -0.1256474972 -0.2130438780 -3.9776460827 3.9853285118 22 -0.0605277030 -0.3312467631 -3.9738260842 3.9880674228 22 0.0578716286 -0.3491740246 -10.2330530717 10.2391721732 22 -0.0057013642 -0.5058489878 -11.2106359682 11.2220441327 22 0.4900468767 -0.8026577908 -9.0670360906 9.1167444147 211 -0.4673916845 -0.9511330615 -18.4795910286 18.5099539079 22 -0.1310654482 -0.1149135239 -1.0168734756 1.0411026462 -211 0.9295038293 -0.4354381912 -4.3082149000 4.4310020534 211 0.3925215679 -0.0310181130 -4.3771434720 4.3970330979 -211 0.5584611626 -0.3282255871 -3.9894308360 4.0440881650 211 0.0356332630 0.0765158741 -2.0204858185 2.0270587401 -211 0.1852577648 0.1624287279 0.2697331819 0.3910745522 211 0.1334004357 -0.4481835260 1.7887211355 1.8540947211 -211 0.9754209031 -0.3649901197 6.6321915304 6.7149168280 211 -1.1494308024 1.4262573721 2.8034954216 3.3850596450 321 -0.7857036752 1.2091028349 2.1126117136 2.6050007952 -321 0.0333366267 0.0507063875 0.3379221323 0.3433275927 22 0.1933418499 0.1695685890 0.4976922898 0.5602072765 22 -1.9158396150 1.0820551625 10.4310583219 10.7018041989 -2212 -0.3757686714 0.2113238082 2.5788073730 2.6183176084 211 0.0010329688 -0.1363173281 0.7444824070 0.7568603142 22 0.0842271744 -0.2253915466 2.5261119628 2.5375455099 22 -0.0481432479 0.2099530614 0.3379894337 0.4007928612 22 0.0506073977 0.1813691556 0.4893728831 0.5243488324 22 -0.0599660095 0.3112982465 7.0647983279 7.0732847900 211 0.0028175668 0.4976566672 2.9521526080 2.9938061257 22 0.0274567968 0.0135910478 0.2467850347 0.2486794033 22 1.5569738335 0.3274826716 9.6760424782 9.8069715124 -211 0.7575360624 0.2258521996 11.5933737080 11.6581102511 2212 0.2555986792 -0.1153010063 1.5518395205 1.5831331875 211 0.1318507738 -0.2435745659 6.6582731100 6.6654927640 211 -0.1080138196 0.3291826375 13.4165210403 13.4217191449 -211 0.4646358005 0.3591410291 40.4884008194 40.5035284909 -2212 0.4271251242 0.0447644972 19.5432399538 19.5484563945 -211 -0.6904290081 -0.3120585253 102.7901921876 102.7930793511 211 -0.2337826626 -0.1788571429 23.1997434095 23.2020304772 -211 0.3943063431 -0.1735105912 71.7186396920 71.7200693145 -211 -0.0040369716 0.1877085881 42.4668656473 42.4672806842 22 -0.1624550233 0.2837469813 58.7227521862 58.7236624225 22 -0.3428635045 0.5298714194 2574.2824267008 2574.2826750554 2212 -0.2797533128 -0.0960878981 1029.4964719341 1029.4965238889 211 0.2184529990 0.2133218523 515.7007745620 515.7008838383 -211 0.3236973198 -0.3523977579 180.0965158611 180.0971515307 22 -0.0172488528 0.1425708352 23.4779609914 23.4784002069 22 -0.2399797914 0.3810128528 52.4756401934 52.4777577130 211 0.0355128878 0.1112677934 0.1466960655 0.2337545884 211 -0.0087539613 -0.0947360320 1.4795180769 1.4891289644 -211 -0.0463564818 0.1056412711 1.9953552271 2.0035546583 211 -0.2696587087 -0.2487349200 3.2528352445 3.3110719467 130 0.0027307893 -0.0190267311 0.1903800706 0.1913479683 22 -0.0869633747 -0.1098722501 0.1453009891 0.2018586568 22 -0.0828839688 -0.3324766028 0.0547421202 0.3740146097 211 0.0047257428 0.0244240834 -0.0734600460 0.1596716373 -211 0.1745810143 -0.2408045061 -0.0011543959 0.3285520632 211 0.0249775197 0.0760665884 -0.0003677479 0.0800633349 22 0.3655474726 0.2396845892 -0.1303504423 0.4561413102 22 -0.1865047970 -0.1857845862 -1.1555124293 1.1851197940 22 -0.2982907896 -0.3566642352 -2.9829723525 3.0189916906 22 -0.1119841989 0.2126377718 -2.5797214252 2.5946478950 211 0.1995205180 -0.4397893890 -35.8270369580 35.8425745577 -2212 0.1681312148 0.0125468070 -8.3855336176 8.3883895573 -211 -0.3314704217 -0.1266565014 -16.3052139657 16.3096718778 211 -0.0782369488 0.2617193249 -20.7622337993 20.7644997567 -211 0.4196426353 -0.0693026491 -9.4463103509 9.4569107973 211 0.3604265585 0.0764434380 -41.4980573480 41.4999276426 -211 -0.1757596082 -0.0300109339 -9.2174333537 9.2202141792 211 -0.1222098387 -0.1099781465 -25.8532285375 25.8541280269 -211 0.4602077991 -0.0915845979 -57.8071867254 57.8090911195 22 -0.1513163739 -0.1168866350 -20.0056157170 20.0065294178 22 0.5603472762 0.6279447781 -11.7668079054 11.7976926465 211 -0.1968057258 -0.1154096495 -3.3202835954 3.3645172009 321 -0.8126710972 0.3640725350 -10.7737676616 10.8217694352 -321 0.0593492912 -0.0636666468 -0.6273516107 0.6485565578 211 0.0312194806 0.0506192394 -7.0820256419 7.0836504672 211 -0.1717105158 0.2724170955 -10.0619494873 10.0680684764 -211 0.2089637945 -0.4424467108 -14.1073333257 14.1165065900 211 -0.0857289781 -0.1543775363 -1.6614493731 1.6766262809 -211 -0.5340775741 -1.1503780357 -2708.2365069273 2708.2368075082 211 0.0778180101 0.3567950453 -24.6970728376 24.6997725716 22 -0.0420725839 0.1157427221 -11.3404771975 11.3411458657 22 0.2145656209 -0.1345342227 -15.8289631420 15.8316042080 211 0.3327392720 0.2973537082 -27.9969337086 28.0008376932 -211 -0.0423942819 0.0229363812 -0.9658394215 0.9670414370 22 -0.1307924401 -0.1399762635 -7.5711992742 7.5736225458 22 0.2365778600 -0.1906339289 -5.0775867298 5.0866685932 22 -0.0024783092 -0.0203955763 -0.0915736511 0.0938501738 22 0.0992737324 0.0228227990 -3.6964486128 3.6978518766 22 0.2359637275 -0.1049940725 -5.4963954003 5.5024599074 22 0.1401829531 -0.1041835990 -4.3492671744 4.3527727297 22 0.3955647344 -0.0733585951 -7.9237833569 7.9339898934 22 0.4057786485 -0.4415090720 -7.5657272672 7.5894542395 22 0.2055409717 -0.0224028190 -9.5303547437 9.5325972599 22 0.2144532881 -0.2677167489 -10.0939564029 10.0997830835 22 0.0041321376 0.0159568901 -0.4144701816 0.4147978162 22 0.1091658174 -0.2228416830 -2.7313641236 2.7461619311 -211 0.0354976324 -0.0274693863 -0.2464334705 0.2867470826 211 0.3687044853 0.0122020759 -3.7241390978 3.7753118198 130 -0.0901760971 0.0563930464 -1.5579063324 1.5615325948 22 0.0174864735 0.0456071341 -2.5881191832 2.5885800536 22 -0.1671036396 -0.1347803194 -0.8988331256 0.9241159822 22 -0.1167670205 0.0048269596 -0.7934433238 0.8020038308 22 -0.0235145964 0.0006144249 -0.0502126029 0.0554492493 22 0.1819547490 -0.0426250174 -0.6304744324 0.6575883459 22 -0.3909384931 0.3018517924 0.7551840469 0.9023582186 22 -0.3552354150 0.1720597599 0.7827555674 0.8766430512 22 0.1871089619 0.0422899332 0.2433766650 0.3098877267 22 0.3827376575 0.0730406156 0.8736282008 0.9565820818 22 0.0221342907 -0.0065738329 0.2825903940 0.2835321373 22 0.1564142682 0.1247713715 0.4824396859 0.5222847585 22 0.1287782316 -0.4091758195 1.0783702294 1.1689186545 211 -0.2564950889 -0.2606464573 1.0716497203 1.1408940417 -211 -0.3303714257 0.1578131319 1.2231038918 1.2843337489 211 -0.3188065615 -0.2557073514 1.4006901596 1.4657546116 -211 -0.0993591260 0.0878224545 0.4374702548 0.4571271631 22 -0.1191889717 -0.0219443703 0.2086117263 0.2412600645 22 0.5897345042 0.4764231959 11.4280164242 11.4539864250 211 0.0154754214 0.2925404084 4.1510574005 4.1637214972 -211 0.0510775367 -0.0792630352 0.5786774455 0.5863097556 22 0.2069192770 -0.0353768710 0.7602484194 0.7886981485 22 0.0375079488 0.0062012113 0.7270549499 0.7280482136 22 0.0403891561 0.2183853105 1.7454750670 1.7595472820 22 -0.0017156693 -0.0771051138 2.7916951596 2.7927602844 22 0.0019415480 0.0537321537 3.6102322741 3.6106326297 22 -0.1315317872 0.1540692671 61.9348233195 61.9351546181 22 -0.0396506130 0.0863630944 11.7868851423 11.7872682210 22 0.0381045633 -0.0155674825 851.1801058912 851.1801068865 22 -0.0584646471 -0.1214210971 992.9650508434 992.9650599884 22 -0.4081856611 -0.2803671376 16.9624846419 16.9697114440 22 -0.0071913933 -0.0292697037 2.3480573761 2.3482508114 22 -0.3388404753 0.0973857188 1.1728435477 1.2246872390 22 -0.2392447896 -0.0011636743 1.1608490195 1.1852467547 22 0.3370754456 0.0822810955 0.4009002522 0.5482616454 -211 -0.0072558945 -0.1832191045 0.2906155473 0.3708895651 211 0.0254192043 0.0056867633 -0.0200978737 0.0328998443 22 -0.1378228806 -0.0886827115 -0.2866338379 0.3301798401 22 -0.0856377826 0.2234123020 -0.1045655413 0.2611146088 22 -0.1826535985 0.3828635624 -0.0046237826 0.4242266185 22 -0.4807666737 0.0661396036 -22.3023464872 22.3076258234 22 -0.2818802603 -0.0639399836 -13.8660895117 13.8691017427 22 0.0593584924 -0.0789288965 -4.4231695178 4.4242718932 22 0.0206098308 -0.1816942817 -3.5630377489 3.5677269482 22 -0.1395731062 0.0454062959 -2.1680026509 2.1729652271 22 0.0077059366 -0.0318798451 -1.1163601720 1.1168418597 22 0.0062342639 -0.0671230588 -3.8336503309 3.8342429801 22 -0.0010916888 -0.1218614146 -1.7505109199 1.7547478101 22 -0.1080006790 0.0539982154 -2.5208082630 2.5236985266 22 0.0373784716 -0.0025757983 -0.5122818697 0.5136501717 22 0.0739213199 0.0389779632 -1.8015849388 1.8035220916 22 -0.0219043592 -0.0578478979 -1.5656771298 1.5668985465 22 -0.0033687342 0.0048969148 -3.1137644236 3.1137700965 22 0.2059305438 -0.2973680163 -1196.8667861741 1196.8668408315 22 -0.0441821522 0.1898415703 -20.8384786328 20.8398575667 -211 -0.7184195084 0.3218615607 -54.6789286147 54.6847733440 211 0.1445133351 0.0484924737 2.0823785218 2.0926097861 -211 -0.2526794375 -0.0008910687 4.8830734508 4.8915982872 211 -0.0174280028 -0.1865522740 1.1262829033 1.1417612116 22 -0.0350955288 -0.0085514843 0.0680876546 0.0770762786 22 -0.0432842936 -0.1064261018 0.5611346332 0.5727758041 22 -0.0289697533 0.0398828472 0.3606742537 0.3640272042 22 -0.1772394532 0.0221538909 1.1681873356 1.1817640499 22 0.0015227240 0.0522741619 0.4980967758 0.5008346082 22 0.0930627689 -0.0793289613 -9.0955861433 9.0974788177 211 -0.0374291445 0.3579343007 -22.0738965966 22.0772713135 -211 -0.2256045876 -0.1839929299 -14.6518713660 14.6554278388 211 0.1781742035 -0.1970929504 -10.4049821585 10.4093095439 -211 -0.0583074884 0.1439923667 -2.6377037388 2.6422745085 22 -0.3524958138 0.3356232977 -10.6166192051 10.6277702103 22 0.0049004496 0.0593993681 -4.6344500464 4.6348332799 22 0.0605915531 0.0475524226 -1.1653448875 1.1678875271 22 #SUBSTART -0.0509370766 -0.2648594918 0.1699801341 0.3480203544 211 -0.1297912769 -0.2759003549 -1.0849520663 1.1355912787 -211 0.0652306638 -0.7129018550 -351.1482288035 351.1493054483 321 -0.3015960543 -0.1458585900 -1775.2132355578 1775.2135151258 2212 0.3321354402 -0.7784940409 16.1079804654 16.1308053544 -211 0.1205175870 0.0887992391 4.0433635045 4.0761304179 321 0.3359346105 -1.1972094597 7.3224773818 7.4436871589 -321 0.0829080855 0.4454470746 138.0455563491 138.0463704860 -211 0.0635918667 -0.8102026461 -2.2904744126 2.6056740151 -2112 0.1106217095 0.1320705694 -2.9621959263 3.1124068322 2112 -0.0018439633 -0.4718247923 -51.6415441608 51.6438881682 211 0.4661622821 0.1962812673 -362.7733571706 362.7737366268 -211 0.0736242344 0.1199625671 -474.0252419612 474.0252834056 211 -0.5279208510 1.9793568219 7.4654355211 7.7982096123 2112 -0.1840205457 0.2223927891 1.3148372398 1.3461497246 22 -0.2418259771 0.1126108279 0.9820526324 1.0176386267 22 -0.3432639653 0.5376209196 3.5008498477 3.6801041632 -2212 -0.0433748195 0.0869181779 0.8479556590 0.8648379785 211 -0.2474910350 0.1869619687 -0.3144138998 0.4631873006 211 -0.0085349151 0.1408985219 0.6999751635 0.7275783481 -211 0.1520002065 0.0764702116 -0.4289382098 0.4614539455 22 0.1733493091 -0.2259847111 -0.3828318433 0.4971509607 -211 -0.0959267602 0.4924933501 -1.2143896645 1.3213529753 211 0.3784688678 -0.1932081869 -1.5291462660 1.6632894574 130 -0.0696769887 -0.8419189150 -2.5504064527 2.6903039235 -211 0.0831668918 -0.1394569942 -13.9935549151 13.9944969237 22 0.0778797648 -0.0356675830 -18.9506642514 18.9508578435 22 0.1820720753 0.1522757896 -3.9290654376 3.9387019631 211 -0.0417205372 0.3011839377 -1.9958548491 2.0237017396 -211 -0.7373897127 -0.0373208856 -12.5400780707 12.5968839893 2112 -0.2383350455 -0.0646169635 -1.1634954204 1.2877660886 -321 0.1792952869 0.5302966663 -1.7512820170 1.8438627503 211 -0.2256142409 1.6520027617 -6.4971132055 6.7731297566 -2112 0.0732970521 0.1662615766 -0.3991221321 0.4602104203 211 -0.1865785951 0.4311667249 -19.1970624959 19.2033175408 211 -0.0219924106 0.0849892238 -6.1218168250 6.1240368923 -211 -0.1455436262 0.2365233100 -28.0888736498 28.1059121847 2212 -0.2220745715 0.1081062879 -64.6559168731 64.6632150652 -2112 0.0924430469 0.2051632237 -16.4912413395 16.4933671022 -211 0.4955426067 0.3732759117 -3000.3753268557 3000.3754315990 -321 0.1126513862 -0.0245483377 0.1443817409 0.1847675372 22 0.0059966329 -0.0762029902 0.2326345492 0.2448707593 22 0.1893094751 -1.1165191621 9.4007603791 9.4697533551 211 0.1187314507 -0.0326053653 1.1538247897 1.1687393625 211 0.1403724833 -0.9133144463 13.4439292099 13.4763704349 -211 -0.1709321112 0.1187843393 81.7042925194 81.7045576673 22 -0.1133306823 0.0656762364 113.5628793115 113.5629548520 22 0.3720137596 0.0974798835 217.7876631441 217.7880474088 211 -0.0348477710 -0.4069452150 126.6413037917 126.6420393259 -211 0.1870813130 -0.0872658414 171.0790486592 171.0792301382 211 0.0001759466 0.9300268342 2738.2295230422 2738.2298417336 2212 0.2115435425 0.0493454778 808.2087014437 808.2087426864 211 -0.3589168658 -0.0189310290 395.3654313613 395.3656193639 -211 -0.0114795002 0.0043740579 -0.0962817196 0.1700025462 -211 -0.3636800835 -0.2959082893 -3.8536325390 3.8845576903 -211 0.0390260714 -0.1831886651 -1.4836467165 1.5019215977 211 -0.0732673208 0.3033048781 -3.1873277720 3.2025646404 22 -0.1121431565 0.1815430329 -1.4354204019 1.4511945737 22 -0.0367481226 0.1135322170 -36.1418108066 36.1422772962 -211 0.3366319959 0.0292486158 -69.7978579072 69.7988153539 211 -0.1138643127 0.0706805253 1.0829135342 1.0911748443 22 0.0241182684 -0.0209467974 0.1517293156 0.1550556171 22 0.1098374573 -0.9261198239 -2.2014534518 2.3908491161 22 0.1148698677 -0.3937049615 -1.1276685611 1.1999312759 22 0.0048710519 -0.0390953243 -0.2080152435 0.2117132803 22 0.1278272213 0.0627784565 -0.3430550188 0.3714400074 22 -0.0004467411 -0.0135715786 -0.1391381485 0.1397991834 22 -0.0128417412 0.3350564029 -3.1644927879 3.1822071441 22 0.0679682184 0.1417600307 -9.8815485283 9.8953217397 130 0.0774568048 -0.2061015582 -4.0313510566 4.0679164421 130 0.0465569470 0.0517187205 -12.8783441615 12.8785321647 22 0.0329029702 0.0016652131 -0.6586861407 0.6595095226 22 -0.0286011647 -0.0132689891 -29.4065705378 29.4065874403 22 0.0342840358 -0.1801742160 -571.1574379924 571.1574674397 22 0.2700205327 -0.3038181850 2.5849056485 2.6166684523 22 0.1151678658 -0.0400792085 1.0880523467 1.0948643247 22 0.2003481998 0.5028468806 653.4857191343 653.4859433124 22 0.1105639743 0.1222869810 263.2936914160 263.2937430285 22 0.0132757308 -0.0182556346 84.2169361040 84.2169391290 22 -0.0222402968 0.2068650237 1134.2148290558 1134.2148481385 22 -0.2655273249 -0.1042250388 -0.0796661108 0.2961660145 22 -0.8638890910 -0.4856221106 -0.0625385601 0.9929976170 22 -0.0985666673 0.0646456069 -1.6232634805 1.6275376400 22 0.0447239233 0.0509865319 -0.9601792828 0.9625716134 22 -0.0427734480 -0.0708136968 -3.4481102734 3.4491025797 22 -0.0385054305 -0.0600440521 -14.5159690301 14.5161442828 22 -0.0048801588 -0.1261602670 -0.2173857834 0.2513897527 22 0.0891232252 -0.0480893864 -0.0853168713 0.1324179251 22 0.1231818473 -0.1647097198 -1.5403343912 1.5540055007 22 -0.0259388277 0.0015196939 -0.1372863870 0.1397235997 22 #SUBSTART 0.3513835747 0.0863842872 0.4305961478 0.7483225669 -321 -0.2394316678 -0.0964748384 0.4472757872 0.7143749070 321 -0.0962470037 -0.6143451748 0.1102640111 0.6467777181 -211 0.0882349019 0.9428763691 0.8585895270 1.2858681916 211 -0.5081978700 -0.3991755096 8.9858237983 9.0101118351 -211 0.2502257525 -0.4135313380 29.7060495929 29.7140815855 321 0.4382471970 0.4828008138 -1.7885108790 1.9087713799 -211 0.0688331918 0.8906618148 68.2269957003 68.2329864403 211 0.2401969212 -0.7619777158 81.0257680760 81.0351389676 2212 -0.3788060033 -0.2183419049 14.6955080965 14.7102945705 321 -0.2081692618 -0.4040860307 11.4923038422 11.5021366427 211 0.0882205793 -0.0110568982 0.0586545508 0.1755712586 211 -0.3289355697 -0.0163956219 1.8133611764 1.8483035374 -211 0.0515791286 0.2470485053 0.2188255202 0.3620190100 211 0.0901237096 0.2647083161 0.8978747819 0.9507111467 -211 -0.4248530210 -1.2417659758 -1.3072339742 1.8576391674 211 0.1286987368 -0.0083646411 0.0407527810 0.1943551032 -211 -0.1564100952 0.3410265718 -45.1683850878 45.1726401225 321 -0.1260660784 -0.1703210744 -575.6749639417 575.6750198601 -211 0.3196320208 -0.1425785037 -866.1344223314 866.1350012505 2212 -0.1587039488 0.6188909248 -143.1835567531 143.1850502573 211 0.1802038877 0.0611284026 -47.6106990495 47.6112838925 211 0.0178346006 -0.1592064748 -24.4440992359 24.4450226430 -211 0.9420648082 0.8497533302 -12.6900208455 12.7540454629 211 0.0387810512 -0.1829012599 151.6305335483 151.6335517344 2212 0.4507642446 -0.2687987137 132.1349766666 132.1393593583 -2112 -0.0908790077 0.0991418424 0.8937843745 0.9145591243 -211 -0.2746445694 0.3186459654 2.9409535285 2.9741641401 -211 -0.5603401564 0.8424524862 0.9343869277 1.6664743641 2212 -0.4970156516 -0.2495409175 -1.9796930523 2.0610578821 -211 0.1187721030 0.5876354550 -7.3825738961 7.4081913688 -211 -0.0218581490 0.0688815068 -3.0486183702 3.0526670622 -211 0.2525240870 -0.4960841087 -9.6546520989 9.7162218373 -2112 -0.3239554754 -0.1433068940 -2.2427707428 2.4567977560 2212 0.1839998331 -0.2738257098 0.0774495534 0.3664896671 -211 -0.2857045623 0.3379413295 0.2323627567 0.5189447704 211 0.2506682559 -0.0726082590 0.3355672535 0.4474278716 211 -0.0376138396 0.0776708370 0.5555060479 0.5792359744 -211 0.1717120796 -0.4044677745 2.7103949833 2.7457822536 22 0.0699124145 -0.0808089112 0.3817150550 0.3963889618 22 0.4451863718 0.6987070109 7.1426676041 7.2074769410 -321 0.2565954670 -0.0562772464 1.4859873092 1.5154690463 211 0.1777284803 -0.2353512404 29.2371014675 29.2389219983 -211 0.1789671712 0.2193490468 8.4557455846 8.4604832394 22 -0.0210440465 0.0053343587 0.9150385374 0.9152960353 22 1.2368367824 -0.8910283844 -8.3349804990 8.4875931622 321 1.0529050908 -0.1832613604 -5.0578894662 5.1714523583 -211 0.6775419726 -0.5864847002 -2.3027461708 2.6435693939 2112 0.0199983460 -0.0627587948 -0.2924209245 0.3306484268 211 0.2366324956 -0.3284748100 -1.7559709639 2.0316680973 -2212 0.3514193699 -0.2543253733 -1.3133852470 1.3901933538 211 0.1728712083 -0.7057742283 0.2073525280 1.2057315504 2112 0.0517370079 -0.1129449967 0.2762285800 0.3334895854 211 0.1222946120 0.0289346910 0.2196535496 0.2530629770 22 0.1454885863 0.0162924103 1.7788962193 1.8519030997 321 0.6854447280 -0.2328609130 1.2249170321 1.4296713610 -211 0.2132316179 -0.9154663652 1.8533504135 2.0827707337 -211 0.0464755619 -0.1147566085 2.0207004633 2.0244899159 22 0.7726530146 -0.4068852434 7.7178455675 7.7670900913 22 0.3269458017 -0.0860636289 2.6983095198 2.7194070622 22 0.1268780430 0.2180718314 6.8290603940 6.8351444031 -211 0.6455361591 0.5313835850 15.0169463080 15.0408524243 211 0.5596353138 0.1161023227 17.6030417569 17.6128711547 211 0.7680020692 -0.1127127811 32.3480580257 32.3709706370 2212 0.6983703179 0.5935546092 89.9948101482 90.0043678517 -2212 -0.1062699011 0.1869527399 20.6927868264 20.6943748648 -211 -0.1307433841 0.0736303268 121.9641081088 121.9642004116 22 -0.0899043048 0.2142744765 137.4759291856 137.4761255702 22 0.1583710438 -0.1596163519 66.4787949291 66.4810076258 321 -0.0547152709 0.3262564991 30.8900990874 30.8921857187 -211 -0.1030840496 -0.0145927889 14.0778153847 14.0788921816 -211 -0.3814800376 -0.4953111690 333.5073438521 333.5079590403 211 -0.2517675119 -0.6024863461 376.4509881804 376.4515803638 -211 -0.1763305492 -0.0421270053 2.5729633647 2.5831158333 -211 -0.3895841814 -0.2476009491 6.3130903825 6.3314826089 -211 -0.2550797052 -0.0598126234 8.1363865788 8.1418001419 -211 -0.2221070476 0.0151249759 0.3814421289 0.4631826725 211 -0.9161630148 0.5499367145 5.0748116664 5.1879647545 -211 -0.0762149093 -0.2521347467 4.6077573417 4.6173897548 211 -0.7777770833 -0.0674658849 4.4260742328 4.4965655490 -211 -0.1122568541 -0.3432704188 0.2153668070 0.4204985651 22 -0.9785147782 -0.3390581542 0.7480054023 1.2774833404 22 -0.4740289086 0.1117179975 -0.2792147622 0.5784677912 211 0.5639903520 0.1294667741 0.1248072592 0.6081968428 -211 -0.0084708087 0.0041157778 -0.0236083139 0.0254174489 22 -0.8072015960 -0.9749667677 -3.3431144851 3.5747096490 22 -0.0283360821 -0.1356588674 -0.9180536691 0.9388868868 -211 -0.1311486095 0.0017617580 -1.4393881290 1.4520747337 211 0.0071001260 -0.4130757745 -2.4092590494 2.4484057995 211 0.3246640652 -0.2998738616 -15.1699075116 15.1843691327 -321 0.1855192498 -0.0002007397 -1.3540292659 1.3737876365 211 0.1641733496 -0.6556734698 -6.0895820547 6.1285683462 -211 -0.1322846352 -0.0809387546 -4.9906636666 4.9950229153 -211 -0.2211364577 -0.5250485378 -37.9757233673 37.9802530581 211 0.1104229891 -0.1018287039 -14.8745442836 14.8759574399 211 -0.4857614262 0.3019904730 -54.8090275716 54.8121897532 -211 -0.0385357965 0.0592827995 -5.1775114255 5.1779942081 22 0.0896591468 0.3006854459 -16.3528826059 16.3558925168 22 -0.3652418169 -0.6842401798 -217.3140789507 217.3155079054 -211 -0.0034234873 0.1969739181 -19.3594067356 19.3609121527 211 -0.0290826310 -0.0221466697 -8.4786081230 8.4786869254 22 -0.2577155050 0.0778430860 -165.2421020547 165.2423213595 22 0.2126398737 -0.2250677107 -279.3267159594 279.3269224397 -211 0.1081640021 -0.1688561687 -84.4485575341 84.4489109535 211 0.1834010756 0.0865142133 -473.1517199286 473.1517839677 211 -0.0488719920 0.0721643079 -221.7981217423 221.7981827797 -211 -1.7448455566 2.4921877129 -616.8193555897 616.8268739245 -211 -0.4194674477 0.4334598558 -79.7555558040 79.7579588617 -211 -0.2405230503 -0.0328744566 -26.5858463020 26.5873209527 211 -0.6034955259 -0.5141579265 -31.2385200758 31.2488908849 211 0.1638126042 0.0101811828 -10.5332319512 10.5354351286 -211 -0.1401235635 0.0774205777 -1.0673152117 1.0792545205 22 -0.0764670415 0.2015020117 -4.4632576684 4.4684582670 22 0.1004790435 -0.0916098373 -0.3248806156 0.3521871872 22 -0.1064736351 0.4738688693 -5.2841534502 5.3082620329 -211 0.3218016391 0.1968768848 -9.1562298795 9.2119060461 2212 0.1353904184 -0.0260064587 -1.2436441750 1.2590224463 -211 0.6100942142 0.6575841496 -8.3789476071 8.4790439703 -2112 0.2440437200 -0.0330929644 -1.2553184594 1.2868398117 211 0.0514526277 0.2190608661 -1.5701180420 1.6611883282 321 0.1372299060 0.7254283300 -3.3552051348 3.4383076638 -211 0.2249887106 -0.1520320231 -0.5965768783 0.6701622285 -211 0.1695471797 -0.3391619865 -0.2457642903 1.0414066346 2212 -0.2556074022 0.0614822381 -0.0548780132 0.3026658073 -211 -0.2632482254 0.0670017819 0.4434716970 1.0738937554 -2112 -0.0644068099 0.2659118756 0.1505389224 0.3420513336 211 -0.3570493913 0.0031080420 0.1813753305 0.4241116871 -211 -0.0864124590 0.1621691599 -0.1595860487 0.2805591584 211 -0.9306299732 -0.3204726025 1.7361986339 2.0006599704 -211 -1.4872367863 1.2030974562 3.5849514880 4.1706097521 2112 -0.7031097587 0.6300072817 1.2064951070 1.5383051504 211 -0.2161833966 0.3903551137 10.4084767637 10.4189721518 -211 0.0803149198 -0.0314024289 268.6716585303 268.6717086219 -211 -0.1581949575 -0.2312517393 1476.8147189483 1476.8150435840 2212 -0.1128636898 -0.2129492528 384.6157144327 384.6158152676 211 0.0461300467 -0.1554289250 1722.9398811202 1722.9398944016 -211 -0.0998121208 0.2192375613 604.2849937145 604.2850578460 211 -0.1306452713 -0.0419120639 -0.1385822216 0.2398116449 -211 0.0670971285 0.2300405729 -0.2102272170 0.3479884444 211 -0.0658102562 0.0504672667 -0.0541361008 0.0990386401 22 -0.0328327591 0.1792983550 0.0355750233 0.1857187994 22 0.3790254689 1.6577306248 3.3185232279 3.8454023625 -2112 0.0790284068 0.0732545670 0.6390348988 0.6629156112 211 0.4044764321 -0.1037192791 0.2540253546 0.5082986707 -211 0.3155650118 0.0137480471 0.4594672070 0.5747696796 211 -0.2368070353 -0.0717572765 -0.0776267413 0.2945036070 -211 0.0150794557 0.2493484796 0.0538285482 0.2911689402 211 0.5242711188 0.5212543040 -1.3586428394 1.5530474575 211 -0.1894719837 0.1388649068 -1.0339703461 1.0694660146 -211 -0.3230259180 -0.7345551608 -4.0749313721 4.1555339609 211 -0.5041837063 -0.8320104728 -10.0061700444 10.0543205330 211 -0.4430443258 -0.1303902894 -2.1797648253 2.2325197381 211 -0.2655783851 -0.0905889652 -0.9675911081 1.0170794348 -211 -0.3808833270 -0.0313661032 -3.4652636450 3.4890669032 211 -0.1074870207 -0.0080526398 0.0037284190 0.1763859140 -211 0.1188952262 -0.1178720167 -1.9654917259 1.9775407446 -211 -0.1168153378 -0.2905825802 -0.2873425139 0.4473584293 211 0.2049314285 -0.2479883935 0.2698296068 0.4198846870 22 -0.0115063078 -0.0023845109 -0.0063955375 0.0133784869 22 -0.0372355634 -0.0566035911 1.2681726633 1.2699812430 22 0.0095869995 -0.0500175566 0.1409128402 0.1498335578 22 0.0651788088 -0.0161068207 -0.3786984860 0.3846040173 22 0.0880974512 0.1266280344 -1.7199246665 1.7268285029 22 0.5861372256 -0.6143882111 -6.2493026180 6.3263329316 130 0.0316062155 -0.0701959191 -0.0816668505 0.1122314323 22 0.0700243700 -0.0096230070 0.0371710422 0.0798605098 22 0.0811806041 -0.1901402898 -0.0263621421 0.2084192477 22 -0.0030988249 -0.0110203230 -0.0589043005 0.0600063901 22 -0.0027336410 0.0395970907 0.0654290850 0.0765269074 22 -0.0803960589 -0.0443262239 -0.0079819519 0.0921523303 22 0.7791232530 -0.2180356777 1.5238053207 1.9639006717 -2212 0.0454966914 -0.0416899157 0.3516787782 0.3833611169 211 0.2095421580 -0.2994765104 0.9330361334 1.0020731123 22 0.1476283312 -0.0694285574 0.3343999962 0.3720723132 22 0.5711175696 -0.2783425159 1.4917671457 1.6214250064 22 0.0388355179 -0.0696716584 0.1901792717 0.2062292239 22 0.2132034763 -0.2607602674 0.5536634459 0.6480700970 22 0.0014997178 -0.0745293339 0.2221850392 0.2343566991 22 0.9662601153 -0.7349221488 7.1749592229 7.2782751260 -211 0.2981093263 -0.1352674214 0.8619324895 0.9325094354 211 0.2706155557 0.1954741305 7.3065204295 7.3141427182 22 0.2527854008 0.3085378940 6.7006701520 6.7125313092 22 -0.0484253203 -0.1535503692 1.0508531019 1.0631156895 22 -0.0073954533 -0.0316416273 1.1277327544 1.1282008025 22 -0.0361965680 0.0967665602 1.8918128213 1.8946318137 22 0.1201730013 0.2366800895 4.2592436700 4.2675069602 22 -0.1022789177 0.1157269997 111.9907956601 111.9909021586 22 -0.0385313296 0.0033758186 6.5748743822 6.5749881522 22 0.0262426582 -0.4107163889 21.5650881064 21.5694664155 211 0.2220230408 -0.1883020242 7.2028256600 7.2100575002 -211 -0.1632574252 0.2417854378 21.7088366893 21.7310619662 -2212 -0.0324910742 0.0813730435 6.9821019527 6.9840464420 211 -0.0050033700 0.0490308675 0.2916829212 0.2958174879 22 -0.1734647770 0.1735972586 3.9232654004 3.9309334055 22 0.2533262047 0.2469523288 -2.3632817911 2.3896151244 22 0.0196764305 0.0160780510 -0.0419359201 0.0490335297 22 0.2930993519 0.0841211650 -0.8909584176 0.9416955465 22 -0.0141795796 0.0136312697 -0.0471636871 0.0511007375 22 -0.1453322307 -0.0139368720 -1.2076737230 1.2164668162 22 -0.1630557917 0.0003257640 -3.1463672483 3.1505894938 22 0.0095116858 0.0180053813 -0.1189006657 0.1206318127 22 -0.1769584512 -0.0276514653 -0.2729277487 0.3264482394 22 0.1896578049 0.4085830994 -45.5044755677 45.5094263021 130 -0.1524816922 0.0190522875 -11.2835849948 11.2846313183 22 -0.0360013212 0.1013039259 -8.1518479814 8.1525569052 22 0.0541654450 -0.2255027699 -46.9986165397 46.9991887381 22 0.0908246117 -0.2086991584 -80.2573434309 80.2576661699 22 0.0573497401 -0.0666658657 -64.6668414941 64.6669012877 22 -0.0386824311 0.0160515455 -10.9807010131 10.9807808794 22 0.1910298307 -0.2779106293 -391.7005768781 391.7007220486 22 0.1300084946 -0.1303620513 -354.3333989994 354.3334468307 22 0.0251052219 -0.1885166599 -285.6351653471 285.6352286600 22 0.0869150029 -0.1962836237 -585.1473153844 585.1473547604 22 -0.4971768159 1.2021426904 -241.3635377828 241.3670435309 22 -0.3171213084 0.7550579181 -133.3462899266 133.3488047025 22 0.0298209664 0.4932502680 -92.0747424127 92.0760684189 22 -0.0918700286 0.8593316264 -142.5516850877 142.5543047835 22 0.0022881145 -0.0183777781 -2.9930200237 2.9930773195 22 -0.3489039330 -0.2466578631 -200.3801401855 200.3805957542 22 0.1115025752 0.2281227796 -18.2499967953 18.2522967223 -211 0.1880057745 -0.0933137134 -6.5186782958 6.5235496571 211 0.0514040776 -0.1979955194 -3.6573958349 3.6631119145 22 0.0465743616 -0.0353700208 -0.3814593489 0.3859163697 22 0.2128325537 -0.0942725555 -0.0134117086 0.2331627855 22 0.1240031763 -0.0162884840 0.0893528319 0.1537076153 22 0.0120010760 0.3680152047 0.4202785963 0.7482571377 130 -0.3442075736 0.8041751857 0.7264554852 1.1370638307 22 0.0076321592 0.0019066994 0.0015007169 0.0080085896 22 -0.0167925223 0.0279474618 0.0080812496 0.0335910110 22 0.1810677361 0.2432940014 0.3580630615 0.4692405057 22 -0.5266418093 -0.6322139825 0.6574217017 1.0532091003 22 -0.2982095941 -0.2345215137 0.2467416052 0.4525601862 22 -0.3724109472 -0.3054553985 1.9831696794 2.2467190915 -2112 -0.0436926025 -0.0291551658 0.1958170811 0.2027397259 22 -0.3107149439 -0.2210414708 0.5131845065 0.6393445440 22 -0.3876987808 -0.0238519199 6.6548850021 6.6847624549 130 -0.0000806122 0.0857601813 14.7877350752 14.7879837527 22 -0.1944682679 0.1308906987 47.2761395375 47.2767206969 22 -0.2261926949 0.4047311087 0.5617003127 0.8821298520 130 -0.0927429169 0.0857225751 -0.0123488268 0.1268940584 22 0.0095444890 -0.0370200596 -0.0157182661 0.0413357711 22 0.0520036366 0.0216514984 0.0463238464 0.0729319159 22 -0.0356572397 -0.0504258695 -0.0269616210 0.0673879519 22 0.1207138060 0.0316860843 0.0132839635 0.1255081455 22 0.0483281031 0.1503209370 0.0156791213 0.1586752170 22 -0.0004292783 -0.2162291731 -0.6127388926 0.6497724141 22 0.1326266003 -0.1931440529 -0.6109146182 0.6543020029 22 -0.1128137064 -0.2122895578 -0.8568156382 0.9007811119 -211 0.1681673440 -0.1731319996 -2.4547336051 2.4705165051 211 0.1826472912 0.0559993044 -0.0106887589 0.1913379331 22 0.2113169464 -0.0797999001 -0.0268818269 0.2274763911 22 0.0378914183 0.0495242267 0.1091709586 0.1257247263 22 0.0472951004 0.0243294952 -0.0365668762 0.0645436851 22 0.0337805991 -0.0320483379 0.0883461283 0.0998662266 22 0.1997591503 0.0075575967 0.0587808887 0.2083651321 22 -0.1238906915 0.3094257544 0.2326753235 0.4064861709 22 0.0285115833 0.1523117308 0.1488429769 0.2148627597 22 0.0337604191 -0.0011512632 -0.0444313839 0.0558143277 22 -0.0853958386 0.0842971209 -0.0137632047 0.1207802949 22 -0.0906088516 0.1313208263 -0.0807469672 0.1788160958 22 -0.2982407157 0.1338396349 -0.0802725363 0.3366069703 22 0.0842579992 0.0465765645 -0.9480490171 0.9529248269 22 0.1753075370 -0.0330739435 -0.8162876861 0.8355550280 22 0.0233613671 0.1374946930 -1.6842967976 1.6900610186 22 -0.0104885032 -0.0039609901 -1.4305331671 1.4305771005 22 -0.1568064396 -0.2921406838 -3.9731468285 3.9869575066 22 -0.0189382543 0.0049192561 -0.0786708200 0.0810675921 22 0.4072918690 -0.3850262714 0.7891977184 0.9779799179 211 0.3576534236 -0.4609440474 1.7453730619 1.8455872497 -211 -0.0109044807 -0.0489811159 16.1431782374 16.1432562286 22 -0.1348219263 0.0621136559 40.9312911274 40.9315602978 22 -0.0466158916 0.4899579310 255.1024573505 255.1029321236 22 -0.0294563013 0.0099071009 17.3387371982 17.3387650498 22 -0.4092977643 0.2592610266 5.6280044290 5.6505446267 -211 0.0390781913 0.1223951497 4.2729081890 4.2771172364 211 -0.2960106623 0.1327471298 -1.4325253416 1.4754161284 211 0.1321383114 0.0286037763 -0.7034850307 0.7298285297 -211 -0.0742082503 -0.0637583434 0.0862751248 0.1304430448 22 0.0139318062 -0.1172677077 0.2820643613 0.3057876950 22 -0.0377906757 -0.1980415706 -1.3148594039 1.3302269923 22 0.0923925970 -0.4442223395 -2.3801195055 2.4229813741 22 -0.0624540441 -0.1397797130 -1.1614842196 1.1715308225 22 -0.1304726959 -0.0219842154 -1.0945031651 1.1024715908 22 #SUBSTART -0.1734802534 -0.6041668205 -0.1421520806 0.6593936186 -211 0.4443987084 0.1415820509 0.5326604713 0.8630781116 321 -0.0787821948 -0.0818522167 0.7012006802 0.8650027592 -321 -0.0905139288 -0.5927715090 -0.6316011141 0.8820264086 211 -0.5943964647 -0.3576600087 -103.3205943620 103.3241021646 -321 0.0223434023 0.1266335828 523.8052686327 523.8053030110 -211 -0.0575108692 0.5959050182 -2.7909402527 3.0046810776 2212 0.3069975221 0.1023654814 1.4141896532 1.4574423935 -211 0.0592643018 -0.2362899846 2.1181056544 2.1366320606 211 -0.0508582763 -0.3792723507 2.6871176324 2.7178143858 -211 0.9616613368 -1.2990970152 15.4607226708 15.5456061596 211 -0.1830107530 0.1251128457 1.6697175951 1.6901428318 -211 0.1940028217 0.5105226357 0.7085770749 0.9054455878 211 0.0657422154 -0.4273219204 1.3012054987 1.4572929603 -321 -0.0997198286 0.1260492435 0.0580357083 0.2206363169 211 0.5213862652 0.5884167570 -0.7804661353 1.1165505321 -211 -0.3223707327 -0.4524102880 -2.8138441856 2.8715495544 211 -0.1316881238 -0.1507365427 -5.4327603602 5.4588084193 321 -0.1414872979 0.0368425353 -4.1659346682 4.1976217848 -321 0.0491209552 -0.0766561171 -6.0326205865 6.0534652167 -321 0.4435705326 0.0278006940 -6.4770933992 6.4938237105 211 0.1889086076 0.5401954372 -13.9149142356 13.9266771255 22 0.2680073416 0.2273877454 -25.9716436074 25.9743967125 211 0.5801820870 0.1288392377 -5204.6451886675 5204.6453074078 2112 0.0974608350 0.0542162049 0.1249135093 0.2179935342 211 0.4607558325 0.8695076077 3.3822885311 3.5252935919 -211 0.0528442804 -0.2863591633 2.7110654417 2.7302288737 -211 -0.1251166711 0.0155063756 0.9371201624 0.9558078325 211 -0.2564335475 0.2159304535 1.8392774016 1.8747813925 211 -0.0230738398 -0.0027189269 17.7405780807 17.7411423030 211 -0.1046715048 0.0107004547 122.5364074007 122.5365320592 -211 0.2123350858 0.0998350989 3.9711557758 3.9780813756 22 -0.0010632646 0.0302179597 0.1680133022 0.1707124053 22 -0.0596022320 -0.4832071644 172.3906884120 172.3914324221 211 -0.6495453516 0.0584863024 3650.9960390211 3650.9962178326 2212 -0.1740655122 -0.0806533981 551.7780176316 551.7780686336 -211 0.1299177805 -0.3327717024 626.3304378584 626.3305552847 211 -0.1680372555 0.4438737410 0.2109428577 0.5378076713 -211 -0.5363354113 0.0029591480 -0.4613330325 0.8626317620 -321 -0.0497901576 0.2899353359 -0.0676833640 0.3325693634 211 -0.1279344345 0.6757355112 -0.2080739530 0.8717347248 321 -0.2475285333 -0.0770208859 -0.1701051824 0.3400266896 -211 -0.2310754579 -0.9986128508 0.2013776147 1.0538767583 211 -0.2412693537 0.5685249332 -1.0634730503 1.2376939098 -211 -0.1011573295 0.0505398783 -11.3515882563 11.3908600912 -2212 0.0520423101 -0.0672655598 -1.3867686645 1.3963667754 211 0.2313286717 0.1176001878 -10.4576544974 10.4618048219 -211 0.1391125635 -0.1956243934 -29.8690528923 29.8703435145 -211 -0.2009385373 -0.0156450475 -19.1777952390 19.1793621134 211 0.0535340978 -0.1883255548 -43.5964076343 43.5970706678 211 0.2279978612 -0.0617316098 -27.2323609417 27.2333853253 22 0.2536002229 0.0568476880 -38.7283576421 38.7292296643 22 0.0776591667 -0.0580536110 -101.2558722941 101.2560149077 211 -0.2258733262 -0.7381644083 -117.4678617981 117.4704811459 -211 -0.1689065502 0.1150742064 -0.0626991002 0.2553085540 -211 0.2401454328 0.0554121902 -0.0853807601 0.2958208897 211 -0.0072941971 0.3797417417 -1.0431272235 1.1101222455 22 0.0367663270 0.2501462116 -0.4469108255 0.5134726632 22 -0.0724928974 -0.1153778103 -1.5979547385 1.6037539105 22 -0.0671331855 -0.0804901441 -3.5882366067 3.5897670500 22 -0.1546711308 0.0146859195 -4.1777297713 4.1806177625 22 -0.0365854078 -0.0692633348 -1.2711935789 1.2736047333 22 -0.0609984921 -0.0764320590 -13.5441712044 13.5445242180 22 -0.3339793544 -0.0896602029 -32.6346811914 32.6365132578 22 0.0939780897 -0.1198445091 -399.2274933145 399.2275223638 22 -0.0001960881 -0.0946678667 -601.0634071431 601.0634145982 22 0.0976934242 0.1191038860 1.1753632392 1.1854148999 22 0.0904562731 -0.0271725062 0.8370557516 0.8423675052 22 0.1290435611 0.2429608757 1.4765722921 1.5019813453 22 0.0879582657 0.5046377586 3.2812641836 3.3210074626 22 0.0145036523 0.0123537927 6.7250561883 6.7250831748 22 0.1227715488 -0.2164119558 27.8873284417 27.8884383680 22 -0.0965883056 0.1453065644 160.5906474174 160.5907422028 22 0.0020149626 0.1023885242 42.6336715583 42.6337945533 22 -0.3228813408 0.0186734444 713.9731362588 713.9732095116 22 -0.1271526455 -0.0804418439 330.6858342898 330.6858685197 22 -0.0031595986 -0.0327052276 0.3487370793 0.3502815517 22 0.1927768334 0.0163487302 1.0155757844 1.0338396212 22 0.0261850537 -0.0352144032 0.0216618444 0.0489381930 22 0.1094173635 0.0558621251 -0.1016963366 0.1594831694 22 -0.0084439985 -0.0679023673 0.0322318056 0.0756367760 22 -0.0684326877 0.0544960496 0.0432654693 0.0975948410 22 -0.1259573171 -0.0143346254 -0.4511619109 0.4889760546 211 0.1377687227 0.3693423903 -0.7420435084 0.8517642722 -211 -0.2802526561 -0.1529295678 -14.3956013798 14.3991412275 22 -0.1589627168 -0.2036933693 -14.7604705739 14.7627318508 22 0.1115740216 -0.0143871725 -5.2956564841 5.2968512676 22 0.0056657821 -0.0522380541 -0.7621266101 0.7639357861 22 -0.3279092480 0.3435085073 -56.5342112437 56.5362057758 22 -0.1787150844 0.1136784234 -35.7344525606 35.7350802668 22 0.0259034502 0.1418016086 -1.4082850397 1.4225066688 211 0.0312634471 -0.2088360572 -0.6664225938 0.7128735936 -211 -0.0507776495 -0.0704892619 -6.8536448739 6.8541954424 22 0.0017364223 0.0182842508 -0.1505630033 0.1516790921 22 0.2599755299 0.0628337163 -13.8705334856 13.8731119265 22 0.1870480262 0.0921703262 -6.4185287169 6.4219150744 22 #SUBSTART -0.1039065923 0.0051110575 37.9336431352 37.9340425475 -211 0.1039065923 -0.0051110575 0.5220210047 0.5502803077 211 0.1034556933 0.3673674817 -2882.4625129511 2882.4626909261 2212 0.4232895108 0.4152906349 -2175.8930370949 2175.8931223748 211 -0.1411130628 -0.3963674436 -6.9145578873 6.9287524569 -211 0.1517250416 0.3954868301 -1.8422058822 1.8954241262 -211 1.1065101142 0.2749451166 -10.2224525150 10.2976762345 -321 0.3962337478 0.1346423045 -12.2245997475 12.2417159614 321 -0.3096747287 -0.1012363756 -1.7799566916 1.8756422967 -321 -0.3998973198 0.1328527298 0.9435873219 1.0427869069 211 0.0996720736 0.1357040232 -0.0345750588 0.2214166294 211 0.3664551203 -0.5493840276 20.9586441260 20.9900268308 -2212 -0.3802947737 -0.0339800032 37.7033098691 37.7169153621 2212 0.2034489152 0.5002362116 142.2573962107 142.2584896734 211 -0.3106042524 0.2462147406 1287.4155496963 1287.4156182741 -211 0.1628871932 -1.0632061761 907.2064559011 907.2075787376 2212 -0.5609124055 -0.2393434827 0.3113120613 0.6987868157 -211 0.0175247922 0.2683783832 0.4695669622 0.5588443359 211 1.1220437970 0.5833688799 -0.6077705844 1.6886321093 -2112 -0.1326592342 -0.1950979122 -3.7135707186 3.8378458717 2112 0.4649766782 0.4590134083 -1.0238500172 1.2225568547 211 0.4094962442 -0.1448258130 -2.7242652115 2.7622024577 -211 -0.2614016343 -0.0546712323 -4.7177679129 4.7510309195 321 -0.0389861985 0.8817123334 -241.6885697138 241.6920023862 -2212 0.7370695954 -0.6471947066 -438.8132699350 438.8153721047 2112 0.0027705361 -0.2894844961 -1.5913639364 1.6174820331 22 0.0069707551 0.0112204726 -0.1978958306 0.1983362050 22 -0.0605733521 0.0262848931 -0.3766114468 0.4070331600 -211 -0.9279145314 0.1252598721 -10.6178694360 10.6599881124 211 0.5999660866 -0.5149943295 -4.8225776712 4.8889583394 211 0.6419844728 -1.0834346584 -8.4814921861 8.5756145092 211 0.0638010032 0.2587692383 -2.7176651062 2.7342669038 -211 -0.0632748766 -0.4452752965 -2.8247544265 2.9026112950 -321 0.1886979313 0.0553675578 -1.7820037420 1.7982462560 211 0.4034994338 0.0684907907 -2.2310359963 2.2682646227 22 0.5555470663 0.2060544347 -2.6328824834 2.6987332481 22 -0.2506615571 -0.3669370219 -2.6645504144 2.7049552103 211 -0.2472580843 0.1274218453 -0.0907360477 0.5738003810 321 0.4137344322 0.2032217605 -0.1844874201 0.5157428210 -211 0.0877180488 0.0017347943 -0.0511241690 0.1015438145 22 0.1899687547 -0.1670324770 -0.3344824477 0.4193643809 22 -0.9478307824 -0.3695990952 -0.7087243377 1.2477005470 -211 -0.3216864319 0.3585487668 0.5641095074 0.7548103735 211 -0.1082089701 0.2384215270 0.4677429171 0.5539108477 -211 0.2407833118 -0.1970657345 0.4922551969 0.5988375996 211 0.1721983137 0.1365870240 -0.0675218234 0.2689744521 211 -0.0780196054 -0.2124420442 0.3486728001 0.4384873857 -211 -0.3187790195 0.4238260510 0.9355522484 1.1832783080 -321 -0.4180637043 -0.3091524774 0.6595230974 0.9741479308 321 -0.0057599502 0.1057756432 0.2457744789 0.3018386044 -211 -0.1818004253 0.2481281861 0.1997776797 0.3924409479 -211 0.1337357336 0.0564103988 0.2281081189 0.3042704033 211 -0.4834817090 -0.6207110681 0.9215502522 1.2197423684 -211 0.0083982756 -0.0143388473 -0.0618281708 0.1535533822 -211 0.0613117491 -0.0938097705 -0.0262954667 0.1809161134 211 -0.1182343613 -0.7619446594 0.5949061384 0.9738851789 22 -0.1458008439 0.0574592860 0.1636242459 0.2265664350 22 -0.2680402094 -0.1111101143 0.5714457338 0.6559123592 211 -0.1630883566 -0.2669096393 3.3679510488 3.3853231189 -211 -0.6383325062 -0.6548783756 2.3345166665 2.5111316028 211 0.0274365562 0.0580202881 6.7840576560 6.7857967243 -211 0.2268176789 -0.1984675108 6.1102538677 6.1192742809 211 -0.1849019652 -0.2966372395 9.6386204009 9.6459662764 -211 -0.1468270353 0.7480774698 10.9211650516 10.9588624009 -321 -0.0041426529 0.2284397823 11.1371480207 11.1403656903 211 -0.0271886990 0.1067016443 3.0696058388 3.2120704003 2112 -0.3348621687 0.0254219872 2.7377217495 2.8020600078 321 0.2474702123 -0.0717134449 0.7921330224 0.8445938871 -211 -0.0120867783 -0.2521130100 0.2865576095 0.3818668925 22 0.1091019458 -0.2104094786 0.3399961850 0.4144548094 22 0.0340184436 0.1320421420 0.0514899753 0.1457518416 22 0.6135930187 0.8937962836 0.4662534834 1.1801527444 22 0.0368111898 0.6434021766 0.6341470506 1.3039385305 -2112 -0.1522087270 0.1442942070 -0.1156828677 0.2772194537 211 0.7879368279 1.1240806062 0.1563957449 1.6708240685 2112 0.4606761479 0.5314601138 0.2408973782 0.7564282501 -211 -0.5920719342 0.0604711186 0.5583672775 0.8279249561 211 -0.6474928866 -0.6703616377 19.4889214021 19.5116931343 -211 -0.0478520582 0.2350259370 412.2824759217 412.2825456882 22 0.0788380051 0.1776706694 385.2613088017 385.2613578363 22 -0.2964233883 -0.0254668296 974.2100191401 974.2100745672 -211 -0.0852523311 0.0773462892 65.9798978664 65.9801458975 211 0.4409343329 0.3117101010 933.3545890860 933.3547557248 211 0.1073993289 -0.1328245249 175.2940498079 175.2941885939 211 -0.6293620655 -0.4818051760 126.6400829780 126.6426402493 -211 0.2167947516 0.0817237799 109.8111896094 109.8115227195 -211 -0.1180107168 -0.0472207866 2.8662901789 2.8724998706 211 0.1850697253 0.2411865730 3.6587042026 3.6739648873 -211 0.0934140245 -0.4062675746 1.7987426855 1.8516842484 211 -0.1513943519 0.0578420144 0.4485903519 0.4969698554 -211 0.4440681710 0.3096166890 3.8728514427 3.9129933704 211 0.3728657612 0.1979906872 -0.0492209489 0.4473607882 -211 -0.1552187472 -0.1080082267 -17.1017877168 17.1034026302 -211 0.0498557590 0.0123088693 -3.7247487643 3.7251027452 22 0.1750868784 0.3270039615 -46.0428202436 46.0443143395 22 -1.0532051166 0.3027144018 -173.7614219875 173.7648774872 22 -0.0899923848 0.2418175494 -30.7830451747 30.7841265077 11 -0.0115458851 0.0398428159 -4.7958709858 4.7960504095 -11 0.0323371416 0.0212456978 -8.5915803860 8.5916675099 22 0.2022442611 0.0346197511 -11.7742272908 11.7760150121 22 -0.2370913767 -0.2248721240 -133.7537431864 133.7550531274 -321 0.2023546551 0.0181372237 -196.9018849699 196.9020392501 211 0.2040566843 -0.1974873362 -125.9760498982 125.9773369670 321 -0.1681111823 -0.1788885259 -24.7525603704 24.7541711061 -211 0.1934901133 0.2544818011 -101.7165589976 101.7171571246 211 0.4431634221 -0.8048983472 -3.4464391012 3.5668189814 22 0.5239966650 -0.6821225560 -3.2543208417 3.3660760281 22 -0.0580010022 -0.1766229554 -1.8728430707 1.8820470111 22 -0.0327618734 -0.0629395750 -2.1664999530 2.1676615918 22 -0.0127584669 0.0096437241 -0.3558998427 0.3562590040 22 -0.0192497129 -0.1497355481 -0.5145898226 0.5362778863 22 0.0672581358 -0.0552225762 -0.1369944864 0.1622981178 22 -0.0193951643 -0.0472293832 -0.3902059210 0.3935320163 22 0.1980909280 -0.2636747290 -2.4542451812 2.4763044619 22 0.0050794673 0.0139014216 -0.0495400322 0.0517036295 22 0.1636916316 -0.3521738423 -5.6301432367 5.6435214389 22 0.1599063552 -0.2376317754 -2.8619667973 2.8762636966 22 -0.0224755734 0.0120320984 -0.6123148647 0.6128453446 22 0.1692305961 0.0622473954 -1.9883333474 1.9964927331 22 -0.1013839586 0.1265374641 -6.7744120413 6.7763521855 22 -0.0128024845 0.0231933722 -0.1821114059 0.1840282595 22 -0.0216433425 0.0285919252 0.0786113552 0.0864041528 22 0.0545751694 -0.0185899990 -0.0250181286 0.0628485794 22 -0.1423437678 0.3345611322 0.1760116540 0.4039467809 22 -0.0844514273 -0.0228228488 0.6665368715 0.6722531718 22 -0.3037044003 0.0529864746 -0.0134818110 0.3085865980 22 -0.0271790970 -0.0103959123 0.0437842268 0.0525722058 22 0.0950867534 0.0392774979 -0.0696607729 0.1242450635 22 -0.0280429601 -0.0193411285 0.0151170849 0.0372694663 22 -0.1508107776 0.0676924327 0.1211147150 0.2049266461 22 0.0065719509 0.0821609555 0.0514224491 0.0971487592 22 0.3805017462 -0.1369645123 0.3552801422 0.5382980920 22 0.0661718040 -0.0720033683 0.0313062804 0.1026804553 22 -0.1513072150 -0.0639385970 2.3572037136 2.3629200928 22 -0.8838879760 -0.4346421007 19.6561056102 19.6807687724 22 -0.2779044050 0.1211170336 5.8586925207 5.8665303414 22 -0.1343317576 -0.0345749812 2.4292302148 2.4331871870 22 -0.7455485305 -0.5204308896 22.5996743492 22.6374097945 -2212 -0.2480076354 -0.1993699236 5.0334263209 5.0454054809 211 -0.0246675830 -0.0080580270 0.1623808048 0.1644413185 22 0.0995700896 0.1215190287 0.4044664752 0.4339057578 22 -0.0468402153 0.5962391017 0.9068834122 1.1949092118 130 -0.0702712394 -0.0234918490 0.3841131045 0.3911940581 22 0.0437038876 -0.1067430090 0.5967806362 0.6078249975 22 -0.2370575615 0.2063068509 940.1573149236 940.1573674461 22 -0.0615978618 0.0296470617 86.9643161818 86.9643430506 22 -0.3231725544 -0.5223856757 179.4678455043 179.4688967405 22 0.0049750786 0.0026916162 0.5170926580 0.5171235957 22 -0.1749963829 0.2233065660 2.9392507299 2.9529111753 22 0.0151677692 0.0740437515 1.1436933832 1.1461880706 22 -0.0805072621 -0.0063345819 1.6103232025 1.6123468493 22 -0.1148525386 -0.0384120338 0.6812536392 0.6919343256 22 -0.1424136704 -0.0479389019 -0.2696774262 0.3087162225 22 -0.0305664054 0.0590206841 -0.1768966179 0.1889713199 22 0.4746987215 0.2164568022 -3.0048827891 3.0498381924 22 0.0991807664 0.0801456524 -1.1629700215 1.1699399219 22 0.0952798243 -0.0479218531 -1.4793221784 1.4831617769 22 0.1024359657 0.0790097780 -1.1669209573 1.1740699266 22 0.0995366917 -0.0405691920 -0.5682548317 0.5783311907 22 0.0901591062 0.0917672139 -0.9004189009 0.9095625778 22 -0.1019200353 0.4499532578 -10.2429764584 10.2543109051 211 -0.0106130842 0.2691275418 -17.6247297228 17.6273401243 -211 0.0434971876 0.2857760563 -6.2137669961 6.2204871386 22 0.1297485746 0.1540029648 -3.7710577065 3.7764305675 22 -0.3852392116 0.7685264631 -181.7900181137 181.7920507832 22 -0.0526601807 0.0398120413 -9.9723768875 9.9725953934 22 0.0612640531 -0.0731883120 0.1410934530 0.1703442858 22 -0.0049150314 0.0312590735 -0.0070712763 0.0324236050 22 -0.0553722820 -0.1733983039 0.1090969179 0.2122149827 22 -0.0016237697 -0.1482247183 -0.0268711004 0.1506494600 22 0.1014096971 -0.1593307307 0.1407920094 0.2355686701 22 -0.0166242150 0.0058894081 0.0623495606 0.0647959672 22 0.0463266376 -0.0170960604 -0.2371025418 0.2421901071 22 -0.0757088802 -0.0959765289 -1.1019265373 1.1086863498 22 0.0306894230 -0.1885989198 -2.9802004337 2.9863198118 22 -0.0323073059 -0.4311671345 -10.1014237872 10.1106731422 22 #SUBSTART -0.2142622169 0.0132640633 -4052.3894773558 4052.3895919642 2112 -0.1841169489 0.3410823540 5.4810937741 5.4965539176 211 -0.8010173997 0.1515839082 7.4863371212 7.5318875346 -211 -0.0244780853 -0.3729051304 0.8373221513 0.9274942495 -211 -1.2690867166 0.7869083518 -0.0409538738 1.5732526905 -321 0.2654372432 0.1206053163 -2.4895099164 2.5104067362 -211 -0.8244243628 0.9384208203 -17.5886237149 17.6334759232 -211 0.0380115412 -0.0966053111 -3.3781296849 3.3826051227 211 -0.0821663003 0.2806009503 -153.2040649177 153.2044074930 211 0.1555363725 0.5610747953 -179.8805044012 179.8838936946 -2212 0.3146196330 -0.6417709607 -36.9821936676 36.9893631161 211 0.1164330153 0.2746600055 -127.7132381146 127.7136627940 -211 0.7372036343 -0.9010700684 -41.9826939987 42.0093125681 2212 0.7772580311 0.1887906058 -33.2915879777 33.3144105848 -2212 -0.5695048024 0.1928050554 187.3823155685 187.3839303096 -321 0.0734573508 0.4179464513 22.6073235101 22.6117365829 211 0.3028687216 0.3416629543 0.7787232019 0.9134290596 -211 1.5113505593 -0.8319323071 4.3801223220 4.7096967225 211 0.4194522363 0.3437806609 -0.1491879678 1.0939529076 -2212 0.3345456002 -0.9500052286 -2.0978704344 2.5091515788 2212 -0.6172043868 0.2847387002 -0.5154442234 0.8643956934 211 -0.8303424704 0.3742602810 -0.7734765596 1.2030316493 211 -0.3334019759 0.2243061588 -0.1255667925 0.4435278285 -211 0.1542546701 -0.2325117203 -150.9195177596 150.9205828837 321 -0.1984983628 -0.0696492444 567.8250587967 567.8251149164 211 -0.9787689728 -1.0768889568 2809.0842232381 2809.0846036394 -211 0.0751778353 0.0156020723 -766.4294671890 766.4294710348 22 0.0002771890 -0.0398063977 -73.8241060446 73.8241167771 22 -0.2345572194 -0.7000360590 31.3789857005 31.3915506486 -321 -0.3991794306 0.0554905345 25.2952496032 25.2988449478 211 -0.7810930341 -0.1422369735 46.7683150621 46.7752617440 -211 0.6595146577 -0.6449841753 29.0325613260 29.0475482804 -211 0.7786390580 0.2869091319 43.8005611857 43.8086433892 211 0.2748563098 -0.6668204914 10.3376283300 10.3636979323 211 0.6986057413 -0.3500814092 33.0472913152 33.0568230480 -211 0.4251002412 -0.0302754031 5.8322071401 5.8494227685 211 0.1062065675 -0.7580672647 4.7481906731 4.8115216165 -211 0.2952296778 -0.4778352981 4.0688798498 4.1074651997 22 -0.5263913334 0.2164774596 2.8845559743 2.9434831884 -211 -0.0769586966 -0.0567339403 2.7654375052 2.7706074715 211 0.1379027186 -0.1141707228 0.5065561166 0.5550954854 211 -0.8726849001 0.2137649406 2.6927923968 2.8813271659 -321 -0.0918375192 -0.1729541914 1.5346804728 1.5534063283 211 -0.2203864170 -0.0817215438 2.9499468440 2.9625858217 -211 -0.3551147278 0.3708696564 2.9889505888 3.0359440343 211 -1.0459156336 0.0040836953 2.6311543444 2.8348561089 -211 -1.5283196276 0.7886132457 3.5044160488 3.9061596695 211 0.1151987804 0.3441067308 6.1560094671 6.1682746814 -211 -0.8178740981 0.8177424866 0.0176158427 1.1650797902 211 -0.0636272772 0.2193219190 0.0865768814 0.2442254920 22 -0.3471227420 0.5552574145 0.1029821892 0.6628803253 22 -0.0068387142 -0.1470876131 0.3060198320 0.3671640729 211 -0.0470609980 -0.0458981367 0.0811723593 0.1743276034 211 -0.1917391855 0.0990101391 -0.4748117059 0.5399007908 -211 -0.4672032006 0.1536159150 -0.7743450150 0.9278828952 211 -0.0811736973 -0.1042054678 -0.4389334731 0.4583781654 22 -0.1017957626 -0.1055507787 -1.2583733674 1.2668886597 22 -0.0724376051 0.5138857828 -1.7119926685 1.7889227768 22 -0.0127717754 0.0411112357 -0.3423721493 0.3450680231 22 -0.2620316128 -0.0353048502 -0.6591978746 0.7238291383 211 -0.7342559869 0.5751432716 -1.1501172577 1.4873369250 -211 0.1816369233 -0.1777653324 -2.1507934724 2.1702499467 211 0.0140842898 -0.0434922026 -0.0256150391 0.0524029497 22 -0.1630247878 -0.0488821470 -0.2199504020 0.2781091963 22 0.2159666297 1.3728867402 -18.5819665180 18.6404018257 321 -0.4416353882 -0.2335946613 -17.7741681191 17.7880381596 321 -0.3401619610 -0.4440599956 -22.2200284321 22.2325483003 -321 0.5674328647 0.2606919689 -151.4983984004 151.4997496303 -211 -0.0256828270 0.4543719973 -100.3340467302 100.3394779663 2112 -0.0130984943 0.1238780061 -5.4761588003 5.4793532759 -211 0.0822611120 -0.3674394559 -5.3511531949 5.3661996743 211 -0.0504505120 -0.1856302933 -16.9289668270 16.9306349991 -211 -0.0279085727 -0.1164727332 -2.2210426981 2.2286442600 211 1.6550133296 -0.8691234076 -22.0829678949 22.1623869529 -211 0.3692557119 -0.0516618026 -4.5427017861 4.6535479833 2212 -0.1410738018 -0.5215517757 -1.1836264478 1.3085753418 -211 -0.0183550294 0.1334025852 -2.6645425280 2.8285529560 -2112 0.0941597940 -0.0594795524 -0.1378777335 0.2255968489 211 0.0473134594 -0.2092443407 -4.7923816861 4.8225081589 321 0.8271538542 -0.4794459277 -7.8663026118 7.9254178730 -211 0.0308049354 -0.0262407001 203.8191809648 203.8191849818 22 0.0796073783 -0.3185386069 632.0585518261 632.0586371063 22 -0.2305720301 -0.1609910715 1989.7929685798 1989.7932096682 2212 -0.0433529407 -0.1098849443 131.1606952020 131.1608226562 211 -0.0631824116 -0.0915330261 3.8096788654 3.8138567297 -211 0.2140283746 -0.2389081709 27.4985053886 27.5164219267 2112 0.0355894741 0.0040200710 1.1278710227 1.1370380822 -211 -0.1227579543 -0.2076378359 1.6487059451 1.6662575670 22 -0.0092478346 0.0196532264 0.0816583254 0.0844976560 22 0.2082376013 -0.0030777195 0.6964310486 0.7401813030 211 0.5884444653 0.1092300346 1.9713629418 2.0602111391 22 0.1577740998 0.0516424744 0.8295784672 0.8460260310 22 0.2926759906 -0.0564000436 2.0072887188 2.0340914399 211 0.3493031772 0.7075012839 2.7635907752 2.8774093442 -211 0.2606424676 0.0934350716 0.5974011019 0.6730768678 -211 -0.0324068858 -0.0716933180 0.2777851439 0.3206782018 211 0.3028338049 -0.0324254342 -0.3105516234 0.4568170507 -211 0.9128661166 0.0777442689 -0.6865071179 1.1533171836 211 0.5395256615 0.1282431076 -0.4480876633 0.7264960929 -211 -0.1416095402 -0.1082945956 0.0023745992 0.5286417018 130 -0.8665977122 -0.5992301787 0.9870215181 1.5270741004 130 0.1442774215 0.4169936783 0.2644565053 0.5330260127 -211 -0.3742246649 -0.0199635701 0.2598724784 0.4769236143 211 -0.2527720173 0.1338598592 0.6529703801 0.7264036459 -211 -0.4653704392 -0.4352536942 0.7776039675 1.0149695262 211 0.1473823526 0.2192189738 0.0956411119 0.3136965469 -211 0.0795304379 -0.1216527421 -0.3353824838 0.3912616459 211 0.1889208086 0.1134976468 -0.0547504575 0.2270911719 22 0.1246812128 -0.0232633555 0.0173914436 0.1280197283 22 0.1845456359 0.2767539105 -0.3017758669 0.4703172094 211 0.0848930096 0.1624232976 -0.5064470382 0.5563780532 -211 0.5367276448 -0.1215767550 0.4429753584 0.7201141751 -211 0.1623548882 -0.0439059281 -0.4077965430 0.4411177402 22 0.1297490429 0.0827963403 -0.4738791101 0.4982483909 22 -0.3478478681 -0.1094824218 -1.4229653124 1.4689502443 22 0.3275759604 -0.0619942141 -6.6893387693 6.6990956291 211 -0.0022597869 -0.2273794071 -9.2593559368 9.2631991585 -211 0.1366049792 0.2523606889 -87.8565752950 87.8584534626 130 0.4645161392 0.0934104213 -239.7622402709 239.7627084441 22 0.0971414403 0.0826337496 -80.7544289236 80.7545296289 22 0.0939573204 -0.1400171278 -139.8865610077 139.8866626356 22 -0.3259000090 -0.1677619538 -69.2592741428 69.2602440776 22 -0.2392295351 -0.1814690010 4.6364764567 4.6461893744 22 -0.0893186801 -0.2082737363 3.7969960523 3.8037527255 22 0.0125904231 0.0087514016 0.2866231406 0.2870329781 22 -0.2559969967 -0.0542262326 11.0324076825 11.0355106008 22 0.0009644919 0.1277702098 1.6587126177 1.6636266723 22 0.0408683800 0.0689104745 3.3270573964 3.3280219045 22 0.2633995307 0.0088436740 8.8404968536 8.8444243533 22 0.5974361325 0.1783885440 16.9062108943 16.9177043126 22 -0.0270295059 -0.0418911001 1.4944879746 1.4953192852 22 0.0249488222 -0.0273078852 0.1045874078 0.1109355227 22 -0.0773693609 -0.0736025356 0.1688530029 0.1997866058 22 -0.4770703865 -0.1029293424 1.0127160514 1.1241816597 22 -0.4337886522 -0.0028358280 2.2835984518 2.3244359586 22 -0.6219854735 -0.0202729755 4.2545215494 4.2997942435 22 -0.0038173430 -0.0162062591 0.1086233990 0.1098920277 22 -0.1932892211 0.2021088512 0.7365727582 0.7878757128 22 -0.0990586410 -0.0492853145 0.0839710917 0.1388985270 22 -0.6139530339 0.0362616713 0.5076970436 0.7975020532 22 -0.0628880433 0.1994148176 -0.1116331282 0.2370298099 22 -0.1619390098 0.1216449145 -0.1662816995 0.2620521545 22 -0.0382634389 0.2413640998 0.1251453102 0.2745579504 22 0.0160740541 0.0376006803 -0.0296206312 0.0504932488 22 -0.0422933803 -0.0071904348 -0.0944327308 0.1037206489 22 0.0600840858 0.1135342853 -0.2021810457 0.2395356060 22 0.0271600890 -0.0055895242 -0.8427997340 0.8432557766 22 -0.0068810289 0.0093717095 -0.0011661760 0.0116849247 22 0.0111172517 -0.0286059541 -11.6071491255 11.6071896993 22 -0.0118095396 0.0793317356 -5.7654622000 5.7660200632 22 0.0064438112 0.0213396245 -1.4014557173 1.4016329868 22 0.2120185137 -0.1867552518 -13.8803223296 13.8831976629 22 0.2262978941 -0.2073692738 -2.7580412610 2.7750683505 22 0.0395248568 -0.1501422983 -1.0809556671 1.0920485695 22 0.0222802075 -0.0540982659 -0.0189633228 0.0615031514 22 0.0185755522 0.0599987725 -0.1262324391 0.1409947961 22 -0.0048896778 0.0138864255 -0.0670563512 0.0686534486 22 0.4535600814 -0.0091389501 -2.4343897781 2.4762984189 22 -0.0153727074 0.1055314174 4.5523233379 4.5557107851 211 0.0851240322 -0.1094761844 2.2283632008 2.2326741120 22 0.3804294898 -0.4211046710 5.6845440184 5.7128011026 22 0.0039404872 0.0354900433 0.1713398336 0.1750211678 22 -0.0611617349 0.3471286594 0.5075539402 0.6179401801 22 0.3571252576 -0.1056606841 -0.0045633337 0.3724559757 22 0.0084261000 -0.0429391382 0.0086908299 0.0446127704 22 0.0012857421 -0.0714624218 -0.0158866379 0.0732182773 22 0.3341160423 -0.4300538334 -0.2733248635 0.6093326763 22 -0.2184034297 0.0135086664 -0.0493195402 0.2243099624 22 -0.0507886455 -0.0075605129 0.0573712055 0.0769941756 22 -0.0225136518 0.0962688089 0.0199552211 0.1721991400 -211 -0.0516983653 -0.3739032857 0.1051091453 0.4159376219 211 -0.0054563615 -0.0077923311 -0.0639071514 0.0646112707 22 0.3311188890 -0.2832191460 -0.6048696012 0.7454663224 22 0.0447253877 0.0381528752 0.0752386264 0.0954822135 22 0.3740579866 0.4357205843 0.2128131282 0.6124224298 22 -0.0196772643 0.0669149995 -0.1741041969 0.1875555471 22 -0.2169439031 0.0280849857 -0.5426696465 0.5851015029 22 -0.1276083777 -0.0348945017 -0.0960563367 0.1634880550 22 -0.0559296581 0.0836116204 -0.0802221741 0.1286647851 22 0.1816977651 0.1657535405 -0.8403280867 0.8755795836 22 0.1175327548 0.1368908195 -1.1620661147 1.1759892431 22 0.0718481941 -0.1126042017 -0.6923306873 0.7050983263 22 0.0282183295 0.0290090132 -0.5314909197 0.5330294501 22 0.0344280690 0.1367449449 -21.8542400785 21.8546950077 22 0.0668483309 0.1737489540 -12.9298244750 12.9311646170 22 -0.0474111991 0.0906996749 -16.6008405636 16.6011560342 22 0.0457603527 -0.0144310197 -13.2939866196 13.2940732098 22 0.0118344508 -0.0114579596 0.0098860163 0.0192112567 22 0.0129232019 -0.0779379675 1.0831326396 1.0860099681 22 0.0045451702 -0.0331871098 0.3288454797 0.3305471106 22 0.1423345922 -0.1084272932 0.3982023751 0.4365555469 22 0.1664433983 -0.1877712394 2.2912968601 2.3049951723 22 -0.0166366521 0.0061388556 0.0911397073 0.0928488556 22 0.1562239676 0.0747468229 1.1616312901 1.1827341436 211 -0.2041257654 0.3799263403 2.4355919046 2.4774178216 -211 0.0085726273 0.2510258181 -90.1610473120 90.1615051984 211 0.1779302076 0.4225690632 -55.5105256192 55.5125945897 -211 0.4039338021 -0.0390360447 29.9089157976 29.9263810227 -2212 0.1066803599 -0.1067447791 4.4508974248 4.4556416842 211 -0.0562812811 0.0003622653 -2.9429701741 2.9468153903 -211 -0.3736738183 -0.2112368471 -29.9858391721 29.9892361318 211 0.1562463932 0.0052486027 -0.0188005144 0.1574609239 22 0.1766624141 -0.0470864773 0.1178388124 0.2175148974 22 -0.0152206210 0.0990728214 -0.1031065999 0.1437986863 22 0.0899580254 0.0142203191 -0.1026570936 0.1372338977 22 0.0220188071 -0.0692366043 0.1510330259 0.1675992546 22 0.1270289206 0.0246454779 0.4175375584 0.4371285382 22 0.0461778066 -0.0572841603 0.0351547472 0.0815458220 22 0.0672773548 0.0361242286 -0.0613810249 0.0979736320 22 -0.1356212796 -0.0879092012 -6.1407699502 6.1428964455 22 -0.0961168149 0.0208643146 -7.7482046363 7.7488288694 22 -0.0385117139 0.2647368197 -12.0006091307 12.0035906396 22 -0.0182642243 0.0420581511 -0.6645290926 0.6661091388 22 #SUBSTART -0.0799108353 -0.9455238996 2779.1584552750 2779.1587756510 2212 0.9206109930 -0.6259202692 -21.1638605593 21.1988663734 -321 0.0989462328 0.2293728293 -3.9692727945 3.9795739162 211 1.8800296893 -0.6806842242 -23.8433067630 23.9274026971 -211 0.2719983478 -1.1647432492 -19.1545774821 19.1923924574 211 -0.1719675040 0.3950528715 -1.6234428968 1.6854335400 -211 -0.6788119862 -2.4288268925 -28.5094443677 28.6211090583 211 -0.2642169144 -0.5302064975 -1.7526611865 1.8553249115 -211 -0.1472174352 -0.7488612567 -1.0147150130 1.2773380514 -211 0.4125205039 0.5734020897 -1.3131016943 1.7616894661 2212 -0.2614297703 0.1008168207 -0.1159766483 0.9872952567 -2112 0.7368048428 0.0719889148 0.2141070927 0.7831892570 211 0.1587919404 -0.9503792531 -0.7634560549 1.2372471611 211 -0.1221600489 0.3701228916 -0.1011386668 0.4261723211 -211 -0.2983325165 0.0202834879 9.8486424173 9.8541692171 211 0.5570105788 0.5883216759 288.5057912402 288.5084544912 2212 -1.1001086685 0.0317730093 -333.3195646970 333.3214108608 -211 -0.6670238576 -0.0570738994 -420.9775905334 420.9781459760 -211 -0.2228359804 0.6395519480 -215.2271355837 215.2282464128 211 -0.0393600166 0.5494134211 -333.6672637125 333.6680834582 -321 0.2304138583 -0.0928085944 118.1788339942 118.1791774721 -211 0.1666920003 -0.2384955829 93.1262763521 93.1268355167 211 -0.5069387845 -0.0452023916 69.8677671670 69.8713643780 -321 0.3883285872 0.1209483080 23.5356182185 23.5443070289 321 0.6115610613 -0.0391639572 0.8891500823 1.0888564648 211 -1.5049917253 -0.7867003230 1.7726374751 2.6280204913 2212 0.6449101219 -0.7816797148 0.9125459630 1.6553014738 -2212 0.1385533279 -0.1256206822 0.1682968578 0.2877172183 211 0.1227710073 0.0840671586 -0.2434915720 0.3176600981 -211 -0.1803515573 -1.0866665437 1.4729945366 1.8446039009 211 0.0661100132 -0.1664739812 11.2443419105 11.2466345591 -211 1.7636245714 -0.7094415418 44.4700462061 44.5108769661 211 0.1989259961 -0.4427521816 70.2892545943 70.2910690788 -211 -0.4541332506 0.6216566067 44.7101802665 44.7170257641 211 0.3128294777 -0.0321348846 0.4516536975 0.5677726484 211 0.4413222625 0.6003184411 -20.3002008113 20.3143491241 -211 0.2412124939 -0.2402749072 -81.2277963087 81.2286297339 211 -0.1422386869 -0.0991655084 -151.2852458681 151.2854096164 -211 0.7369303548 0.6728819731 -2866.2023657756 2866.2026934964 2112 0.3880992055 0.0406014383 -10.8638992846 10.8718009971 -211 -0.1495814533 -0.3184974957 -27.9643678350 27.9669298183 211 0.2525252796 -0.2992691959 -4.6880938367 4.7064885717 -211 -0.0402013889 0.0003581829 -1.3603103458 1.3680425073 211 -0.1461553155 -0.8807085457 -9.8486305498 9.8899955717 211 0.1103672694 0.1888951222 -2.8344956549 2.8463498913 -211 -0.0077301276 0.0070167693 -0.0160419833 0.0191398838 22 -0.4959795550 -0.1957474695 -3.4842598421 3.5248233201 22 -1.2019346655 -0.9174859797 -11.2544119790 11.3942339386 2212 -0.4266884665 -0.3193275711 -6.1626244046 6.1872006984 211 -0.5499778735 -1.3540484178 -12.9981909269 13.1137043106 -2212 -0.0635058872 0.0105776156 -0.3076033127 0.3438669314 -211 -0.3642963846 -0.1779341168 -1.8549966675 1.9039077780 211 -0.0277460430 0.0434793027 -0.1937959332 0.2005421561 22 -0.3187950271 0.3387944073 -0.7079097768 0.8470821518 22 0.2880289865 -0.0661064260 -0.0344827103 0.5763339084 321 0.6643163419 0.1408241042 0.2010347023 0.7218326447 -211 0.4747983721 0.3482570766 0.2531617924 0.6559627761 -211 -0.2794264147 0.0733491866 -0.2427439302 0.4023227870 211 0.3238565668 0.3861667930 0.1042259355 0.5332454392 -211 0.3747555462 0.0803009656 0.0502173854 0.4109641532 -211 0.2902554824 0.6463922371 1.2210180808 1.4186035767 211 -0.5110313130 0.2632622921 -0.8084714966 1.0017814048 -211 -0.0116068776 0.3964015392 -0.1808842257 0.4358761326 22 -0.0286978438 0.0088087966 -0.0008588793 0.0300316302 22 -0.5092992278 -0.5508714440 -0.5713926754 0.9533175891 211 -0.1321754785 0.1342725956 5.9677137550 5.9723183717 -211 0.1465787497 -0.0444265727 65.1656471402 65.1659765985 -211 0.1356401685 -0.0529533203 19.6396925585 19.6407282423 211 0.6284830892 1.5371217334 317.9857343600 317.9914548243 -2212 0.1852583369 -0.0795923848 -11.2846444091 11.2864456335 22 0.4262631399 -0.1796548486 -85.8724996565 85.8738589628 211 -1.0928848587 0.4646397115 -75.5030260001 75.5124936837 -211 -0.2150613751 0.0248481535 -33.2981866637 33.2991829284 211 0.2658471805 0.4482778327 -67.6668888780 67.6688959432 22 0.0233390639 -0.0045920857 -4.4716016945 4.4716649599 22 0.7134918386 0.1737064955 -132.6093494510 132.6114560895 211 -0.1149350540 0.1887568768 -330.2631193078 330.2632227390 211 0.0688286058 -0.1418063151 251.8699828150 251.8705158024 321 -0.0364345314 -0.2282604204 336.3064911921 336.3065995904 -211 -0.1220050853 -0.2144828032 49.2263628202 49.2294558733 321 0.2823307230 -0.1144488812 52.0267488879 52.0278280232 -211 -0.2189554070 0.1809468045 0.8768051643 0.9321750358 -211 0.0930259137 -0.1570687620 1.3891064494 1.4079847049 211 -0.6570073663 0.1990448690 13.0254507557 13.0772319518 -2212 -0.1680191081 -0.0809235097 0.9039187975 0.9334495233 211 -0.0767064702 0.1705495426 1.8810198355 1.8954383228 -211 -0.2949964308 -0.3913331538 0.4297666345 0.6665910864 -211 -0.0553091196 0.0731885402 0.3993957218 0.4329115252 211 -0.2015971165 -0.2296847072 1.1696262190 1.2169230622 -211 0.4002530472 -0.6474377991 0.4407174080 0.8905559074 -211 -0.1440235733 -0.8704552900 0.4647400615 1.0069251766 211 -0.0854034983 -0.1712295631 0.3257331481 0.4027346390 211 0.3127265734 -0.5791176120 0.6646066838 0.9457044714 -211 0.0731159930 -0.0860281270 0.0906140103 0.2010907030 -211 -0.0680747921 0.1832607360 0.2968064692 0.3818278928 211 0.0848716533 -0.1495416066 5.6217148731 5.6243438732 22 0.4273409205 -0.6492938636 6.3515674934 6.3989540088 22 -0.0564082277 0.5178513292 3.0930877546 3.1397489597 -211 0.3858638780 0.0818409207 4.3403522358 4.3604731606 211 0.1362416054 0.0721612747 1.7915199739 1.7981414965 22 0.1677065325 -0.0598861856 1.8433317541 1.8519135488 22 0.1606888923 -0.2716750238 36.0513707817 36.0530226647 211 0.2206733591 0.0829757962 66.0367585106 66.0373268393 -211 0.0736080783 0.0449905902 6.5713328280 6.5718990740 22 0.8382525396 0.4653913276 45.9488278967 45.9588298534 22 -1.0644723654 0.3192295631 102.1551941257 102.1613340534 -211 0.4213528730 -0.6006837482 44.7254184476 44.7316542764 -211 -0.0368627276 0.1157488682 29.8168302319 29.8174043392 211 -0.1439645912 -0.0798302692 21.4231433669 21.4237758202 22 -0.4640050805 -0.0856268113 87.9686619863 87.9699273862 22 -0.6053471397 0.2432703678 34.6275273660 34.6339538155 211 -0.2338232311 -0.0609424090 8.6780302195 8.6825155085 -211 0.0942800261 0.7037099875 18.9028191092 18.9166631975 211 -0.8227535215 -0.1059587418 40.2949115459 40.3143998949 2112 -0.7489089332 0.1100931653 29.4015316835 29.4154158800 -321 -0.7271755111 -0.2309875392 15.3448359929 15.3644268003 211 0.1193783781 0.0134494735 0.5693574096 0.5983976356 -211 -0.3904781613 -0.2296288581 0.6488968677 0.8035854259 211 -0.2776178911 -0.0283060508 0.3227889573 0.4489381047 -211 0.2218796029 -0.0455508355 -0.0296894448 0.2677063406 211 -0.1134476473 0.2661843714 -0.0886696369 0.3332665264 -211 -0.1108571409 0.1143393419 -0.0060437214 0.1593716328 22 0.0324535745 0.0888906491 0.0233734656 0.0974735908 22 -0.8159829411 0.1671532106 -0.3659836481 0.9097870007 22 -0.1077221596 0.3317448940 -0.2065456203 0.4053638262 22 0.0054873597 0.0630309091 -0.0198947794 0.0663235167 22 0.2371322143 0.3260399460 -0.4446520137 0.6002075864 22 -0.0353798222 0.3723894946 -0.6000737409 0.7207592850 211 -0.3279717163 0.0506917039 -0.4186434679 0.5521568922 -211 -0.0365174917 -0.1609858339 -0.2292479789 0.2824970827 22 -0.1585435001 -0.1482394811 -0.1727435157 0.2774009867 22 0.0770765184 0.3138724596 -0.4334561709 0.5406856413 22 0.0740953736 0.3099059312 -0.6942321252 0.7638652069 22 -0.6434029687 0.4412526157 -1.4654223405 1.6601608016 22 -0.5038128901 0.0022414855 -1.8709649161 1.9376124922 22 0.1713137528 0.4417987748 -0.6664273937 0.8177163508 22 0.1327035161 0.6070688632 -1.1005528513 1.2638668468 22 0.2221577460 0.1015578121 -15.2335032938 15.2354616161 22 -0.1104588418 -0.0004082762 -34.4037375258 34.4041979539 -211 0.5070705066 -0.0572918686 -47.7853747099 47.7883031589 211 0.2523656975 0.2498832584 -122.2020341496 122.2061621694 2112 0.3752695801 0.2230778764 -200.1358290804 200.1385106981 -2112 0.0412018538 -0.2130877438 -89.4451508144 89.4455230180 211 -0.4046127874 0.1168170631 -3.7425999966 3.7688051493 -211 0.0173224392 -0.0781860199 -2.6694834418 2.6743288413 211 -0.0039970851 -0.1184762702 -1.6976667816 1.7018005479 22 0.2153864447 -0.3052401229 -4.9590799200 4.9731314587 22 0.0340432783 -0.0145367706 -0.9573335118 0.9580489107 22 0.0248734173 -0.2348326470 -2.2676924765 2.2799548739 22 0.0429530786 -0.1000636098 -2.5905802710 2.5928678781 22 0.2631993921 -0.1558223388 -4.8749697334 4.8845557037 22 -0.0048911180 -0.0186228309 -1.0456701768 1.0458474322 22 0.2406553760 0.0871500155 -6.6811927913 6.6860935717 22 -0.3499602330 -0.7175420979 -5.4171899262 5.4756995465 22 -0.1016750116 -0.0862186957 -0.9512210791 0.9605170549 22 -0.1301707424 -0.4549447089 -1.6743581581 1.7399409047 22 -0.1411654776 -0.2017079648 -1.0895526356 1.1170222651 22 0.4457023098 1.5874126390 1.4438650733 2.2474321378 130 0.0092373176 0.0563992152 0.2939289065 0.2994334677 22 -0.0852576753 0.0697392186 0.1388864122 0.1772621372 22 0.4026282447 1.3468360268 0.8739855506 1.6611463855 211 0.3564036213 0.0633905345 0.2359817472 0.4541024896 -211 0.0089254977 0.0631119585 0.0682260785 0.0933679903 22 0.2013344182 0.3613057147 0.0833209563 0.4219238666 22 0.1330416138 0.3451070865 -0.5880604057 0.8545697408 130 0.0172731545 0.3584073417 -0.0297852796 0.3600574222 22 -0.0035898507 -0.0067907924 0.0152830765 0.0171048039 22 0.0557006259 0.0871143528 -0.8691871918 0.8753158541 22 0.0633957964 -0.0292576360 -0.2431137282 0.2529413393 22 0.0025349339 0.0448095923 -0.0889181416 0.0996030188 22 -0.0261714137 0.1762920435 -0.0093697503 0.1784702208 22 0.3543394371 0.1667147710 2.4879143855 2.5185448658 22 0.1965890554 0.1876294963 2.2457706138 2.2621533401 22 -0.0909742670 0.1833930938 19.0328598388 19.0339607803 22 -0.0280687452 0.0832697482 21.3364990146 21.3366799644 22 0.0821457670 -0.0305187131 4.4965119268 4.4973657652 22 -0.0289164112 0.0405384991 5.1769241592 5.1771636326 22 0.0267417810 0.2807673724 -43.6815705464 43.6824810518 22 0.1097720717 0.1703091814 -42.6622751443 42.6627563059 22 0.0040856808 0.1371818239 -10.5501208060 10.5510134379 22 -0.0419821365 0.0746048049 -19.2261285389 19.2263191218 22 -0.1571306470 -0.6331822175 -232.2231121200 232.2240284993 22 0.0245948175 -0.0726385926 -33.9904999716 33.9905864849 22 0.0835080534 -0.0411652286 -77.9257446266 77.9258002448 22 0.0925292912 0.0999769913 -105.4975725521 105.4976605023 22 -0.0428097953 -0.2354149965 -391.2767295531 391.2771192111 130 -0.0723368913 -0.0545505226 83.8887718639 83.8888207881 22 -0.0138969202 -0.2226353690 132.1371650631 132.1373533508 22 -0.2138015673 -0.1509608617 2.3268186182 2.5229698688 2112 0.3622205292 0.4128540894 1.2262726042 1.3436505166 22 0.0075634036 0.0578611248 0.0748489629 0.0949077557 22 0.0240375957 -0.1985177758 0.3501757995 0.4032495553 22 -0.0047318279 -0.0857233793 0.3634152196 0.3734190272 11 -0.0039338748 -0.0336301752 0.1449557498 0.1488586361 -11 -0.2613091544 -0.1916906165 0.0840059529 0.3347906312 22 -0.0021070413 -0.0123330385 0.0457025608 0.0473842540 22 -0.2635863447 0.2562528666 2.1336111161 2.1695436092 -211 -0.2129196626 -0.1481752280 2.2503469389 2.2695444061 211 0.0026227545 -0.1581032268 0.0193982628 0.1593103944 22 0.0547292786 -0.0316933816 0.0758740410 0.0987756775 22 -0.0083738512 -0.1402749299 0.0395162228 0.1459750294 22 0.1644861172 -0.6735558540 0.4329699238 0.8174326431 22 0.0086328734 0.0281334747 0.3542626270 0.3554828094 22 0.1935499165 0.0611291808 0.6060826855 0.6391670897 22 0.1652150214 -0.0973653132 10.3685982044 10.3703714847 22 0.1644037048 -0.0753690236 19.7503813147 19.7512093590 22 -0.0131488860 -0.0035294431 0.0514945953 0.0532639045 22 0.0115789246 0.0888776940 4.8605690306 4.8613953365 22 -0.1493534648 0.1615105664 17.0778843605 17.0793011084 22 -0.0144510465 0.1360450618 6.7497157593 6.7511021266 22 -0.0405016547 0.0832403075 5.9354938856 5.9362157137 22 -0.2191942739 0.0330186113 16.4311650853 16.4326602356 22 0.0380413109 0.0558848526 0.6765287670 0.6798981031 22 0.0935757232 -0.0233103885 3.0678403600 3.0693556758 22 -0.0914750333 0.6898058757 9.7089054985 9.7789261373 -2212 -0.0639123368 0.0275961699 0.8607485362 0.8747652044 211 0.0410981851 -0.0095704130 0.4310256363 0.4330863110 22 -0.7075040229 0.0546515489 0.7821227770 1.0560609701 22 -0.0939281609 0.1255094994 0.0280497288 0.1592542657 22 0.0327700087 0.1612413466 -0.0022568297 0.1645531483 22 -0.1497038515 0.2423153700 -0.2029323316 0.3497277697 22 -0.0683450386 0.0641843072 0.0095354096 0.0942422073 22 -0.3130310851 0.3835024487 -17.6822710528 17.6891993084 22 -0.1867396630 0.4353485971 -16.7091717221 16.7158852515 22 0.0290550015 0.3418836569 -48.2399611684 48.2411813927 22 -0.0477831894 0.0553136116 -7.2413867307 7.2417556305 22 -0.0892831779 0.1584026458 -3.2532855830 3.2583630812 22 -0.0155788244 -0.0190807147 -1.3260187939 1.3262475693 22 -0.0333814552 -0.0827739740 -4.9503152731 4.9511197881 22 0.0036968710 0.0520286306 -2.6113932677 2.6119141341 22 0.0579793025 0.0762842828 -4.5846119586 4.5856131217 22 0.0312644996 -0.0438184656 -1.0107953339 1.0122276097 22 -0.1467479272 -0.0512067586 0.5495087533 0.5710665077 22 0.0124921620 -0.0524702446 0.0993536796 0.1130501408 22 0.1880413720 -0.3179714008 1.0837835413 1.1534868523 211 0.0935552445 -0.0133970296 1.6702850763 1.6787686217 -211 0.2678279761 0.8570988357 -0.0111913704 0.8980398019 22 0.1940917721 0.3772493211 -0.0627191283 0.4288616972 22 0.1870214830 0.2998829156 0.0484846952 0.3567317813 22 0.1826713841 0.1297990003 0.0947431530 0.2432958694 22 -0.2459194989 0.2206222223 702.9726837095 702.9727613445 22 -0.0325734456 0.0890530233 360.7484548306 360.7484672929 22 -0.0583974132 -0.0800890923 204.5949041748 204.5949281845 22 0.0488220524 -0.0115910783 41.6286833172 41.6287135601 22 #SUBSTART 0.3427342114 0.2873884883 2762.8243895957 2762.8244293265 211 1.0465573566 -0.4282709795 1372.3460670752 1372.3468537019 2212 -0.4049533038 -0.2280589205 117.9630390897 117.9640371856 -211 0.1406675995 0.7590017056 9.5514345004 9.6285286395 -2112 -0.2947323302 0.5278422043 34.5648395760 34.5704078546 -211 -0.0072282568 -0.6129783650 28.7257555943 28.7476541820 -2112 -0.3835839675 0.1330811641 29.3149578793 29.3219242834 321 -0.6737165377 0.2501334482 0.5026629304 0.8880374550 211 0.0867214777 -0.7347657130 1.9891858624 2.1269088950 -211 0.0950660433 -0.6542487503 -0.2752857329 0.7296170224 211 -0.3646744434 -0.1687797384 -0.2261958697 0.6754847010 -321 0.4131002042 -0.0021718445 173.8803304604 173.8808772042 -211 -0.0114398907 -0.1086356575 -4.5226852397 4.5261566631 211 -0.1713059709 0.0458797677 -0.7004706274 1.1852854397 -2112 0.5511135102 -0.6288120983 0.4331458441 0.9519589610 -211 -0.7412514169 0.3715097812 -0.6026648909 1.0344843818 -211 -0.0055642603 0.0639107617 -3.7544941414 3.7576351059 211 -0.0076013747 0.5501336846 -6.5333900406 6.5580004619 -211 -0.1292389870 0.3074533973 -82.3183330486 82.3191269754 -211 -0.5647502607 0.6666143574 -3630.1680758661 3630.1683025924 2112 0.0135314117 -0.1293240441 4.7737003304 4.7775100666 -211 0.0399682863 -0.8301912179 195.8459402934 195.8477536866 211 0.0751585002 -0.0331918544 67.9440444520 67.9442374803 211 0.0601631722 -0.1563285828 21.4217371092 21.4228466548 -211 0.0036633105 0.0002991783 0.0077965673 0.0086195019 22 0.1343139684 0.2113779413 11.7166121315 11.7192884049 22 0.5462683293 -0.7672930527 224.1963710458 224.1983495430 22 0.2376151702 -0.2169606531 86.6660072019 86.6666045096 22 -0.0665840117 -0.5116262837 31.0658373541 31.0704349050 211 -0.0064568486 -0.2779312608 4.2928681454 4.3041240892 211 -0.0374937103 -0.1482495408 3.5187978215 3.5248832035 -211 0.2149157902 -0.0323557192 11.5483142513 11.5512024275 -211 -0.0725197457 -0.3839567041 5.0402294423 5.0572793555 -211 -0.0414612402 -0.0386137258 1.1294620362 1.1394622988 211 -0.6074297296 0.3728556959 13.5657629632 13.6168376510 2212 -0.1392136894 0.1499072624 1.9494595406 1.9651272030 -211 0.2359151935 0.0180823702 2.7768447578 2.8302810319 -321 0.2891581607 0.4921904312 1.5835325454 1.6890586046 211 -0.5096402479 0.2400293043 2.5433040241 2.6520592069 130 0.0533709949 0.1155201600 0.5910193113 0.6204651333 211 -0.8577368601 -0.9297966826 32.6544510480 32.6792424548 211 -0.3927584470 -0.1691945428 25.8210899445 25.8250082613 -211 -0.3476691479 -0.5482953623 24.2035252187 24.2304545240 2112 0.0860945911 -0.2593578041 9.6511684431 9.6560453008 -211 0.0361075568 0.1417067236 2.0100517089 2.0153640921 22 0.1465597713 0.0717938683 2.8626581563 2.8673063746 22 0.1252003006 0.6900336264 -0.3883436150 0.8016434895 22 0.0299439992 0.6179076553 -0.4586229502 0.7700918932 22 -0.4770738066 0.9051244713 -4.8239310311 4.9332180272 211 0.1203637682 0.6497040176 -32.4559226333 32.4629480564 -211 0.1408993573 -0.1673386530 -7.0308075960 7.0355945087 211 -0.5401134941 -0.4292467222 -29.6165226010 29.6248859254 -211 0.2585860397 -0.1157496748 -10.7260011637 10.7306498161 211 0.1838214949 0.2133291042 -44.2075345523 44.2086517621 211 -0.5207070431 0.6081982910 -61.9552474730 61.9605778718 -211 0.1216784498 0.5142957916 -161.9051122605 161.9060349761 211 0.2256764769 0.0193052124 -61.1283016153 61.1288805780 -211 0.4364724401 0.4316447473 -175.8258707616 175.8269977399 -211 -0.5882204236 0.4931288276 -320.7240592466 320.7250081280 211 -0.1428541720 1.4820730801 212.8157498744 212.8209584194 22 -0.0815200037 0.6768592210 111.1660382215 111.1681286960 22 0.1628578095 0.1792924676 75.7420813269 75.7440769510 321 -0.2835980228 2.8900214398 519.7906022488 519.7989520126 130 0.2472015518 0.0089663126 1.5132484796 1.5396719611 -211 0.2657238644 0.1711112786 13.3785032891 13.3829637331 211 0.1428619587 -0.4320135728 1.7257279610 1.8517081902 -321 0.3817806870 -0.1416244033 0.1578497596 0.4584869639 211 0.0480934351 -0.2527893561 -1.4577980112 1.4868995472 -211 0.4918018433 -0.3951184888 -0.7161098638 0.9645106506 211 -0.1104938824 0.1069748430 -1.0200889624 1.0410157498 -211 0.5654201214 0.5509289637 -5.7554153195 5.8109816659 -211 0.1305022814 0.1181095347 -1.3848426156 1.4029431786 211 -0.2272103374 0.0341552564 -5.6427970274 5.7250974835 2112 0.0515448338 0.0099387214 -0.3586079392 0.3624297202 22 0.9811697586 0.8393341779 -8.0927383541 8.1950954860 22 -0.1593149826 -0.0361199851 0.1224563730 0.2041604278 22 -0.0438614263 0.0444819997 -0.0122131777 0.0636524526 22 -0.2668638836 -0.1822766879 -0.2104829599 0.4101511729 211 0.0771582264 0.4775604939 0.1794423975 0.5345061049 -211 0.1403523728 -0.6434188758 1.6553018928 1.7869501334 -211 0.0300196911 -0.0503811116 0.8014616892 0.8156347604 211 0.2174349022 0.2344617884 0.9796916563 1.0399643231 -211 0.3148802613 -0.6046272522 0.9073756026 1.1434745131 211 0.1003237111 0.1924448242 1.0528942689 1.0840507293 211 -0.0807484241 -0.2164112780 0.4533342857 0.5275849777 -211 0.0725321981 -0.3184870228 2.1707370469 2.1996076958 211 0.4812598898 0.0212726595 1.1488614687 1.2535653420 -211 0.0811839514 -0.2410980898 0.6376188082 0.7005402575 -211 0.2318856645 -0.0148910504 1.6584630061 1.6804678016 211 0.5384749661 -0.2799051100 -0.2720583012 0.6650698301 22 0.0119727992 -0.0193939310 -0.0439995497 0.0495523244 22 0.3047328089 -0.1252600471 0.4576335660 0.5809134444 211 0.1285182994 -0.0496845313 -0.1056782644 0.1736473481 22 0.1058940959 0.0818613694 -0.1293171045 0.1861122158 22 0.1922488996 -0.0931589461 -1.0417465688 1.0725455362 211 0.2369662934 -0.0107733493 -2.6218928897 2.6362987690 -211 -0.0545904104 -0.3278539586 -1.1594864781 1.2142310360 211 -0.3647731938 -0.1909646722 -7.7591338001 7.7713038868 -211 0.3931371315 0.0125474283 -8.2510921943 8.2616412671 211 -0.4145396482 -0.2454427565 -6.8849141765 6.9031592962 -211 0.3446552950 -0.0876780193 -66.4679284674 66.4690263901 211 0.2608514254 0.2922587610 -162.2666308947 162.2671637774 211 -0.6254716219 -0.1058668316 -1077.0937460814 1077.0939328908 22 -0.2075903843 0.0304796577 -434.3625551762 434.3626058513 22 -0.0824102021 0.0022395463 13.1874797046 13.1877373881 22 0.2074576996 -0.1332647366 21.6038392085 21.6056970848 211 -0.0213761632 -0.3170262685 29.8895436326 29.8915583560 -211 -0.2092413002 0.3556256842 27.5733176639 27.5767579372 -211 0.3029471678 0.2985969581 40.2698706199 40.2751419343 321 -0.1339462321 0.0455984883 45.3205277026 45.3207485823 22 -0.1761968469 -0.0889598286 50.3563529112 50.3567397445 22 0.0436770341 0.0221419026 5.6511523219 5.6513644824 22 -0.0947974411 -0.0093641351 8.9655865330 8.9660925782 22 -0.0890158372 0.0194841587 6.4086548966 6.4093026949 22 -0.3272842510 0.1673654757 13.1167291421 13.1218790411 22 -0.0501883009 -0.0885686251 3.0052793106 3.0102403204 -211 -0.2475447530 -0.3097018602 5.0392358486 5.0567352482 211 0.0066214608 0.0291068651 0.5052564152 0.5250284596 211 -0.6938998983 0.0725432815 2.7361080485 2.8271056992 -211 -0.0628685198 -0.5174622376 6.2236129467 6.2652017651 130 -0.7006467615 -0.1821782765 30.8319504413 30.8404484861 22 -0.0800648665 -0.0673931008 5.5141975970 5.5151905998 22 -0.0128072372 0.0080912000 1.6543627836 1.6544321420 22 -0.0025915817 0.4904418360 16.6370961923 16.6443236456 22 0.0091144927 -0.0148645155 -0.0760029034 0.0779773629 22 -0.3412189236 -0.0355960977 -2.3030656386 2.3284777799 22 0.0047467969 0.0154538321 -0.2452425122 0.2457747806 22 0.2845936248 -0.1741846432 -12.5476440857 12.5520797449 22 0.0550366518 -0.0441084759 -1.1070785442 1.1093229889 22 0.1820670968 -0.1210783993 -9.6827846751 9.6852530928 22 0.0975800613 -0.2681382807 -5.4022090284 5.4097395864 22 0.1038570456 -0.1042221137 -4.5627087742 4.5650804914 22 0.0422596223 0.0146128360 -11.8087477701 11.8088324278 22 -0.0784397008 -0.0652366207 -19.0159417908 19.0162154698 22 -0.1712985220 -0.1714715574 -39.1960108407 39.1967602169 22 0.0155100131 0.0080834741 -5.2325022558 5.2325314868 22 -0.1147190137 -0.0360883320 -185.8909256974 185.8909645988 22 -0.1390297075 -0.0587886196 -89.3382468582 89.3383743811 22 0.1362506460 -0.1939444686 30.3942750894 30.3951992411 22 0.2098800096 -0.1142238662 42.8698202961 42.8704862222 22 -0.1388015284 -0.0948561030 1.2602362705 1.2714004098 22 -0.2248510597 -0.4056508198 4.0250631725 4.0516964508 22 0.0202840276 0.0946512183 0.2940661778 0.3095887786 22 0.0583348137 -0.0291710259 0.1006695875 0.1199510945 22 -0.0589899313 0.2391889050 2.9471694973 2.9607395993 211 -0.2697911233 -0.0689611315 1.7951036416 1.8219274840 -211 0.0733009520 0.0841871611 -0.0039237243 0.1116955830 22 0.0362333111 -0.0455633696 0.0382431592 0.0696520833 22 0.1166956992 0.1791022221 0.2512425902 0.3581872642 211 -0.4251776354 -0.1226755490 -0.0640302909 0.4684068478 -211 0.0720900098 0.1404923506 0.0908089744 0.1821574591 22 0.0800513601 -0.0096068133 0.0158023017 0.0821597459 22 -0.0373019302 0.0916613970 -0.1485613773 0.1785041414 22 0.0159376039 0.0551413597 -0.4304732849 0.4342831171 22 0.2066508512 -0.2607917259 -2.6981813421 2.7186208734 22 0.2364492994 -0.5970589968 -5.2317123587 5.2709773213 22 -0.1827887545 0.2479164978 -1.8725420573 1.8977060033 22 -0.0537564085 -0.0086480478 -0.3482564110 0.3524869756 22 0.0507230632 -0.3823314884 -1.7225905288 1.7652388864 22 -0.0483935838 -0.3133642977 -1.0821785803 1.1276744219 22 0.1131097588 0.0096459835 -2.1215891342 2.1246240413 22 0.0086919002 0.0326179450 -0.1180909900 0.1228208508 22 -0.0439283255 0.0220218133 -0.7374281948 0.7390635971 22 0.0851148553 0.0533067654 -0.6830113680 0.6903554727 22 -0.0842071091 0.0711040218 -2.1416604532 2.1444943730 22 -0.0835172712 -0.0129094788 -0.5581162232 0.5644780845 22 -0.2208879358 -0.0670857942 -2.4172156039 2.4282140061 22 -0.1180377049 0.0552859175 -1.0069895168 1.0153902301 22 0.1894842872 0.1628532498 -0.4709752189 0.7293274723 130 0.0785562627 0.0253139280 -0.0001404834 0.0825342419 22 0.0458788235 0.0219675309 0.1522494246 0.1605220426 22 -0.1480473798 -0.1666027673 1.4340161584 1.4512328728 22 0.0136466306 -0.0249319988 0.0532024320 0.0603186029 22 0.4157891803 0.0936957899 -0.2568511504 0.4976264231 22 0.1418266638 -0.0063315000 -0.0135554893 0.1426136099 22 -0.0768947985 -0.0490942044 -0.1424559040 0.1691648176 22 -0.1721282834 -0.2010473298 -0.1179303654 0.2897511792 22 -0.0494563696 -0.0116687747 0.0278507586 0.0579461608 22 0.0308970720 -0.1586086937 -0.0024388011 0.1616084605 22 0.0152581226 -0.0065457632 -0.0532151055 0.0557449977 22 -0.0675980383 -0.0769179437 0.0443643123 0.1115977466 22 -0.0245777935 0.0627860972 -0.3272350135 0.3341091378 22 -0.0116127410 0.1533383779 -2.5413722056 2.5460204637 22 -0.4364987732 -0.2620297104 -1.8384191061 1.9076099072 22 -0.1477212750 -0.0334517068 -0.7969918973 0.8112562333 22 0.2555346523 0.1467234791 -2.2179506139 2.2374384156 22 0.0189246958 0.0865547516 -0.5433150685 0.5504917190 22 0.0061125039 0.1482128240 -1.0065901670 1.0174616298 22 0.1248818754 0.2111566166 -2.7734620258 2.7842906113 22 -0.1137481023 -0.0841268217 -4.7668489513 4.7689479843 22 -0.0333541496 -0.0105385165 -6.3510020684 6.3510983958 22 0.1344632671 -0.5925017327 -119.4295122208 119.4310576357 22 -0.0200196144 -0.0166389467 -6.5099358614 6.5099879078 22 -0.2741378513 -0.0863519961 23.4493082217 23.4514849016 211 0.0798598960 0.7685933964 75.8384504232 75.8425154896 -211 0.1287150171 0.1050110676 9.0119864887 9.0135173685 22 0.1527709096 -0.0231235240 6.6634423898 6.6652335391 22 -0.0994405619 -0.0826650556 8.4563471291 8.4573357924 22 -0.0129514207 -0.2067113393 17.0224417157 17.0237016915 22 0.5854429357 0.3174027102 45.1473895113 45.1523008007 22 0.1657956342 0.1233707429 10.0405523070 10.0426788838 22 0.0927732778 -0.4370027253 19.7725632122 19.7776094168 22 -0.0169854937 -0.1484712213 9.9546088997 9.9557305385 22 -0.0329998175 -0.0109685452 0.5130544509 0.5142316273 22 -0.0180198978 -0.3352944341 8.4573842745 8.4640472494 22 0.0437357113 -0.0158949013 1.3931397333 1.3939167037 22 0.0594454806 -0.3656573142 13.2904491123 13.2956111798 22 -0.0645067406 -0.0552828763 3.6764747038 3.6774561267 22 -0.0155775810 -0.0752306551 0.8029314467 0.8065985499 22 0.0020224904 -0.2202271194 4.6949328941 4.7000956325 22 0.0210268069 -0.0032647372 0.1136161000 0.1155915365 22 -0.1276892243 0.0937364327 1.0290871969 1.0412067593 22 0.0230400538 0.0079552397 0.0455686626 0.0516781668 22 -0.4990637786 -0.1258269653 5.8157914442 5.8385209773 22 -0.0599863419 -0.0479550568 0.5119618738 0.5176900704 22 -0.1078217834 -0.0623841040 -0.0802077441 0.1481573340 22 0.0329858889 0.0117336586 -0.0445429971 0.0566553281 22 -0.0042120079 -0.0089249911 0.0043292746 0.0107767850 22 0.4437854217 -0.2434170862 -0.4643758283 0.6869077727 22 0.2447013372 0.1179531108 0.1646735685 0.3469709640 -211 -0.1132821072 -0.1006947007 0.1712834942 0.2679367068 211 0.1788045206 0.1699117647 0.2930191933 0.4076531576 -211 0.0270992065 -0.2055747302 0.3842812565 0.4584181559 211 0.0602935964 0.0890158741 0.0768323141 0.1321451781 22 0.0696528691 0.1329862982 -0.0533073905 0.1593064831 22 0.0000162854 -0.0528588383 -0.1152939303 0.1268335422 22 0.0792675213 -0.1091156129 -0.0211254001 0.1365131475 22 0.0130367070 -0.0499796049 2.1010759148 2.1017107119 22 -0.1864807060 -0.2650042297 24.2045509852 24.2067199490 22 -0.1637107915 0.0068238561 8.1876677980 8.1893071599 22 -0.1285508721 -0.0069016616 2.6288597266 2.6320099586 22 #END fastjet-3.0.6+dfsg.orig/example/data/single-ee-event.dat0000644000175000017500000000724511766120141021266 0ustar sunsun0.1242063452 -0.1002053630 9.4986070894 9.4999476298 0.0000037529 0.0000048977 -0.0000607608 0.0000610733 -0.0000000000 -0.0000000000 0.0000020866 0.0000020866 -0.0000000000 -0.0000000000 -0.0000000905 0.0000000905 -0.8742026933 1.3453786667 -1.8087495976 2.4218441315 0.4643879291 -0.6198799444 -1.0660543095 1.3250882498 -0.4043618795 -0.3298344757 0.3985268254 0.6703301738 0.2059456422 -1.2213699972 0.5685824653 1.3695487935 0.1623420371 0.2250505958 0.4074527625 0.5123477786 -0.2668731870 -0.6053577407 2.1783172463 2.2805624127 0.0788077509 0.1210347335 0.4529010029 0.4954383632 0.0149016587 -0.3985161494 -0.4386846425 0.6090658267 1.0922975836 0.2218902204 -2.0087844540 2.3015308055 -0.1300255646 0.1043107763 -0.3060157337 0.3484724017 -0.5012450683 0.1128377237 -0.7204897515 0.8958594964 -0.8208443566 1.2287512354 -3.2875977896 3.6069563184 -0.3773022267 -0.3703772125 -0.2122479172 0.5865707230 0.3199547088 -0.3105644101 0.2014522152 0.5088064941 0.1947256445 -0.1916712321 -0.1755922776 0.3535086572 0.3473568887 -0.7163606252 -0.1981826858 0.8314597590 0.0367065738 -0.6840218499 -0.0627649514 0.7018920769 0.1412911400 -0.1206029122 -0.0355328862 0.2350545034 -0.0923141381 -0.2895012866 0.2456626018 0.4134036882 -0.1323051208 -0.3852976164 0.2488647040 0.4973653828 0.4062662815 -0.6589287567 1.0840033003 1.4205433865 0.1070865248 -0.1534101251 0.0001625233 0.2334137990 -0.2168817781 -0.4272953251 0.7478526240 0.8991008468 0.0549754367 -0.0419545617 1.9385318304 1.9444556415 0.2158971711 -2.8473687472 8.6162389251 9.1255950694 -0.1178370054 -0.1436901368 1.1829878264 1.2056004303 0.2807019561 -0.3101701380 0.4021620642 0.5968360022 -0.1384527389 0.2418445243 0.0372740162 0.3118763978 -0.2976785577 -1.5508260484 4.4633950671 4.8265847216 0.0877598669 -0.1051666367 0.7891664811 0.8130346460 0.1481759290 -0.1904102505 0.6044504266 0.6656217188 -0.6822541147 -0.3903279774 3.6004972904 3.6879380594 0.6633145329 -0.3071083031 0.5588367568 1.0460763017 0.2281932239 1.1838267715 1.0465352304 1.6710460558 0.1852390155 0.0251505558 0.0866264130 0.2488573158 0.6344932147 0.0594826110 -0.3037729523 0.7196371391 -0.1342481155 0.0133465258 0.1607671636 0.2495322976 -0.1057314913 0.4155774745 -0.4835095581 0.6611694664 0.0497180264 0.3369978852 0.2706021562 0.4555047576 0.0735091906 0.0334283431 -0.1503948251 0.1707034231 -1.6974821899 1.9016843684 -3.8655394972 4.6324642051 -0.1692567659 0.8513885232 -0.9402281537 1.2867629353 -0.5045675091 -0.4363623176 0.3874277131 0.9180283793 0.1888159230 0.1343329703 -0.0309511519 0.2699525401 0.3154758573 -0.2868474805 -0.2072401822 0.4929245248 -0.7015760336 0.8466894132 -1.2553053263 1.6746232831 -0.5001798070 0.2489248578 -0.6777532326 0.8886576781 -0.8568044668 0.5627402071 -1.4196185813 1.7565839394 -1.6757616934 1.4984196859 -3.8952372709 4.4995324190 -2.5594230621 1.8487285082 -5.6748605508 6.4954372739 -0.0621933695 -0.0699965368 0.0141889125 0.1648892235 0.4750273300 -0.3869565013 0.0813764839 0.6326357805 0.0167562656 0.3288875755 -0.5449954120 0.8081727772 -0.0009589048 -0.0417282729 -0.0665294801 0.1561663869 1.7077900688 0.7290397378 -2.1589101028 2.8510381399 0.1685464225 0.3134004861 -0.5242263675 0.6335937544 0.8765257007 0.1111844532 -0.8359969358 1.2163676102 -0.1291371125 -0.0616675264 -0.1815062327 0.2676628299 -0.0714580232 0.4210123103 -0.4981657304 0.6698852960 -0.0498851041 -0.0882299269 -0.1370453288 0.2174260016 0.4431067290 -0.6372627753 -0.9996911034 1.2728115810 0.3867187492 -0.5202218404 -1.1797634604 1.3533306180 1.3153967045 -0.1894313864 -1.3539413560 1.9019804248 0.8733564110 0.4138422104 -0.8568879834 1.2991357114 0.2085376093 0.0770143994 -0.5433806654 0.6034579394 0.9769302819 0.2327191387 -1.1672429149 1.6182343540 fastjet-3.0.6+dfsg.orig/example/data/cone-sm-pt-problem-ev1.dat0000644000175000017500000000145211766120141022402 0ustar sunsun# cluster this event with # # ../fastjet_timing_plugins -siscone -sm-pt -r 0.9 -f 0.7 -incl 0 < cone-sm-pt-problem-ev1.dat # OR # ../fastjet_timing_plugins -midpoint -r 0.9 -f 0.7 -incl 0 < cone-sm-pt-problem-ev1.dat # # and compare to the output from running cone-sm-pt-problem-ev2.dat to # see the issue with p_t in the split-merge procedure 8.601000000226270e+01 6.600000000173625e+01 0.000000000000000e+00 1.084145751300000e+02 6.399999999965917e+01 -6.599999999964845e+01 0.000000000000000e+00 9.193475947600000e+01 -7.699999999909021e+01 -6.999999999917293e+01 0.000000000000000e+00 1.040624812300000e+02 -7.299999999720731e+01 6.999999999732199e+01 0.000000000000000e+00 1.011385188700000e+02 -1.000000000000000e-02 1.224606353822377e-18 2.017131573702792e+00 2.017156361224559e+00 fastjet-3.0.6+dfsg.orig/example/data/Makefile.in0000644000175000017500000002550612233506213017650 0ustar sunsun# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = example/data DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/CGAL.m4 \ $(top_srcdir)/m4/ax_prefix_config_h.m4 \ $(top_srcdir)/m4/compiler_flags.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/plugin.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/fastjet/config_raw.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_CXXFLAGS = @AM_CXXFLAGS@ AM_FCFLAGS = @AM_FCFLAGS@ AM_FFLAGS = @AM_FFLAGS@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CGAL_CPPFLAGS = @CGAL_CPPFLAGS@ CGAL_LIBS = @CGAL_LIBS@ CONFIGURE_INVOCATION = @CONFIGURE_INVOCATION@ CONFIG_CXXFLAGS = @CONFIG_CXXFLAGS@ CONFIG_LIBS = @CONFIG_LIBS@ CONFIG_LIBS_PLUGINS = @CONFIG_LIBS_PLUGINS@ CONFIG_LIBS_PLUGINS_STATIC = @CONFIG_LIBS_PLUGINS_STATIC@ CONFIG_RUNPATH_FLAGS = @CONFIG_RUNPATH_FLAGS@ CONFIG_SUMMARY = @CONFIG_SUMMARY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ D0_CXXFLAGS = @D0_CXXFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FC = @FC@ FCFLAGS = @FCFLAGS@ FCLIBS = @FCLIBS@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FLIBS = @FLIBS@ GREP = @GREP@ HAS_RUNPATH_SUPPORT = @HAS_RUNPATH_SUPPORT@ HAS_SHARED = @HAS_SHARED@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LIST_ALL_PLUGINS = @LIST_ALL_PLUGINS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_FC = @ac_ct_FC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ cxx_found = @cxx_found@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = Pythia-PtMin1000-LHC-10ev.dat \ Pythia-Z2jets-lhc-pileup-1ev.dat \ Pythia-Zp2jets-lhc-pileup-1ev.dat \ Pythia-dijet-ptmin100-lhc-pileup-1ev.dat \ boosted_top_event.dat \ cone-darktower.dat \ cone-midpoint-problem-ev1.dat \ cone-midpoint-problem-ev2.dat \ cone-sm-pt-problem-ev1.dat \ cone-sm-pt-problem-ev2.dat \ HZ-event-Hmass115.dat \ single-ee-event.dat \ single-event.dat all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu example/data/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu example/data/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fastjet-3.0.6+dfsg.orig/example/data/HZ-event-Hmass115.dat0000644000175000017500000016114111766120141021233 0ustar sunsun# pp->HZ event at 14 TeV (LHC), simulated with Herwig 6.5 + Jimmy 4.31 # for the UE. # # The Z here has decayed to neutrinos, the Higgs to b+bbar. # # The Higgs-boson mass is 115 GeV. # # The last column indicates whether a particle is associated with a b-tag # (0 = no, 1 = yes) -1.35194159364939 0.768191168836346 2.08738611387629 2.60663083650542 0 -0.968272678236199 0.98073841694168 4.30550720378218 4.65634820365748 0 -0.566057123565463 0.368716838979588 26.1114704136713 26.1205566468044 0 0.177670026733591 -0.205256392723429 3.69357399706879 3.70599585771167 0 -0.349882854860657 0.245776275558561 22.6361865740681 22.6406547253093 0 -0.0072774757217997 -0.811438393116897 -1920.26922278339 1920.26939931201 0 -0.00245119305047389 -0.0255610074026593 -65.9226213526076 65.9227645428582 0 -0.578729815777135 0.0730827216195882 -5.91431604455121 6.01662315186888 0 -0.944594071799585 1.90055649046254 -11.3940269670813 11.6279221726581 0 -0.503127387854872 0.363189711756463 -1.31807045583412 1.46350040880697 0 -2.74292698008799 2.37484388297042 -8.90364452542964 9.66029034277386 0 -0.434605318606232 0.13955845107916 -1.75937397741622 1.82297419661876 0 -0.99121325989638 2.48959720693005 -7.2440829812013 7.72507708717387 0 -0.702577773483887 1.3876513541954 -7.74188664223785 7.91199851695226 0 -0.303667259613015 0.136119735003879 -1.2102377578347 1.56786785227811 0 0.358982175652692 0.962964004236902 -0.00238757156387695 1.03713709859897 0 0.901496335932751 0.870756879643562 0.878216838413381 1.53676861866696 0 0.40816456512544 -0.518102892538801 72.8761796734588 72.8792893236352 0 1.50936424310078 -0.195397563781414 138.799645366476 138.80805954364 0 -0.766499922733435 1.32228438414859 13.2154631555174 13.3042814283166 0 -0.384652179228076 0.937629773172678 20.5823985373762 20.6077765914305 0 -0.339380109767762 -0.455743835642341 49.1487825049122 49.1666499751386 0 0.368920610675355 0.497724236334366 409.621172576895 409.621663336673 0 -0.368905629938279 -0.497668052320038 377.113997494173 377.114530468517 0 -0.449145350456371 -0.102218895599268 -0.870561611059541 0.994755021100519 0 -0.0798831342853646 0.0377745155471996 -0.547994869271067 0.571249688241046 0 -1.37012358788498 1.05086356792057 -5.83891916180602 6.10886649100855 0 -0.129220537035976 -0.0375975974023581 -0.228045729846199 0.297213697233794 0 -0.185729518605118 0.410714168474908 -0.175789444628518 1.05566761057168 0 0.798935208196712 -0.910166505387819 -91.2112130111785 91.2193526566891 0 0.877659869310977 0.0919643745803257 -160.402024739589 160.405211900344 0 -0.243311513595379 -0.346848622056797 0.532941174181584 0.694082383301017 0 0.493229644455299 -0.0681422348036241 -0.0101006419821567 0.517204654079973 0 0.104802691177738 -0.0861989380305043 0.0281181973696199 0.196683194297327 0 -0.503850890442969 0.78643336542245 1.80704551266254 2.32003084739916 0 -0.443367346864558 0.541050614179988 1.13800746923778 1.34307526085147 0 -0.00372480606688792 0.140290300509759 262.441194892298 262.442914294756 0 0.00379497752742566 -0.14032627410842 158.829701074621 158.832542135116 0 0.406265655708239 -0.219293916456053 11.3281788187476 11.3384415480799 0 -0.260935081513365 -0.183330211244141 1.57017034310032 1.60829467895998 0 -0.106065339524228 -0.0930462086690599 -2.34426857780095 2.52900241418646 0 0.158069073784655 0.46833976056477 -1.00475828525066 1.46089622084967 0 0.721310625100339 0.840141883325138 -4.39912039508158 4.53848735123526 0 0.349694949224077 0.153720648008775 -4.12532290463311 4.14532091007773 0 -0.292197209549193 0.0466480036490114 -0.285505728488144 0.434221776759663 0 0.811245075914447 -0.55445936335141 -0.696767639503262 1.21212561340087 0 0.148659671938761 0.174445757248141 3.23762261293752 3.24872451725091 0 -1.08021170019098 -0.920377317273679 15.4494731404786 15.515142662143 0 -0.642950082975997 0.160225761305582 2.872789196909 2.95151734851107 0 -0.693456451221634 -1.16281274574434 13.9779818476725 14.0440902749223 0 -0.9814887505959 -0.833661791130116 7.59794799056979 7.70756807312398 0 -0.933674532177283 -3.13100951843097 21.3991029252341 21.6475415353847 0 -0.294327533933989 -0.107031343159888 1.18770762728035 1.23620936675394 0 0.0959262113320887 -0.216799897283836 4.01791337958934 4.02716420819487 0 1.32570983713679 -0.505597823546188 15.2394042970305 15.3059073125446 0 1.3893349651732 0.182250099599768 20.3607340467403 20.4093404417376 0 -0.0206635491084977 -0.238585591917597 3.41679771609202 3.42802224096112 0 0.689656145013895 -0.109910866360628 20.2583349045083 20.2708489927043 0 -0.424693842932779 1.32578243416894 -8.39764016591794 8.51332155387156 0 -0.732132656505302 1.74112450313852 -6.99085271107189 7.24286091092132 0 -0.0215022896303594 0.595579369203977 -3.38408212574798 3.43880917872564 0 -1.51617771086492 1.85484638004683 -7.91521912831562 8.27092276557761 0 -0.245475838737352 -0.316071089023749 0.186143240051075 0.461549809811657 0 1.16927014238813 0.690685433530244 -3.03916130094199 3.3316993009596 0 -0.312419613377087 0.372074649740381 -1.86914737739971 1.93629472527875 0 -0.0386670305385691 -0.0451088571686279 4.56965362207686 4.57217059599769 0 0.0386903762634364 0.0450953584122497 92.5077006459937 92.5078250156723 0 -0.0165018368363565 -0.39644782205151 0.326219647374447 1.07081941963221 0 -0.029820723337834 0.0548878104718535 -5.2670898360597 5.26918939579915 0 -0.336787607099637 -0.0282146584009519 -9.83135004946679 9.83814746480735 0 0.702519518938511 0.371127778501582 -49.0544398702082 49.0610723513789 0 -0.416361052420532 0.214555425669056 -2.54171571269542 2.5880357264187 0 -0.617733636578996 1.45017935269976 -8.52721437866195 8.67280115333661 0 -0.102176241513307 -0.413598688628137 -0.35177855518689 0.569852433840618 0 -0.0892363838103483 -0.0379276691369091 0.0265487904941684 0.168303532222024 0 -0.0446532358747185 -0.0280861328848778 -29.4081542842486 29.4085113657407 0 0.202958545231936 0.0307757753897338 7.97418707299529 7.9780497980057 0 -0.158783304052023 0.20722356373157 -0.304040433407744 0.424351402799682 0 -0.248654583908356 -0.115429645701963 13.1783878767404 13.1819778455254 0 -0.350172592746259 0.0897903298969589 3.69108096571164 3.74145450137943 0 -0.310169784763957 -0.615331296778831 -9.30734580060086 9.37999549770886 0 -0.00385981225907944 -0.0843201766639559 -3.80383521750605 3.80733068398092 0 -0.24362850061628 0.128278853095545 -11.7145116604827 11.7185781364016 0 0.281192972363904 -0.108958551797618 -19.9934805818145 20.0018480939015 0 0.256924853266679 -0.107114290921895 -159.588038567566 159.591039498736 0 -0.32401348931474 -0.0852704348596055 -455.49853833778 455.499627918877 0 0.203378008332932 1.88530366573003 1.09877605416877 2.3839865638051 0 -1.1524909693105 0.131390929257033 1.7696604494247 2.12053693714383 0 -0.0108190537382637 0.729260890035956 0.632061604822694 0.97450498734017 0 -0.312932982241877 0.173289166158839 52.3973374070432 52.3987442914323 0 0.312976648392137 -0.173125399876879 48.8992941528653 48.9008013760498 0 0.037178461873113 -0.00766416859223074 -0.179466833221167 0.230497519799877 0 -0.254542137866583 0.896110046992518 0.3115677219267 0.992148752212699 0 0.424331282538735 -0.291052181527819 -63.3843298219813 63.386572041532 0 0.314951534992057 0.0174673254834337 -19.8295823983242 19.832582218503 0 -0.319312495908579 -0.0102764357237068 -7.27412953254739 7.28247940720416 0 -0.652593284643664 0.126361980964006 -0.596790937714347 1.02064916162858 0 0.102879836725066 0.249402233134716 1.09554368458473 1.13687355692295 0 -0.544475141682871 0.00469678426101422 0.603571932535742 0.82477518290617 0 -0.246231694769613 0.0322174640520605 -0.955004845950408 0.995952744204174 0 0.212040116303164 -0.00846423017282641 -0.0714303032554944 0.263846029413842 0 -0.0400138241622105 -0.373534709965601 -15.1391868281319 15.1444903145552 0 -0.277067609673154 -0.00154195296000921 -0.389457522170103 0.687143319784019 0 -1.15294546196329 -0.144584919964339 0.462369707626454 1.73139843591052 0 0.22419906227468 0.453900010091862 57.5666461981791 57.581157658604 0 0.0893672374357921 0.478468459623805 171.49136585877 171.492113411846 0 0.0690446779849971 0.0129392403866179 0.333552405887968 0.368336237524201 0 -0.177685195284075 -0.208495095873854 4.7194123708117 4.72928271091897 0 0.177847121617372 0.208412083878919 75.8779210885393 75.8785440931682 0 0.0792460198911124 -0.0137543955514376 -0.0468589314601218 0.167763701148825 0 -0.0540426156356482 -0.0560691684828232 2.17766291116001 2.18352006986448 0 0.175187506984217 -0.605845393257365 0.867000457220001 1.42470336872424 0 -0.144849026981828 0.521795604598768 1.36272537030448 1.7408684388453 0 0.736887372687445 0.0534026942190783 -2.00443536575781 2.3337540076402 0 0.179749308651625 -0.505354592319572 -3.89796249736724 4.0450161064847 0 -0.167478550990779 0.577674691551561 -1.85656507907171 1.95654562738253 0 0.441784612956258 -1.12991730692595 1.41106764411433 2.20854500090038 0 -0.108830592245239 0.327967668457767 -0.178610973015604 0.628513095681908 0 -1.44671483531926 -0.45380055503427 3.02421162861307 3.38570440728672 0 -0.0691999365288936 0.0965624502016721 -0.366738791863824 0.409987883189602 0 -0.218075972391207 0.111458029254148 19.5612145376727 19.5632132792974 0 0.550325546495294 -0.2515920882401 3.04523696954726 3.1077072878712 0 -0.548694925509371 0.250649245147446 1.52727751530148 1.64801321566854 0 -0.0906272271474045 -0.001456434564948 3.38955780988798 3.39364072155181 0 -0.0316600884225738 -0.637024226002804 -5.2426984109187 5.30437638143853 0 -0.621247562684071 -1.07507607736247 -0.886910723706801 1.53226222396302 0 -0.0101298580819802 0.340557583289261 -0.334750187813881 0.496346018622101 0 -0.35982060220197 0.0440922931837573 3.00338116431418 3.0283977940727 0 -0.254781150835212 -0.257723790252383 27.12167357808 27.1285869997906 0 0.25538603091932 0.253327948131567 28.5403781232483 28.5429641083838 0 0.0425147851422893 -0.0788950491637855 1.91072729922602 1.91791306701994 0 -0.284677993523514 0.505478727484839 -0.141786136463839 1.11330382076485 0 -0.0974611000337037 0.180351413853851 0.128782105415603 0.549845497912039 0 0.0948353819003351 -0.179733609754823 -0.176126087958418 0.300895196696819 0 0.112710084648234 -0.411090945856978 7.51297590543071 7.61847613663844 0 0.305705191332479 -0.101755376234694 -23.9421760656306 23.9447243496069 0 -0.242501666495898 0.133373242142247 -29.0808168774431 29.0824686972109 0 -0.129476249255323 -0.147812441125089 -11.1653757206055 11.1679204509863 0 -0.229434795591251 0.178460416857219 -0.651719023120275 0.726254591248618 0 -0.402219477494534 0.706767946148962 -3.95504446488529 4.24648562543186 0 0.403559088902198 0.147202933443136 -3.26984702405904 3.42917190987818 0 -0.181496602461359 -0.326444724131227 -24.4262061601032 24.4294603774905 0 -0.0474649543617805 0.0263457889468532 -0.80949616500107 0.822466208448249 0 -0.11696137171856 0.0282615141097094 -1.87848703958661 1.88750417706794 0 -0.234573728945833 0.178026039455829 -0.644106982239724 0.721852959061501 0 0.229888173983675 -0.167332368798137 -0.2166558743228 0.383755452031266 0 0.128535078542167 -0.00282342497931809 -7.54201931626069 7.54440616549068 0 0.134801839583654 0.0306134986673107 -13.4119491334523 13.4133876431522 0 -0.110201810591842 -0.0174168064838332 -7.55286397572318 7.56980329746967 0 0.148158532883274 -0.0738063108105221 -1.02368367343203 1.04572758691395 0 -0.130151159464755 0.0840005689946768 -14.5190174658141 14.5204711766842 0 0.0227946450943743 -0.0708949697107409 36.7166924953293 36.7170161245375 0 0.0154470453392846 0.484256084291043 36.6012219175511 36.604694619804 0 0.0990975238545068 -0.0294350612484335 4.08371767868123 4.08725536535685 0 0.0225083220857268 0.0936236929925136 -0.055326577336205 0.174793166377895 0 -0.202591079708356 0.240234676819217 2.65252723768476 2.71631672206747 0 -0.174112004212024 0.170417916110397 -18.7449595831165 18.7470623515716 0 0.670259452627145 -0.41660350527462 -26.769142077088 26.7853223557262 0 -0.319560638893508 0.247804231393392 -23.9146002268853 23.9184261550728 0 -0.234088102947196 -0.00833746276545462 0.593123915958826 0.652795923554303 0 -0.29401082875006 0.320661016892294 1.8941300665203 2.00517193937899 0 0.169328913148375 0.341246306418919 26.084910726699 26.0880656378971 0 -0.169261492751911 -0.341280869676765 67.1532932822073 67.1545094564132 0 -0.0991444723219491 0.118630143523587 9.66441452505116 9.66665871096441 0 0.219885903799088 -0.133902439503244 0.625620828272111 0.689855561086771 0 -0.219187513305782 0.133498622394134 2.991181264975 3.00541348120483 0 0.0359080858246733 0.171605103606671 73.6303243027393 73.638985470461 0 -0.339857177967739 -0.401207509958567 0.22617068056812 0.588084300599833 0 0.353668597415266 0.393221594446457 -0.469725305079193 0.720115380872008 0 0.20996566683364 -0.327229700731619 6.70346104118469 6.73285041653019 0 0.142694741535904 0.143457583673307 5.41874741800835 5.4242036326218 0 -0.140253376548178 -0.161199703685661 4.39175076628357 4.42457354890319 0 -0.31897970854895 0.42601984234352 1.11976899809436 1.24763911229554 0 -0.148718481085761 -0.0185083327994707 -18.8348535275257 18.8359668436013 0 0.00211147690121311 0.564959321537075 -2.79714413619439 3.09158069148664 0 -0.0140299713984802 -0.531527713264657 -1.68216887042128 2.12769429634057 0 0.0546169121111847 0.270844662580657 -1.29886938334727 1.33477380620609 0 -0.280286541645873 -0.187521029605472 -7.587417641023 7.65280490579625 0 0.289848765601466 0.202220698253991 -4.07893701141867 4.20064571771342 0 0.819210828982058 0.364755896205077 -5.94772646206718 6.01656738503044 0 0.281793540396003 -0.225681009198425 -0.625757834620813 0.735793564670867 0 0.167007948828443 0.0447050072245553 -0.0237386813292256 0.223458055424462 0 -0.0235805838498613 -0.258049273464803 -1.86217325174734 1.88528896349967 0 0.36430763283297 0.091334982041283 -3.12355983877383 3.14915353413987 0 0.323563392198079 0.495640067269633 -18.2616352649367 18.2717583904651 0 -0.291250686686158 -0.478108931132351 -9.34852309891132 9.36624358234411 0 -0.165358246783262 0.279236489028299 -41.4118184902135 41.4301665383205 0 -0.724185741807861 -0.129611191424723 -1.33898954699629 2.01989374635045 0 -0.111909830615684 0.147205341214095 0.716720309904154 0.753233702246186 0 0.112539838008908 -0.144842550636499 4.84047881484334 4.84596321916099 0 0.0453714293614444 0.0154156812402268 0.0998869340508095 0.174623050667635 0 0.00799288328915386 -0.146714231068239 0.629257415337066 0.661085192269425 0 0.717827848262637 0.195646837448568 -43.6830912693376 43.689649771255 0 0.271656391761679 -0.0480806918326975 -0.0339150980732438 1.22923795173652 0 -0.293022820514336 -0.0513911695052322 -0.708328080363197 0.780033137421933 0 0.406193701219733 0.0140685609641742 -1.41916070848463 1.48279740650056 0 0.115119746747716 1.21603492308387 -0.958688369758071 1.81490183356022 0 0.0261837188443096 -0.162146372074475 0.167269315616075 0.272829327521991 0 0.0679907875768919 -0.0681823961923304 13.4114847060393 13.4125095790113 0 -0.0677654899623503 0.0680668967299732 1.00431203426903 1.01788384732143 0 0.227652879468011 0.136893137578442 6.35037652348403 6.35746233489143 0 0.199671867478559 -0.0419878978205715 5.86236886046773 6.09969316805424 0 0.462064242218333 -0.571961688928216 0.690334469456705 1.01755826253758 0 -0.285378654164192 0.17666650278058 3.09953639518569 3.12077837717419 0 0.285763161930014 -0.176888829424359 2.9756146133962 2.9975743811536 0 0.304350815879223 0.0230705765181854 0.539197344044734 0.635118281387118 0 0.073942543752845 -0.123724578619197 0.776463917089275 0.801967125618476 0 -0.0706907271027424 0.121844342259187 -0.11392439759982 0.225923861969846 0 -0.0333114489088157 -0.0511904434527131 0.0729315985959048 0.165132469862969 0 -0.424077414065565 0.154805778913694 -7.59024556566089 7.66133048642599 0 -0.122927907898993 0.823765762743089 -3.44620027874306 3.57962534436453 0 0.128981497123992 -0.809473716798848 -5.77193968688578 5.85071718819459 0 -0.00574046106214689 -0.42431026304637 -6.70350273526304 6.71837040202449 0 0.40632659994608 -0.425797788270509 -1.0762540234938 1.32228882162952 0 -0.314664451743415 0.468478067959141 -3.96338526702405 4.00563700210254 0 0.317006320953215 -0.458436051557406 -1.26134449614973 1.3860470207605 0 0.116177851442199 -0.329114627941103 -0.639402692837596 0.741707031110334 0 -0.223369509204843 -0.195952271848809 0.684596270648701 1.41093233157059 0 0.517908925434152 -0.12381946562217 0.206120088373147 0.587814758952403 0 -0.509362049563507 0.119437885418129 0.76617040661246 0.938196132414429 0 -0.0986073629316823 0.16560836993249 0.375023138470659 0.444152770456765 0 0.0998235496979035 -0.166231851534416 2.88345766780277 2.89312037287587 0 -0.434217786894604 -0.75579651280242 -1.9648736578656 2.20549810450929 0 0.491824821038437 0.722487488387973 -0.93211745774849 1.36983310038346 0 -0.20041310033817 0.0249134120343505 -0.177016642324255 0.302656183558347 0 0.136070577287653 -0.204627374645224 1.2752020258315 1.30565974570037 0 -0.134846142854709 0.203919393110903 0.31048656715133 0.417598024313967 0 0.171518251924817 -0.306955990980235 68.5326038055512 68.5336479741499 0 0.31558061953808 0.142790936703015 2.19062312281232 2.40814464643065 0 -0.0705025037789344 0.614092134937872 -1.37667597811296 1.51551848779384 0 -0.158210788453983 -0.309195186283088 -0.353703613508783 0.699613111235799 0 -0.0431071791908955 0.373742045344223 -4.62245947153925 4.63970823563065 0 0.0402644253118414 -0.0882252624829239 -0.0398821924151698 0.174571747593115 0 0.235287946480787 0.00413448183106075 -1.22105231423763 1.25082607352271 0 -0.207609970285069 -0.0201381938524744 -0.0937508265850606 0.544074081811282 0 -0.598819066778759 0.201775009522386 0.867596674881668 1.08235909215529 0 -0.233018696349527 0.479621909621788 0.663027042534301 0.86221779909108 0 -5.52698670206093 6.83722921860417 9.53612629661934 12.9712169792378 0 -3.7961369843881 1.33640041030667 5.61553658575468 6.9101630220825 0 -2.00439319161357 2.38441139011304 3.0022074557276 4.3543058337138 0 -0.995867463097688 0.398913214192804 0.663188799748776 1.26892983475308 0 -95.9584165205075 103.430971420589 132.073488030328 193.334474869634 1 -1.24468770530851 0.529151466991264 1.44584108824113 1.98473801699657 0 -1.50087349217741 0.275827537013186 1.43250589120415 2.37182665640433 0 -0.211885458276547 0.229803222196278 0.468991574218108 0.580635729135258 0 0.0636742079413601 0.602294411270979 6.07878366092015 6.11037178568334 0 0.167626100843298 0.187669543309976 -317.980134451409 317.981622135444 0 0.359043384921341 0.0740504320790877 -123.213086858771 123.213711285193 0 0.141580826886059 0.0656362693434293 -82.3016880102684 82.3071989219343 0 -0.039856904098701 -0.0146311852452889 -3.08009010817081 3.08354301149468 0 -1.37076081544595 1.29205024509568 -14.4998653328255 14.630044212561 0 -0.156639571244845 0.394220283744618 -6.3600241068749 6.37568286635442 0 -0.815308358946835 2.26458172698462 -18.2098875498794 18.3687583221625 0 -3.25976742883009 0.916270987378405 -9.47718303687745 10.064895146585 0 -0.547542841323219 0.443570114687089 -2.41230548745008 2.51674292984198 0 -2.75085397495335 2.37933596809689 -10.4628055201499 11.1167229154088 0 -0.122882735140884 0.33833313135822 -1.10723663430853 1.17261341610321 0 -0.843306710558775 2.20124415073388 -7.58706966565439 7.96039845482666 0 -0.551231116247901 0.885034715691732 -1.6706871462665 2.18200126422959 0 0.13126143451187 0.21296331439549 -0.210761073760435 0.355644418740232 0 -0.215838142605681 1.48884035196055 0.488706943776229 1.58793764336783 0 0.571822030623274 1.66432711238222 0.462297255313716 1.82487361449698 0 2.11924943026649 8.66025841412028 3.68036919658514 9.64654814714044 0 5.97093397767765 20.306633960056 7.91679411602738 22.5988173189207 0 0.202006489872156 0.946391407242814 0.411943524736262 1.06036804253318 0 0.277978241139557 0.600570000923262 0.59670671526553 0.901939530954812 0 -0.0277986022285104 0.961696255330872 0.0502513091737585 0.972819224870149 0 0.00662195731261594 -0.792740876290798 110.292185415191 110.296139395486 0 0.186287263189711 -0.32475867751819 24.883981298402 24.8871889972968 0 -0.0287882879923531 -0.400667727944566 39.6392717582748 39.6415528039077 0 -0.284639571009353 -0.348951454914331 43.3197154363085 43.3248687502734 0 0.176272903822504 -1.14967156505531 215.289796786126 215.293504632625 0 -0.0840738295132637 1.14081438743431 59.9873948476459 60.0086731479106 0 -0.166766841407823 0.00730506272131323 9.6267424798996 9.62920116637605 0 0.188058490247279 0.797409741262252 -4.78927278037502 4.8608478520681 0 0.508195770070441 -0.385579836213503 -2.56311238260205 2.64498764109776 0 0.0163328420819345 0.0783998982841034 0.00981647073154113 0.157255426866784 0 0.1937672805684 -0.254179056564128 -0.873934745018316 0.940954023991041 0 -0.0689429053134516 0.147621530467691 0.0260229077115656 0.216106957491997 0 -0.405608203020795 -0.0282787764845303 -0.542578112712002 0.69223442333601 0 0.0161789804178439 0.571149382104358 -0.646344988768338 0.873907893025057 0 -0.84016941745759 -1.0779471758841 0.154602177713845 1.66496462133025 0 -0.181745102644792 0.0469383479339246 -0.0595745901743146 0.241378142209624 0 -0.259046633087255 0.169652266744677 0.229015251207182 1.01424140514521 0 0.0764020718895748 0.0482221714804887 -0.187783601668515 0.250808931991891 0 -0.173412507265787 -0.203021826409182 0.0959594561911928 0.980228835429379 0 -0.0838583940057923 0.0870167085629023 0.28549949842155 0.339991009165402 0 -0.0148471289672919 0.0159466742679109 0.171900783155909 0.222495837732738 0 -0.570624630605528 0.16960939371119 3.28891982372163 3.34527326346562 0 -0.175085194177241 -0.0491042530993417 1.1735922259456 1.19524238800859 0 -1.82497265695895 0.351755392641504 9.06027995831797 9.24999512231755 0 -1.13177727835254 -0.162408209075555 3.87446363577544 4.04205943598265 0 -0.414109734721107 0.372007753616985 3.17896013815651 3.26547693760498 0 2.94680056345628 -1.10660995989644 0.649924115602629 3.21715717755134 0 1.21490817820482 -0.802040155260952 0.0852818287407882 1.46493107937996 0 1.77795487733185 -1.43226544802763 1.02946368089329 2.50809149157687 0 -0.341516273907999 -0.0134469291181712 0.475996925589837 1.26022765737691 0 0.061548036633198 0.21101155902741 0.142069738687185 0.296610239889361 0 -1.501398379574 1.1769326223646 2.95919586130261 3.52359013255287 0 0.094336017539337 0.762353256014157 0.239296989587407 0.815821316702477 0 0.358872908198817 0.0456797939854291 -0.948318689568072 1.02453137077482 0 0.0394474888166366 -0.0974108328809553 -0.217951728567795 0.279334415391641 0 0.10036541715623 -0.48392790815498 -1.27200913042571 1.37176763704302 0 0.162034556105839 0.119928039163851 -0.61414016785701 0.660322404682394 0 0.403691731285242 0.410590880394071 10.1061556616941 10.1838460629255 0 -0.00794917555590997 -0.0247385155492555 0.339263264421989 0.36776967116643 0 -0.414945334433965 -0.00825669654085456 3.29283992263416 3.50140386840758 0 0.0245776793622672 0.0325098896634095 0.0300980404038154 0.0506640630517449 0 -1.1624901405005 0.682381464639258 12.4425221253809 12.5161042028075 0 -0.414344845240917 -0.121820027323342 6.69079502983195 6.70617176084528 0 0.147230729246141 -0.44961874664681 2.38603074940547 2.4364844401266 0 0.162942615756394 0.00404591638364224 2.17047393261762 2.18105560280831 0 0.278577657392704 -0.221689458191896 4.50642646743631 4.52248281742256 0 0.0537262514422097 -0.234615344266023 0.19452065946318 0.339483345272027 0 -0.647632127352432 0.069083828887173 1.10862868563107 1.70236423846274 0 0.00659399809836789 0.065192228592857 -0.0493215206870099 0.161882379469489 0 0.0257746991411376 -0.00819604568849996 -1.31778174480594 1.32542824103175 0 -0.0349329324685107 0.0836577650307032 -1.22535491157385 1.23660558612636 0 0.129990787154433 0.335873433503592 -3.17741811110717 3.20061150739517 0 -0.518774837185514 0.380593339976793 -4.23199012319753 4.28289607740755 0 0.171661023231957 -0.176876425801265 -5.23216614097945 5.23982777280065 0 2.44205470916645 0.287079776367184 -46.5564147813881 46.6307425835158 0 0.495351900540577 0.0606068953120473 -15.0834047676749 15.0923035309904 0 0.900754771087057 -0.326952833969342 -17.6461507271601 17.6970405263657 0 0.348394988541013 -0.00513340158242408 -2.49042634533788 2.51855287542376 0 0.0209410595511631 -0.215559840561657 -1.11075398172339 1.14024504631788 0 1.37724718297831 0.28670500021479 -16.6771337415793 16.7369435435384 0 0.148801439370335 -0.112175722477714 -6.36701849573156 6.37117488274022 0 -0.117760701399215 0.355878630365412 -1.1122484012068 1.18198708674498 0 -0.375142357535545 0.0841295844396187 -1.40665651845482 1.46491362243879 0 -0.0784846423776611 -0.0302317862632481 -0.401861907472097 0.433643376021044 0 -1.15630820265013 0.566970460283891 -2.84704241664998 3.12767873749122 0 -0.264901926039206 -0.551846812224049 -0.646205869467651 0.900283044778456 0 -0.00840975421097129 -0.174907727728753 -0.114868235660948 0.249154067093001 0 -0.257977036093309 -0.36863473479354 -0.51784504569487 0.699161505375199 0 -0.0878590721920984 -0.352815705653115 0.443656738168512 0.590346698935706 0 0.223540237473085 0.0532154381880426 -0.139105817327546 0.30061960921642 0 9.88467242205113e-05 0.240891206838148 -132.558571429548 132.562120078892 0 -0.00874899363388047 -0.200602426542472 -21.7402902961114 21.7416655254955 0 0.702856656437135 -0.391342302165576 179.891638126136 179.893490998887 0 -0.0652009601900081 -0.011531706026474 9.87465493396659 9.87586320253903 0 -0.645176834287222 0.516960352207511 389.334079531865 389.336087894085 0 0.00784517233896085 -0.116441196914346 82.4501571963372 82.4503579227203 0 -0.169639109487585 0.777984970227844 49.1880263988921 49.1946690083832 0 -1.07288112940029 -0.115026797111429 74.6051037181786 74.6130369685283 0 -0.0216484939074699 -0.771780330548377 3.68091385167472 3.79327830006719 0 0.0140206496421592 0.0696083934299564 0.217759011525509 0.268217596463868 0 -0.0120983088879267 0.120669778741907 2.04656116311296 2.10875321015567 0 -0.0303015660604642 0.593273159080086 1.53511732088368 1.65195526572836 0 0.157972061654835 -0.207032686854148 -1.16142697028198 1.29011849916506 0 0.11901923444039 0.145931491754091 6.63558051313786 6.65688108303635 0 0.0145835742650779 -0.0582139210025272 0.510226279642743 0.531179817081662 0 0.157817977086299 -0.0944211233178732 0.625588141494364 0.665884363533634 0 0.144039015521918 0.0707815083953494 0.236497283829297 0.316081991865844 0 0.530703561133972 0.20431409075807 -89.0596946668088 89.068498309743 0 0.0325138906194748 0.149249161855612 -36.2440050079526 36.2445956146125 0 -0.0673416261747758 -0.124358768280927 -63.322404941796 63.3323910341355 0 -0.254092785940086 -0.107897787691238 -14.3415848084534 14.3449203441293 0 0.404358367078005 0.690838632431246 -10.5713047783204 10.6601142072318 0 -0.0737408431392637 -0.0557955629375088 -0.760537796998814 0.778747958170172 0 -0.533990809381533 0.206847197243928 -4.2228734348268 4.26380953830932 0 0.166914533188414 -0.124067167309468 -2.79524123921836 2.80644018174639 0 0.475346690993771 0.488905297172668 -43.005515034875 43.021181969653 0 0.191122003107008 -0.152904965808053 -10.3078717055128 10.3116606929414 0 -0.19711048818718 -0.111198265433385 -35.6302016560117 35.6433062359786 0 -0.347798505164961 -0.162366431857885 -13.6329874769706 13.6390576582852 0 0.21275720270237 0.188320721655984 -171.261063209868 171.26202199415 0 0.12763173494552 -0.0273525780794342 -83.2354715362073 83.2356833303991 0 0.188810612499035 0.223509600329168 -11.9704084176764 11.9747970112111 0 0.254061898541833 -0.40970662684706 -45.6475378412469 45.6502967977355 0 1.04125754516292 4.42336890075714 1.06058907112554 4.75979090698689 0 0.23733227153288 1.34275471756467 0.614652085644761 1.50177682278046 0 0.264790493849834 -0.374178330848006 75.6674022892847 75.6689194611781 0 -0.108353932676945 0.359864460338997 25.9482702782894 25.9513670781444 0 0.668956808162464 0.201773530210336 42.9824584040174 42.9883638442621 0 0.369413501644428 -0.0316538211839582 16.94598024709 16.9505732774664 0 0.100435769133473 -0.348933177677497 31.8510509740295 31.8534263406832 0 0.361732833775876 -0.0114554241488117 2.42530534595389 2.50215173796205 0 -0.0221387527724489 -0.0785846238808762 2.33710069234067 2.3900680442247 0 -0.336184543415043 0.102827236520561 0.685172736582057 0.782646121600933 0 0.0902302492866383 -0.182096397750731 -4.35423689436215 4.36106628344315 0 -0.51902432470145 0.480507382121928 -94.9358276319664 94.9385583488645 0 -0.170959301317348 0.0508879153481333 -0.114394637464855 0.253737227493544 0 0.472773293614412 0.163334780665874 -48.9830161937344 48.9880979800428 0 0.0853214497652306 0.137968328894116 -3.15908843371472 3.16632824048582 0 -0.344536940105759 0.822173242001585 1.21315769371989 1.77460359452262 0 0.0516836335762493 0.111256772141095 -0.0372079512586681 0.189508532429986 0 -0.594682448566213 0.397718038365285 2.99261501412993 3.27297387179759 0 -0.355431989636731 0.177561572127807 1.49229589582839 1.55016987851651 0 -1.44584174172002 0.676467362795999 4.65897088994766 5.04963985630736 0 -0.564782734231907 -0.0157551322520476 1.29456833550373 1.4193712415248 0 -0.127514901821816 -0.41239611504582 30.2471936753479 30.2648615993002 0 -0.096174157772385 -0.0417653493695425 17.6066619525304 17.6075273309064 0 -0.089289285897956 -0.478508421701203 56.2131763893411 56.2174867643004 0 -0.0684205739089917 -0.0132591891147933 22.3439061600609 22.349556485522 0 0.61096144197613 0.267242692251061 -21.3531177375524 21.363954438594 0 -0.369970675383604 -0.487671631019108 -24.8654885511047 24.8733882373485 0 0.0309116581108542 -0.0323024599229912 -4.69213487506153 4.69442312219435 0 -0.103337303663064 0.271279696466474 -2.06802494453747 2.09295920365699 0 -0.168218325058114 -0.0195090620922178 -1.40415140782204 1.42075289367211 0 0.353911115602939 0.276263010050743 -1.36651934400734 1.44513986552024 0 1.65101845200837 0.654512676115114 1.68992710185587 2.62496723304396 0 0.193145433521007 0.200080132001304 0.602644195748329 0.67730114777758 0 -0.0899661189785175 0.0989325088691212 -0.418134379170667 0.660634426380911 0 -0.816307140931979 -0.325906972906191 2.51429927391391 2.66692578496842 0 -0.161398845793026 -0.584889786404411 0.945067846885781 1.12307563631344 0 -0.155513557314358 -0.0365554546987987 -0.0224694980092534 0.213320020198738 0 -0.0219882557200496 -0.0947299588354756 0.161171173796465 0.234335615418381 0 -0.0733165685682841 -0.190927976556538 0.190563245450955 0.310423520976427 0 -0.211861269112404 0.0848615619617434 -0.349966423050303 0.440503080819112 0 0.140302705014017 -0.235047218999166 -1.29510182329119 1.3310524263851 0 0.064210410423483 -0.0506843931209051 10.5479025387944 10.5491430759716 0 -0.0318834756825618 -0.0511953044275585 7.20712267044343 7.20872627354768 0 0.185799658160963 -0.0096076010449427 30.8104045896275 30.8112619734393 0 -0.395241226986635 0.478955390339224 3.33783275018259 3.43138700681465 0 0.226636346270508 -0.152937560375166 0.532549332357339 0.613663036705488 0 -0.309791677996604 0.687310841370368 35.8009623467018 35.828913446913 0 -0.165962213964094 0.0986459176972146 8.56033710174812 8.56357783695037 0 0.478370811459129 -0.593321071596369 32.202979565058 32.2342446499806 0 -0.00199866162956808 -0.19299317101041 3.94652626229089 3.95354771035543 0 0.130852632619652 -0.0912867728545376 1.0803958175778 1.10042283209741 0 -0.288539897736192 -0.209436003425333 4.25721907389824 4.27440203305437 0 -0.0161575921262302 0.371844050403921 1.938132479251 1.97815726703711 0 0.0912372811667943 0.0011036945822707 1.95352022939292 2.01797972615282 0 -0.304546580979809 0.660709342607385 -1.54190944560762 1.77607590568341 0 0.661726889905353 -0.311191903666256 -0.597146935489033 0.954351677944343 0 -0.054488629918803 0.175976525380518 -0.334442509821601 0.404979185948117 0 0.225565685260451 0.188112071586892 -4.29088768004624 4.32962568145519 0 -0.286928106496936 0.149039693328736 -1.31372677549982 1.36010969927083 0 0.22478426571691 -0.315119607185147 -2.66158902319188 2.69297308967652 0 0.116721848679887 -0.0552996901622659 -2.88760315506076 2.89385794601396 0 0.191368371843765 0.711969994034324 -3.36917409156663 3.45171507664395 0 0.271268372376162 -0.322289200831306 3.91524878508304 3.96867104334919 0 0.0964585701934133 0.220739198388262 0.82861392351014 0.874134353863134 0 -0.354008687785606 0.182009668434564 0.475414218872574 0.635569142452312 0 0.262786807388516 -0.62255737115889 -0.096152748109557 1.30792447315995 0 0.0139201839341625 0.118954137380119 0.0616599728759806 0.193973182362088 0 -0.249152508592057 0.315835503435503 2.91780606556822 3.14963613200553 0 0.0585709223802705 0.113577794791316 1.30342305755892 1.31708842538927 0 0.408598868655446 0.0681283226098326 -18.0888932296734 18.1004786734283 0 -0.39111800691048 0.203503036278105 -30.4045693250447 30.4117730914354 0 0.0626806630111035 -0.230707327307569 -19.0584257518083 19.0604361612865 0 0.126481896935904 0.16102606405638 -3.90499443389408 3.91268810317175 0 0.0685756538076034 0.0199098395952226 -40.0635720412147 40.0636356778015 0 0.0311284146733581 -0.0517099716414257 -2.51109520808973 2.51569509844862 0 0.503636987555937 -0.469999097132447 -2.08246299520205 2.46089170483499 0 -0.110482695955846 -0.202577560997669 -0.590122905800217 0.647849317878415 0 -0.448988542463316 -0.263095445267312 -13.5553902634616 13.5978750878302 0 0.0654711641778511 0.13686165649241 -4.01008246590968 4.01537778479845 0 -0.159181819873146 0.268819991005651 -9.6711937520839 9.67717992134533 0 0.311258319922533 0.202840755044297 -6.02804776240154 6.04109805617507 0 -0.252058055924762 -0.22106146509121 -3.83604516116979 3.85319655589214 0 0.229488132531387 -0.599604848220804 -14.7939601833685 14.8084998661064 0 -0.291869118478246 0.185854535788401 -9.72453734853663 9.73169234608134 0 0.0817945243647999 -0.159505418509708 -12.5216108668621 12.5236716185298 0 -0.193407986582308 -0.00761488497977078 -10.0902218321798 10.0929807717416 0 0.24893443655879 -0.548192409218007 -27.9445150068587 27.9513259406451 0 -0.339383870758188 0.0435402600595734 -6.24333862030933 6.25416452407696 0 -0.057977632743311 -0.0170217474101816 -3.42003827519453 3.42341828213834 0 0.394361085927767 -0.435119575291846 -74.9073686074672 74.9098004348614 0 -0.477023377755351 0.511565973902745 -126.201046295874 126.203965914907 0 0.00518087281549667 -0.310526286234673 17.9581842200555 17.9613767149886 0 0.512771564087314 0.46963023034236 1.29045950322218 1.47249880969202 0 -0.0325305958279271 -0.12605021717127 0.961597131049234 0.979711967751727 0 -0.132409048877173 0.12924027548246 0.499408425598915 0.550566767513738 0 -0.0748279452851953 -0.157937370473609 1.73282835483658 1.74720271480254 0 -0.268382608883284 -0.297550870492739 2.08795678101285 2.13034008201966 0 0.280990293143337 0.101279719128417 0.731634053930129 0.802484454751457 0 -0.278208520790907 0.161978657980332 1.06311367113431 1.11952111607349 0 0.137077836762177 0.202182893857181 17.7627997724061 17.7650275483994 0 -0.387572830675983 -0.0893415935043209 11.8722772966194 11.8797576832245 0 0.288701423930083 0.119624688251084 14.2815826887139 14.2856390222206 0 0.361063240693709 -0.153884610932457 0.357493176601063 0.54778472868308 0 0.0303251158403116 -0.00576871969428727 1.7632389069401 1.7690234929545 0 0.15097534180533 -0.19180489101055 10.8485406735676 10.8521839830054 0 0.0224300288032526 -0.0383878154516869 3.68614222095116 3.6888806979958 0 0.444274257515553 -0.195901533640705 -7.05266844404931 7.07074034266304 0 0.0431988762189426 -0.122347073357871 -1.91181638078449 2.13416695879252 0 0.0189158861589473 -0.156029761876627 -1.32164323754905 1.33778307101697 0 0.141558416004121 0.094748073767752 -5.83649075770081 5.91408759930484 0 -0.20113655285115 0.192480996200436 -1.83995591085066 1.8661249651525 0 0.235725946519989 0.00749781760335396 3.24241301024051 3.28885093870313 0 0.274923080595659 -0.239105710718229 -0.381976344509385 0.546021935280103 0 0.0358045139239221 -0.0901252036523808 0.306412943351565 0.35039005737047 0 -0.161612004767907 0.127453314660515 6.42733866487732 6.4495554143623 0 -0.14126612420677 0.215377754109159 10.3242404639642 10.3392458523323 0 0.199733634923495 -0.375001815586042 9.2354502542404 9.24620359312738 0 -0.0413237237785216 0.00327520185929958 -0.0548664794831274 0.155590785604467 0 -0.342703128350098 0.313886363225416 0.353437616605844 0.600306602438988 0 -0.0276901677423543 -0.0559076492912964 0.323194875516574 0.355762474973194 0 0.420434170846776 -0.0461119878786549 1.53923628240688 1.60237927015407 0 0.321122059315432 0.320747182173914 15.8253989179849 15.8596847269456 0 -0.13841489136133 -0.0299174632943752 5.88206353890315 5.88542309416701 0 -0.163484318840928 -0.0141892137596215 19.9068854215793 19.9296604646712 0 -0.0181252422552023 -0.277203196394893 4.51479342631529 4.52548446066254 0 -0.165528281518344 -0.2229037521507 6.95289519153317 6.97621048048654 0 0.199009984476604 -0.242671875049696 7.02876975695383 7.03706746518252 0 -0.0327141390841149 0.465182133399013 5.99318027345201 6.0112955693614 0 0.639646770783841 0.00996224964475139 24.2978863416811 24.3318991120924 0 -0.00780363550469846 -0.0456946060068316 8.44810041299532 8.44938040726637 0 -0.639619728843182 0.153862524781134 15.7164044648127 15.7696842982237 0 0.00920116150612904 -0.118860477222977 4.52463461379405 4.52835628541549 0 -0.371266676191756 0.173365641213667 0.631906993553415 0.765127858142426 0 -0.0344007283241024 -0.382386867981168 -0.27002198644603 0.488400041439326 0 0.187528748130348 0.292271194160248 2.04216370005313 2.13042190399598 0 -0.0469464644990968 -0.271616359161336 1.24874187654666 1.37078650187923 0 0.0117696205689213 0.352403746527984 10.0358787492908 10.0430408233713 0 0.00824281037228116 -0.192860156189523 34.5145895956833 34.5331571744058 0 -0.0438896366945384 0.0211039894483969 0.551734589811233 0.553879712730107 0 -0.209572727275349 0.327002498732158 13.4906678123045 13.5054301972593 0 -0.533845369884271 -0.332480403482039 6.43185332531965 6.48135720651715 0 -0.24949626233294 -0.0638037872311994 0.677223578920114 0.737001142759304 0 -0.00094882401010116 -0.168292705931716 -0.633895427130626 0.670541969285995 0 -0.116520048077616 -0.301126808727339 -1.13270759974924 1.18606937738397 0 0.248965991828284 -0.304115638080166 -0.0580011679658603 0.636796632212633 0 0.185494236136712 0.0374514933025333 -12.2178665063042 12.2294622989222 0 -0.0357008209465893 0.199946823518759 -1.62067506593102 1.63930495487631 0 0.251375209514422 -0.0176283621935633 -6.91990359685725 6.92589675275411 0 0.13895059399001 0.0240148609266812 -1.25395723375384 1.26905962255486 0 -0.340696513378652 -0.194438167292826 -3.70130591196429 3.7551592773104 0 0.269548685982643 -0.151134698989956 -5.94318636726838 5.97165658170649 0 -0.297432598515818 -0.0884619196289978 -4.34076571077962 4.35408066101954 0 -0.0675251294232088 0.286868412139645 -4.80233900720344 4.83663447156128 0 0.119974338536994 -0.03089188075671 -7.02566609739268 7.02814428189668 0 -0.0537697914092459 -0.263908401354681 -1.80526757688381 1.89187877196762 0 -0.0457120878661438 -0.312753549514409 -4.63730066908121 4.65001951324637 0 -0.230136715281176 -0.285742202601709 0.408049585704702 0.566211765474601 0 0.0305311640227586 0.128552811588553 -0.440362953503968 0.480476110813685 0 0.0771810570794751 0.274479020748539 -3.1202067376849 3.13631400200892 0 0.122033353146642 -0.133147735065612 -1.84300056962491 1.85708140456229 0 -0.167811758479902 0.124744463891817 -1.24851837889372 1.27308275865757 0 -0.419124073810887 0.071572282984584 -12.6684117595891 12.6763134970832 0 0.155252923550703 0.156744190993767 -2.08196026608887 2.09826369795461 0 0.441568965406258 -0.143845340709318 -6.95074253630496 6.9675473474999 0 -0.792955869640392 -0.0164204586191161 -9.0164403444469 9.05233256749487 0 0.582710554934912 0.687612142115066 -9.55441118712757 9.5968294338039 0 -0.113894404695472 0.0514045978174607 -0.952009816843138 0.960175535755528 0 -0.609652170536295 0.623826558753212 -32.5176607103636 32.5428862274333 0 -0.0339996440554218 -0.0918276283115815 -2.03785298099736 2.0446644374266 0 0.704585461043661 0.414182280728211 -0.892818737706502 1.70260967105886 0 0.119365255330537 0.0895891894724872 -0.319034985846426 0.377196513298428 0 0.193183823285104 0.165459065762924 0.145319596551606 0.324490773465304 0 0.0712285397995641 0.143969840394594 2.97125156244959 2.97886160337878 0 -0.0772555718963867 0.0101171528414505 0.0867697850707507 0.178379864816294 0 -0.197765100894957 -0.117129087885156 -7.9945611431535 7.99908231704616 0 0.336080177469803 0.0384943567840306 -42.9712029838427 42.9727464467912 0 0.381979931630939 -0.283263368750339 -21.4148447673973 21.4205495451534 0 0.273734162725031 -0.0293785183459837 -69.7394593008765 69.7400027033824 0 0.364943712873129 -0.0428429256809474 -11.9562950368619 11.9627542908494 0 1.01596453555891 -0.405423065463923 -2.48191358980662 2.93278593777152 0 0.00437599272831871 0.0535826583172248 -0.0626602928592119 0.158228200033688 0 0.0275777653355194 -0.767873181075981 -0.353667496543112 1.26422396685386 0 -0.0681160768780103 -0.48639612671523 0.0758138697986455 0.516186516451829 0 -0.1157948359906 -0.00462692277593374 -0.131429143376894 0.523854382997077 0 0.121957864613292 0.261257006636771 2.16820030868134 2.24230717459132 0 0.00672925680209997 -0.263239350621821 1.44450639178828 1.55035943685008 0 0.38977869027709 0.0661426710996639 0.332558354397129 0.535142153370157 0 -0.104112001942844 0.108486764955292 0.151607001004702 0.25509440364824 0 -0.11359486611339 0.0379765526273129 0.0216531038453732 0.18518815826859 0 -0.116502307676272 0.320448948530597 0.174788887882515 0.406240165463077 0 -0.197942013649508 -0.0442470505700887 0.252794375984636 0.351088933436011 0 0.631648756349536 -0.376906715760648 0.00599828655525408 0.735577870265951 0 -0.0785454084582577 -0.056499683385168 0.135146487897927 0.166211216840631 0 0.126135801543121 0.0285063766585736 5.21454840774292 5.21801856412331 0 -0.353605134197458 -0.165493610032658 63.7721069332424 63.7734448421222 0 -0.16178867897095 0.185649153347479 6.10657586412628 6.25138960384901 0 -0.0317132997006864 -0.146824266557686 1.18651727018336 1.20410386427894 0 -0.212706293311792 0.0640619676762105 0.353593284258087 0.440290697709377 0 -0.237960034261006 0.501309320915582 -0.245168164326729 0.621500637442697 0 -0.81838486538002 0.0956654733888192 -2.10426628252326 2.52024378750272 0 -0.101865066959848 0.0577089571363256 -0.288680230041858 0.311517400505199 0 0.754465918067285 -0.113504687004652 -2.1013783874977 2.42501238096624 0 0.256874331728242 -0.0925391727515601 -0.145586655927398 0.33758405705616 0 0.42041076634213 0.042198775576374 4.3304166436617 4.45127240704485 0 0.141807387113186 -0.0580844031584822 2.74553158969367 2.7531157700569 0 -0.299920112733951 -0.0198563141051588 4.62873787469725 4.73243185400371 0 -0.259624866122228 0.0341962825622995 0.611383388748484 0.679590972414764 0 -0.0014457399962719 0.0582946302182588 0.159431168224372 0.219769052365906 0 -0.083285491021025 0.195873186537629 0.00234515990962891 0.254534993456735 0 -0.214354047942197 -0.280282984970576 0.298065847303998 0.481216229217461 0 -0.370885583590199 0.614770830113103 10.9605092849455 11.0240017084519 0 0.171342438197442 0.0370168054700666 2.4457749971478 2.45601783311684 0 0.349835226117066 -0.599165246587202 30.1368600600778 30.1654853176418 0 -0.143577339226666 -0.101420397528914 8.59751427920066 8.60044371618893 0 -0.526150026688139 -0.0325932562479154 1.01235072088774 1.1498825757088 0 0.0235303323796584 0.227390759194205 0.211025211429809 0.340986302756885 0 -0.569217771209917 0.181064154016607 -0.249220240606858 0.814017057351427 0 0.564687744709815 -0.0624900027083779 0.200306539057775 0.617348815057788 0 0.407254291120293 -0.254961729459294 -3.24056603064109 3.40770895661142 0 0.0257531918935214 0.117833590579203 -1.51589971255412 1.52666942095633 0 0.155281711624572 -0.13013493278348 -1.88770378099983 1.90366826427208 0 -0.129475120591221 0.567081870460746 -9.19776276159006 9.21712564054273 0 -0.0355137242597842 -0.151238771776053 -0.198731676934147 0.288285370798081 0 -0.117834490856409 0.338922203670941 -1.87985794791246 1.97744647477655 0 0.443649731859317 0.427526282249489 -2.29443677348201 2.3798158960305 0 0.113610889596359 -0.0682767577252689 -0.0847933897034426 0.207312974070006 0 -0.292035035475706 0.387751914165164 -0.461964022671016 0.683568846222845 0 -0.162481140254096 -0.361666899963929 -0.26202282254869 0.475246280368581 0 0.262035640591108 0.140930018557372 0.561454006569376 1.283955232305 0 -0.0121039419577303 0.154641545980898 -0.095245030441322 0.22660919967655 0 -0.531700554421777 0.419702690837738 -1.1937634463341 1.66261167654156 0 0.098171004519901 -0.0261984636504542 -0.0413274358567759 0.177515203519548 0 0.173023189787031 -0.346169171680672 -0.803849177561265 1.29471781203167 0 0.350583811673779 -0.0935135170350659 -0.216850042507094 0.445148865786842 0 -0.0409354924272992 0.149182083284917 -0.292583473635164 0.594353463822591 0 0.264505676103875 -0.187485177078624 -0.567142500645798 0.668015228310059 0 -0.142995241685124 -0.537432656964978 2.53627049513359 2.76129341238888 0 -0.0257442793741927 0.145994162378144 0.686152077797665 0.714843575640885 0 0.282016419049651 0.133152421033279 3.37867733317726 3.52072650662707 0 -0.109426150305186 0.256059528643462 1.27979323216626 1.31667417460748 0 -0.171345053852931 0.305697309466915 107.583678718951 107.585400552788 0 -0.422620073745984 0.197936076782196 0.799714597652911 1.44986769911056 0 -0.0587140933539371 -0.0534755918024806 0.0194693818867064 0.0817682120878938 0 0.161821584487888 -0.901092009649684 -0.730329575560954 1.17887824833598 0 -0.150883509130002 0.190400357036956 -0.161717489442801 0.323497234267723 0 0.0672736742082123 0.0999309394908774 0.166090102434151 0.248148437302331 0 0.217534281195611 0.0635564502128991 -0.166783836877024 0.312084979616735 0 0.0479807693932582 -0.364928529367231 -1.80922951175181 1.9121877106789 0 0.00495804084095162 0.2578283783682 -1.34398607575598 1.45618476011354 0 0.193448641155202 0.0352801420105074 -2.56330767965649 2.57462484853056 0 0.00759637636761029 0.210443361402412 -1.6203709034767 1.63956261805586 0 0.0368246139903345 0.173745728153664 -0.621245707046494 0.660082918405621 0 0.0467488683920979 -0.0192659176943418 -0.891582890841985 0.903159057930937 0 0.593150435816837 0.245998655036554 0.527439571775997 0.968612775346652 0 -0.663241297514669 -0.123826958058468 0.486554863298036 0.969346789425707 0 -0.387309013172332 -0.0447825188315598 -0.93708855969748 1.13040883900177 0 0.37151172214658 0.0757520282929496 -0.0964670106753398 0.633040790574707 0 -13.9451620330327 4.27693133405552 19.3064636234922 24.1974937378624 0 -0.302762618319468 1.01949405902139 1.85715211327492 2.14465080984599 0 -1.99163100102766 1.72679152560453 2.48773390916986 3.62721695034741 0 -0.975680949071893 0.917647428253603 0.649940486663145 1.49488205339626 0 -6.77761586368967 2.38839265920664 9.53893463262882 11.9530535913739 0 -3.94918779585991 4.15271299121293 5.38174714951583 7.87705730321161 0 -6.09285792859092 6.55751336138316 8.5448637121259 12.3847614035926 0 -0.30448888802621 -0.134558965271691 0.454825912734989 0.579573817008362 0 -0.600293033187695 -0.138889518156999 1.38359720962335 1.52100724762412 0 -0.142214622799944 0.108264405868978 -0.00518345872893477 0.22403716022278 0 -0.204655081039883 -0.261986476801449 9.40417495893502 9.41004927056616 0 0.111386475303995 0.181975564701283 9.76609783963632 9.76842817787888 0 -0.740882682515459 1.64754309786575 -18.0208056523728 18.1179584169427 0 -0.0102791533604367 0.42456826863034 -0.0983609347341515 0.457731945688028 0 0.258500627353716 0.889493157926728 0.823633616683808 1.24734629184216 0 0.167847804022602 0.0728320726999516 90.1311671904687 90.1314539775807 0 0.0996414820427075 0.017814659128938 75.8431170912702 75.8433047506999 0 0.0158569867450202 -0.136258804996203 155.914186926591 155.914305701839 0 -0.32484718243342 0.0310524162007266 40.8622367860876 40.8637781524381 0 0.357575120648154 -0.0114178584985442 80.4063059968632 80.4072151861759 0 0.443808239417388 -0.104961784676772 77.3906270592588 77.393570887922 0 0.240835183369845 -0.701813878119016 -0.855247793446713 1.14082114205721 0 -0.431024231341674 -0.4261542027827 -0.832938913164041 1.03893990491074 0 1.74114599377466 -0.608389092943238 0.638527966285729 1.95676375903654 0 0.236564259485726 -0.326411263069972 -0.0666608055362203 0.431775878691367 0 0.335733846203627 0.242330566646697 -1.93356594786629 1.98232146198997 0 1.24455825053593 1.56153914107202 -6.00800765049586 6.33269022149306 0 0.33775288585565 0.523272365397681 -1.59742055570602 1.71984389189392 0 -1.33380624163629 -1.15858496901538 0.953903820245667 2.01265260386277 0 -0.710195375025878 -1.21981336340654 1.31582134254092 1.93440624433947 0 -0.226871995392563 0.255826291339558 -1.66825381387042 1.70864524288313 0 0.134647009779472 0.102705012908991 -1.96166170336466 1.97389831558435 0 0.0653200423648803 0.590051426531583 -3.3706036708753 3.4251446831345 0 -0.183543112967128 -0.0979609997990482 -21.7619188661782 21.7633608837151 0 -0.147679020146283 -0.0068264838960847 -7.54174002658116 7.54447997593672 0 -0.0628339628313256 0.28451540692343 -7.84252570056013 7.84909715113834 0 0.158505906163172 -0.0334989196676192 -2.50372914003699 2.51284414388913 0 0.164993251798931 -0.317994285331444 -4.96625883429947 4.98111932529227 0 0.650210063775088 0.10798303629634 -7.90152248218275 7.93011416059073 0 -0.651764310591366 -0.355115707038245 -2.39414317263423 2.51018824262584 0 -0.0309380744251844 0.112789846556331 -0.00728193239416062 0.117182509252585 0 0.229808180023936 0.202408594118961 -7.23301320770957 7.24075139069697 0 0.310565149743158 -0.0316874042719385 -9.39805981787206 9.40421196828984 0 0.089474190789881 -0.0267095704566907 -4.92413737733258 4.9268719836439 0 -0.409850575750273 -0.114902475737473 -3.89160110484028 3.91729741243469 0 0.19245912172636 -0.0841031259435436 -7.47398418962507 7.4781530551664 0 -0.290190251404361 0.353307757359396 -94.1360613909507 94.1384871685495 0 -0.242438173231251 -0.078493781216029 22.8499829861039 22.8518301190882 0 -0.148122117269553 -0.172956775214655 29.1679967391084 29.169219526159 0 0.157208637729993 -0.462228274373655 34.3948975510746 34.3986273953297 0 -0.21826681883423 0.134925192644148 5.79154198835618 5.79879499681673 0 0.084427280278281 0.354158696738275 43.7299781566142 43.7314937536564 0 -0.264897130457535 0.231026322423248 10.7432199288843 10.7498743191097 0 -0.0707411452124735 -0.338130095894547 28.9569168834401 28.9592919676265 0 -0.709082635609852 -0.570254609475518 -2.118486609315 2.35873895259701 0 0.34420597299197 -0.509389814495663 -6.40425417188894 6.43520838963372 0 0.194855585982587 0.2501245802142 -3.46081115237105 3.47792530652856 0 -0.298705228513958 0.332583578792409 -1.60090881568654 1.66800044108712 0 0.00188840522658357 -0.0858798172216597 -0.142962406434268 0.217478605002428 0 0.0139684112589044 0.0048688019754479 -0.574172292588028 0.590010375943989 0 0.116442385484768 0.00659449764337205 -0.879114587181687 0.897733010884739 0 0.200621359959444 -0.156576700633604 0.265384531572921 0.393286063510342 0 -0.262285509801392 -0.382501083163788 -0.257887872542625 0.548713683971713 0 0.162775993716958 0.0659406746577589 -8.08843246718593 8.09154273039649 0 0.10924268480546 0.0554718666482895 -2.58625475780892 2.59291429657099 0 -0.10001790184262 -0.123492931633377 -1.26717229774956 1.28421155478227 0 0.0318004800985698 0.0504126621574978 3.90404423277626 3.90699294386538 0 0.138973932324783 -0.377684939354917 1.33859490639496 1.40473334679855 0 0.174620174130652 -0.0715695709254945 14.3337601254125 14.343638630782 0 0.096304994779071 -0.434859699040688 1.13824898897025 1.23023093590632 0 0.243839718520839 0.123531181530177 0.149802267807595 0.339673491722363 0 -0.0213423580849 -0.0234791239317198 -1.25249092877915 1.26064272380531 0 0.217873102554735 -0.0879302047292041 -0.0596892243092956 0.277457769073406 0 0.409229192079731 0.0926424890267722 -23.677945339031 23.6868913551243 0 0.0763107921266029 0.639266152508535 -6.80525469427698 6.8370648519388 0 -0.154191399424696 -0.047593011626122 -6.68959745556358 6.69290473563571 0 0.121602683982035 0.394338135272251 -8.16249239689731 8.17403153330644 0 0.0134805218552471 0.016401971556974 -2.2524672641471 2.25660788033605 0 0.111436596507829 0.166453765123028 -7.09594154995375 7.10005148232919 0 0.4141080693261 -0.216214465656647 -19.9991507263798 20.0050929452877 0 -0.15608368374733 0.200301920968807 -6.23492589038522 6.24155456876505 0 0.00709522141942009 0.165858391087858 10.2298343055557 10.2430849459323 0 0.593019842405699 -0.130938998253027 63.816817239798 63.8198594479605 0 0.16652685883424 0.208402539561601 0.390813175204102 0.493333088310561 0 -0.106035353405659 -0.112237855477254 0.0312569139505657 0.210469978723116 0 -0.328416524457824 0.271514482559181 24.3354422928625 24.3395728989216 0 0.176130571922196 -0.957057375148834 79.1955744929391 79.2016759914161 0 -0.212348218791322 0.333269643108253 0.0273613005530071 0.632952608185875 0 -0.153736293595673 -0.207424990212764 0.23388611813501 0.373607134821545 0 0.167915006284812 -0.1039216091962 -17.207163789364 17.2088628505515 0 -0.192026345466455 0.00910321923604424 -2.01335164373762 2.02731882351904 0 0.104249974244306 0.0316040192537526 5.47636193183982 5.50000748259194 0 0.00180612862750962 -0.220536717109003 1.08657579649078 1.21530329387911 0 -0.532191551030152 -0.113024660222751 0.227762953407902 0.771721330955311 0 0.339505239404984 0.231236355873769 0.759956130645308 0.875069805939277 0 -0.246265083323879 0.114575412973365 1.18095247656946 1.21979611138012 0 0.103250267989542 0.173786003956884 12.2996292352015 12.3020819905142 0 -0.0157039442663865 -0.644919040998476 29.3604992403361 29.3679172330962 0 0.109738344104711 -0.106259581171992 3.02483492252007 3.03190364229385 0 0.184513774595359 0.00841511691760094 3.40126218212809 3.40913190763909 0 0.262481690662491 0.176394321615464 5.89706691361207 5.90708298389733 0 0.340311192548759 -0.00480367045347371 0.960594730397987 1.01910599011691 0 -0.100238047257447 0.224681530940121 1.63823607253408 1.6566070402529 0 -0.288183202150089 0.391683068735631 -0.845270512559358 1.09481635566793 0 0.577672511532817 -0.0562071969872758 -1.76889644623289 1.86690631847695 0 -0.173528573876507 0.134298491723336 -1.22019199358061 1.24709115642322 0 -0.499398797391991 -0.303556501532603 -6.62551459600083 6.65270389805374 0 -0.254763745506307 0.269105902250288 -1.90665640649983 1.94734203210355 0 -0.0633900983939501 0.451401600884165 -0.207371687321365 0.518656270527689 0 0.00919427838364811 0.108129206939468 -0.0193517277502721 0.174271483367977 0 -0.0364994135250212 0.0226748872668456 0.00340889106812237 0.141695372678676 0 0.382330572562011 -0.427573065703457 -0.297117704445851 0.66087374620711 0 0.110614916712379 0.186989057437339 -2.93074533984785 2.94209935239116 0 -0.196207809811512 -0.0526668311184725 -6.60112002928089 6.60572000054532 0 -0.0519416572713112 -0.195387398315825 -3.67896712163018 3.68698967365201 0 0.317927104708282 -0.382190717458151 -5.39231238977465 5.4169788703886 0 0.133185248667492 0.324123787974999 -3.37510429287598 3.39593037746414 0 0.0100979467198984 -0.837245313276063 -19.8425513268628 19.8664440771673 0 -0.436743575912375 0.12484305154945 -7.05706353439503 7.08915734738685 0 -0.00498557253486909 0.0416860314399328 0.347316474618283 0.376657801713948 0 0.141182469209562 0.0625387736075796 0.343159135454873 0.401349679160935 0 -0.368093563945864 -0.260127078784023 1.02934972000232 1.13178594062832 0 -0.269119636556001 -0.201289391614371 -5.60602166576617 5.61770783464183 0 -0.0999374965152031 -0.115263428235169 -2.00250552332187 2.01283907266151 0 -0.329269853368654 -0.0245584130580414 -6.73888260176493 6.74831683257088 0 -0.459622439152863 0.0966072139020193 0.408675221536434 0.638028966386786 0 0.0591316616925179 -0.00853508886633236 -0.207634069052445 0.257217986711175 0 -0.0923970736527252 -0.305740918255785 1.12143987065323 1.26780027634727 0 0.338797665147658 0.553772012989201 2.7486876028054 2.86782256546596 0 -0.382897947475566 0.605037772857476 -1.09943001978615 1.40324742724593 0 -0.106578621849839 0.321963582159087 -0.74676088680526 0.959347070582018 0 -0.119084460464779 -0.495916926681707 -3.52651557700899 3.59779130171285 0 -144.464905730848 48.2794860151058 206.079187593551 256.315273188243 1 -1.59305427978969 0.524186275614713 2.19515832864432 2.76248317238596 0 -0.196331091003971 0.529257616062154 0.94748055102863 1.11169181922515 0 0.00355772273597849 0.217977308180111 0.169901569246976 0.309633803718357 0 0.192493805287482 0.0214101202463314 0.126970758542166 0.231589792192554 0 -12.2711874758026 3.63868348573636 17.5783398864568 21.7448746265496 0 -11.8735150111227 4.15745189576968 16.6645365450359 20.8803980572865 0 -0.74642729733291 0.53362978518274 2.38378891500828 2.60231425428487 0 0.0221414862091871 0.000433114483580502 -0.280760402885901 0.571832375551053 0 -0.00380755881096326 -0.124763224054553 0.588669383021162 0.617731160770688 0 0.0947320333614844 -0.211837395493365 0.643288357891484 0.6979605551698 0 0.0759458334428575 -0.213264469061953 0.239599421836526 0.356197960025046 0 -0.162861283854076 0.218830085110831 0.872012173535243 0.924281028487478 0 0.00884013515717479 0.0786621507058147 0.474934700299156 0.501306928329851 0 -0.0652988453568492 -0.0664572236058026 0.384006598472568 0.417565767089211 0 0.629587527621867 0.00427931425128728 0.40545688133064 0.899149308505459 0 0.109283139875125 -0.137312004494227 0.818515670362113 0.973879213643832 0 -0.608853912584993 0.308528294824178 -0.176413377268963 0.86295417268625 0 fastjet-3.0.6+dfsg.orig/example/data/cone-sm-pt-problem-ev2.dat0000644000175000017500000000145211766120141022403 0ustar sunsun# cluster this event with # # ../fastjet_timing_plugins -siscone -sm-pt -r 0.9 -f 0.7 -incl 0 < cone-sm-pt-problem-ev2.dat # OR # ../fastjet_timing_plugins -midpoint -r 0.9 -f 0.7 -incl 0 < cone-sm-pt-problem-ev2.dat # # and compare to the output from running cone-sm-pt-problem-ev1.dat to # see the issue with p_t in the split-merge procedure 8.598999999948349e+01 6.599999999960353e+01 0.000000000000000e+00 1.083987089400000e+02 6.399999999965917e+01 -6.599999999964845e+01 0.000000000000000e+00 9.193475947600000e+01 -7.699999999909021e+01 -6.999999999917293e+01 0.000000000000000e+00 1.040624812300000e+02 -7.299999999720731e+01 6.999999999732199e+01 0.000000000000000e+00 1.011385188700000e+02 1.000000000000000e-02 0.000000000000000e+00 2.017131573702792e+00 2.017156361224559e+00 fastjet-3.0.6+dfsg.orig/example/data/Pythia-Zp2jets-lhc-pileup-1ev.dat0000644000175000017500000075444111766120141023634 0ustar sunsun# ./gen-events -Zp2jets -lhc -pileup -out pippo -nev 1 # Random generator sequence: 19780503 # Stamped by ./gen-events on 17/08/2006 at 20:17:31 #SUBSTART 0.3515853712 -0.1092071110 -1676.2965175959 1676.2968206118 0.1466634216 -0.1046232856 -303.1831159247 303.1832015758 -14.0924756697 2.5182102569 62.5061263924 64.1264277107 -0.9749853807 1.1917666034 3.3182684903 3.6607771973 -0.9466630591 2.0674278766 3.6400326786 4.2941526124 0.8375485052 -0.2459935704 31.7895978995 31.8054111105 0.1585775315 0.1217446482 3.5105806654 3.5190375085 0.3262353048 0.7137303833 13.7657492848 13.7888061010 1.6195907396 0.1416594826 -2.5405391788 3.0563248930 -0.3238428759 0.3059439955 0.4361247278 0.6388744006 -0.4845844265 -0.5120481394 0.4294059305 0.8371885102 -1.7806020841 -0.6091067626 1.4328100421 2.4162244115 -8.2637745456 -3.0695529034 6.7981652093 11.1431959482 -0.0015908101 -0.7000227870 114.6747013356 114.6769228774 0.1413501723 -0.2018082025 7.0598817042 7.0655584269 -0.3122697664 -0.2779251984 33.0076103530 33.0139476131 1.9671153122 2.9728949905 10.5786745193 11.1640262292 0.7288749620 0.8615507415 14.0896990825 14.1355094854 0.3209507646 0.1150008748 113.9642582459 113.9686305205 -0.3850462182 0.0191844745 142.0971546663 142.0977461914 -0.2274655535 -0.1116996565 76.2717077052 76.2779155814 -0.6612088423 -0.3368270510 56.1746890123 56.1874246234 -0.7729405036 -0.5253417222 56.6335166887 56.6433780281 -0.4620498474 -1.2141526376 17.9381817666 17.9919332685 -0.7152390404 -0.4158213543 1.3559443410 1.6633401034 0.0522654437 -0.0135021255 0.2708283502 0.3094216608 -0.1801693573 -0.1327597119 -1.7938024237 1.8130893686 -0.1126482278 -0.2012968701 -4.0658938715 4.1022364616 0.1337959299 0.8271012662 -46.2751046095 46.2828994798 -0.5461487070 -0.8956062132 -201.1160732929 201.1194146934 0.5014702494 -0.1013143659 -62.6129139513 62.6151595883 -1.0590161800 0.7751369815 -44.5046726413 44.5242374365 0.4931293267 -0.7321686955 -33.4202402311 33.4321878497 0.0163810192 -0.3589771676 -8.8094301179 8.8178609499 -0.0897896029 -0.6848213273 -17.6441443172 17.6582091644 -0.3170064274 0.7967655693 -46.4826790137 46.4932082965 0.1231385922 0.2628590975 -1179.8555699840 1179.8556139461 -0.0871648801 0.0606849513 -656.8540574883 656.8547362011 -7.4935013978 1.8611668033 34.0738740211 34.9380147641 -7.0359080438 1.9282667646 36.0222133791 36.7569006701 -8.1212724014 1.9347081221 37.0229806470 37.9558550470 -2.7840470666 0.7233283168 12.9961413759 13.3199657663 -3.1260155223 0.7674059159 12.9838941368 13.3861894231 -7.9368148087 1.8229589371 35.0705933501 36.0039193187 -0.2132419868 0.1799204923 1.1174211666 1.1601523077 -1.2038365106 0.6276815280 3.1003747744 3.3846019244 -2.0100646377 0.8841011644 5.2463076165 5.6873313886 -0.3014917286 0.1240077983 1.1331147177 1.1790776734 -0.6990869536 0.4080319750 2.2251131888 2.3677713919 -0.1534370861 0.4703968732 0.7983636180 0.9495685384 -1.1706251446 0.9523349264 4.3474023619 4.6039865468 -0.3148410789 0.3982898030 0.4798234732 0.6985629804 -0.1843570882 0.4109866920 0.3444271284 0.5670340764 -0.7636277064 0.6335076414 1.7899515238 2.2519274962 -0.1423362377 0.4426232076 1.0664611793 1.1717483264 0.0122698368 0.0214105668 -0.0506123158 0.0563077950 0.0561694259 0.0613830928 0.0862491426 0.1198407405 -1.0359304558 1.4251587378 2.5632700837 3.2492113881 -0.6062323505 1.0347139493 2.1036899630 2.4255188857 0.1054851961 -0.1309947447 0.8882523021 0.9040347902 0.3562764759 -0.5670236757 5.2093110913 5.2521777218 -0.1276731623 -0.0729027960 0.5084631488 0.5473845199 -0.7837620728 0.8649405903 5.4323194748 5.5580554039 0.1573262723 0.0551661253 0.4438081565 0.4740891658 0.1176338764 -0.1128240438 3.1596118078 3.1668902024 0.5563964558 0.4776015279 5.6256912087 5.6749944138 0.6713248427 -0.2906125196 16.9641390452 16.9870770642 0.2176100512 -0.3127684255 11.7437536230 11.7507619823 0.6312997798 -0.4490253361 18.6127941160 18.6355558918 0.4820892565 -0.3478689312 4.9245539554 4.9622710818 3.1601414430 -1.5278886677 80.4889150414 80.5654167883 0.5479817327 -0.2881397513 13.0374786477 13.0521706235 0.2470787607 0.2766078761 20.9797059412 20.9888850738 0.9195189151 0.2939422487 18.1836962731 18.2093033154 0.3128489528 0.1293074016 7.9537404389 7.9609410148 0.0523734586 -0.5341613778 11.9414908252 11.9543613075 -0.1314624601 0.1925155996 2.5486766621 2.5631186370 -0.0182940737 0.0477021634 0.0271967153 0.1510947244 0.4311257386 0.1997008905 0.1026520636 0.5057341982 0.0025064869 -0.2012962012 0.0960431982 0.2631169396 0.4812006412 -0.2446503776 -0.5703570342 0.7976182017 0.1214646803 0.0262357275 -0.2706504793 0.3288973225 1.3137494947 0.1207572495 -1.6645648228 2.1239811905 4.5778881844 0.3971781843 -5.4023815926 7.0922871918 0.2332805298 0.1658000231 -0.2330171001 0.3945709151 0.4203477036 -0.0372774362 -0.4669925235 0.6447042741 -0.3419062697 0.0788154621 -0.0354685545 0.3792750685 0.1867328684 -0.3769271241 -0.8116902253 0.9142123620 0.1937157302 0.1104861910 -0.0952567875 0.2425012126 -0.3410306736 0.5457459602 0.2850037546 0.7175287440 -0.1426737605 -0.1552315464 0.0017471896 0.2108451745 -0.0604945349 -0.0407910150 0.0017778282 0.0729839457 -1.3137911949 -0.4376407593 0.4945691970 1.4704337552 -0.3336423671 -0.1251595621 0.2695999269 0.4681303778 -1.9114743609 -0.5044264515 1.3887921393 2.4200007580 -4.3277822256 -1.4029432632 2.8266137535 5.3787856495 -6.2592080673 -2.0145940829 5.1598332293 8.3582386843 -2.7274233000 -0.9061990844 2.1481428832 3.5881126633 -2.4999142672 -0.4450198386 1.8518400674 3.1458552765 -4.1695719193 -1.3614467602 2.9200578589 5.2711559411 -1.7875626875 -0.6144179808 1.2903120474 2.2928747853 0.0326791624 0.1646134860 1767.5392073978 1767.5392842862 -0.2553300911 0.0553935706 302.2235235876 302.2236687478 -0.3098944914 -0.1185372774 498.8741688877 498.8751615582 0.0043967553 -0.1787479567 57.3360193560 57.3362981519 0.1343556308 -0.1739706487 53.5438649848 53.5443161758 -0.1261067901 0.8391469715 92.0761769165 92.0814319043 -0.1302172554 0.2355432584 22.8205760188 22.8275002563 -0.6039068644 0.2935254917 40.5432890588 40.5490891169 -0.3431145419 0.3334779348 55.2310448921 55.2332937166 -0.3108676438 0.2225671354 12.5276660793 12.5342758865 -0.2865508969 0.0188634953 4.5693417228 4.6048878366 0.1202957526 -0.2227875922 5.5670312707 5.5745333736 -0.2592165461 -0.3141413161 2.5720455830 2.6078297971 0.0412359257 0.1347440521 4.5207033533 4.5250519284 0.4810132545 0.6435843266 20.1861608393 20.2026271498 -0.4620752411 0.6315879191 106.7567721222 106.7637633346 0.7634110242 0.6679952680 139.0725258769 139.0762253868 0.1871017531 0.0840972022 27.6147976233 27.6155595124 -0.0837787010 0.3304513728 417.2694506633 417.2695899221 0.0194824510 0.0300402329 17.9440243477 17.9440600693 0.1036201070 -0.0486769379 35.5135157524 35.5139745375 0.5735809036 0.1541129194 321.9169159205 321.9178422246 0.4785998571 0.0447910314 542.2543234895 542.2545545101 0.0612126930 0.3147281852 118.9222564134 118.9227705322 0.0951400289 0.0772001113 0.8966159291 0.9049483999 0.0922622073 0.0038549402 1.9444498526 1.9466413138 -0.2002396336 -0.4043215425 1.2939390106 1.3703466655 -0.4912885250 -0.8671100984 2.3233289467 2.5280628418 -0.1455980325 -0.5540589965 2.8519182578 2.9088860252 -0.0631401109 -0.6306203007 3.7111810684 3.7649081741 -0.7978120696 -0.7268089914 1.6413943260 2.0254806101 -0.0505122343 -0.8294720595 0.8854780881 1.2223447193 -0.6986603016 -0.5815088191 1.8742819406 2.0877479018 -0.0152510577 -0.2335362258 -0.0206440685 0.2732722562 -0.0055795277 0.1524327372 -0.0119807350 0.2070994771 0.2107703751 0.4829223315 0.3593873117 0.6528990382 -0.2437315424 0.0588794701 -0.4403460757 0.5256009019 -0.4251102202 -0.1296392941 -0.7487212990 0.8706943375 -0.0070605215 -0.0130439240 -0.1057711501 0.1068060443 -0.0446581715 -0.0427262553 -0.1497989801 0.2138677267 0.0294353980 0.1878897241 -0.3531397791 0.4246839761 0.3409975272 -0.0719363688 -0.4037366830 0.5513050415 0.5236407218 0.5166073816 -0.3232291286 0.8154996301 -0.2906102810 0.1511871550 -7.5488844664 7.5720941316 0.3948221703 0.4272692138 -12.5500331823 12.5642849453 -0.0828405419 0.5774552874 -7.7111353436 7.7344298586 0.0818451237 -0.0413462415 -2.7550819208 2.7601384587 0.3168564613 0.0550100938 -4.8610553970 4.8716818144 -0.0054068804 0.0067263444 -0.0233580557 0.0249013420 -0.0967362794 -0.0205451449 -28.3141151877 28.3146318828 -0.1121207441 -0.3758721613 -153.1974687964 153.1980345056 0.1768460984 0.1599719923 -12.9305956634 12.9335474474 0.0555737375 -0.4221554907 -36.2672783966 36.2700463990 -0.0538455946 0.2957351455 -112.0407720576 112.0412622281 -0.0242930210 0.0386363084 -33.6635284738 33.6638487403 -0.1041243996 0.2471052916 -44.7736011047 44.7746215906 0.2334477208 -0.5400596161 -57.2076177407 57.2108133973 0.1775468530 -0.2058132835 -127.9325890502 127.9329539363 -0.1854676694 -0.0343022915 -73.2010351228 73.2014111731 -0.0396039225 -0.0693253501 -31.6554273945 31.6555280797 -0.0210514956 -0.2792990603 -51.4724714421 51.4732335053 0.0205424331 -0.0338641360 -30.5133696655 30.5133953718 0.4246504173 0.0181259964 -33.3704952265 33.3732019469 0.3403798299 0.1381443942 -28.3715638860 28.3739419123 -0.2674078764 0.2881448484 -22.2372774940 22.2411898188 -0.1043514730 -0.0153535513 -4.5405445777 4.5689545251 -0.2777617386 -0.4924160521 -7.2715030125 7.3101314743 -0.3511687179 0.0391918963 -8.6627527035 8.6839956722 0.2052851045 0.0674891863 -1.9404314267 1.9574091732 -0.1329115540 0.4328228520 -19.2387829950 19.2446161826 -0.1409477410 0.0104181294 -7.4833078369 7.4859435457 0.2998595252 0.3142952832 -121.6109341045 121.6153394223 0.0341607389 0.2232087248 -74.4220966972 74.4225701362 0.2441731232 0.1356017044 -10.4795575798 10.4842078952 0.2038012227 -0.3912221329 -29.9816514382 29.9852212338 -0.7560348639 1.0554709660 -123.7015867605 123.7083997744 -0.0749871065 0.1456273021 -20.1007763948 20.1014437802 -5.8501416123 1.1519664785 27.2507654291 27.8998759057 -1.4347509262 0.4343584022 5.9644752379 6.1515544450 -2.2289591881 0.3308835619 10.6075976253 10.8451994062 0.0074598356 0.0249023853 0.0656386357 0.0705989267 -0.3117890038 0.0757397706 1.0893095457 1.1355809888 -2.5808051654 0.1359041522 10.2285748753 10.5617443942 -2.0648196372 0.9258685578 7.0320388131 7.3884885040 -0.8618982808 0.2548744232 3.6072009628 3.7201086260 -2.1483091195 1.0848880738 7.6785761259 8.0481193649 -0.5094889009 0.1261695665 2.1312090309 2.1993247641 -5.5055622682 1.9823078371 17.2343392479 18.2011727465 -5.4408479377 2.0561231283 18.4174929462 19.3146057378 0.8130663657 -0.5366749582 10.8344933799 10.8782049863 0.1025867971 -0.1292634401 2.0662316709 2.0728112326 0.0510762899 -0.1299531754 0.4865460539 0.5061854184 0.0430814510 0.0302187509 0.1654898674 0.1736550619 -0.0915927954 -0.0484901644 0.4631333644 0.4745872411 0.0155000762 -0.1373125200 0.5795165499 0.5957637217 -0.0126267458 -0.0027450363 0.1982312065 0.1986519095 0.2905769988 -0.3411373091 10.7501390685 10.7594748779 -0.1579808278 -0.0897752177 0.5178308653 0.5487862396 -0.3491396416 -0.0379711511 1.4358899400 1.4782152135 0.0360265956 -0.0521766385 -0.0789625776 0.1012689778 -0.0022665233 0.0485273874 0.0164782216 0.0512988913 0.5089858321 -0.0679858235 -0.6130097609 0.7996684416 3.6288455577 -0.1723076501 -4.0599974968 5.4480996395 1.0621403714 0.1450772587 -1.0010707923 1.4667420737 0.1635674706 -0.0290104965 -0.1377094966 0.2157772736 -0.0996666784 0.0416646349 -0.0451171741 0.1170681340 -0.0231080204 -0.0667932677 -0.0737246493 0.1021305299 0.1806810630 0.1411494122 -0.0226978775 0.2303996457 0.2919495251 0.0974725766 -0.1517074175 0.3431480277 0.0743210507 -0.0280230926 -0.0028536687 0.0794799077 -0.0193794061 -0.1203299923 -0.0718911241 0.1415033645 -0.1774191781 0.0340426705 -0.0158251493 0.2288376901 -0.0098062419 -0.1098099895 -0.2814901263 0.3329727801 -4.0355894808 -1.1788301157 2.3885013634 4.8353450407 -0.0786528176 -0.0157250768 0.0266224841 0.0845121318 -5.4609674555 -1.5963798192 4.1511675046 7.0429245153 -0.2226862053 -0.0481175591 0.1402839742 0.2675519369 -13.2513076340 -3.6729946175 10.5601978090 17.3385495651 -6.4491953353 -1.8877197843 4.8351032523 8.2796926092 -0.2521483917 -0.0343969655 0.2717373352 0.3722944292 -0.5288423224 -0.2011792337 0.3982722961 0.6919307104 -1.7269006642 -0.4032821595 1.0834773051 2.0808434613 -10.2166517717 -3.5005689851 7.7967977058 13.3200604769 -9.8053519522 -2.7012907383 6.9445416027 12.3161697137 -4.8735501752 -1.6910515221 3.3876743675 6.1730838295 -5.1334115832 -1.6295119732 4.2008239525 6.8303840033 -3.3155236737 -1.0052972796 2.1687446421 4.0873919770 -7.9244060107 -2.5533811961 5.6590053325 10.0677597951 -1.7963174279 -0.6209580933 1.3058749022 2.3060040147 -1.9477672245 -0.7730006690 1.3131639994 2.4729995722 -0.0156218144 -0.1322973005 47.8885849825 47.8887702728 -0.1574937357 -0.1291107618 102.1732978665 102.1735008247 0.0390106947 0.0158037597 4.6413418252 4.6415326706 0.2581892444 -0.2451551674 31.9230937694 31.9250791472 0.0250615297 0.0095988782 1.5289616700 1.5291971773 0.1976717780 0.5413168494 16.5152172762 16.5252685226 0.2091417338 0.2669040323 2.0089449242 2.0373604825 0.0507601962 0.0020323585 0.5433944123 0.5457638824 0.0639509121 -0.0880416119 3.7251952154 3.7267841951 -0.0420599485 -0.0606762197 6.4042204729 6.4046460096 0.0250092302 0.1056163571 259.5938319827 259.5938546725 0.0921031898 0.2014274202 232.2315446471 232.2316502658 -0.0470796168 -0.2999783786 1.1883633686 1.2265443382 -0.0509327620 -0.0453094091 0.1346597841 0.1509315946 -0.1754935469 -0.3777076648 1.8424931133 1.8889790728 0.0232906175 -0.0354550165 0.1390775618 0.1454031611 -0.0158227793 0.1250411973 0.0322400404 0.1300964318 -0.2343197697 0.2807017982 -0.0101912019 0.3657910805 -0.0186375335 -0.0667458852 -0.0292603026 0.0752232421 0.0197834751 -0.3406179776 0.1336657937 0.3664403593 0.1084839559 0.1936565524 -0.0449893888 0.2264854832 0.1181317556 0.4076266284 -0.2577804790 0.4965534767 -0.1967163525 0.7538579046 -21.5418108004 21.5558950551 0.0197822508 0.1204070754 -2.9354157599 2.9379507968 -0.0272625844 -0.0261807630 -1.2504004461 1.2509716050 -0.5331086975 -0.0782313848 -36.1995163293 36.2035261751 0.2039348012 0.2591402378 -14.2618556179 14.2656674829 0.1970852621 0.0916363309 -7.7291757699 7.7322311075 0.0793395211 -0.5009379458 -84.3514750422 84.3529998007 -0.0023377875 -1.4179549977 -232.5690086011 232.5733311528 0.0560235323 0.0667882445 -33.9913030116 33.9914147945 -0.0207085596 -0.0347862251 -5.5662964416 5.5664436583 0.1409440776 -0.0540501123 -13.4189838513 13.4198328696 -0.0014368128 0.0055585717 -10.1116489344 10.1116505643 -0.1598536646 -0.4774457411 -42.5353654825 42.5385743078 -0.3855776527 -0.1873519218 -138.8257458712 138.8264779044 0.5974547588 0.0769469474 -38.7917583159 38.7964352262 -0.0074358913 -0.0006172467 -0.6079667528 0.6080125377 0.1252656041 -0.2402478309 -3.3847025430 3.3955296783 0.1248647331 -0.2033145426 -5.0203593757 5.0260258919 -0.1052461177 0.0185647119 -6.1692544402 6.1701800413 -0.1093340904 -0.1111621930 -14.4286030754 14.4294455085 0.1171182407 0.1159223666 -34.8142258784 34.8146158702 0.1158342892 0.2915700572 -43.2642950928 43.2654326288 0.0299853482 -0.7774917424 -61.2690435179 61.2739837625 0.1201097464 -0.5754785211 -51.6346104035 51.6379569058 22.6406284854 1.7532021511 -29.7886765653 37.4603879914 24.4048965876 1.4158108072 -32.3786564483 40.5709301209 20.4395987245 1.7079904788 -26.8898402688 33.8197784878 12.6291794710 0.9576387322 -16.2209096533 20.5858891346 12.7041645655 1.5075174175 -15.7908881736 20.3233864100 4.0768267151 -0.2619864019 -4.8947026900 6.3770484668 2.1249225947 0.1512351235 -2.5023584093 3.2892925515 -0.1198055268 -0.1279411912 0.1936840047 0.2612198429 -0.1570950393 -0.0685993877 0.0521210288 0.1791684375 -9.1052969319 -2.5454777710 7.7266383706 12.2200847285 -1.5232975332 -0.5348432000 1.1400853089 1.9764329320 -1.8581287297 -0.5084877931 1.4311016459 2.3998446060 -1.1289602375 -0.5849941481 0.7981855005 1.5012892674 -2.1831324590 -0.9297726314 1.5420706460 2.8299339846 10.6344378496 0.7788514150 -13.9928142066 17.5925190727 70.3551275596 5.2342707822 -92.0254585533 115.9565719849 4.3416613047 0.1498283939 -5.5029842602 7.0110845951 5.9903884006 0.3390025477 -7.4596707845 9.5732107535 -5.2901653076 -1.5377502137 4.0813205116 6.8562162903 -1.8177486675 -0.5450526149 1.3104707687 2.3062146923 0.0691898478 0.1150125225 19.0602028093 19.0606753880 -0.0395827659 -0.0078716364 6.5545495196 6.5546737648 0.2224916142 -0.2740624339 46.1218019952 46.1231528846 0.1181642581 -0.0269374811 15.8771742790 15.8776368363 -0.1698735255 -0.1296597140 -40.6199969225 40.6205590636 -0.2530201568 -0.2411228773 -41.2274578320 41.2289393355 0.0648183836 -0.0156028744 -10.0372234046 10.0374448216 -0.0428130498 0.0445304881 -4.0344227510 4.0348956437 4.5715885091 0.2681235761 -5.6878120031 7.3022268611 8.0990135780 0.5073959751 -10.3631924806 13.1623413572 1.2620488289 0.0899943293 -1.5962763168 2.0369006617 0.5825438336 0.1340829343 -0.7638237083 0.9699289710 #SUBSTART -0.3082973996 0.3526296841 -6.9327362519 6.9499429281 0.6690626009 0.5368384672 -5528.5689501827 5528.5690963499 -0.1057286013 0.1031242003 -0.3795574451 0.4305308082 0.6981029839 -0.4200467388 -5.0429588383 5.1102544622 -0.4565637547 0.1198090169 -1.3089610038 1.3984503413 -0.2337909081 0.4233406440 1.9576068831 2.0212817674 0.5803392891 -0.4845220564 7.5182551239 7.6142016006 -0.2522963456 -0.2000469578 4.1146718431 4.1566618299 -0.1114806505 -0.0852365488 5.2549817372 5.2799779566 -0.6270325704 1.5125723404 288.1518631002 288.1580427537 0.2192386923 1.2762123441 205.2950727443 205.3013065434 -0.1043600655 0.1127191698 44.5362980162 44.5367816238 0.0691975897 0.2154904509 38.3579748570 38.3588964825 0.4301912137 0.0409499394 -65.8095338258 65.8176592985 -0.2251192764 0.5787625765 -223.1587243218 223.1596320249 -0.0467102949 -0.0938859832 -1.2851318119 1.2894030415 -0.0530640360 -0.2519961916 -1.4631891483 1.4856784162 0.0391549169 0.2568981383 -9.9324855063 9.9368645899 0.0601824974 -0.0592446810 -2.5401174735 2.5453503549 -0.2654691833 -0.1313668848 -9.5084312417 9.5140672484 0.6250171281 0.1947763547 -31.1108753922 31.1180756425 -0.5434222111 -0.0254941262 -7.2539901743 7.2757000270 0.2199768777 -0.1950006866 -223.6420863011 223.6423230517 -0.5177768955 -0.0788433627 -297.3497185495 297.3502125616 -0.0155568684 -0.1006867147 -0.8466043566 0.8527125936 -0.1708519507 -0.1313605845 -0.7602234276 0.7901807718 -0.3592890410 -0.4493149483 -2.7570327912 2.8164165796 0.2532844913 -0.0846784072 -0.7942733959 1.2589620640 0.1090043844 -0.1232071638 -0.1312863680 0.9628550547 -0.0968391125 -0.1210455236 0.0383235859 0.2120809153 -0.2014686680 -0.0388301343 0.0839693573 0.2216940605 -0.0011245018 -0.0102083206 0.0694524232 0.0702076449 -0.2974479753 0.5842563351 4.1757961444 4.3298331141 -0.1219527927 0.0512516401 1.0656763161 1.0828873486 0.2590296065 -0.0501118637 6.0454434249 6.0528070781 -0.2185263263 -0.0239825996 6.1920421847 6.1975152378 0.1168449117 0.2999040639 46.0804609472 46.0817963633 0.1703183898 0.1997687022 5.7696459986 5.7773013270 0.2092895897 -0.2549820802 40.9570409986 40.9586072168 -0.2805553239 0.4751089699 69.9467145897 69.9488907826 -0.4488364251 0.8102894037 97.4452607124 97.4496632029 -0.0409971592 -0.0543754982 118.6751570360 118.6751765745 0.4969805662 0.0414840377 934.4906642756 934.4912696866 -0.1165838445 0.0708762403 656.9344363349 656.9346359409 0.3318956969 0.3196615043 383.5883430911 383.5886452613 0.2078375547 0.0130994046 22.2785615301 22.2799719856 0.1675768325 -0.1586869037 44.4161044264 44.4169233032 0.4620363743 0.0451244754 29.3395967337 29.3474205219 -0.1620934259 0.1360067711 21.6539922688 21.6554758221 0.0200065018 0.1719939214 4.0207997428 4.0269458061 0.4545381296 -0.2258403740 12.3537438946 12.3740146257 -0.1752335520 0.0546539107 3.7805977152 3.7876236240 -0.1284194847 -0.0082911849 0.1856946897 0.2259265933 -0.2269144358 0.3109317311 4.2880777847 4.3053199405 0.5642640348 0.2130334138 1.9210013450 2.0134605295 0.1148543578 0.0673343761 0.2633162081 0.2950607855 -0.1024104242 -0.2936835368 3.8118398010 3.8270537452 0.6215198375 0.0083984402 1.3183619156 1.4642115174 0.1409958292 -0.0184453525 1.9907074243 2.0006538653 -0.1189394310 0.4307549882 0.1278924064 0.4853171135 0.3315739835 0.0316740478 0.3846264796 0.5088045604 0.1165454980 0.0878511312 0.1118713897 0.1838909519 -0.0607285582 -0.2522764364 -0.1599392950 0.3048145932 -0.0363400324 -0.0627189953 -0.0611131179 0.0948121491 -0.1920675146 -0.3269995479 -0.3650187058 0.5263625653 -0.1151860158 -0.1208396166 -2.9911564641 2.9958115802 -0.0860305998 0.0245133628 -2.3575480100 2.3592445377 0.1697061657 -0.0307822327 -8.2784718611 8.2814445521 -0.6266285120 -0.0627166990 -9.5198865310 9.5417145223 0.0103584989 -0.2559490774 -14.2730624965 14.3062476576 -0.0457096711 -0.0411404743 -14.6852382140 14.6853669792 -0.1486196758 -0.4183913684 -55.8301228644 55.8318883632 0.0180620010 0.1443028929 -62.7338677778 62.7341916001 0.3267598942 -0.3691756277 -292.0349296085 292.0353791134 -0.0652039287 -0.1888525369 -4.1076523402 4.1425113168 -0.5645121418 0.2577074235 -6.8960482024 6.9253193189 -0.1347125028 0.0079428743 -2.4124359454 2.4162073045 -0.1579009232 0.1622326954 -3.0882226491 3.0965095316 0.0701633759 -0.0628032962 -3.0245492666 3.0260147752 0.0710614294 -0.1690634449 -2.3966355957 2.4036418938 0.9662639783 -2.4082716494 -22.2528490395 22.4040667865 0.1649238084 -0.1601888647 -0.9295354794 0.9676654005 -0.0490984402 -0.2890082703 -0.0622552585 0.2996867604 -0.0178295819 -0.0000738384 -0.0370062113 0.0410774770 0.0952392472 0.0649827866 2.1964249720 2.1994490070 -0.0212870557 0.1216759892 3.2500111195 3.2523576775 -0.0531545566 0.2514461363 4.6565237712 4.6636106396 -0.0860404247 0.2324785652 7.4752400008 7.4793490565 -0.0251969949 -0.0064395110 0.5862253044 0.5868018945 0.1707525241 -0.0485609847 6.3582490340 6.3607267959 0.7832413655 -0.3590589533 2048.2399955931 2048.2401815748 0.9930276792 -0.2942908563 1215.8356025386 1215.8360516909 0.0782534660 -0.0040238885 81.0043308152 81.0043687132 0.5331570064 -0.1512886647 314.8860360344 314.8865237417 -0.0134448022 0.0150325216 2.4007364944 2.4008212042 0.2784410728 0.0246739548 40.1448989340 40.1458721247 0.3808070604 -0.1522780841 5.1773633696 5.1954570423 0.1702927541 -0.3305579025 9.8308817263 9.8389015368 -0.0353565912 0.1032102632 0.5266203087 0.5378023768 -0.3429014599 0.2443279587 2.3670643373 2.4042194450 -0.0726116937 -0.0898767503 0.0967808823 0.1507210254 -0.2510714294 -0.0825859679 0.4395198510 0.5128693831 0.1843546062 0.0576364307 -2.4742568232 2.4817847220 0.0000130928 0.0358577392 -1.3250786808 1.3255637623 -0.1212668256 0.0537325299 -3.9957268437 3.9979276929 0.0318079311 0.0450874036 -1.2178116826 1.2190610784 0.0622319628 -0.1541876038 -3.2139335791 3.2212568153 -0.0507988274 0.1739265681 -1.2870386027 1.3072027852 -0.2026498010 0.2651515678 -3.6695723946 3.7181728421 -0.1493897792 0.1998000393 -5.4503443048 5.4783328999 -0.0177097529 0.0958778668 -3.6533025659 3.6572675078 -0.0836458779 0.0841317549 -1.0361534362 1.0522207531 -0.1240667919 0.2044164229 -5.3653603089 5.3724993878 -0.1295569079 0.0823200645 -1.0202891273 1.0317710447 0.0346954250 0.0141530277 -0.2253493376 0.2284434387 -0.1389431161 -0.2356845246 -1.3379067938 1.3655940002 -0.1189608788 -0.0082394424 2.6966868747 2.7029279429 -0.2254735033 0.2868632385 18.8910665642 18.8951053063 0.0817688880 0.0319555331 9.0337228391 9.0341494144 -0.0471989130 -0.0135119861 8.1733428063 8.1734902545 0.0446390280 -0.0215684815 13.3578091091 13.3579011089 0.1565175396 -0.3602369847 54.7087080652 54.7101179544 0.1008993288 -0.0209708345 9.9643914895 9.9649243954 -0.0065268827 -0.0602091511 16.0979279382 16.0980418575 -0.1369315779 0.1287981995 -1.4358865929 1.4548502761 0.1625749144 -0.0884474407 -0.6493380567 0.6894731680 -0.4119387570 0.2340747832 -2.1937807007 2.2443614474 -0.3680539780 0.3228902751 -2.7593930876 2.8024939023 -1.1964205111 -0.9112428035 -10.2987367960 10.4089021930 -0.1612282982 -0.1990282498 -1.0574747833 1.0969683271 -0.9921956543 -0.7866778652 -7.7796107116 7.8832186884 -0.1335105058 0.1166237637 -0.9970872202 1.0222958804 0.2543787809 -0.4637711505 -5.8702530223 5.9150095705 #SUBSTART 0.2432137666 0.4778117478 -16.6329281780 16.6421524017 -0.4270183858 -0.1602180607 4.8857055918 4.9089320064 -1.3370441829 -1.0083227420 40.1047133820 40.1399042990 0.5615519107 -0.2146556328 426.1019728097 426.1034327973 0.3099920210 0.4885953622 1038.0811205127 1038.0817058093 -0.1316898739 0.0036269003 204.1134419965 204.1135322285 0.7006371794 -0.1386878413 0.5343847896 0.9028696820 0.3327449099 -0.5738770918 49.2417396315 49.2551699602 -0.2602486967 0.2357841258 35.6183089446 35.6324297150 0.1305041103 0.2456233442 7.2708982240 7.2775547349 0.5174040021 -0.1906363414 -1.0287907197 1.1755591205 -0.4667792785 -0.1218529366 -6.3849920565 6.4047118889 0.5593003100 -0.0934155514 -10.5108919317 10.5271017990 -0.4866546289 0.4843079375 -13.6884267610 13.7063450227 -0.6486670998 -0.1373089205 -80.9857245804 80.9885589966 0.1719705071 -0.0266366148 -2009.1329261122 2009.1329384965 0.0764100890 -0.3810504101 -1601.1344839057 1601.1348067486 0.0465810917 0.0238121948 -322.3359211801 322.3359556419 -0.3975784519 0.2605802920 -8.0058299180 8.0211447546 -0.4870528842 0.5754250793 -4.0260982371 4.0984486496 -1.0728667503 -0.2938205053 30.0281355648 30.0490562055 -0.0937236046 0.0112006528 0.6910883689 0.6975046253 0.3264712878 0.2447711299 18.5248470779 18.5293404002 0.0241101116 0.1010134275 22.9372455170 22.9379052379 0.0519518188 -0.0731164659 37.9970649906 37.9974271851 0.1164662234 -0.0699010498 0.5254249033 0.5603585030 0.8228839425 1.1649438842 4.0629445247 4.4073282419 0.1196717002 0.5690728294 1.5955565839 1.7039500575 0.8779813479 -0.2641224450 1.3726672602 1.8993733455 0.0875898150 -0.2572473415 0.4243161215 0.5228500036 -0.4787375843 0.2609389612 3.7958417908 3.8373393780 -0.2288499553 -0.4253435815 1.8489695713 1.9161048314 -0.2423463459 0.3190013986 1.5146494479 1.5729387714 -0.0881570969 -0.4616967140 6.4843550922 6.5200795586 0.2447710229 0.0785032238 4.9023538565 4.9110720549 -0.0175885168 0.2782303101 6.0855783761 6.1122549899 -0.0405297482 0.1071305103 0.8441603909 0.8632532404 0.1679323066 -0.0336574681 7.0943136669 7.0977531849 -0.0211790743 0.0330018607 14.1872685188 14.1959066868 -0.0657846552 0.4677779554 19.4244111784 19.4306555023 0.2212945876 -0.1305113104 47.3144372526 47.3153406076 0.2060671829 0.3063974138 226.4351359641 226.4373809527 0.0234931592 0.0440870733 16.0825656622 16.0832488528 0.1101267941 -0.0410702813 1060.9393851535 1060.9394008446 -0.0656379274 -0.4836620114 -0.9296569409 1.0592351445 -0.6437117600 -0.7677034102 -1.0547226493 1.4613873572 0.0314183788 0.0262265346 -0.7724932815 0.7735766385 -0.0343856307 -0.1121560133 -3.1246889334 3.1268901921 0.3184488979 -0.7785851667 -7.2472117357 7.2972023604 0.0783485285 0.1566969120 -1.0058867509 1.0305243106 -0.0120070893 -0.1851019236 -6.9942008646 6.9980520440 0.2288631596 0.0269271019 -59.2779621153 59.2858351257 0.4152052634 -0.1787591642 -209.6155199728 209.6181131379 -0.0066410260 -0.1312777253 -393.2743938885 393.2744406215 -0.0863550745 -0.1471821359 3.7290900804 3.7329924468 -0.2061812997 -0.0843751124 6.3309651466 6.3348835487 -0.0212162227 0.1741539176 34.8475697920 34.8480114228 0.0384445385 0.0360090092 3.7440917301 3.7444622463 0.0631612122 0.2546274859 -0.1431420419 0.2988547129 0.0888342784 0.1869223438 0.0032034805 0.2069824966 -0.1827699597 0.2928563138 0.7249566199 0.8029519160 -0.0311143480 0.0914791663 0.0856464460 0.1291195346 -0.0455383818 -0.3103244268 18.1945960664 18.1978345085 0.0292933444 0.0793472647 3.6353947387 3.6390560287 -0.0351580022 -0.1242651446 9.8919193467 9.8927623176 -0.2726636559 -0.3701340436 53.6092192932 53.6111904168 -0.4358230341 -0.5382815800 -0.8545658255 1.0999870574 -0.0683583035 -0.1907093284 -0.2951234670 0.3579675493 0.0263954737 0.0749070588 -2.6479045162 2.6490953390 0.1093088813 0.3562850463 -26.6985929862 26.7011938854 0.0470136242 -0.0304234301 -2.7297497771 2.7303241038 -0.0745379248 -0.1647695315 -6.4636740705 6.4662034758 0.0206377871 0.0427147851 -23.9421419297 23.9421889277 0.1429057552 -0.0925302424 -78.7947635758 78.7949474958 -0.0204485128 -0.0021248565 -31.6529337682 31.6529404447 -0.3364749847 0.2996765280 -2066.7973579644 2066.7974070794 0.0036143267 -0.0292699453 75.9090473046 75.9090530338 0.2151848130 0.0909939023 819.9023792080 819.9024124952 0.0850142555 0.0755016666 377.2922105464 377.2922276789 0.5783062354 0.7718218467 2249.2184081187 2249.2186148898 #SUBSTART -1.5803470634 0.3618074662 0.1918687127 1.6385038515 -0.1140294032 0.2406242249 -2.3844980883 2.4033754681 -0.8202934467 0.4488533034 -15.5334840696 15.5622285599 -3.3702169981 0.4473847253 -45.2888532340 45.4164972531 -0.5268680744 0.0379547576 -58.5431956313 58.5531175690 0.5230289499 -0.3293628654 -126.9330737249 126.9346553319 0.7931804407 1.2145665911 -1293.5845641206 1293.5857187021 0.0764071264 -0.0850050989 0.1207770236 0.2170962693 1.3800809824 1.2437800053 0.8168574950 2.0342930397 -0.1931482227 0.5658064952 3.1049555102 3.1650705729 -0.3734963899 0.2148972364 4.7822300853 4.8036324536 -0.3618375739 -0.0529464949 2.4973392902 2.5278277387 -1.3145913968 -1.0119969851 163.8650269038 163.8761182187 0.2923010560 -0.1562397288 43.3272805810 43.3287730393 -0.2882922986 0.1408430403 20.0125984652 20.0156570296 0.0688188472 0.2994677675 33.9164310685 33.9181101063 -0.1909480340 -0.0069830773 490.0353000439 490.0353571722 0.1082536807 -1.9104702363 4.4044462488 4.8929656380 1.1306460205 -1.9674778358 5.9561296717 6.4424499003 -0.5558807077 -0.3790110903 3.6657881955 3.7296294249 0.1777938678 0.0279246812 27.9407017798 27.9570305466 -0.0077855433 -0.2919464833 1.2703894593 1.3109776989 0.1827081541 0.2318751974 26.1855037202 26.2040177309 -0.4038052645 1.9178087844 151.6801701456 151.6936343607 -0.2268925679 1.1548032700 156.3559456980 156.3611538935 -1.5148269752 0.2414455079 -0.0563646640 1.5413154961 -1.6883796132 0.2842269608 0.2076392388 1.7303191966 -0.8788879223 0.0371725558 -0.0089262986 0.8907217538 -1.1308672008 -0.8290802136 -0.1475120742 1.4168536351 -1.1472380985 0.4953874005 -0.3529106725 1.3891547193 0.0621632099 0.1302829778 -0.1501455688 0.2507217495 -0.3108117329 -0.4482916664 -0.3616302084 0.6691976868 0.1414528564 -0.0300727140 -0.3896141412 0.4383973570 -0.5805536150 -0.8834323254 -3.1134401274 3.2909701282 0.1088244439 0.0811110442 -0.0822330305 0.1586947775 0.1950315976 -0.0328796967 -0.1811876222 0.2682300374 -0.3698756381 -0.0374892757 -2.5846446440 2.6112451760 -0.5598377140 -0.2004018330 -4.8291580018 4.8656290618 0.1488001953 0.1438482251 -0.6089589737 0.6431678176 -0.0213462742 -0.0062600377 -0.1020841478 0.1044797814 -0.5459121733 -0.2534454864 -5.4898372591 5.5244952378 -0.6582048455 0.0926265311 -10.8914294837 10.9125858199 -0.1835957492 -0.0861526121 -3.2389323569 3.2452754096 -0.5342071584 -0.0141654536 -8.7404632558 8.7567845625 -1.3109495820 -0.2003460134 -10.6076263662 10.6911152010 0.9835157168 0.2766903626 -20.0359633149 20.0839856219 0.8679114871 0.1923576549 -12.3795300329 12.4114074807 0.0456877691 0.2669789884 -3.8655682652 3.8750462146 0.1780505994 0.1133153626 -29.9152959566 29.9160404225 0.0254843574 0.0352839290 -28.1942998769 28.1946789260 2.1906846691 0.7550669096 -358.7597316533 358.7684415217 0.3602212637 0.0855902140 -39.1537209452 39.1557202549 0.0819831719 0.1790956331 -49.5837411975 49.5843288491 -0.4435766372 0.4510387584 -966.0270930754 966.0274263150 0.1273559900 -0.1321484041 -247.3111374444 247.3112449254 1.2728598206 0.7059121281 -843.0366096258 843.0380105869 0.0367402892 0.0525868059 -31.4993474765 31.4997220059 3.7247370659 -1.5439560346 4.1385146493 5.7796409693 1.1465204552 -0.2437184064 1.1354012785 1.6378411595 1.6279807422 -0.6886580687 1.7560775048 2.4955679154 0.6207420427 -0.1835569698 0.6323406717 0.9156136493 0.1196631811 0.0623502055 0.1927918921 0.2353200771 0.0475539188 0.0565773175 -0.0046740476 0.0740554843 0.1470755330 -0.0897908164 0.0381231796 0.2250039218 0.2898956592 -0.0297713498 -0.0130106451 0.3233804080 0.5834333898 0.4565747840 -0.5506222321 0.9230600719 1.7214797608 0.6406417494 -0.6253978245 1.9403702886 0.2796145958 0.0754680404 -0.1852922665 0.3438211328 0.2053514251 0.0011021420 -0.2701134872 0.3393106519 0.5047445865 0.1853662972 0.1661542071 0.5798402945 0.8940447273 0.8470292979 -0.8903194962 1.7859994413 0.4176241027 0.5194496050 -0.3111041938 0.7486677418 0.4708375566 0.6912782064 0.0402286912 0.8489120660 1.8334876479 1.9078471306 1.5570843054 3.2107414950 -0.1588920957 0.1083428262 0.0899225222 0.2122991429 0.3526360094 0.3009623803 0.8219090688 0.9436445448 0.0686216803 -0.1296191526 1.4675262279 1.7479971059 1.1273043911 0.5350080987 2.8296431959 3.2321388054 0.2324695956 0.1496347133 1.1307326092 1.1723773619 -0.0721462279 0.0135969859 0.1812689339 0.1955719372 -0.3116846693 -0.2098423944 0.6736250075 0.7713311963 -0.2535306570 0.1615541571 3.1945432575 3.2116917580 0.2020368021 0.0674800690 4.5398512779 4.5469882164 0.2028248250 0.0641991975 3.3580347492 3.3676604057 0.3345864677 -0.3008974490 6.8496318293 6.8658155641 0.0715307416 -0.2039722186 4.3208822814 4.3262853584 -0.2351821502 0.1261458505 18.3005980821 18.3025439101 -0.0277558531 -0.2169735210 9.3126303867 9.3162445438 -1.1113614470 -0.6351967627 47.5068648765 47.5243126134 -0.6790399571 -0.2308289238 60.8034762730 60.8078661353 -0.6982179963 -0.5478939077 53.1897682535 53.1973554113 -2.0829349428 -1.6081975609 149.6781507905 149.7042301781 -0.1660280035 -0.1121326058 11.0473559984 11.0500539980 -0.9662390401 0.0862772566 66.8589067164 66.8660896774 -0.4709234800 -0.3829712309 40.8503546969 40.8548640280 -0.6645298236 -0.7478945989 71.6970837458 71.7040637890 -0.6613911057 -0.8444053240 35.4710778927 35.4875655012 0.0213500253 -0.0132059871 2.7795168781 2.9337169070 0.0393265476 -0.2134194273 0.4357912007 0.5064466258 -0.3658768858 0.0171166490 68.0983196892 68.0993047201 -0.0415493233 0.0207912185 3.4566076431 3.4569198746 -0.1081825334 -0.0137533100 2.3237459315 2.3304865486 -0.0140747355 0.4276304639 4.0735285562 4.1260606198 -0.0628733981 -0.2859713267 2.0155579544 2.0414911992 -0.2780411473 -0.1126471810 2.5345952952 2.5561004211 -0.1900210328 -0.1872005663 33.1371851431 33.1382587239 0.3446761241 -0.0475474809 47.6703838809 47.6716536503 -0.0685155579 0.1864363190 30.6011303327 30.6020932341 -0.1565715568 -0.3437690920 204.9317805762 204.9321762480 0.0759360835 -0.0166011758 5.1853514835 5.1859340427 0.0013951444 -0.0347134399 0.3249857113 0.3268373936 -1.8232742728 -0.0873012518 1604.5052129822 1604.5065263904 -0.0457552055 -0.1961524512 586.3902763303 586.3903275326 -0.8605925319 0.0769501770 1159.0801488138 1159.0804792571 0.0390871276 0.0020051727 1.2343429054 1.2428250148 0.4656548916 -0.0201753841 5.2654840482 5.2879148605 0.3419009253 0.2644209887 22.2949554068 22.2995814104 0.1070575679 -0.0445477287 3.3353565836 3.3402887821 -0.0113343470 0.0672016543 87.8677381082 87.8691509333 0.6078508991 0.0840622148 136.0411617013 136.0426172418 0.1971958851 0.0921182441 140.7800134466 140.7802508798 -0.2930655621 -0.2597222456 0.3298558185 0.5306860790 -0.2522819114 0.4457011858 0.5485413940 0.7633303058 0.5051292238 0.0804680601 0.7299801743 0.9022092225 -0.6785122966 -0.3075139232 1.4328251680 1.6209292078 0.8611255773 -0.0634822416 1.0167969891 1.3412394107 0.1090979855 -0.0998911214 0.0764202714 0.2172566440 -0.1463331353 -0.1152770137 -0.3546468117 0.6388677221 0.0111082171 -0.2090339707 -1.0067586782 1.0282906347 0.1614640841 -0.2298652823 -1.4534657709 1.4803619307 -3.3978366941 0.0389041279 -37.4972747308 37.6509285406 -0.6944393590 -0.0329431139 -8.1904290080 8.2198819096 -0.0364103128 -0.1217542860 -0.8451499938 0.8546509984 -0.0076143624 -0.0160738304 -0.0053634857 0.0185772312 0.1751499942 0.2107686374 -2.3041298992 2.3203696971 -0.0053448322 0.0910370147 -0.4952925786 0.5036179541 2.7091969150 0.5749015882 -404.8701265106 404.8806890829 1.5115330580 -0.4890597663 -414.8992534046 414.9025934635 0.2239526698 0.9361908492 -660.2624301858 660.2631466338 0.0685559513 0.1109700820 -242.8515350645 242.8516102011 -0.0479774473 -0.0262667073 -101.3567527020 101.3567674606 0.0511257396 -0.1007701751 -79.6020434002 79.6021236021 -0.0984885269 -0.0580106351 -308.3700191817 308.3700403660 0.0173398229 0.0364007344 -186.1792048701 186.1792092360 0.0594054688 -0.0369523711 -40.5862099611 40.5862702585 -0.0561738620 -0.0904294222 -119.1438441236 119.1438916836 1.8764176029 -0.7471859357 2.2612029601 3.0724492020 0.1675630094 -0.1468804139 0.2206628012 0.3432536596 0.6338999644 0.1993974115 0.7350047922 1.0006499498 0.4317983412 -0.2150700461 0.4662827776 0.6709132290 0.1601258583 -0.0047618980 0.2098395821 0.2639992734 0.8886656959 -0.4874791200 0.1761013168 1.0287731943 0.2797215487 -0.2458093245 0.0571217408 0.3767350025 0.0174095619 -0.2303195109 -0.2543658490 0.3435871870 0.1019808271 -0.1123515586 -0.2467494779 0.2896692367 0.0124052292 0.1138007858 -0.1254582565 0.1698360464 0.0373245677 0.4525771660 -0.1692064691 0.4846132930 0.7810744212 0.6336127996 0.6779277394 1.2129008414 0.3301502430 0.1675847278 0.2210561364 0.4312187836 -0.0269344235 0.1017704879 0.0379450612 0.1119040796 -0.1119440036 0.1750065312 0.3088853728 0.3722484647 -0.0345625916 -0.0069342740 2.0355705081 2.0358757207 0.0357047634 -0.0705524055 0.7811935300 0.7851852032 -1.6630429762 -0.9599357860 150.0735616799 150.0858457814 -0.2928545484 -0.2089161333 24.6672315931 24.6698545639 -0.0682501855 -0.2239782582 18.1270317174 18.1285438806 -0.0404989171 0.0086625415 2.5719862081 2.5723196257 -0.0794289698 0.0128505454 4.5053710232 4.5060894525 0.0088421723 0.0019602912 11.7156846631 11.7156881638 0.1748613941 -0.3680121771 5.0315564142 5.1344834221 0.0726515345 -0.0783243294 1.5983549450 1.6079898200 0.1070308925 0.0837328318 1.7317537716 1.7370774089 -0.0153125309 -0.0284660441 0.7184956394 0.7192223391 -0.2487377862 0.2756162390 7.4443381642 7.4535901082 -0.0012548461 0.0641138902 2.1625315671 2.1634821340 0.1405565508 -0.2102028894 40.2241636536 40.2249584590 0.0351296826 -0.0351741318 2.5610885599 2.5615709879 -0.0223578891 -0.0889632620 215.1455349551 215.1455545101 -0.1228515957 -0.1432169452 182.0551216093 182.0552193917 0.1870949873 -0.2098432634 4.9904031699 4.9983159692 0.2970127269 -0.3017105308 5.1053401382 5.1228647973 0.0633159916 0.0227993697 0.8165224795 0.8192909651 -0.0061391732 -0.0694728644 2.2595427863 2.2606188912 -0.0008816022 -0.0236496602 1.0412774273 1.0415463332 0.0573200170 -0.0631054194 0.3569763113 0.3670149386 0.0701828930 0.0372517282 3.5311292777 3.5320231179 -0.0468441667 0.0567776016 1.4373915853 1.4392750402 0.0657746035 -0.0569882175 9.6570422111 9.6574343499 0.0784636826 -0.1131835226 4.8675177278 4.8694656677 -0.1131004849 0.1818258451 57.3384280748 57.3388279131 -0.0663488598 0.0853358518 12.3120463597 12.3125208606 -0.0803858667 0.0765038553 16.7037338632 16.7041024812 -0.0351295683 0.0961702568 47.3135885372 47.3136993171 -0.4305021916 0.4214763407 88.7200563060 88.7221018990 -0.0428792458 0.1291798035 20.3993798138 20.3998338925 0.0033495071 -0.1370995103 -0.1170956564 0.1803299411 -0.0329990424 -0.0206688606 0.0275749376 0.0477128472 -0.2480591818 0.3016464272 0.2469475350 0.4620681873 -0.0066589135 0.1010323879 0.0313222735 0.1059857035 -0.0517746070 -0.0246653789 0.1075891770 0.1219197353 0.0846492210 -0.0158047795 0.2170410657 0.2334996914 -0.0860224763 -0.0263544891 0.0195252614 0.0920633551 -0.4990683828 0.1310934071 -0.0458145465 0.5180286717 -1.8810564225 0.3627144778 0.1412675165 1.9209090474 -0.1286295578 0.0294094828 -0.0254659617 0.1343837640 -0.1742775409 0.0830251695 0.0562867841 0.2010821775 -0.1369732812 0.0019423650 -0.0577388919 0.1486581050 0.3176360078 0.0098038859 -43.8847985420 43.8859491389 0.1243511886 0.0023711217 -33.4459578617 33.4461891121 0.3050997170 -0.0320147438 -15.7358814408 15.7394903121 0.5292133958 -0.5838864625 -51.9590873401 51.9652501892 0.0255063739 -0.1783235852 -0.0678304094 0.1924859490 0.0521927220 -0.0015159572 -0.0527890472 0.0742499957 0.0335626829 -0.0206258363 0.0214811464 0.0448700173 0.0505213180 -0.1175169088 -0.1705477701 0.2131881078 0.2259300153 -0.1584064978 -0.0919790401 0.2908558649 0.2182112017 -0.0119352129 -0.0729811800 0.2304014550 0.5331017953 0.2406414927 56.1952952448 56.1985123761 0.1960607193 0.2981766700 68.5121866224 68.5132581673 #SUBSTART -1.4073086856 0.2244084049 0.7586594861 1.6204693362 -0.2715875076 0.3381806225 -0.3047122252 0.5481379688 -0.1434263522 0.0154243305 1.3289698392 1.6331933305 -0.3718276920 0.3084898354 1.5948857780 1.6722925106 -0.4297409867 0.4160429242 -3.0332116872 3.0947733285 -0.7926277650 0.5495319793 -3.3130761171 3.4534326855 0.1381853144 0.1769882476 -2942.7730168376 2942.7731749828 -0.3042028248 -0.2524771513 -1425.4500871803 1425.4501488323 0.2972749356 -0.3670605216 303.0838453360 303.0842455313 0.2916080890 -0.1483834141 13.8516644720 13.8562311378 0.2913379747 -0.9958179705 91.2644077427 91.2704121370 0.0027885907 -0.7072888780 61.3065447519 61.3107835094 -0.4357703372 -0.5091103315 76.0465078154 76.0552643268 -0.3381816563 -1.9711726561 85.0551753848 85.0838735601 0.7188800577 0.4113850229 458.3573101876 458.3580797895 -0.2903275900 0.6683921995 87.8156226089 87.8236583332 -0.6726632517 0.4928389766 83.7726981329 83.7821168887 -1.1045433173 0.7363925935 71.4515008046 71.4700080384 1.0446936986 0.0386739562 22.9455328316 22.9884907752 0.6637980758 -0.1165318498 7.7250445760 7.8109456439 1.7261513373 -1.4701137154 5.6354807938 6.1465296831 0.5341312442 -0.1593820988 1.4450189706 1.6255520984 -0.0853882078 -0.0914491157 0.0910301826 0.2083755404 0.3648937796 0.2126945546 0.5445763932 0.7031569362 -0.3841295328 -0.4214105181 0.1382026204 0.6030937505 -0.0489399565 0.0659862265 0.8078117633 0.8238864796 0.6081472190 -0.2305814981 0.0620175590 0.6680844481 0.1057754186 -0.7796115934 0.1521013926 0.8133863131 -0.1931394774 -0.3083753011 -1.4599364649 1.5110567331 0.1844528891 0.0799340123 -1.1006420764 1.4610328811 1.0268184407 -0.8795911895 -0.9127564809 1.6372663037 2.3811360695 -0.5868449572 -39.9372646672 40.0127327843 0.1987071910 -0.4907348503 -4.1566771964 4.1925827769 0.0427580057 -0.0403196998 -3.1556886126 3.1593202322 0.1457056341 -0.0765693890 -2.9754707922 2.9832866479 0.4250984119 -0.2671449863 -18.8160681230 18.8232827768 -0.2162042345 1.1108102277 -49.5473648164 49.5691920014 1.8004625091 1.8539426095 -160.9400132348 160.9635033797 0.6800951861 0.4608828499 -0.2292879631 1.2680165718 -0.4842635636 -0.3044188764 0.4782790854 1.1994685156 -0.1958316225 -0.1564639735 -0.4696270612 0.5503275033 0.0242214596 0.7685691002 -0.7161183325 1.1609270291 -0.2448525069 0.4165125712 0.0620585056 0.5067213387 -0.1793392402 0.0351416866 -0.1245341425 0.2211475839 -0.1554687474 0.1475976208 -0.0537988679 0.2210201513 0.3464038392 0.4726687358 0.0136933364 0.5861730641 0.0070062933 0.0869944202 0.0234794673 0.0903792160 -0.1321265254 0.0351219547 1.1200982878 1.2332828442 0.2585853238 -0.1699715449 20.2289993137 20.2374861423 -0.0668030997 -1.2628280592 186.3919879327 186.3963300139 0.2309028894 -0.3838699762 34.3686783686 34.3718810206 -0.9944544957 0.5651682112 1.4104584660 1.8818578308 -1.4188406749 1.2466226515 1.7329240818 2.5670377002 -0.2344180284 0.8406508243 0.3038032475 1.0495796600 -0.5746128673 0.7198529691 -0.1547752653 0.9443534360 -0.5910482736 0.7124621376 0.5236310894 1.0726647481 -1.7545777209 1.7248032086 -1.2252209573 2.9047284324 -0.1376547378 0.1834074230 -0.1809580517 0.3237479128 -0.1623937702 0.0829088275 -0.0199579355 0.2304858225 0.1079086074 1.0628009158 1.4161623620 2.0073608730 -0.0128872716 0.7555337672 0.9621790792 1.2313674190 0.0367239000 1.1118253301 2.2619882288 2.6901462305 -0.1635483305 0.0723964146 0.3728829454 0.4364753981 0.1940775460 0.8543822134 6.4707481537 6.5487321031 -0.0916205274 0.4564440170 0.1625984886 0.6977210691 0.0172684216 -0.0474114177 0.0352085332 0.1525302154 -0.2916069220 0.1686583846 0.0192551822 0.3651448953 -0.2845411547 1.0902542292 -0.2780216810 1.1689284807 0.0821992512 0.0482666276 -0.2209382615 0.2781724007 -0.2165311248 0.4202557578 -0.5661632982 0.7506805547 -0.2452901795 -0.2663369417 -0.8225781474 0.9095148334 -0.8708068062 0.2375344960 -5.0154039237 5.0959791648 -0.4656214132 0.0821960416 -2.1757027081 2.2264864167 0.1583343417 0.0393639269 -0.5155504598 0.5584723306 0.0806922830 0.8891298948 -7.3607920105 7.4160502979 -0.0644168292 0.1948967993 -3.9743606772 3.9821045776 0.0872750546 0.0066353098 -1.7108242833 1.7187380474 -0.9958460119 0.4712635647 -15.0672844893 15.1081547614 0.1367956641 -0.1249876171 -7.0635079538 7.0673162768 0.1103147978 0.0339030942 -56.0455350216 56.0458276272 -0.1206291930 0.1451066612 -79.9158775442 79.9161003241 -0.3681603456 0.1513067369 -152.7221988009 152.7227175058 -0.0082546796 0.0840658125 -42.7213485566 42.7216600506 0.2357582353 0.1517696000 -29.3151445204 29.3168175967 -0.0625245159 -0.0804413073 -36.9894249640 36.9898285894 -0.0738297296 -0.6002312138 2175.2652568998 2175.2655433198 0.2845736213 -0.7229341665 407.5696090201 407.5703734234 0.1347292020 0.1849934725 17.4769443067 17.4784426321 0.7455304045 -0.2238021965 33.2974425675 33.3065396663 -0.3754948826 -0.9994709816 94.5263223575 94.5324549394 -0.1705928907 -0.4981694386 579.0085384013 579.0087778405 -0.2451430439 -0.3741365517 556.1585565822 556.1587364529 -0.8698398317 0.4428968185 353.7856611054 353.7870351815 -0.6803084172 -0.0215772354 214.4523318370 214.4554702199 0.1147605945 0.3420667800 50.7604686098 50.7619427618 0.0138363617 -0.0660850048 21.5928934391 21.5934500608 -1.1783357251 -0.0128872450 196.8041564599 196.8099271704 0.0222661559 0.1588997441 17.9943270973 17.9955836910 -0.0291045947 -0.1954292887 15.8783190618 15.8801617025 -0.5032543791 -0.0439154148 6.7266544244 6.7470403189 0.2125775021 0.0727782255 2.2173749224 2.2330958770 0.2818969094 -0.3229013163 2.4917199986 2.5321689248 -0.0386025101 -0.2709770833 2.3472255885 2.3672487156 -0.1366767264 -0.3338381200 0.9760057606 1.0498549650 0.1291841829 0.0887845717 0.1219844878 0.2427576023 -0.2367607858 0.0918027332 2.7526400727 2.7678494479 -0.4918229504 -0.9008479499 1.9534241940 2.2110546601 -0.0113849321 0.0044217848 -0.0101067997 0.0158529575 -0.0264249798 -0.1752600880 -0.1130546692 0.2102284384 -0.0093464343 -0.3541072918 -0.2037413839 0.4086442726 0.2021554594 0.4588086728 0.2441414100 0.5748539301 0.5371777257 0.0549079082 -0.2623176503 0.6163319901 -0.1039642276 -0.2506450354 -0.4232596724 0.5217854248 0.5575016715 -0.3209493639 -0.1397161083 0.6729167733 0.3322198700 0.0510629757 0.1473152330 0.3926309110 0.4890294551 0.1899892112 -5.1765307604 5.2872023043 0.2012864293 -0.1708344597 -1.5422866905 1.5709324173 0.2159370145 -0.8374536557 -7.1766919044 7.2454471961 0.1888827412 -0.2703934413 -0.9140742572 0.9817335868 0.0961639038 -0.0748510316 -3.3126609902 3.3178385726 0.9515906017 -1.0317363880 -14.1683500281 14.2462552317 -0.0757139284 -0.0103448175 -2.2637682670 2.2693536890 1.0970490058 -0.2420135636 -18.5927362186 18.6331845947 2.0023280462 -0.8149866993 -30.6361010514 30.7125982024 0.0302028820 -0.1423387585 -3.0298500758 3.0365513009 0.0369666684 0.2099644160 -1.6691905049 1.6885284473 1.2792192769 -0.8677931730 -18.9208843752 19.0070955983 0.5684792439 -0.3696018053 -4.1241786538 4.1818779870 0.0478064433 -0.0899281926 -1.9600103648 1.9676109755 -0.0419350811 0.1372476457 -8.6818311922 8.7335639294 0.2896088597 0.0503279976 -4.9854055763 4.9960138855 0.3570761778 -0.3224608693 -11.5561691035 11.6042802681 0.2938150888 -0.0318399166 -2.2681527894 2.2915797930 0.0593179775 0.0181641691 -0.6054101853 0.6085803578 -0.3069871669 -0.0962606155 -6.3436924553 6.3518454951 -0.0725311020 -0.0768744831 -3.5201754769 3.5217617516 -0.2007497857 -0.1544957315 -11.7502809642 11.7538398802 0.1580083280 -0.0153900567 -13.7337567341 13.7353834057 0.0545720054 -0.2055421314 -27.4614015646 27.4625796558 -0.1246944612 -0.0401178502 -7.1365628077 7.1391292636 -0.0054318744 -0.5412320319 -184.7080896363 184.7088826740 0.2230783438 -0.3063610017 -47.9887677568 47.9902641358 -0.4096785203 0.1505520196 -23.8371977856 23.8416018853 -0.0428569866 -0.3859390289 -45.2260497130 45.2279320563 -0.2607104349 -0.0047999644 -100.3311375294 100.3314763717 -0.4007609011 -0.1708944406 -188.8566308923 188.8571334268 0.1393463890 -0.0004270359 -21.6251756810 21.6260750164 -0.4375133564 -0.1116217969 -85.7436341143 85.7449365751 -1.2048266587 0.5522436288 -81.4775692856 81.4937646006 -0.3407117917 0.0184556330 -30.6305847314 30.6328031024 0.6907488015 0.4389634667 -75.6915938626 75.7018493570 -0.0183040454 0.2350699444 -22.3486726492 22.3503521646 -0.1916377593 0.2010476413 -4.8350038352 4.8449857643 0.1872613545 -0.0062152054 -12.1676632472 12.1699060853 -0.1103173946 0.4985362686 -8.5212831950 8.5377078548 -0.1977428801 0.3283557174 -3.4231630834 3.4473823409 -0.0974457282 -0.1339545461 -0.8594369539 0.8752550303 -0.2071332904 -0.4823650456 -4.0723038016 4.1060003031 0.0413038850 -0.0097964921 -0.0148397271 0.0449688745 0.2526841941 0.1470257734 0.1799119300 0.3432698393 0.0282405849 0.0338927352 0.1202185244 0.1280575720 0.2917414074 0.5092544889 0.6267527035 0.8586455233 0.6114514097 0.2965263516 0.6586222575 0.9463529900 0.1374858610 0.1008525767 0.2605961883 0.3114225065 -0.0402358604 0.3051960096 -0.7562287177 0.8283267394 -0.1453442669 0.1126728744 -1.8397345055 1.8541636843 -0.2485005504 0.0453959529 -2.8219594484 2.8366790847 -0.5143013846 0.5924367407 -4.7153675745 4.7822231601 -0.5997874934 0.5695644031 -4.7944216342 4.8652469057 -0.2366520778 0.2996291383 -1.8184218833 1.8580742644 -0.1371379721 -0.0169230861 -0.2396901206 0.2766668902 -0.2781789409 0.1623838678 -0.5516909626 0.6388387605 0.0051386329 -0.1312612754 -4.5614209608 4.5633120767 0.1853041625 -0.2234548303 -7.7998176952 7.8052178555 -0.0123870716 -0.0124588271 -45.2740680155 45.2740714243 -0.0017482752 -0.1230569877 -32.4867943433 32.4870274537 -0.1571135238 -0.3819053014 -220.9311079106 220.9314938593 -0.0733985245 -0.1929764685 -174.5326954670 174.5328175853 0.0747244754 -0.0526433294 204.4512786074 204.4512990403 0.0812010923 -0.0924754200 84.5163846931 84.5164742930 -0.1401062547 -0.0649775140 41.0245392914 41.0248299924 -0.1356553464 -0.1057567253 99.3410080288 99.3411569443 -0.5439045608 -0.6396478851 42.9540066406 42.9622120947 -0.0115365419 -0.0596764266 2.2732933920 2.2741058054 0.0791973129 0.0000737039 12.3432660570 12.3435201289 -0.0462761664 0.0384524090 5.5245407965 5.5248684223 -0.0343470783 -0.0094523572 12.3745339166 12.3745851939 0.0341766775 0.0987033892 10.4370098847 10.4375325502 -0.0982495399 0.1251032143 22.6988206764 22.6993780507 -0.1959404139 0.0261293230 31.4398552495 31.4404766742 -0.4378803685 0.6158985993 8.9699889321 9.0017649238 -0.0676874145 0.2211763060 2.6239414251 2.6341163882 -0.2986867849 -0.0365416970 1.7046658655 1.7310213182 -0.0334433032 -0.0489590654 0.6008831815 0.6038013270 0.2484395709 0.4785677243 2.9369071515 2.9859961326 0.0041604757 0.1309690227 0.5545587461 0.5698294458 0.5181978935 -0.2442365421 1.8529539219 1.9394893096 0.1935569199 -0.0403293485 0.8940320263 0.9156331152 -0.0774124077 -0.5757338872 1.5257093538 1.6385148785 -0.1682496198 -0.2668262081 0.4891607655 0.5820501820 -0.2851212791 -0.3546207208 1.0330294040 1.1288045663 0.4830674862 -0.3914343011 -0.2097636874 0.6561827587 0.3480080564 -0.1506498071 -0.1518427065 0.4084864492 -0.0257524367 -0.2866292840 -0.7010043455 0.7577774257 0.0495962635 -0.1847932063 -0.7505239040 0.7745285333 0.1420674626 -0.1005393247 -1.1054018139 1.1190194324 0.4147068139 -0.0666002430 -3.2984628951 3.3250977135 0.0361005887 0.0017994858 -0.6651374491 0.6661188459 0.3213805872 -0.3933630390 -6.1353583079 6.1563496919 0.3223663596 -0.1767910366 -2.5835154034 2.6095453589 0.8323700359 -0.4415664779 -8.3353887684 8.3884758301 0.1202947581 -0.3007357189 -1.7889286728 1.8180150158 0.0603739512 -0.2029036102 -0.6977619128 0.7291684140 0.8009141295 -0.9531460441 -23.8792193209 23.9300525865 0.0116040592 -0.1048654411 -2.0743317173 2.0816972098 0.2635800490 -0.1770750191 -9.6457522837 9.6509775216 0.0014224282 0.0088967123 -1.4624198548 1.4624476081 -0.0194250588 0.0157769812 -0.2612484606 0.2624442878 -0.0538118691 0.2063053973 -10.7499991119 10.7521132127 -0.3822178732 0.0022766991 -14.1446987021 14.1498620863 -0.2284378798 0.0456840426 -5.7362882227 5.7410167627 -0.0823806128 0.2977867805 -15.5645852254 15.5676516139 0.0006003603 -0.0149160848 -0.7141627576 0.7143187624 0.1363821414 0.0947799476 -16.5758441623 16.5766761752 0.1240645894 0.2900367962 -38.7299790691 38.7312637550 0.1584652475 0.1957714477 -15.7722773880 15.7742883103 -0.0151755746 0.1144476973 -6.8955830995 6.8965494891 0.0330709898 0.2543723703 -17.7123904899 17.7142478209 0.1175142665 0.1148276290 -11.9647500727 11.9658781244 0.0395684840 0.0706256030 -3.0080087228 3.0090978909 0.0558038148 -0.0566654388 -1.7627066253 1.7644998398 0.0754912541 0.1606681665 -1.0239819269 1.0392555873 0.0792865115 0.0316028653 -1.0946932550 1.0980156714 -0.0430194261 0.0253016252 0.4866299357 0.4891825197 -0.2073596150 -0.0545639159 0.7477831170 0.7779169756 -0.5137360858 -0.0723349699 0.7093761775 0.8898603597 -1.0136196057 -0.7390948240 1.7424348281 2.1515679815 -0.1435789301 0.2516162283 0.4919791452 0.5709370498 0.0304753978 0.0800446982 0.1577593251 0.1795101898 -0.0279849115 0.0759967051 -0.0239799637 0.0844611930 -0.0757996771 -0.0400231364 0.0260091301 0.0895763213 #SUBSTART -0.3323374991 -0.1849449482 990.8964226915 990.8965055118 0.1851082386 -0.0668942268 6009.0752431881 6009.0753198664 0.2238488133 0.1243611064 -1386.7806346456 1386.7809765763 0.0897287955 0.0021402654 -3842.0488385844 3842.0489545184 -0.0949850912 0.6239550309 -1649.1696683033 1649.1700559809 -0.0950551274 -0.6282164615 -75.5273635809 75.5358636111 0.1365263817 0.0469319655 -11.1986218920 11.2387866309 0.2247187435 0.0842504512 -8.6333204404 8.6377831800 -0.3375532546 -0.0015831824 -26.6132329715 26.6157395856 #SUBSTART 0.1810322254 0.0178146512 0.0892185688 0.2460279788 -0.2939165691 -0.8473522394 -2.0299790128 2.2236652951 -0.0251269998 0.2986636221 -0.7130983881 0.7860155350 0.0595672856 0.0212654075 0.3968959133 0.4254487396 -0.2081797921 0.3708634056 11.5917897841 11.6004288143 0.3044595833 0.1687424704 208.6629192129 208.6653249006 -0.3077703576 -0.1537005470 245.7125868223 245.7146240278 0.2461047686 -0.3082749946 379.3205885676 379.3208193496 -0.0420705500 -0.4619819525 4369.2681157364 4369.2682411061 0.3226933505 -0.1987493578 0.1925572573 0.6514227222 -0.4168787422 -0.4293726415 -1.4707740236 1.5939902022 -0.0714745648 -0.2131724828 -7.8183280144 7.8776363621 0.9214129261 -0.6178134153 -11.2178351706 11.2734201065 0.0552191616 -0.4879636923 -73.9932083789 74.0007864453 -0.0175691986 -0.1899127456 -3.3873382112 3.3955729222 0.0912017593 0.1609041419 -19.8548606412 19.8618564073 0.0296019750 0.1095821365 -6.2349475650 6.2554853225 0.5287070335 0.1488847615 -3.1217131556 3.1727386608 -0.9872014151 0.4878894402 -6.1149721180 6.2332304764 -0.1546037430 0.3031467785 -6.2097851244 6.2206680801 -0.0033282968 -0.6183878494 -3.8052693837 3.8577155776 -0.2102238460 0.0257763583 -0.4667992189 0.5312624415 0.4983626645 -0.0460050053 1.4574542996 1.5472991392 -0.0904809114 0.0309504573 0.0629561049 0.1805214175 -0.0044507503 -0.0743567545 0.9657583131 0.9686267885 0.2566031196 -0.5323530620 11.4152174086 11.4305045133 -0.0638548971 0.0866472233 2.2531207796 2.2600040313 -0.0384200749 -0.1222174271 1.6524364124 1.6632615801 0.0615884420 -0.0455483303 722.5462595128 722.5468744625 -0.4162307888 -0.3649134992 645.1774576789 645.1783773946 0.0024828864 0.1586327153 260.5247933301 260.5248790231 0.0667940688 -0.1003494478 0.1981036725 0.2706590277 -0.5597917977 -0.0908385050 1.5336975337 1.6411357045 0.5769956063 0.2996830848 -0.6859928022 0.9554055634 0.0128466165 1.1856493653 -0.7212063398 1.3948289582 0.2928539826 -0.6027490636 -2.9560111083 3.1733047988 -0.0069313949 0.5693822586 -11.7902506017 11.8412247696 0.6398037326 0.0823799751 -57.8159620496 57.8197291829 0.1916519700 -0.2431471992 -8.8006704395 8.8072203905 0.1131809324 0.3279531494 -222.8898128536 222.8900828594 0.3583488589 -0.1509286507 -185.5398167679 185.5402242093 -0.1692890662 0.1603674237 -189.0739757910 189.0741195878 -0.1698428646 0.1343450021 -315.3713889156 315.3714632647 -1.2987988061 0.3172114832 -3323.5097651885 3323.5101665492 -0.1056512515 -0.1121608296 -631.8749007012 631.8749349026 0.1935358236 -0.3213394311 -987.5815127539 987.5815938586 -0.2369081669 0.2751464571 -879.4737652040 879.4738512275 -0.0138602112 0.8827762193 -16.0025033374 16.0268399574 -0.0373644452 0.0599785436 -1.1854284019 1.1875327463 0.3355411691 0.0756266271 -6.0018612567 6.0117090588 0.0529694955 -0.0409067167 -1.5118966824 1.5133772514 -0.1206493712 0.2743459086 0.9933265310 1.0375545988 -0.0953701498 0.0438061856 0.4613666582 0.4731528724 0.0223632468 -0.0435730828 96.3789713558 96.3789838001 0.0898061219 -0.0303752447 36.1163424753 36.1164669035 -0.0826570527 0.0635830120 0.0891363062 0.1371869850 -0.0191033014 -0.0580761473 0.0936827493 0.1118670306 0.2062754916 -0.4073488518 -0.3469645937 0.5734693495 0.0000186702 0.0053112679 0.0063493150 0.0082779054 0.0621284386 0.0057110014 -0.1937957184 0.2035911071 0.2437469596 0.1152997579 -0.2792828485 0.3882080936 0.0340782664 0.0827969448 -0.0852655976 0.1236401409 -0.0051543280 0.0716801199 -0.3648869059 0.3718965727 -0.0792502316 0.0538145129 -1.0419407960 1.0463351391 -0.1297914381 -0.0118994731 -3.7253718675 3.7276511326 0.0108946615 0.2613177275 -0.9328346318 0.9788083998 -0.2082835871 -0.0080278468 -1.8057683384 1.8231087669 -0.0400225206 -0.0353784130 0.0701484656 0.0881716592 -0.3514957024 0.0859383955 0.3205454659 0.4834087632 0.0634920507 0.0549100321 0.1152971723 0.1426176359 -0.0443661600 0.0903968748 0.3346474959 0.3494694516 #SUBSTART 0.3368696623 -0.8585951361 5.2974639928 5.3789656363 0.0071880380 -0.1662948218 4.4521455075 4.4574415353 -0.7837243531 -0.0547847951 1.4540340341 1.9011133561 -0.8434469455 0.1509376090 0.2840034109 1.3019959454 0.1150352615 -0.1322159852 -1.4732989155 1.4902361080 0.3590460836 0.1382200943 -65.6758316396 65.6771068198 -0.1341584617 -0.1345165590 -27.1816111712 27.1867563350 0.3491750992 0.1292657251 -41.9743250996 41.9788785153 0.2888000874 0.1297856795 -695.7325980811 695.7326841268 0.3971589232 0.2626488563 -4647.0441135601 4647.0442326756 -0.0158668582 -0.7132075801 427.4508606964 427.4524857543 -0.0285185634 -0.0550855004 541.8765024023 541.8765239270 -0.1612581004 -0.7567178223 7.5902834396 7.6308917248 0.1725965085 -0.3036194485 2.9467844461 2.9706889237 0.6114937660 -0.7657569789 5.8938823283 5.9747934924 0.0490472552 -0.1355833714 0.7431229822 0.7569810106 0.0272769160 -0.0635907392 0.8284009662 0.8312857349 0.3181204909 -0.0853870585 3.2485827534 3.2652383531 -0.0720122819 -0.0951456055 0.7252210456 0.7481068138 0.2613875374 0.0727677553 0.0576595134 0.2773863918 -0.1862279387 -0.0149300886 -0.0738870217 0.2009055616 -0.4506888046 0.1398419187 -0.3212666698 0.5708663889 0.3697503395 0.0744408423 -0.9273335582 1.0107838867 0.4553620696 0.0215921172 -11.5208554229 11.5307159489 0.3965691932 0.4389910569 -11.2315696607 11.2480050276 0.3348850359 -0.0538237233 -1.4651726970 1.5103826658 0.2594502435 0.2051003690 14.7039945730 14.7083757356 0.0789085410 0.0261817010 13.2510396242 13.2520354265 -0.1314316568 0.3216804496 5.1512566120 5.1629640009 -0.0556909431 0.0101736394 0.7944451767 0.7964597434 0.2609930299 -0.0508045778 15.5262955765 15.5291993541 0.2511664606 0.1289706808 12.3455827446 12.3495996338 -0.2038200758 0.0459172805 6.5239564974 6.5287930879 -0.1277010414 0.1584643002 5.3328273452 5.3385340469 0.1162856735 -0.2314895134 2.1236001545 2.1438906581 -0.1027563410 0.8539899379 -0.7388377191 1.2366809673 -0.1143405220 -0.1234521848 -0.1724221444 0.2409223791 -0.2730815768 0.0682566171 -1.0767145851 1.1216178476 -0.2571520168 0.4949288797 -3.5187828930 3.5967423822 -0.2702889850 0.1316203716 -5.6566816311 5.6663839367 -0.0226088593 -0.0717747448 -0.4294609426 0.4360039859 0.1249473634 -0.0572161814 -0.8666077917 0.8774363793 -0.3020668905 0.3045573904 -20.9982208508 21.0030654499 -0.1236766178 -0.2308697598 -5.3127823938 5.3210650533 -0.2363705707 -0.0128816051 -16.2972448084 16.2995615006 -0.6544995275 0.1060512129 -20.5035333472 20.5147258328 0.0667084674 -0.0221893465 -2.3387810368 2.3439963545 -0.0291284966 -0.1001494410 -22.4991847265 22.4998593667 -0.2739666830 0.2637022572 -40.7588655912 40.7608783111 0.0569549382 -0.3876834303 -915.8598841531 915.8599786120 0.0645914946 0.0566318670 1.2084173821 1.2194800465 -0.0505956378 0.0454348898 20.4950376798 20.4956257169 -0.3302139807 -0.5642301659 6.5513452770 6.6023604000 0.2342852500 0.0378351526 370.9782714067 370.9786811292 -0.3256501397 -0.3777810766 104.9410616268 104.9423396999 0.1862088064 0.5869897934 506.7497253453 506.7509681480 -0.0633015585 0.0677961633 108.5603530496 108.5604823932 0.0250330885 0.2123452581 318.2002311822 318.2003336286 0.2516022095 -0.2812881277 3.7111208227 3.7302606401 0.0841557676 -0.2194918858 3.0383261666 3.0474062374 0.4586002886 -0.4496622154 5.1624691853 5.2022685842 0.4460362326 -0.6049332808 5.4038385080 5.4558558646 -0.3073715775 0.4735629943 0.9400438060 1.0965498408 0.0107405403 0.0213418365 0.0178791893 0.0298412232 0.0128147488 -0.0760367607 -0.0422139547 0.0879080470 0.0073705163 -0.2805906689 0.1017263936 0.2985526874 -0.0434895846 0.0055241575 -0.3964992607 0.3989154347 0.0794790577 -0.0595538914 -1.7345688863 1.7374097985 -0.2206242383 0.0701211784 -3.5165807175 3.5241923865 -0.1194413632 -0.0447177213 -1.2556238868 1.2620844896 0.1445738335 0.3153621856 24.2517330665 24.2542143065 0.3388193355 0.4973289156 53.6077454940 53.6111230207 0.3657810027 -0.1249384141 29.3215007665 29.3240483656 0.2783765255 -0.2307472765 27.2324525793 27.2348528779 -0.1166030866 0.1360596774 6.4150085245 6.4175106455 0.0141450807 0.1465078520 6.9530601358 6.9546178821 0.0925247223 -0.0654439136 4.1712817262 4.1728209846 0.5610713342 -0.0441785868 19.4293479561 19.4374976473 -0.0323884936 0.0696982267 0.7036091310 0.7077942261 -0.2005381296 0.2911601389 1.4649470581 1.5070035338 -0.2087065515 -0.2842740918 0.1112361986 0.3697886907 -0.0858159407 -0.0635366405 -0.0333783763 0.1118722323 -0.0586366139 0.0567762287 -0.3265184396 0.3365651260 0.0663339209 0.0036212500 -0.2559802497 0.2644601874 -0.2741617903 -0.2955972052 -2.0328142898 2.0771028180 0.3064948434 -0.0170570671 -0.8567511600 0.9207238281 -0.1665786910 0.1003460362 -1.2168799599 1.2323208284 -0.0131392992 0.0829759230 -0.9857929779 0.9893661811 -0.0369434723 0.0120319362 -0.2648274145 0.2676623752 -0.2777115899 0.0303040330 -6.3841561964 6.3902654407 -0.1094355849 0.1410765685 -160.8258179266 160.8259170361 -0.0268905946 0.1333970439 -251.8301714473 251.8302082139 -0.1205128311 0.1415721200 1.0354311161 1.0519903059 0.0036628701 0.0245551706 0.7056755871 0.7061121775 -0.2033320150 0.2330877167 50.2916913073 50.2926424871 -0.0779639114 0.0109291401 21.1889049047 21.1890511556 -0.6028054782 1.2491670411 3531.4120765533 3531.4124735819 -0.0943278989 0.1246921184 684.5156093973 684.5156414825 -0.0927133414 0.2683709817 -0.0546293953 0.3210652632 0.0146599071 -0.1444725920 -0.0093230968 0.2016282414 0.0621703933 -0.3348517048 -3.3920374846 3.4119479632 -0.0603322492 -0.0835410515 -0.4086711130 0.4439717909 #SUBSTART 0.1142359251 0.1395056979 -863.2310185946 863.2310487091 0.1809638934 -0.0410759759 -11.9591078173 11.9613617426 0.1219265731 0.6556577830 -99.3663459963 99.3698098560 0.1161527327 -0.5576895742 -45.5408598841 45.5446364338 -0.0586364764 0.9738226971 -13.8493026260 13.8843232421 0.3515100403 -0.4986848366 -1.2476044449 1.6767690689 -0.0280487788 0.4093488187 -2.2032091519 2.4300772707 -0.0524468210 -0.0301435731 -10.4457658535 10.4468733770 -0.2902732449 -0.1406139607 -25.1453456868 25.1478015010 -0.0089829773 0.0616980077 -20.6587585145 20.6593240568 -0.0040036542 -0.1395282607 -24.9575212318 24.9583018249 0.2561798501 0.1347489182 -187.6397072581 187.6399824267 -0.1115570928 0.3216290743 -99.0573844678 99.0580677564 -0.3853323754 0.1570011374 -1802.1660828067 1802.1663750885 -0.2764913891 -0.0757292056 -425.1719892016 425.1720858477 -0.5973907910 0.0355527360 -870.8620503270 870.8622559507 -0.1272779881 0.1579406326 -1.0891686336 1.1078958624 0.5789493810 0.5646674759 1.0778622642 1.4350817972 0.2366456242 0.1993203754 -0.0197493917 0.3399993925 0.3055918854 0.4552260819 -120.9372832978 120.9386066913 0.8133604609 -0.4805414234 -505.0913187346 505.0922022129 0.1987634300 -0.0491248523 -120.9240022047 120.9241755372 0.0452047972 -0.0714083492 -18.6709677843 18.6716807067 0.3023335787 0.0609986356 -130.4514681913 130.4519074582 0.0245576211 -0.3495744206 -74.0434844586 74.0444452738 0.3644104625 0.0939749666 -63.0437911555 63.0450688739 0.0068484888 -0.0184313386 -2.0434485571 2.0435431539 -0.0306685832 0.2120972943 -12.2438436622 12.2457189846 -0.1896389425 -0.0099187482 -7.1649194670 7.1687943243 0.1940908796 -0.4507259305 -66.5065046179 66.5101467641 0.2298698490 -0.1984866669 -64.9984321703 65.0010158586 -0.1721037172 -0.0787967309 -17.1270757286 17.1353502170 0.1851716737 -0.4702834291 0.1616715706 0.5306531345 -0.0158180745 -0.0863869914 -0.0012300026 0.0878318659 0.3694440933 0.1903591955 1.0296125596 1.4545168852 -0.1705376000 0.0051991829 0.2251294963 0.3150764661 0.1286597214 0.0420071835 0.4216799539 0.4643400648 -0.0460248003 0.1953606161 0.6833309355 0.7257444487 -0.0859561700 -0.5037912998 15.1698777102 15.2075368047 0.0267715340 -0.2981155329 3.6369422342 3.6519061031 0.2704828342 0.0706207318 286.5799478126 286.5801181455 -0.4624789094 -0.1649113411 738.6069030537 738.6070794413 -0.0810448123 0.0557126475 88.9529579135 88.9531217749 -0.0863283411 0.0089982639 135.2860154397 135.2861152776 0.2070904296 0.0632835837 25.0414322531 25.0427574426 0.0703308888 0.2389059629 128.8906143122 128.8909304802 0.4197841408 -0.4250977924 4636.8804043455 4636.8805380257 -0.0976754262 -0.0105189741 861.4167794643 861.4167963731 -0.1296238691 -0.1329452770 -16.6359002626 16.6375218745 -0.5428933539 -0.0069675306 -26.8372337298 26.8430880450 -0.0549936734 -0.1817888845 -10.2575400376 10.2592981790 -0.1223048170 -0.1944567696 -22.1683011281 22.1694913521 -0.4138789658 -0.2115610157 -353.8366742447 353.8369795463 -0.1014295211 -0.0571938676 -50.0807971638 50.0809325358 -0.0305127005 -0.0230096877 -221.9231472619 221.9231505524 -0.0935593588 -0.1379443595 -213.5458402405 213.5459052898 -0.6795641000 0.3484790011 -2.4963485187 2.6568104688 -0.2379642387 -0.1416653423 -1.0116535131 1.0581203446 -0.2225451784 0.1543063208 -2.0574496297 2.0798835449 0.0943272134 -0.0568004560 -43.5188166896 43.5189559845 0.0202613632 -0.2033426741 -87.4076892442 87.4079281174 -0.0438349627 -0.0563075545 -16.5042054668 16.5043597311 0.0923187853 -0.0490468070 -33.0166476272 33.0168131243 0.1531377463 0.0451546583 -43.7041742742 43.7044658942 0.0811923806 -0.0619775690 -16.2925242506 16.2928444379 -0.1185671027 0.2412588052 0.9484848069 0.9956742352 0.0403176966 0.1993698867 0.4471343731 0.5106689739 0.0536710944 0.0440173569 27.6960519465 27.6961389283 0.0037594382 -0.0351291768 2.2842547733 2.2845279735 0.0101439173 0.0375286158 23.6783449384 23.6783768514 -0.0209869705 -0.0872613979 19.0146709348 19.0148827439 -0.2865764223 -0.0388501286 -1.5232481337 1.6271328203 -0.3448869901 0.3943542737 -1.5668286245 1.6579789060 0.0184596164 -0.0184123601 0.0344754152 0.0432241448 -0.1425826694 0.1023451124 0.2583163621 0.3123006285 0.1404652305 -0.4229920234 -97.8476270016 97.8499077056 -0.0154639620 0.0078644367 -0.5473004726 0.5475753745 0.1535005511 0.1889159221 -27.7842054333 27.7852716957 #SUBSTART 0.1712998803 -0.9617839056 5872.9775984778 5872.9777548860 0.3703263090 -0.0100644096 -581.8946810796 581.8950083585 -0.0058688706 -0.0258741569 -298.7288254280 298.7292344021 -0.1384036437 0.1554803187 -3.1521030006 3.1620504122 0.4032379019 0.3198375923 0.5768037736 1.2157097010 0.2335375227 0.1944140466 1.8993311373 1.9285422344 -0.2913094173 -0.2500267312 1.2210301208 1.3718345596 -0.3878217185 -0.0908334331 8.3524023614 8.3630593319 0.0021695394 0.2645686874 0.2337821624 0.3796513949 0.4919864161 0.5230543356 -22.3577473176 22.3747210608 0.1704951162 0.1604341000 325.0545426609 325.0546269663 0.0463857287 0.2002025734 232.1680313707 232.1681223236 0.1214647007 -0.0175407473 18.4064660947 18.4068752222 0.0858228934 0.0677696180 7.1336860875 7.1345241947 0.1303843861 -0.4141941836 227.9831831082 227.9836393622 0.0544944948 0.0117811388 -485.3393501514 485.3393734220 -0.3219505401 -0.0681190106 -84.6680979210 84.6701762067 0.1963069692 0.1358441291 -48.5901897810 48.5909766602 0.0502917293 -0.0412903628 -4.0242354390 4.0247614862 0.0558596663 -0.3604684451 -13.6394937331 13.6443705277 -0.2754435981 -0.0125336628 -4.5371897301 4.5477023539 -0.2032493357 -0.1242593042 -3.6357692499 3.6462375801 -0.2119613998 -0.8064236598 -1.7238856800 1.9200282229 0.0434979310 -0.2512007278 3.2155009442 3.3596475980 -0.1998129792 0.6985751753 7.2617784072 7.2993724335 0.0175258021 -0.5336439380 0.4368029027 0.7038178507 0.4346156576 -0.0089172350 0.6415830364 0.7874508648 -0.2043552785 -0.4410627561 -2.5830162932 2.6320620036 -0.4774411191 0.1281491262 -5.7745383656 5.7973395054 -0.5340445637 -0.1708982658 -14.2473061728 14.2590189978 -0.1282980424 -0.0743214376 -54.6832390622 54.6856677691 -0.3062084368 0.2461869450 -21.7710592267 21.7750515787 0.0706536496 -0.3090732309 -70.9228424795 70.9236884501 -0.2244415641 0.2575344038 200.8745327919 200.8748232665 -0.1026759507 0.0187800403 80.6185405075 80.6186080791 -0.4285031390 0.5972928235 -4708.3645877353 4708.3647388669 -0.1759376346 0.1413043999 -483.3241257098 483.3241985396 0.0789670365 0.0082460997 -0.9100976166 0.9135543021 0.3582915752 0.3603820491 -5.6150457275 5.6379949092 0.0698018127 -0.0001417290 -16.4548482123 16.4549962627 0.0680879864 0.1131360723 -11.8652401105 11.8659748282 -0.2603650236 0.0258529660 -0.5831379763 0.6391464783 -0.0414794208 0.0076059356 -0.3281936572 0.3308919298 0.0129886495 -0.0711266105 0.1661718112 0.1812202267 -0.0304683231 -0.0614454560 0.8356548002 0.8384645537 0.2316000106 0.2022796773 5.5886836808 5.5971368499 0.1020875460 0.0212127976 3.2878169072 3.2894698456 0.0544874929 0.0252758792 -0.5378409122 0.5411844452 0.1076719204 0.0850594189 -0.3011708352 0.3309565216 0.0140419451 0.0351790872 -3.9194811339 3.9196641570 -0.0916945482 0.0325965599 -2.1639198559 2.1661070076 0.1880914741 -0.0575242310 -9.8290002274 9.8309680556 0.2299009765 0.0741172495 -10.3296456154 10.3324695193 -0.0223078368 -0.0217840862 -1.9896847281 1.9899290196 0.0177272528 -0.1620453734 -2.2582318342 2.2641077659 -0.0380102191 0.1448128070 -7.4033526616 7.4061816034 -0.0424178092 0.3010973270 -2.9240487049 2.9431275006 -0.0263220820 0.0219289133 -2.0927995188 2.0977281378 0.4866905214 -0.2333952036 -5.4659002603 5.4942594065 #SUBSTART 0.2395897192 0.1991548139 -0.5679145490 0.6626255302 -0.2236300562 0.1478589102 0.8971726733 0.9467160345 -0.4533439393 -0.0910755421 2.9805319349 3.0194148244 0.0730960295 0.6210094869 2.4161314648 2.4996333436 1.0121538963 -1.6601913854 -38.8783337789 38.9300548334 0.5178983230 -0.3667867409 -51.8884363082 51.8925047910 -0.0970354329 0.8542814517 -2008.3932909660 2008.3936947724 -0.2915201199 0.4231604837 -1875.0692237451 1875.0695289070 -0.5615516066 0.1312889257 1.1950126362 1.3342083700 0.0287281723 -0.7218881156 0.9809924201 1.3145093562 0.1567535887 0.1661160655 1552.8422089428 1552.8425092041 -0.1472018360 -1.0749564663 -11.0909134036 11.1438574969 -0.2411547779 -0.4230979443 -0.6813084390 0.8490161784 0.1504584756 0.0016996665 -1.4673034120 1.4815868957 0.2362400565 -0.2100581549 -0.3301357686 0.4570814134 0.1645820855 0.3357464344 -0.3873620892 0.5383886321 0.3347580312 -0.1333790868 0.9493070595 1.0153998294 0.4185048624 0.2106625736 0.7727328980 0.9036820079 0.2309405816 0.1302003717 0.6666556530 0.7174367210 0.7360965856 -0.6170482763 -17.5889781215 17.6222136392 0.5242763077 -0.2288758909 -40.7226669141 40.7296758074 0.5322039656 0.1124019956 -69.2497283287 69.2520052320 0.0287688161 0.0648752252 -64.0610175710 64.0612089213 -0.3147910832 0.2265254264 -94.8651785952 94.8706240566 0.1213179185 -0.0818917354 -22.6816271241 22.6825288069 -0.3054907702 -0.1096050697 -95.9789992605 95.9841467573 -0.2282677324 0.0500291563 -44.0765686061 44.0771880814 -0.1728193972 0.0211778568 -62.9705183044 62.9707590122 0.2268638561 0.1570022600 -38.0787062473 38.0799614781 -1.0885970820 -0.0245373954 -423.0510464647 423.0534911242 -0.0444880507 0.0774402685 -58.7433398932 58.7435735870 -0.0436204987 0.0127751314 -1143.4898578192 1143.4898587225 0.0361039059 0.0556175311 -315.8034917098 315.8034986711 0.2141165831 1.4686056250 -44.7274653136 44.7619163170 -0.2269130880 0.4192479228 -11.0789316884 11.0900615648 -0.2946748037 0.5235747052 -17.3037769727 17.3396081797 -0.4134418681 0.4195046411 -7.7158130486 7.7395199533 -0.1061431458 0.0396157216 -0.1128578053 0.2122556051 -0.2456818371 -0.4685782239 -0.2891844744 0.7792263709 -0.1931776158 0.1217742137 0.1974388814 0.3325784827 -0.6526582579 0.3998921099 0.7279485681 1.1659445008 0.1256467557 0.1904863422 0.3199974752 0.4170735221 0.1533089184 -0.2707288731 2.3463365749 2.3709856294 0.0697924937 -0.4578302833 7.5443114794 7.5598012569 -0.0831936777 0.0372450762 7.0317715127 7.0337471362 0.0332716345 -0.0059616338 1.4178588034 1.4251125969 0.0674383800 0.1889772066 118.0740363045 118.0752385156 -0.0185400353 -0.4242288475 1917.8848926234 1917.8849447104 0.0061957966 0.1999157645 3056.8246022937 3056.8246120235 0.1718753762 -0.0005539583 -0.9822199936 0.9971447075 0.0297429214 -0.0711120528 -0.2960041355 0.3058758142 -0.4022390650 -0.2735768853 2.0488954853 2.1058521523 0.0010179752 0.0110657588 0.0338059458 0.0355855204 -0.0099501111 -0.0981509650 -8.9172302126 8.9177759156 -0.1554815916 -0.0586193940 -14.3397935936 14.3407562933 0.2951877903 -0.0595400931 -47.5178537540 47.5188079211 0.0235175866 -0.0584578161 -7.8066262869 7.8068805791 0.0432559800 0.0612423078 -7.0325632348 7.0329629142 -0.0479313569 0.2583068178 -43.0940881683 43.0948889647 0.0940468723 -0.1323425706 -120.7492079334 120.7493170826 -0.0420715480 -0.0279985079 -55.8780890954 55.8781119482 -0.0803691605 0.1558947185 -1.3300687408 1.3415831024 -0.0275511156 0.1079018581 -2.1006798536 2.1036296542 0.0381267560 0.2365297619 -0.6843624375 0.7383980692 0.0311054953 -0.1397428600 -0.1966859527 0.2804652699 -0.0004164969 0.0468481971 1.8409207098 1.8415167626 0.1017829489 0.0108371180 1.0775190128 1.0823698235 -0.0302781454 0.0555626607 0.4255250686 0.4302040903 -0.3726013697 0.1024978319 3.7486467296 3.7685129547 -0.2573266498 -0.0530840905 169.5732796656 169.5734832203 -0.0331200668 0.0453799476 28.2487039230 28.2487597888 0.0523971263 -0.0587811506 -2.1965418250 2.1979528365 0.3588854986 -0.3503559929 -7.1998265252 7.2172744243 0.0634513656 0.0845581190 -3.9583942860 3.9598057370 0.0701737001 -0.0478905156 -2.2585952493 2.2601925470 0.1181537243 -0.1520519355 -12.8741318648 12.8755718850 -0.0105603614 -0.0928776842 -12.0156665483 12.0160301425 -0.0136742480 -0.0751344533 -9.8861522597 9.8864472220 -0.0401852201 -0.2072977074 -75.6778229083 75.6781174933 0.0226355505 0.0297080190 36.7108885385 36.7109075374 -0.1244410371 0.1022571320 57.8457357312 57.8459599659 0.0998652350 0.0682079391 10.7435241714 10.7442048105 0.0418066148 -0.0563732524 9.9691964006 9.9694434454 #SUBSTART -1.2010349565 0.9921074126 8.8355375848 8.9853841019 -1.3617602224 -0.0896505822 5.1104238492 5.3720769393 -0.4949684252 -1.0686730991 6.0510139528 6.1661418712 0.1518616218 -0.1700662193 1.3080786496 1.3351157289 0.5433246137 0.9473338574 12.0162384178 12.0665698760 0.2941683699 -0.2681603581 99.5543913899 99.5552849919 1.2044315288 -0.1610539203 49.5492622544 49.5643567840 -0.2697837960 0.0006700391 1.0277857343 1.4184213218 0.3424865471 0.1728428856 0.3055584579 1.0598723764 -0.1838267422 0.1329806693 -0.3970202134 0.4781014164 0.5060672431 -0.0321591279 -1.0444458156 1.1693951901 -0.6565712363 -0.6123601978 -20.7392956407 20.7799135000 0.5295542379 -0.2250071661 -35.2493559799 35.2575069152 0.1140872007 -0.4061326714 -24.4271616496 24.4312027063 0.5793516503 -0.1786532287 -1911.6242361584 1911.6245625604 -0.5705294503 -0.0929802913 -92.6514482676 92.6580021685 -0.1249769719 0.1112276506 -9.9775245622 9.9799031562 0.1267639857 0.6464357863 -131.5139942798 131.5189909875 -0.1015367278 0.3630853446 -71.7653513869 71.7664774121 0.3277860344 0.1102387126 -28.2690304232 28.2755256848 0.2047266662 -0.3857476378 -9.3170959762 9.3403764720 -0.1256474972 -0.2130438780 -3.9776460827 3.9853285118 -0.0605277030 -0.3312467631 -3.9738260842 3.9880674228 0.0578716286 -0.3491740246 -10.2330530717 10.2391721732 -0.0057013642 -0.5058489878 -11.2106359682 11.2220441327 0.4900468767 -0.8026577908 -9.0670360905 9.1167444147 -0.4673916845 -0.9511330615 -18.4795910285 18.5099539078 -0.1310654482 -0.1149135239 -1.0168734756 1.0411026462 0.9295038293 -0.4354381912 -4.3082149001 4.4310020534 0.3925215679 -0.0310181130 -4.3771434720 4.3970330979 0.5584611626 -0.3282255872 -3.9894308360 4.0440881650 0.0356332630 0.0765158741 -2.0204858185 2.0270587402 0.1852577648 0.1624287279 0.2697331819 0.3910745522 0.1334004357 -0.4481835260 1.7887211355 1.8540947211 0.9754209031 -0.3649901197 6.6321915304 6.7149168280 -1.1494308024 1.4262573721 2.8034954216 3.3850596450 -0.7857036752 1.2091028349 2.1126117136 2.6050007952 0.0333366267 0.0507063875 0.3379221323 0.3433275927 0.1933418499 0.1695685890 0.4976922898 0.5602072765 -1.9158396150 1.0820551625 10.4310583219 10.7018041990 -0.3757686714 0.2113238082 2.5788073730 2.6183176084 0.0010329688 -0.1363173281 0.7444824070 0.7568603142 0.0842271744 -0.2253915466 2.5261119628 2.5375455099 -0.0481432479 0.2099530614 0.3379894337 0.4007928612 0.0506073977 0.1813691556 0.4893728831 0.5243488324 -0.0599660095 0.3112982464 7.0647983279 7.0732847899 0.0028175668 0.4976566672 2.9521526080 2.9938061257 0.0274567968 0.0135910478 0.2467850347 0.2486794033 1.5569738335 0.3274826716 9.6760424782 9.8069715124 0.7575360624 0.2258521996 11.5933737080 11.6581102511 0.2555986792 -0.1153010063 1.5518395205 1.5831331875 0.1318507738 -0.2435745659 6.6582731100 6.6654927640 -0.1080138196 0.3291826375 13.4165210403 13.4217191449 0.4646358005 0.3591410291 40.4884008194 40.5035284909 0.4271251242 0.0447644972 19.5432399538 19.5484563945 -0.6904290081 -0.3120585253 102.7901921876 102.7930793511 -0.2337826626 -0.1788571429 23.1997434095 23.2020304772 0.3943063431 -0.1735105912 71.7186396920 71.7200693145 -0.0040369716 0.1877085881 42.4668656473 42.4672806842 -0.1624550233 0.2837469813 58.7227521862 58.7236624225 -0.3428635045 0.5298714194 2574.2824267008 2574.2826750553 -0.2797533128 -0.0960878981 1029.4964719341 1029.4965238889 0.2184529990 0.2133218523 515.7007745620 515.7008838383 0.3236973198 -0.3523977579 180.0965158611 180.0971515307 -0.0172488528 0.1425708352 23.4779609914 23.4784002069 -0.2399797914 0.3810128528 52.4756401935 52.4777577131 0.0355128878 0.1112677934 0.1466960655 0.2337545884 -0.0087539613 -0.0947360320 1.4795180769 1.4891289643 -0.0463564818 0.1056412711 1.9953552270 2.0035546582 -0.2696587087 -0.2487349200 3.2528352444 3.3110719466 0.0027307893 -0.0190267311 0.1903800706 0.1913479683 -0.0869633747 -0.1098722501 0.1453009891 0.2018586568 -0.0828839688 -0.3324766028 0.0547421202 0.3740146097 0.0047257428 0.0244240834 -0.0734600460 0.1596716373 0.1745810143 -0.2408045061 -0.0011543959 0.3285520632 0.0249775197 0.0760665884 -0.0003677479 0.0800633349 0.3655474726 0.2396845892 -0.1303504423 0.4561413102 -0.1865047970 -0.1857845862 -1.1555124293 1.1851197940 -0.2982907896 -0.3566642352 -2.9829723525 3.0189916905 -0.1119841989 0.2126377718 -2.5797214252 2.5946478950 0.1995205180 -0.4397893890 -35.8270369580 35.8425745577 0.1681312148 0.0125468070 -8.3855336176 8.3883895573 -0.3314704217 -0.1266565014 -16.3052139657 16.3096718778 -0.0782369488 0.2617193249 -20.7622337993 20.7644997567 0.4196426353 -0.0693026491 -9.4463103509 9.4569107973 0.3604265585 0.0764434380 -41.4980573479 41.4999276426 -0.1757596082 -0.0300109339 -9.2174333537 9.2202141792 -0.1222098387 -0.1099781465 -25.8532285375 25.8541280269 0.4602077991 -0.0915845979 -57.8071867255 57.8090911196 -0.1513163739 -0.1168866350 -20.0056157170 20.0065294178 0.5603472762 0.6279447781 -11.7668079053 11.7976926465 -0.1968057258 -0.1154096495 -3.3202835954 3.3645172009 -0.8126710973 0.3640725351 -10.7737676617 10.8217694353 0.0593492912 -0.0636666468 -0.6273516107 0.6485565578 0.0312194806 0.0506192394 -7.0820256419 7.0836504672 -0.1717105158 0.2724170955 -10.0619494873 10.0680684764 0.2089637945 -0.4424467108 -14.1073333257 14.1165065900 -0.0857289781 -0.1543775363 -1.6614493731 1.6766262809 -0.5340775741 -1.1503780357 -2708.2365069273 2708.2368075082 0.0778180101 0.3567950453 -24.6970728376 24.6997725716 -0.0420725839 0.1157427221 -11.3404771975 11.3411458657 0.2145656209 -0.1345342227 -15.8289631420 15.8316042080 0.3327392720 0.2973537082 -27.9969337086 28.0008376932 -0.0423942819 0.0229363812 -0.9658394215 0.9670414370 -0.1307924401 -0.1399762635 -7.5711992742 7.5736225458 0.2365778600 -0.1906339289 -5.0775867298 5.0866685932 -0.0024783092 -0.0203955763 -0.0915736511 0.0938501738 0.0992737324 0.0228227990 -3.6964486128 3.6978518766 0.2359637275 -0.1049940725 -5.4963954003 5.5024599074 0.1401829531 -0.1041835990 -4.3492671744 4.3527727297 0.3955647344 -0.0733585951 -7.9237833569 7.9339898934 0.4057786485 -0.4415090720 -7.5657272672 7.5894542395 0.2055409717 -0.0224028190 -9.5303547437 9.5325972599 0.2144532881 -0.2677167489 -10.0939564028 10.0997830834 0.0041321376 0.0159568901 -0.4144701816 0.4147978162 0.1091658174 -0.2228416830 -2.7313641236 2.7461619311 0.0354976324 -0.0274693863 -0.2464334705 0.2867470826 0.3687044853 0.0122020759 -3.7241390977 3.7753118198 -0.0901760971 0.0563930464 -1.5579063324 1.5615325948 0.0174864735 0.0456071341 -2.5881191832 2.5885800536 -0.1671036396 -0.1347803194 -0.8988331256 0.9241159822 -0.1167670205 0.0048269596 -0.7934433238 0.8020038308 -0.0235145964 0.0006144249 -0.0502126029 0.0554492493 0.1819547490 -0.0426250174 -0.6304744324 0.6575883459 -0.3909384931 0.3018517924 0.7551840469 0.9023582186 -0.3552354150 0.1720597599 0.7827555674 0.8766430512 0.1871089619 0.0422899332 0.2433766650 0.3098877267 0.3827376575 0.0730406156 0.8736282008 0.9565820818 0.0221342907 -0.0065738329 0.2825903940 0.2835321373 0.1564142682 0.1247713715 0.4824396859 0.5222847585 0.1287782316 -0.4091758194 1.0783702294 1.1689186545 -0.2564950889 -0.2606464573 1.0716497203 1.1408940417 -0.3303714257 0.1578131319 1.2231038918 1.2843337489 -0.3188065615 -0.2557073514 1.4006901596 1.4657546116 -0.0993591260 0.0878224545 0.4374702548 0.4571271631 -0.1191889717 -0.0219443703 0.2086117263 0.2412600645 0.5897345042 0.4764231959 11.4280164242 11.4539864250 0.0154754214 0.2925404084 4.1510574005 4.1637214972 0.0510775367 -0.0792630352 0.5786774455 0.5863097556 0.2069192770 -0.0353768710 0.7602484194 0.7886981485 0.0375079488 0.0062012113 0.7270549499 0.7280482136 0.0403891561 0.2183853105 1.7454750670 1.7595472820 -0.0017156693 -0.0771051138 2.7916951596 2.7927602844 0.0019415480 0.0537321537 3.6102322741 3.6106326297 -0.1315317872 0.1540692671 61.9348233195 61.9351546181 -0.0396506130 0.0863630944 11.7868851423 11.7872682210 0.0381045633 -0.0155674825 851.1801058912 851.1801068865 -0.0584646471 -0.1214210971 992.9650508434 992.9650599884 -0.4081856611 -0.2803671376 16.9624846419 16.9697114440 -0.0071913933 -0.0292697037 2.3480573761 2.3482508114 -0.3388404753 0.0973857188 1.1728435478 1.2246872391 -0.2392447897 -0.0011636744 1.1608490197 1.1852467549 0.3370754456 0.0822810955 0.4009002523 0.5482616454 -0.0072558945 -0.1832191046 0.2906155474 0.3708895652 0.0254192043 0.0056867633 -0.0200978737 0.0328998443 -0.1378228806 -0.0886827115 -0.2866338379 0.3301798401 -0.0856377826 0.2234123020 -0.1045655413 0.2611146088 -0.1826535985 0.3828635624 -0.0046237826 0.4242266185 -0.4807666736 0.0661396036 -22.3023464872 22.3076258234 -0.2818802603 -0.0639399836 -13.8660895117 13.8691017427 0.0593584924 -0.0789288965 -4.4231695178 4.4242718932 0.0206098308 -0.1816942817 -3.5630377489 3.5677269482 -0.1395731062 0.0454062959 -2.1680026509 2.1729652271 0.0077059366 -0.0318798451 -1.1163601720 1.1168418597 0.0062342639 -0.0671230588 -3.8336503309 3.8342429801 -0.0010916888 -0.1218614146 -1.7505109199 1.7547478101 -0.1080006790 0.0539982154 -2.5208082630 2.5236985266 0.0373784716 -0.0025757983 -0.5122818697 0.5136501717 0.0739213199 0.0389779632 -1.8015849388 1.8035220916 -0.0219043592 -0.0578478979 -1.5656771298 1.5668985465 -0.0033687342 0.0048969148 -3.1137644236 3.1137700965 0.2059305438 -0.2973680163 -1196.8667861741 1196.8668408314 -0.0441821522 0.1898415703 -20.8384786328 20.8398575667 -0.7184195084 0.3218615607 -54.6789286147 54.6847733440 0.1445133351 0.0484924737 2.0823785218 2.0926097861 -0.2526794375 -0.0008910687 4.8830734508 4.8915982872 -0.0174280028 -0.1865522740 1.1262829032 1.1417612116 -0.0350955288 -0.0085514843 0.0680876546 0.0770762786 -0.0432842936 -0.1064261018 0.5611346331 0.5727758041 -0.0289697533 0.0398828472 0.3606742537 0.3640272042 -0.1772394532 0.0221538909 1.1681873355 1.1817640498 0.0015227240 0.0522741619 0.4980967758 0.5008346082 0.0930627689 -0.0793289613 -9.0955861433 9.0974788177 -0.0374291445 0.3579343007 -22.0738965966 22.0772713134 -0.2256045876 -0.1839929299 -14.6518713660 14.6554278388 0.1781742035 -0.1970929504 -10.4049821585 10.4093095439 -0.0583074884 0.1439923667 -2.6377037388 2.6422745085 -0.3524958138 0.3356232977 -10.6166192051 10.6277702103 0.0049004496 0.0593993681 -4.6344500464 4.6348332799 0.0605915531 0.0475524226 -1.1653448875 1.1678875271 #SUBSTART -0.0509370766 -0.2648594918 0.1699801341 0.3480203544 -0.1297912769 -0.2759003549 -1.0849520663 1.1355912787 0.0652306638 -0.7129018550 -351.1482288035 351.1493054483 -0.3015960543 -0.1458585900 -1775.2132355578 1775.2135151258 0.3321354402 -0.7784940409 16.1079804654 16.1308053544 0.1205175870 0.0887992391 4.0433635045 4.0761304179 0.3359346105 -1.1972094597 7.3224773818 7.4436871589 0.0829080855 0.4454470746 138.0455563491 138.0463704860 0.0635918667 -0.8102026461 -2.2904744126 2.6056740151 0.1106217095 0.1320705694 -2.9621959263 3.1124068322 -0.0018439633 -0.4718247923 -51.6415441608 51.6438881683 0.4661622821 0.1962812673 -362.7733571705 362.7737366268 0.0736242344 0.1199625671 -474.0252419612 474.0252834056 -0.5279208510 1.9793568219 7.4654355211 7.7982096123 -0.1840205457 0.2223927891 1.3148372398 1.3461497246 -0.2418259771 0.1126108279 0.9820526324 1.0176386267 -0.3432639653 0.5376209196 3.5008498477 3.6801041632 -0.0433748195 0.0869181779 0.8479556590 0.8648379785 -0.2474910350 0.1869619687 -0.3144138998 0.4631873006 -0.0085349151 0.1408985219 0.6999751635 0.7275783481 0.1520002065 0.0764702116 -0.4289382098 0.4614539455 0.1733493091 -0.2259847111 -0.3828318433 0.4971509607 -0.0959267602 0.4924933501 -1.2143896645 1.3213529753 0.3784688678 -0.1932081869 -1.5291462660 1.6632894574 -0.0696769887 -0.8419189150 -2.5504064527 2.6903039235 0.0831668918 -0.1394569942 -13.9935549151 13.9944969237 0.0778797648 -0.0356675830 -18.9506642514 18.9508578435 0.1820720753 0.1522757896 -3.9290654376 3.9387019631 -0.0417205372 0.3011839377 -1.9958548491 2.0237017397 -0.7373897127 -0.0373208856 -12.5400780707 12.5968839893 -0.2383350455 -0.0646169635 -1.1634954204 1.2877660886 0.1792952869 0.5302966663 -1.7512820170 1.8438627503 -0.2256142409 1.6520027617 -6.4971132055 6.7731297566 0.0732970521 0.1662615766 -0.3991221321 0.4602104203 -0.1865785951 0.4311667249 -19.1970624959 19.2033175408 -0.0219924106 0.0849892238 -6.1218168250 6.1240368923 -0.1455436262 0.2365233100 -28.0888736498 28.1059121847 -0.2220745715 0.1081062879 -64.6559168731 64.6632150652 0.0924430469 0.2051632237 -16.4912413395 16.4933671022 0.4955426067 0.3732759117 -3000.3753268557 3000.3754315990 0.1126513862 -0.0245483377 0.1443817409 0.1847675372 0.0059966329 -0.0762029902 0.2326345492 0.2448707593 0.1893094751 -1.1165191621 9.4007603791 9.4697533551 0.1187314507 -0.0326053653 1.1538247897 1.1687393625 0.1403724833 -0.9133144463 13.4439292099 13.4763704349 -0.1709321112 0.1187843393 81.7042925194 81.7045576673 -0.1133306823 0.0656762364 113.5628793115 113.5629548520 0.3720137596 0.0974798835 217.7876631441 217.7880474088 -0.0348477710 -0.4069452150 126.6413037917 126.6420393259 0.1870813130 -0.0872658414 171.0790486592 171.0792301382 0.0001759466 0.9300268342 2738.2295230422 2738.2298417336 0.2115435425 0.0493454778 808.2087014437 808.2087426864 -0.3589168658 -0.0189310290 395.3654313613 395.3656193639 -0.0114795002 0.0043740579 -0.0962817196 0.1700025462 -0.3636800835 -0.2959082893 -3.8536325390 3.8845576903 0.0390260714 -0.1831886651 -1.4836467165 1.5019215977 -0.0732673208 0.3033048781 -3.1873277720 3.2025646404 -0.1121431565 0.1815430329 -1.4354204019 1.4511945737 -0.0367481226 0.1135322170 -36.1418108066 36.1422772962 0.3366319959 0.0292486158 -69.7978579072 69.7988153539 -0.1138643127 0.0706805253 1.0829135342 1.0911748443 0.0241182684 -0.0209467974 0.1517293156 0.1550556171 0.1098374573 -0.9261198239 -2.2014534518 2.3908491161 0.1148698677 -0.3937049615 -1.1276685611 1.1999312759 0.0048710519 -0.0390953243 -0.2080152435 0.2117132803 0.1278272213 0.0627784565 -0.3430550188 0.3714400074 -0.0004467411 -0.0135715786 -0.1391381485 0.1397991834 -0.0128417412 0.3350564029 -3.1644927879 3.1822071441 0.0679682184 0.1417600307 -9.8815485283 9.8953217397 0.0774568048 -0.2061015582 -4.0313510566 4.0679164421 0.0465569470 0.0517187205 -12.8783441615 12.8785321647 0.0329029702 0.0016652131 -0.6586861407 0.6595095226 -0.0286011647 -0.0132689891 -29.4065705378 29.4065874403 0.0342840358 -0.1801742160 -571.1574379924 571.1574674397 0.2700205327 -0.3038181850 2.5849056485 2.6166684523 0.1151678658 -0.0400792085 1.0880523467 1.0948643247 0.2003481998 0.5028468806 653.4857191343 653.4859433124 0.1105639743 0.1222869810 263.2936914160 263.2937430285 0.0132757308 -0.0182556346 84.2169361040 84.2169391290 -0.0222402968 0.2068650237 1134.2148290558 1134.2148481385 -0.2655273249 -0.1042250388 -0.0796661108 0.2961660145 -0.8638890910 -0.4856221106 -0.0625385601 0.9929976170 -0.0985666673 0.0646456069 -1.6232634805 1.6275376400 0.0447239233 0.0509865319 -0.9601792828 0.9625716134 -0.0427734480 -0.0708136968 -3.4481102734 3.4491025797 -0.0385054305 -0.0600440521 -14.5159690301 14.5161442828 -0.0048801588 -0.1261602670 -0.2173857834 0.2513897527 0.0891232252 -0.0480893864 -0.0853168713 0.1324179251 0.1231818473 -0.1647097198 -1.5403343912 1.5540055007 -0.0259388277 0.0015196939 -0.1372863870 0.1397235997 #SUBSTART 0.3513835747 0.0863842872 0.4305961478 0.7483225669 -0.2394316678 -0.0964748384 0.4472757872 0.7143749070 -0.0962470037 -0.6143451748 0.1102640111 0.6467777181 0.0882349019 0.9428763691 0.8585895270 1.2858681916 -0.5081978700 -0.3991755096 8.9858237983 9.0101118351 0.2502257525 -0.4135313380 29.7060495929 29.7140815855 0.4382471970 0.4828008138 -1.7885108790 1.9087713799 0.0688331918 0.8906618148 68.2269956989 68.2329864389 0.2401969212 -0.7619777158 81.0257680767 81.0351389683 -0.3788060032 -0.2183419049 14.6955080966 14.7102945706 -0.2081692618 -0.4040860307 11.4923038422 11.5021366428 0.0882205793 -0.0110568982 0.0586545508 0.1755712586 -0.3289355697 -0.0163956219 1.8133611763 1.8483035373 0.0515791286 0.2470485053 0.2188255201 0.3620190100 0.0901237096 0.2647083161 0.8978747819 0.9507111467 -0.4248530210 -1.2417659758 -1.3072339742 1.8576391674 0.1286987368 -0.0083646410 0.0407527810 0.1943551032 -0.1564100953 0.3410265719 -45.1683850928 45.1726401275 -0.1260660784 -0.1703210744 -575.6749638566 575.6750197751 0.3196320210 -0.1425785036 -866.1344222912 866.1350012103 -0.1587039488 0.6188909248 -143.1835567546 143.1850502588 0.1802038877 0.0611284026 -47.6106990501 47.6112838930 0.0178346007 -0.1592064747 -24.4440992312 24.4450226382 0.9420648081 0.8497533301 -12.6900208445 12.7540454619 0.0387810512 -0.1829012599 151.6305335483 151.6335517344 0.4507642446 -0.2687987137 132.1349766666 132.1393593583 -0.0908790077 0.0991418424 0.8937843745 0.9145591243 -0.2746445694 0.3186459654 2.9409535285 2.9741641401 -0.5603401564 0.8424524862 0.9343869277 1.6664743641 -0.4970156516 -0.2495409175 -1.9796930523 2.0610578821 0.1187721030 0.5876354550 -7.3825738961 7.4081913688 -0.0218581490 0.0688815068 -3.0486183702 3.0526670622 0.2525240870 -0.4960841087 -9.6546520989 9.7162218373 -0.3239554754 -0.1433068940 -2.2427707428 2.4567977560 0.1839998331 -0.2738257098 0.0774495534 0.3664896671 -0.2857045623 0.3379413295 0.2323627567 0.5189447704 0.2506682559 -0.0726082590 0.3355672535 0.4474278716 -0.0376138396 0.0776708370 0.5555060479 0.5792359744 0.1717120796 -0.4044677745 2.7103949833 2.7457822536 0.0699124145 -0.0808089112 0.3817150550 0.3963889618 0.4451863718 0.6987070109 7.1426676041 7.2074769410 0.2565954670 -0.0562772464 1.4859873092 1.5154690463 0.1777284803 -0.2353512404 29.2371014675 29.2389219983 0.1789671712 0.2193490468 8.4557455846 8.4604832394 -0.0210440465 0.0053343587 0.9150385374 0.9152960353 1.2368367824 -0.8910283844 -8.3349804990 8.4875931622 1.0529050908 -0.1832613604 -5.0578894662 5.1714523583 0.6775419726 -0.5864847002 -2.3027461708 2.6435693939 0.0199983460 -0.0627587948 -0.2924209245 0.3306484268 0.2366324956 -0.3284748100 -1.7559709639 2.0316680973 0.3514193699 -0.2543253733 -1.3133852470 1.3901933538 0.1728712083 -0.7057742283 0.2073525280 1.2057315504 0.0517370079 -0.1129449967 0.2762285800 0.3334895854 0.1222946120 0.0289346910 0.2196535496 0.2530629770 0.1454885863 0.0162924103 1.7788962193 1.8519030997 0.6854447280 -0.2328609130 1.2249170321 1.4296713610 0.2132316179 -0.9154663652 1.8533504135 2.0827707337 0.0464755619 -0.1147566085 2.0207004633 2.0244899159 0.7726530146 -0.4068852434 7.7178455675 7.7670900913 0.3269458017 -0.0860636289 2.6983095198 2.7194070622 0.1268780430 0.2180718314 6.8290603940 6.8351444031 0.6455361591 0.5313835850 15.0169463080 15.0408524243 0.5596353138 0.1161023227 17.6030417569 17.6128711547 0.7680020692 -0.1127127811 32.3480580258 32.3709706370 0.6983703179 0.5935546092 89.9948101485 90.0043678519 -0.1062699011 0.1869527399 20.6927868264 20.6943748648 -0.1307433841 0.0736303268 121.9641081117 121.9642004144 -0.0899043048 0.2142744765 137.4759291889 137.4761255734 0.1583710439 -0.1596163519 66.4787949287 66.4810076254 -0.0547152709 0.3262564991 30.8900990872 30.8921857185 -0.1030840496 -0.0145927889 14.0778153835 14.0788921804 -0.3814800376 -0.4953111690 333.5073438232 333.5079590114 -0.2517675119 -0.6024863461 376.4509881756 376.4515803591 -0.1763305492 -0.0421270053 2.5729633647 2.5831158333 -0.3895841814 -0.2476009491 6.3130903830 6.3314826094 -0.2550797052 -0.0598126234 8.1363865785 8.1418001415 -0.2221070476 0.0151249759 0.3814421288 0.4631826724 -0.9161630148 0.5499367145 5.0748116663 5.1879647544 -0.0762149093 -0.2521347467 4.6077573416 4.6173897547 -0.7777770833 -0.0674658849 4.4260742327 4.4965655489 -0.1122568541 -0.3432704188 0.2153668070 0.4204985651 -0.9785147782 -0.3390581542 0.7480054023 1.2774833404 -0.4740289086 0.1117179975 -0.2792147622 0.5784677912 0.5639903520 0.1294667741 0.1248072592 0.6081968428 -0.0084708087 0.0041157778 -0.0236083139 0.0254174489 -0.8072015961 -0.9749667678 -3.3431144853 3.5747096493 -0.0283360821 -0.1356588674 -0.9180536692 0.9388868869 -0.1311486095 0.0017617580 -1.4393881292 1.4520747339 0.0071001260 -0.4130757745 -2.4092590496 2.4484057997 0.3246640651 -0.2998738615 -15.1699075117 15.1843691328 0.1855192498 -0.0002007397 -1.3540292659 1.3737876365 0.1641733496 -0.6556734698 -6.0895820554 6.1285683469 -0.1322846352 -0.0809387546 -4.9906636671 4.9950229158 -0.2211364576 -0.5250485379 -37.9757233733 37.9802530641 0.1104229890 -0.1018287038 -14.8745442884 14.8759574446 -0.4857614264 0.3019904732 -54.8090275897 54.8121897712 -0.0385357965 0.0592827995 -5.1775114233 5.1779942059 0.0896591469 0.3006854457 -16.3528825991 16.3558925101 -0.3652418169 -0.6842401798 -217.3140789752 217.3155079299 -0.0034234873 0.1969739181 -19.3594067330 19.3609121501 -0.0290826310 -0.0221466697 -8.4786081241 8.4786869264 -0.2577155050 0.0778430860 -165.2421020747 165.2423213795 0.2126398737 -0.2250677107 -279.3267159726 279.3269224529 0.1081640021 -0.1688561687 -84.4485575381 84.4489109575 0.1834010756 0.0865142133 -473.1517199256 473.1517839647 -0.0488719920 0.0721643079 -221.7981217409 221.7981827783 -1.7448455566 2.4921877129 -616.8193555961 616.8268739309 -0.4194674477 0.4334598557 -79.7555558049 79.7579588626 -0.2405230503 -0.0328744566 -26.5858463022 26.5873209530 -0.6034955259 -0.5141579264 -31.2385200705 31.2488908796 0.1638126043 0.0101811828 -10.5332319494 10.5354351268 -0.1401235635 0.0774205777 -1.0673152115 1.0792545203 -0.0764670415 0.2015020117 -4.4632576682 4.4684582668 0.1004790435 -0.0916098374 -0.3248806156 0.3521871872 -0.1064736351 0.4738688694 -5.2841534501 5.3082620328 0.3218016390 0.1968768848 -9.1562298793 9.2119060459 0.1353904184 -0.0260064587 -1.2436441750 1.2590224463 0.6100942143 0.6575841496 -8.3789476071 8.4790439704 0.2440437200 -0.0330929644 -1.2553184594 1.2868398117 0.0514526277 0.2190608661 -1.5701180420 1.6611883282 0.1372299060 0.7254283299 -3.3552051347 3.4383076636 0.2249887106 -0.1520320231 -0.5965768782 0.6701622285 0.1695471797 -0.3391619865 -0.2457642903 1.0414066346 -0.2556074022 0.0614822381 -0.0548780131 0.3026658073 -0.2632482254 0.0670017819 0.4434716970 1.0738937554 -0.0644068099 0.2659118756 0.1505389224 0.3420513336 -0.3570493913 0.0031080420 0.1813753305 0.4241116871 -0.0864124590 0.1621691599 -0.1595860487 0.2805591583 -0.9306299732 -0.3204726026 1.7361986340 2.0006599706 -1.4872367863 1.2030974562 3.5849514878 4.1706097519 -0.7031097587 0.6300072817 1.2064951069 1.5383051504 -0.2161833966 0.3903551137 10.4084767637 10.4189721519 0.0803149198 -0.0314024289 268.6716585303 268.6717086219 -0.1581949575 -0.2312517393 1476.8147189483 1476.8150435840 -0.1128636898 -0.2129492528 384.6157144328 384.6158152677 0.0461300467 -0.1554289250 1722.9398811202 1722.9398944016 -0.0998121208 0.2192375613 604.2849937145 604.2850578460 -0.1306452713 -0.0419120639 -0.1385822216 0.2398116449 0.0670971285 0.2300405729 -0.2102272170 0.3479884444 -0.0658102562 0.0504672667 -0.0541361008 0.0990386401 -0.0328327591 0.1792983550 0.0355750233 0.1857187994 0.3790254689 1.6577306248 3.3185232279 3.8454023625 0.0790284068 0.0732545670 0.6390348988 0.6629156112 0.4044764321 -0.1037192791 0.2540253546 0.5082986707 0.3155650118 0.0137480471 0.4594672070 0.5747696796 -0.2368070353 -0.0717572765 -0.0776267413 0.2945036070 0.0150794557 0.2493484796 0.0538285482 0.2911689402 0.5242711188 0.5212543040 -1.3586428394 1.5530474575 -0.1894719837 0.1388649068 -1.0339703461 1.0694660146 -0.3230259180 -0.7345551608 -4.0749313721 4.1555339609 -0.5041837063 -0.8320104728 -10.0061700444 10.0543205330 -0.4430443258 -0.1303902894 -2.1797648253 2.2325197381 -0.2655783851 -0.0905889652 -0.9675911081 1.0170794348 -0.3808833270 -0.0313661032 -3.4652636450 3.4890669032 -0.1074870207 -0.0080526398 0.0037284190 0.1763859140 0.1188952262 -0.1178720167 -1.9654917259 1.9775407446 -0.1168153378 -0.2905825802 -0.2873425139 0.4473584293 0.2049314285 -0.2479883935 0.2698296068 0.4198846870 -0.0115063078 -0.0023845109 -0.0063955375 0.0133784869 -0.0372355634 -0.0566035911 1.2681726633 1.2699812430 0.0095869995 -0.0500175566 0.1409128402 0.1498335578 0.0651788088 -0.0161068207 -0.3786984860 0.3846040173 0.0880974512 0.1266280344 -1.7199246665 1.7268285029 0.5861372256 -0.6143882111 -6.2493026180 6.3263329316 0.0316062155 -0.0701959191 -0.0816668505 0.1122314323 0.0700243700 -0.0096230070 0.0371710422 0.0798605098 0.0811806041 -0.1901402898 -0.0263621421 0.2084192477 -0.0030988249 -0.0110203230 -0.0589043005 0.0600063901 -0.0027336410 0.0395970907 0.0654290850 0.0765269074 -0.0803960589 -0.0443262239 -0.0079819519 0.0921523303 0.7791232530 -0.2180356777 1.5238053207 1.9639006717 0.0454966914 -0.0416899157 0.3516787782 0.3833611169 0.2095421580 -0.2994765104 0.9330361334 1.0020731123 0.1476283312 -0.0694285574 0.3343999962 0.3720723132 0.5711175696 -0.2783425159 1.4917671457 1.6214250064 0.0388355179 -0.0696716584 0.1901792717 0.2062292239 0.2132034763 -0.2607602674 0.5536634459 0.6480700970 0.0014997178 -0.0745293339 0.2221850392 0.2343566991 0.9662601153 -0.7349221488 7.1749592229 7.2782751260 0.2981093263 -0.1352674214 0.8619324895 0.9325094354 0.2706155557 0.1954741305 7.3065204295 7.3141427182 0.2527854008 0.3085378940 6.7006701520 6.7125313092 -0.0484253203 -0.1535503692 1.0508531019 1.0631156895 -0.0073954533 -0.0316416273 1.1277327544 1.1282008025 -0.0361965680 0.0967665602 1.8918128213 1.8946318137 0.1201730013 0.2366800895 4.2592436700 4.2675069602 -0.1022789177 0.1157269997 111.9907956587 111.9909021572 -0.0385313296 0.0033758186 6.5748743822 6.5749881521 0.0262426582 -0.4107163889 21.5650881072 21.5694664163 0.2220230408 -0.1883020242 7.2028256603 7.2100575005 -0.1632574252 0.2417854378 21.7088366894 21.7310619664 -0.0324910742 0.0813730435 6.9821019527 6.9840464421 -0.0050033700 0.0490308675 0.2916829212 0.2958174879 -0.1734647770 0.1735972586 3.9232654003 3.9309334054 0.2533262048 0.2469523288 -2.3632817914 2.3896151247 0.0196764305 0.0160780510 -0.0419359201 0.0490335297 0.2930993519 0.0841211651 -0.8909584177 0.9416955466 -0.0141795796 0.0136312697 -0.0471636871 0.0511007375 -0.1453322307 -0.0139368720 -1.2076737231 1.2164668163 -0.1630557917 0.0003257640 -3.1463672485 3.1505894940 0.0095116858 0.0180053813 -0.1189006657 0.1206318127 -0.1769584512 -0.0276514653 -0.2729277487 0.3264482394 0.1896578048 0.4085830995 -45.5044755719 45.5094263064 -0.1524816922 0.0190522875 -11.2835849965 11.2846313201 -0.0360013212 0.1013039258 -8.1518479826 8.1525569064 0.0541654450 -0.2255027699 -46.9986165450 46.9991887434 0.0908246117 -0.2086991583 -80.2573434400 80.2576661790 0.0573497401 -0.0666658658 -64.6668414856 64.6669012792 -0.0386824311 0.0160515455 -10.9807010116 10.9807808779 0.1910298306 -0.2779106293 -391.7005768967 391.7007220671 0.1300084946 -0.1303620513 -354.3333990162 354.3334468475 0.0251052219 -0.1885166599 -285.6351653452 285.6352286582 0.0869150029 -0.1962836236 -585.1473153807 585.1473547566 -0.4971768159 1.2021426904 -241.3635377853 241.3670435334 -0.3171213084 0.7550579181 -133.3462899279 133.3488047038 0.0298209664 0.4932502680 -92.0747424137 92.0760684199 -0.0918700286 0.8593316264 -142.5516850893 142.5543047850 0.0022881145 -0.0183777781 -2.9930200237 2.9930773195 -0.3489039330 -0.2466578632 -200.3801401872 200.3805957559 0.1115025753 0.2281227797 -18.2499967926 18.2522967196 0.1880057745 -0.0933137134 -6.5186782948 6.5235496561 0.0514040776 -0.1979955194 -3.6573958348 3.6631119144 0.0465743616 -0.0353700208 -0.3814593489 0.3859163697 0.2128325537 -0.0942725555 -0.0134117086 0.2331627855 0.1240031763 -0.0162884840 0.0893528319 0.1537076153 0.0120010760 0.3680152047 0.4202785963 0.7482571377 -0.3442075736 0.8041751857 0.7264554852 1.1370638307 0.0076321592 0.0019066994 0.0015007169 0.0080085896 -0.0167925223 0.0279474618 0.0080812496 0.0335910110 0.1810677361 0.2432940014 0.3580630615 0.4692405057 -0.5266418094 -0.6322139825 0.6574217017 1.0532091003 -0.2982095941 -0.2345215137 0.2467416052 0.4525601862 -0.3724109473 -0.3054553985 1.9831696794 2.2467190916 -0.0436926025 -0.0291551658 0.1958170811 0.2027397259 -0.3107149439 -0.2210414708 0.5131845065 0.6393445440 -0.3876987808 -0.0238519199 6.6548850022 6.6847624550 -0.0000806122 0.0857601813 14.7877350752 14.7879837527 -0.1944682679 0.1308906987 47.2761395375 47.2767206969 -0.2261926949 0.4047311087 0.5617003127 0.8821298520 -0.0927429169 0.0857225751 -0.0123488268 0.1268940584 0.0095444890 -0.0370200596 -0.0157182661 0.0413357711 0.0520036366 0.0216514984 0.0463238464 0.0729319159 -0.0356572397 -0.0504258695 -0.0269616210 0.0673879519 0.1207138060 0.0316860843 0.0132839635 0.1255081455 0.0483281031 0.1503209370 0.0156791213 0.1586752170 -0.0004292783 -0.2162291731 -0.6127388926 0.6497724141 0.1326266003 -0.1931440529 -0.6109146182 0.6543020029 -0.1128137064 -0.2122895578 -0.8568156382 0.9007811119 0.1681673440 -0.1731319996 -2.4547336051 2.4705165051 0.1826472912 0.0559993044 -0.0106887589 0.1913379331 0.2113169464 -0.0797999001 -0.0268818269 0.2274763911 0.0378914183 0.0495242267 0.1091709586 0.1257247263 0.0472951004 0.0243294952 -0.0365668762 0.0645436851 0.0337805991 -0.0320483379 0.0883461283 0.0998662266 0.1997591503 0.0075575967 0.0587808887 0.2083651321 -0.1238906915 0.3094257544 0.2326753235 0.4064861709 0.0285115833 0.1523117308 0.1488429769 0.2148627597 0.0337604191 -0.0011512632 -0.0444313839 0.0558143277 -0.0853958386 0.0842971209 -0.0137632047 0.1207802949 -0.0906088516 0.1313208263 -0.0807469672 0.1788160958 -0.2982407157 0.1338396349 -0.0802725363 0.3366069703 0.0842579992 0.0465765645 -0.9480490171 0.9529248269 0.1753075370 -0.0330739435 -0.8162876861 0.8355550280 0.0233613671 0.1374946930 -1.6842967976 1.6900610186 -0.0104885032 -0.0039609901 -1.4305331671 1.4305771005 -0.1568064396 -0.2921406838 -3.9731468285 3.9869575066 -0.0189382543 0.0049192561 -0.0786708200 0.0810675921 0.4072918690 -0.3850262714 0.7891977184 0.9779799179 0.3576534236 -0.4609440474 1.7453730619 1.8455872497 -0.0109044807 -0.0489811159 16.1431782388 16.1432562300 -0.1348219263 0.0621136559 40.9312911311 40.9315603015 -0.0466158917 0.4899579310 255.1024573732 255.1029321464 -0.0294563013 0.0099071009 17.3387371998 17.3387650514 -0.4092977643 0.2592610266 5.6280044295 5.6505446271 0.0390781913 0.1223951497 4.2729081893 4.2771172367 -0.2960106623 0.1327471298 -1.4325253415 1.4754161283 0.1321383114 0.0286037763 -0.7034850307 0.7298285296 -0.0742082503 -0.0637583434 0.0862751249 0.1304430448 0.0139318062 -0.1172677077 0.2820643613 0.3057876950 -0.0377906757 -0.1980415706 -1.3148594040 1.3302269924 0.0923925970 -0.4442223395 -2.3801195057 2.4229813743 -0.0624540441 -0.1397797130 -1.1614842197 1.1715308226 -0.1304726959 -0.0219842154 -1.0945031652 1.1024715909 #SUBSTART -0.1734802534 -0.6041668205 -0.1421520806 0.6593936186 0.4443987084 0.1415820509 0.5326604713 0.8630781116 -0.0787821948 -0.0818522167 0.7012006802 0.8650027592 -0.0905139288 -0.5927715090 -0.6316011141 0.8820264086 -0.5943964647 -0.3576600087 -103.3205943620 103.3241021646 0.0223434023 0.1266335828 523.8052686327 523.8053030110 -0.0575108692 0.5959050182 -2.7909402527 3.0046810776 0.3069975221 0.1023654814 1.4141896532 1.4574423935 0.0592643018 -0.2362899846 2.1181056544 2.1366320606 -0.0508582763 -0.3792723507 2.6871176324 2.7178143858 0.9616613368 -1.2990970152 15.4607226708 15.5456061596 -0.1830107530 0.1251128457 1.6697175951 1.6901428318 0.1940028217 0.5105226357 0.7085770749 0.9054455878 0.0657422154 -0.4273219204 1.3012054987 1.4572929603 -0.0997198286 0.1260492435 0.0580357083 0.2206363169 0.5213862652 0.5884167570 -0.7804661353 1.1165505321 -0.3223707327 -0.4524102880 -2.8138441856 2.8715495544 -0.1316881238 -0.1507365427 -5.4327603602 5.4588084193 -0.1414872979 0.0368425353 -4.1659346682 4.1976217848 0.0491209552 -0.0766561171 -6.0326205865 6.0534652167 0.4435705326 0.0278006940 -6.4770933992 6.4938237105 0.1889086076 0.5401954372 -13.9149142356 13.9266771255 0.2680073416 0.2273877454 -25.9716436074 25.9743967125 0.5801820870 0.1288392377 -5204.6451886675 5204.6453074078 0.0974608350 0.0542162049 0.1249135093 0.2179935342 0.4607558325 0.8695076077 3.3822885311 3.5252935919 0.0528442804 -0.2863591633 2.7110654417 2.7302288737 -0.1251166711 0.0155063756 0.9371201624 0.9558078325 -0.2564335475 0.2159304535 1.8392774016 1.8747813925 -0.0230738398 -0.0027189269 17.7405780807 17.7411423030 -0.1046715048 0.0107004547 122.5364074007 122.5365320592 0.2123350858 0.0998350989 3.9711557758 3.9780813756 -0.0010632646 0.0302179597 0.1680133022 0.1707124053 -0.0596022320 -0.4832071644 172.3906884120 172.3914324221 -0.6495453516 0.0584863024 3650.9960390211 3650.9962178326 -0.1740655122 -0.0806533981 551.7780176316 551.7780686336 0.1299177805 -0.3327717024 626.3304378584 626.3305552847 -0.1680372555 0.4438737410 0.2109428577 0.5378076713 -0.5363354113 0.0029591480 -0.4613330325 0.8626317620 -0.0497901576 0.2899353359 -0.0676833640 0.3325693634 -0.1279344345 0.6757355112 -0.2080739530 0.8717347248 -0.2475285333 -0.0770208859 -0.1701051824 0.3400266896 -0.2310754579 -0.9986128508 0.2013776147 1.0538767583 -0.2412693537 0.5685249332 -1.0634730503 1.2376939098 -0.1011573295 0.0505398783 -11.3515882563 11.3908600912 0.0520423101 -0.0672655598 -1.3867686645 1.3963667754 0.2313286717 0.1176001878 -10.4576544974 10.4618048219 0.1391125635 -0.1956243934 -29.8690528923 29.8703435145 -0.2009385373 -0.0156450475 -19.1777952390 19.1793621134 0.0535340978 -0.1883255548 -43.5964076343 43.5970706678 0.2279978612 -0.0617316098 -27.2323609417 27.2333853253 0.2536002229 0.0568476880 -38.7283576421 38.7292296643 0.0776591667 -0.0580536110 -101.2558722941 101.2560149077 -0.2258733262 -0.7381644083 -117.4678617981 117.4704811459 -0.1689065502 0.1150742064 -0.0626991002 0.2553085540 0.2401454328 0.0554121902 -0.0853807601 0.2958208897 -0.0072941971 0.3797417417 -1.0431272235 1.1101222455 0.0367663270 0.2501462116 -0.4469108255 0.5134726632 -0.0724928974 -0.1153778103 -1.5979547385 1.6037539105 -0.0671331855 -0.0804901441 -3.5882366067 3.5897670500 -0.1546711308 0.0146859195 -4.1777297713 4.1806177625 -0.0365854078 -0.0692633348 -1.2711935789 1.2736047333 -0.0609984921 -0.0764320590 -13.5441712044 13.5445242180 -0.3339793544 -0.0896602029 -32.6346811914 32.6365132578 0.0939780897 -0.1198445091 -399.2274933145 399.2275223638 -0.0001960881 -0.0946678667 -601.0634071431 601.0634145982 0.0976934242 0.1191038860 1.1753632392 1.1854148999 0.0904562731 -0.0271725062 0.8370557516 0.8423675052 0.1290435611 0.2429608757 1.4765722921 1.5019813453 0.0879582657 0.5046377586 3.2812641836 3.3210074626 0.0145036523 0.0123537927 6.7250561883 6.7250831748 0.1227715488 -0.2164119558 27.8873284417 27.8884383680 -0.0965883056 0.1453065644 160.5906474174 160.5907422028 0.0020149626 0.1023885242 42.6336715583 42.6337945533 -0.3228813408 0.0186734444 713.9731362588 713.9732095116 -0.1271526455 -0.0804418439 330.6858342898 330.6858685197 -0.0031595986 -0.0327052276 0.3487370793 0.3502815517 0.1927768334 0.0163487302 1.0155757844 1.0338396212 0.0261850537 -0.0352144032 0.0216618444 0.0489381930 0.1094173635 0.0558621251 -0.1016963366 0.1594831694 -0.0084439985 -0.0679023673 0.0322318056 0.0756367760 -0.0684326877 0.0544960496 0.0432654693 0.0975948410 -0.1259573171 -0.0143346254 -0.4511619109 0.4889760546 0.1377687227 0.3693423903 -0.7420435084 0.8517642722 -0.2802526561 -0.1529295678 -14.3956013798 14.3991412275 -0.1589627168 -0.2036933693 -14.7604705739 14.7627318508 0.1115740216 -0.0143871725 -5.2956564841 5.2968512676 0.0056657821 -0.0522380541 -0.7621266101 0.7639357861 -0.3279092480 0.3435085073 -56.5342112437 56.5362057758 -0.1787150844 0.1136784234 -35.7344525606 35.7350802668 0.0259034502 0.1418016086 -1.4082850397 1.4225066688 0.0312634471 -0.2088360572 -0.6664225938 0.7128735936 -0.0507776495 -0.0704892619 -6.8536448739 6.8541954424 0.0017364223 0.0182842508 -0.1505630033 0.1516790921 0.2599755299 0.0628337163 -13.8705334856 13.8731119265 0.1870480262 0.0921703262 -6.4185287169 6.4219150744 #SUBSTART -0.1039065923 0.0051110575 37.9336431352 37.9340425475 0.1039065923 -0.0051110575 0.5220210047 0.5502803077 0.1034556933 0.3673674817 -2882.4625129511 2882.4626909261 0.4232895108 0.4152906349 -2175.8930370949 2175.8931223748 -0.1411130628 -0.3963674436 -6.9145578872 6.9287524567 0.1517250416 0.3954868301 -1.8422058821 1.8954241262 1.1065101142 0.2749451166 -10.2224525153 10.2976762348 0.3962337478 0.1346423045 -12.2245997474 12.2417159613 -0.3096747287 -0.1012363756 -1.7799566916 1.8756422967 -0.3998973155 0.1328527280 0.9435873110 1.0427868951 0.0996720735 0.1357040248 -0.0345750576 0.2214166301 0.3664551199 -0.5493840302 20.9586439962 20.9900267012 -0.3802947715 -0.0339800129 37.7033098950 37.7169153880 0.2034489154 0.5002362111 142.2573944596 142.2584879224 -0.3106042504 0.2462147367 1287.4155349562 1287.4156035341 0.1628871932 -1.0632061761 907.2064559011 907.2075787376 -0.5609124055 -0.2393434827 0.3113120613 0.6987868157 0.0175247922 0.2683783832 0.4695669622 0.5588443359 1.1220437970 0.5833688799 -0.6077705844 1.6886321093 -0.1326592342 -0.1950979122 -3.7135707186 3.8378458717 0.4649766782 0.4590134083 -1.0238500172 1.2225568547 0.4094962442 -0.1448258130 -2.7242652115 2.7622024577 -0.2614016343 -0.0546712323 -4.7177679129 4.7510309195 -0.0389861985 0.8817123334 -241.6885697156 241.6920023880 0.7370695954 -0.6471947066 -438.8132699339 438.8153721036 0.0027705361 -0.2894844961 -1.5913639365 1.6174820332 0.0069707551 0.0112204726 -0.1978958306 0.1983362050 -0.0605733521 0.0262848931 -0.3766114468 0.4070331600 -0.9279145314 0.1252598721 -10.6178694360 10.6599881125 0.5999660866 -0.5149943295 -4.8225776712 4.8889583394 0.6419844727 -1.0834346584 -8.4814921860 8.5756145091 0.0638010032 0.2587692383 -2.7176651062 2.7342669038 -0.0632748766 -0.4452752965 -2.8247544265 2.9026112950 0.1886979313 0.0553675578 -1.7820037420 1.7982462560 0.4034994338 0.0684907907 -2.2310359963 2.2682646227 0.5555470663 0.2060544347 -2.6328824834 2.6987332481 -0.2506615571 -0.3669370219 -2.6645504144 2.7049552103 -0.2472580843 0.1274218453 -0.0907360477 0.5738003810 0.4137344322 0.2032217605 -0.1844874201 0.5157428210 0.0877180488 0.0017347943 -0.0511241690 0.1015438145 0.1899687547 -0.1670324770 -0.3344824477 0.4193643809 -0.9478307825 -0.3695990951 -0.7087243369 1.2477005466 -0.3216864310 0.3585487666 0.5641095059 0.7548103719 -0.1082089695 0.2384215269 0.4677429161 0.5539108467 0.2407833089 -0.1970657345 0.4922551973 0.5988375988 0.1721983140 0.1365870249 -0.0675218218 0.2689744524 -0.0780196050 -0.2124420431 0.3486728024 0.4384873869 -0.3187790217 0.4238260521 0.9355522532 1.1832783129 -0.4180636942 -0.3091524746 0.6595230849 0.9741479172 -0.0057599471 0.1057756440 0.2457744754 0.3018386018 -0.1818004317 0.2481281858 0.1997776840 0.3924409528 0.1337357285 0.0564103971 0.2281081205 0.3042704020 -0.4834817121 -0.6207110617 0.9215502538 1.2197423676 0.0083982759 -0.0143388489 -0.0618281712 0.1535533825 0.0613117494 -0.0938097722 -0.0262954669 0.1809161144 -0.1182343544 -0.7619446561 0.5949061311 0.9738851710 -0.1458008411 0.0574592875 0.1636242427 0.2265664312 -0.2680402121 -0.1111101158 0.5714457284 0.6559123558 -0.1630883591 -0.2669096387 3.3679510266 3.3853230969 -0.6383325092 -0.6548783764 2.3345166573 2.5111315952 0.0274365592 0.0580202893 6.7840576090 6.7857966773 0.2268176806 -0.1984675096 6.1102538196 6.1192742329 -0.1849019690 -0.2966372399 9.6386204680 9.6459663436 -0.1468270345 0.7480774698 10.9211651245 10.9588624736 -0.0041426521 0.2284397826 11.1371480988 11.1403657685 -0.0271887007 0.1067016442 3.0696058649 3.2120704253 -0.3348621699 0.0254219873 2.7377217740 2.8020600318 0.2474702119 -0.0717134448 0.7921330295 0.8445938937 -0.0120867789 -0.2521130103 0.2865576135 0.3818668957 0.1091019451 -0.2104094790 0.3399961895 0.4144548132 0.0340184432 0.1320421419 0.0514899758 0.1457518416 0.6135930141 0.8937962796 0.4662534848 1.1801527395 0.0368112000 0.6434021832 0.6341470437 1.3039385306 -0.1522087245 0.1442942087 -0.1156828694 0.2772194539 0.7879368308 1.1240806020 0.1563957485 1.6708240674 0.4606761494 0.5314601126 0.2408973797 0.7564282506 -0.5920719378 0.0604711208 0.5583672734 0.8279249561 -0.6474928874 -0.6703616379 19.4889211831 19.5116929156 -0.0478520576 0.2350259357 412.2824708696 412.2825406361 0.0788380057 0.1776706681 385.2613040814 385.2613531160 -0.2964233868 -0.0254668328 974.2100070225 974.2100624496 -0.0852523310 0.0773462890 65.9798970457 65.9801450768 0.4409343342 0.3117100979 933.3545773441 933.3547439828 0.1073993289 -0.1328245249 175.2940498079 175.2941885939 -0.6293620655 -0.4818051760 126.6400829780 126.6426402493 0.2167947516 0.0817237799 109.8111896095 109.8115227195 -0.1180107168 -0.0472207866 2.8662901789 2.8724998706 0.1850697253 0.2411865730 3.6587042026 3.6739648873 0.0934140245 -0.4062675746 1.7987426855 1.8516842484 -0.1513943519 0.0578420144 0.4485903519 0.4969698554 0.4440681710 0.3096166890 3.8728514427 3.9129933704 0.3728657612 0.1979906872 -0.0492209489 0.4473607882 -0.1552187472 -0.1080082267 -17.1017877168 17.1034026302 0.0498557590 0.0123088693 -3.7247487643 3.7251027452 0.1750868784 0.3270039615 -46.0428202437 46.0443143395 -1.0532051166 0.3027144018 -173.7614219882 173.7648774879 -0.0899923848 0.2418175494 -30.7830451748 30.7841265078 -0.0115458851 0.0398428159 -4.7958709859 4.7960504095 0.0323371416 0.0212456978 -8.5915803861 8.5916675099 0.2022442611 0.0346197511 -11.7742272909 11.7760150121 -0.2370913767 -0.2248721240 -133.7537431868 133.7550531279 0.2023546551 0.0181372237 -196.9018849706 196.9020392508 0.2040566843 -0.1974873361 -125.9760498977 125.9773369665 -0.1681111823 -0.1788885259 -24.7525603703 24.7541711060 0.1934901133 0.2544818011 -101.7165589969 101.7171571239 0.4431634221 -0.8048983472 -3.4464391011 3.5668189814 0.5239966650 -0.6821225560 -3.2543208416 3.3660760281 -0.0580010022 -0.1766229554 -1.8728430707 1.8820470111 -0.0327618734 -0.0629395750 -2.1664999530 2.1676615918 -0.0127584669 0.0096437241 -0.3558998427 0.3562590040 -0.0192497129 -0.1497355481 -0.5145898226 0.5362778863 0.0672581358 -0.0552225762 -0.1369944864 0.1622981178 -0.0193951643 -0.0472293832 -0.3902059210 0.3935320163 0.1980909280 -0.2636747290 -2.4542451812 2.4763044619 0.0050794673 0.0139014216 -0.0495400322 0.0517036295 0.1636916316 -0.3521738423 -5.6301432367 5.6435214389 0.1599063552 -0.2376317754 -2.8619667973 2.8762636966 -0.0224755734 0.0120320984 -0.6123148647 0.6128453446 0.1692305961 0.0622473954 -1.9883333474 1.9964927331 -0.1013839586 0.1265374641 -6.7744120413 6.7763521855 -0.0128024845 0.0231933722 -0.1821114059 0.1840282595 -0.0216433426 0.0285919252 0.0786113553 0.0864041530 0.0545751693 -0.0185899990 -0.0250181285 0.0628485793 -0.1423437673 0.3345611322 0.1760116533 0.4039467803 -0.0844514265 -0.0228228490 0.6665368701 0.6722531704 -0.3037044020 0.0529864744 -0.0134818101 0.3085865997 -0.0271790976 -0.0103959124 0.0437842271 0.0525722064 0.0950867531 0.0392774979 -0.0696607725 0.1242450629 -0.0280429602 -0.0193411285 0.0151170851 0.0372694665 -0.1508107793 0.0676924340 0.1211147168 0.2049266488 0.0065719502 0.0821609560 0.0514224499 0.0971487600 0.3805017428 -0.1369645127 0.3552801363 0.5382980859 0.0661718044 -0.0720033691 0.0313062800 0.1026804559 -0.1513072139 -0.0639385966 2.3572036956 2.3629200748 -0.8838879674 -0.4346420971 19.6561054667 19.6807686285 -0.2779044034 0.1211170347 5.8586924744 5.8665302951 -0.1343317569 -0.0345749808 2.4292301943 2.4331871665 -0.7455485397 -0.5204308906 22.5996745090 22.6374099543 -0.2480076375 -0.1993699238 5.0334263565 5.0454055165 -0.0246675830 -0.0080580270 0.1623808065 0.1644413202 0.0995700893 0.1215190286 0.4044664781 0.4339057604 -0.0468402196 0.5962391038 0.9068834038 1.1949092066 -0.0702712395 -0.0234918490 0.3841131004 0.3911940541 0.0437038875 -0.1067430091 0.5967806301 0.6078249915 -0.2370575603 0.2063068478 940.1573030915 940.1573556140 -0.0615978617 0.0296470614 86.9643150880 86.9643419568 -0.3231725544 -0.5223856757 179.4678455043 179.4688967405 0.0049750786 0.0026916162 0.5170926580 0.5171235957 -0.1749963829 0.2233065660 2.9392507299 2.9529111753 0.0151677692 0.0740437515 1.1436933832 1.1461880706 -0.0805072621 -0.0063345819 1.6103232025 1.6123468493 -0.1148525386 -0.0384120338 0.6812536392 0.6919343256 -0.1424136704 -0.0479389019 -0.2696774262 0.3087162225 -0.0305664054 0.0590206841 -0.1768966179 0.1889713199 0.4746987215 0.2164568022 -3.0048827891 3.0498381924 0.0991807664 0.0801456524 -1.1629700215 1.1699399219 0.0952798243 -0.0479218531 -1.4793221784 1.4831617769 0.1024359657 0.0790097780 -1.1669209573 1.1740699266 0.0995366917 -0.0405691920 -0.5682548317 0.5783311907 0.0901591062 0.0917672139 -0.9004189009 0.9095625778 -0.1019200353 0.4499532578 -10.2429764583 10.2543109051 -0.0106130842 0.2691275418 -17.6247297227 17.6273401242 0.0434971876 0.2857760563 -6.2137669961 6.2204871386 0.1297485746 0.1540029648 -3.7710577065 3.7764305675 -0.3852392116 0.7685264631 -181.7900181124 181.7920507819 -0.0526601807 0.0398120413 -9.9723768875 9.9725953933 0.0612640533 -0.0731883131 0.1410934528 0.1703442862 -0.0049150314 0.0312590731 -0.0070712766 0.0324236047 -0.0553722816 -0.1733983055 0.1090969179 0.2122149839 -0.0016237695 -0.1482247201 -0.0268711003 0.1506494617 0.1014096975 -0.1593307325 0.1407920095 0.2355686716 -0.0166242150 0.0058894077 0.0623495601 0.0647959667 0.0463266376 -0.0170960604 -0.2371025418 0.2421901071 -0.0757088802 -0.0959765289 -1.1019265373 1.1086863498 0.0306894230 -0.1885989198 -2.9802004337 2.9863198118 -0.0323073059 -0.4311671345 -10.1014237872 10.1106731422 #SUBSTART -0.2142622169 0.0132640633 -4052.3894773558 4052.3895919643 -0.1841169489 0.3410823540 5.4810937741 5.4965539176 -0.8010173997 0.1515839082 7.4863371212 7.5318875346 -0.0244780853 -0.3729051304 0.8373221513 0.9274942495 -1.2690867166 0.7869083518 -0.0409538738 1.5732526905 0.2654372432 0.1206053163 -2.4895099164 2.5104067362 -0.8244243628 0.9384208203 -17.5886237149 17.6334759232 0.0380115412 -0.0966053111 -3.3781296849 3.3826051227 -0.0821663003 0.2806009503 -153.2040649188 153.2044074941 0.1555363725 0.5610747953 -179.8805043996 179.8838936930 0.3146196330 -0.6417709607 -36.9821936676 36.9893631161 0.1164330153 0.2746600055 -127.7132381147 127.7136627941 0.7372036343 -0.9010700684 -41.9826939987 42.0093125681 0.7772580311 0.1887906058 -33.2915879777 33.3144105848 -0.5695048024 0.1928050554 187.3823155685 187.3839303096 0.0734573508 0.4179464513 22.6073235101 22.6117365829 0.3028687216 0.3416629543 0.7787232019 0.9134290596 1.5113505593 -0.8319323071 4.3801223220 4.7096967225 0.4194522363 0.3437806609 -0.1491879678 1.0939529076 0.3345456002 -0.9500052286 -2.0978704344 2.5091515788 -0.6172043868 0.2847387002 -0.5154442234 0.8643956934 -0.8303424704 0.3742602810 -0.7734765596 1.2030316493 -0.3334019759 0.2243061588 -0.1255667925 0.4435278285 0.1542546701 -0.2325117203 -150.9195177596 150.9205828837 -0.1984983628 -0.0696492444 567.8250587967 567.8251149164 -0.9787689728 -1.0768889568 2809.0842232381 2809.0846036394 0.0751778353 0.0156020723 -766.4294671890 766.4294710348 0.0002771890 -0.0398063977 -73.8241060446 73.8241167771 -0.2345572194 -0.7000360590 31.3789857004 31.3915506486 -0.3991794306 0.0554905345 25.2952496033 25.2988449478 -0.7810930341 -0.1422369735 46.7683150621 46.7752617440 0.6595146577 -0.6449841753 29.0325613258 29.0475482802 0.7786390580 0.2869091319 43.8005611855 43.8086433890 0.2748563098 -0.6668204914 10.3376283300 10.3636979324 0.6986057413 -0.3500814092 33.0472913153 33.0568230482 0.4251002412 -0.0302754031 5.8322071401 5.8494227685 0.1062065675 -0.7580672647 4.7481906731 4.8115216165 0.2952296778 -0.4778352981 4.0688798498 4.1074651997 -0.5263913334 0.2164774596 2.8845559743 2.9434831884 -0.0769586966 -0.0567339403 2.7654375052 2.7706074715 0.1379027186 -0.1141707228 0.5065561166 0.5550954854 -0.8726849001 0.2137649406 2.6927923968 2.8813271659 -0.0918375192 -0.1729541914 1.5346804728 1.5534063283 -0.2203864170 -0.0817215438 2.9499468440 2.9625858217 -0.3551147278 0.3708696564 2.9889505888 3.0359440343 -1.0459156336 0.0040836953 2.6311543444 2.8348561089 -1.5283196276 0.7886132457 3.5044160488 3.9061596695 0.1151987804 0.3441067308 6.1560094671 6.1682746814 -0.8178740981 0.8177424866 0.0176158427 1.1650797902 -0.0636272772 0.2193219190 0.0865768814 0.2442254920 -0.3471227420 0.5552574145 0.1029821892 0.6628803253 -0.0068387142 -0.1470876131 0.3060198320 0.3671640729 -0.0470609980 -0.0458981367 0.0811723593 0.1743276034 -0.1917391855 0.0990101391 -0.4748117059 0.5399007908 -0.4672032006 0.1536159150 -0.7743450150 0.9278828952 -0.0811736973 -0.1042054678 -0.4389334731 0.4583781654 -0.1017957626 -0.1055507787 -1.2583733674 1.2668886597 -0.0724376051 0.5138857828 -1.7119926685 1.7889227768 -0.0127717754 0.0411112357 -0.3423721493 0.3450680231 -0.2620316128 -0.0353048502 -0.6591978746 0.7238291383 -0.7342559869 0.5751432716 -1.1501172577 1.4873369250 0.1816369233 -0.1777653324 -2.1507934724 2.1702499467 0.0140842898 -0.0434922026 -0.0256150391 0.0524029497 -0.1630247878 -0.0488821470 -0.2199504020 0.2781091963 0.2159666297 1.3728867402 -18.5819665179 18.6404018256 -0.4416353882 -0.2335946613 -17.7741681190 17.7880381595 -0.3401619610 -0.4440599956 -22.2200284321 22.2325483002 0.5674328646 0.2606919689 -151.4983984006 151.4997496305 -0.0256828270 0.4543719973 -100.3340467302 100.3394779664 -0.0130984943 0.1238780061 -5.4761588003 5.4793532759 0.0822611120 -0.3674394559 -5.3511531949 5.3661996743 -0.0504505120 -0.1856302933 -16.9289668270 16.9306349992 -0.0279085727 -0.1164727332 -2.2210426981 2.2286442600 1.6550133296 -0.8691234076 -22.0829678949 22.1623869529 0.3692557119 -0.0516618026 -4.5427017861 4.6535479833 -0.1410738018 -0.5215517757 -1.1836264478 1.3085753418 -0.0183550294 0.1334025852 -2.6645425280 2.8285529560 0.0941597940 -0.0594795524 -0.1378777335 0.2255968489 0.0473134594 -0.2092443407 -4.7923816861 4.8225081589 0.8271538542 -0.4794459277 -7.8663026118 7.9254178730 0.0308049354 -0.0262407001 203.8191809648 203.8191849818 0.0796073783 -0.3185386069 632.0585518261 632.0586371063 -0.2305720301 -0.1609910715 1989.7929685798 1989.7932096682 -0.0433529407 -0.1098849443 131.1606952020 131.1608226562 -0.0631824116 -0.0915330261 3.8096788654 3.8138567297 0.2140283746 -0.2389081709 27.4985053886 27.5164219267 0.0355894741 0.0040200710 1.1278710227 1.1370380822 -0.1227579543 -0.2076378359 1.6487059451 1.6662575670 -0.0092478346 0.0196532264 0.0816583254 0.0844976560 0.2082376013 -0.0030777195 0.6964310486 0.7401813030 0.5884444653 0.1092300346 1.9713629418 2.0602111391 0.1577740998 0.0516424744 0.8295784672 0.8460260310 0.2926759906 -0.0564000436 2.0072887188 2.0340914399 0.3493031772 0.7075012839 2.7635907752 2.8774093442 0.2606424676 0.0934350716 0.5974011019 0.6730768678 -0.0324068858 -0.0716933180 0.2777851439 0.3206782018 0.3028338049 -0.0324254342 -0.3105516234 0.4568170507 0.9128661166 0.0777442689 -0.6865071179 1.1533171836 0.5395256615 0.1282431076 -0.4480876633 0.7264960929 -0.1416095402 -0.1082945956 0.0023745992 0.5286417018 -0.8665977122 -0.5992301787 0.9870215181 1.5270741004 0.1442774215 0.4169936783 0.2644565053 0.5330260127 -0.3742246649 -0.0199635701 0.2598724784 0.4769236143 -0.2527720173 0.1338598592 0.6529703801 0.7264036459 -0.4653704392 -0.4352536942 0.7776039675 1.0149695262 0.1473823526 0.2192189738 0.0956411119 0.3136965469 0.0795304379 -0.1216527421 -0.3353824838 0.3912616459 0.1889208086 0.1134976468 -0.0547504575 0.2270911719 0.1246812128 -0.0232633555 0.0173914436 0.1280197283 0.1845456359 0.2767539105 -0.3017758669 0.4703172094 0.0848930096 0.1624232976 -0.5064470382 0.5563780532 0.5367276448 -0.1215767550 0.4429753584 0.7201141751 0.1623548882 -0.0439059281 -0.4077965430 0.4411177402 0.1297490429 0.0827963403 -0.4738791101 0.4982483909 -0.3478478681 -0.1094824218 -1.4229653124 1.4689502443 0.3275759604 -0.0619942141 -6.6893387693 6.6990956291 -0.0022597869 -0.2273794071 -9.2593559368 9.2631991585 0.1366049792 0.2523606889 -87.8565752950 87.8584534626 0.4645161392 0.0934104213 -239.7622402709 239.7627084441 0.0971414403 0.0826337496 -80.7544289236 80.7545296289 0.0939573204 -0.1400171278 -139.8865610077 139.8866626356 -0.3259000090 -0.1677619538 -69.2592741428 69.2602440776 -0.2392295351 -0.1814690010 4.6364764567 4.6461893744 -0.0893186801 -0.2082737363 3.7969960523 3.8037527255 0.0125904231 0.0087514016 0.2866231406 0.2870329781 -0.2559969967 -0.0542262326 11.0324076825 11.0355106008 0.0009644919 0.1277702098 1.6587126177 1.6636266723 0.0408683800 0.0689104745 3.3270573964 3.3280219045 0.2633995307 0.0088436740 8.8404968536 8.8444243534 0.5974361325 0.1783885440 16.9062108944 16.9177043127 -0.0270295059 -0.0418911001 1.4944879746 1.4953192852 0.0249488222 -0.0273078852 0.1045874078 0.1109355227 -0.0773693609 -0.0736025356 0.1688530029 0.1997866058 -0.4770703865 -0.1029293424 1.0127160514 1.1241816597 -0.4337886522 -0.0028358280 2.2835984518 2.3244359586 -0.6219854735 -0.0202729755 4.2545215494 4.2997942435 -0.0038173430 -0.0162062591 0.1086233990 0.1098920277 -0.1932892211 0.2021088512 0.7365727582 0.7878757128 -0.0990586410 -0.0492853145 0.0839710917 0.1388985270 -0.6139530339 0.0362616713 0.5076970436 0.7975020532 -0.0628880433 0.1994148176 -0.1116331282 0.2370298099 -0.1619390098 0.1216449145 -0.1662816995 0.2620521545 -0.0382634389 0.2413640998 0.1251453102 0.2745579504 0.0160740541 0.0376006803 -0.0296206312 0.0504932488 -0.0422933803 -0.0071904348 -0.0944327308 0.1037206489 0.0600840858 0.1135342853 -0.2021810457 0.2395356060 0.0271600890 -0.0055895242 -0.8427997340 0.8432557766 -0.0068810289 0.0093717095 -0.0011661760 0.0116849247 0.0111172517 -0.0286059541 -11.6071491255 11.6071896993 -0.0118095396 0.0793317356 -5.7654622000 5.7660200632 0.0064438112 0.0213396245 -1.4014557173 1.4016329868 0.2120185137 -0.1867552518 -13.8803223296 13.8831976629 0.2262978941 -0.2073692738 -2.7580412610 2.7750683505 0.0395248568 -0.1501422983 -1.0809556671 1.0920485695 0.0222802075 -0.0540982659 -0.0189633228 0.0615031514 0.0185755522 0.0599987725 -0.1262324391 0.1409947961 -0.0048896778 0.0138864255 -0.0670563512 0.0686534486 0.4535600814 -0.0091389501 -2.4343897781 2.4762984189 -0.0153727074 0.1055314174 4.5523233379 4.5557107851 0.0851240322 -0.1094761844 2.2283632008 2.2326741120 0.3804294898 -0.4211046710 5.6845440184 5.7128011026 0.0039404872 0.0354900433 0.1713398336 0.1750211678 -0.0611617349 0.3471286594 0.5075539402 0.6179401801 0.3571252576 -0.1056606841 -0.0045633337 0.3724559757 0.0084261000 -0.0429391382 0.0086908299 0.0446127704 0.0012857421 -0.0714624218 -0.0158866379 0.0732182773 0.3341160423 -0.4300538334 -0.2733248635 0.6093326763 -0.2184034297 0.0135086664 -0.0493195402 0.2243099624 -0.0507886455 -0.0075605129 0.0573712055 0.0769941756 -0.0225136518 0.0962688089 0.0199552211 0.1721991400 -0.0516983653 -0.3739032857 0.1051091453 0.4159376219 -0.0054563615 -0.0077923311 -0.0639071514 0.0646112707 0.3311188890 -0.2832191460 -0.6048696012 0.7454663224 0.0447253877 0.0381528752 0.0752386264 0.0954822135 0.3740579866 0.4357205843 0.2128131282 0.6124224298 -0.0196772643 0.0669149995 -0.1741041969 0.1875555471 -0.2169439031 0.0280849857 -0.5426696465 0.5851015029 -0.1276083777 -0.0348945017 -0.0960563367 0.1634880550 -0.0559296581 0.0836116204 -0.0802221741 0.1286647851 0.1816977651 0.1657535405 -0.8403280867 0.8755795836 0.1175327548 0.1368908195 -1.1620661147 1.1759892431 0.0718481941 -0.1126042017 -0.6923306873 0.7050983263 0.0282183295 0.0290090132 -0.5314909197 0.5330294501 0.0344280690 0.1367449449 -21.8542400785 21.8546950077 0.0668483309 0.1737489540 -12.9298244750 12.9311646170 -0.0474111991 0.0906996749 -16.6008405636 16.6011560342 0.0457603527 -0.0144310197 -13.2939866196 13.2940732098 0.0118344508 -0.0114579596 0.0098860163 0.0192112567 0.0129232019 -0.0779379675 1.0831326396 1.0860099681 0.0045451702 -0.0331871098 0.3288454797 0.3305471106 0.1423345922 -0.1084272932 0.3982023751 0.4365555469 0.1664433983 -0.1877712394 2.2912968601 2.3049951723 -0.0166366521 0.0061388556 0.0911397073 0.0928488556 0.1562239676 0.0747468229 1.1616312901 1.1827341436 -0.2041257654 0.3799263403 2.4355919046 2.4774178216 0.0085726273 0.2510258181 -90.1610473121 90.1615051985 0.1779302075 0.4225690632 -55.5105256193 55.5125945897 0.4039338021 -0.0390360447 29.9089157976 29.9263810227 0.1066803599 -0.1067447791 4.4508974248 4.4556416842 -0.0562812811 0.0003622653 -2.9429701741 2.9468153903 -0.3736738183 -0.2112368471 -29.9858391721 29.9892361318 0.1562463932 0.0052486027 -0.0188005144 0.1574609239 0.1766624141 -0.0470864773 0.1178388124 0.2175148974 -0.0152206210 0.0990728214 -0.1031065999 0.1437986863 0.0899580254 0.0142203191 -0.1026570936 0.1372338977 0.0220188071 -0.0692366043 0.1510330259 0.1675992546 0.1270289206 0.0246454779 0.4175375584 0.4371285382 0.0461778066 -0.0572841603 0.0351547472 0.0815458220 0.0672773548 0.0361242286 -0.0613810249 0.0979736320 -0.1356212796 -0.0879092012 -6.1407699502 6.1428964455 -0.0961168149 0.0208643146 -7.7482046363 7.7488288694 -0.0385117139 0.2647368197 -12.0006091307 12.0035906396 -0.0182642243 0.0420581511 -0.6645290926 0.6661091388 #SUBSTART -0.0799108353 -0.9455238996 2779.1584552750 2779.1587756510 0.9206109935 -0.6259202699 -21.1638605615 21.1988663756 0.0989462328 0.2293728293 -3.9692727930 3.9795739147 1.8800296894 -0.6806842246 -23.8433067634 23.9274026974 0.2719983479 -1.1647432499 -19.1545774821 19.1923924575 -0.1719675040 0.3950528715 -1.6234428973 1.6854335405 -0.6788119863 -2.4288268935 -28.5094443726 28.6211090632 -0.2642169144 -0.5302064976 -1.7526611869 1.8553249120 -0.1472174349 -0.7488612564 -1.0147150121 1.2773380505 0.4125205041 0.5734020899 -1.3131016937 1.7616894658 -0.2614297700 0.1008168208 -0.1159766478 0.9872952566 0.7368048413 0.0719889144 0.2141070921 0.7831892554 0.1587919404 -0.9503792531 -0.7634560552 1.2372471613 -0.1221600489 0.3701228916 -0.1011386671 0.4261723212 -0.2983325165 0.0202834878 9.8486424101 9.8541692099 0.5570105785 0.5883216753 288.5057910349 288.5084542859 -1.1001086686 0.0317730097 -333.3195640414 333.3214102052 -0.6670238582 -0.0570738974 -420.9775906017 420.9781460442 -0.2228359817 0.6395519502 -215.2271361404 215.2282469695 -0.0393600161 0.5494134211 -333.6672634838 333.6680832295 0.2304138583 -0.0928085944 118.1788339942 118.1791774721 0.1666920003 -0.2384955829 93.1262763521 93.1268355167 -0.5069387845 -0.0452023916 69.8677671670 69.8713643780 0.3883285872 0.1209483080 23.5356182185 23.5443070289 0.6115610613 -0.0391639572 0.8891500823 1.0888564648 -1.5049917253 -0.7867003230 1.7726374751 2.6280204913 0.6449101219 -0.7816797148 0.9125459630 1.6553014738 0.1385533279 -0.1256206822 0.1682968578 0.2877172183 0.1227710073 0.0840671586 -0.2434915720 0.3176600981 -0.1803515573 -1.0866665437 1.4729945366 1.8446039009 0.0661100132 -0.1664739812 11.2443419105 11.2466345591 1.7636245714 -0.7094415418 44.4700462106 44.5108769706 0.1989259961 -0.4427521816 70.2892545898 70.2910690744 -0.4541332506 0.6216566067 44.7101802665 44.7170257642 0.3128294777 -0.0321348846 0.4516536975 0.5677726484 0.4413222625 0.6003184411 -20.3002008110 20.3143491237 0.2412124939 -0.2402749072 -81.2277963088 81.2286297340 -0.1422386869 -0.0991655084 -151.2852458679 151.2854096161 0.7369303548 0.6728819731 -2866.2023657756 2866.2026934964 0.3880992057 0.0406014380 -10.8638992844 10.8718009969 -0.1495814528 -0.3184974964 -27.9643678341 27.9669298174 0.2525252797 -0.2992691960 -4.6880938371 4.7064885721 -0.0402013889 0.0003581829 -1.3603103458 1.3680425073 -0.1461553154 -0.8807085459 -9.8486305494 9.8899955714 0.1103672695 0.1888951222 -2.8344956547 2.8463498912 -0.0077301276 0.0070167693 -0.0160419832 0.0191398838 -0.4959795548 -0.1957474697 -3.4842598391 3.5248233171 -1.2019346657 -0.9174859801 -11.2544119828 11.3942339425 -0.4266884666 -0.3193275713 -6.1626244067 6.1872007005 -0.5499778730 -1.3540484181 -12.9981909229 13.1137043066 -0.0635058872 0.0105776156 -0.3076033124 0.3438669312 -0.3642963845 -0.1779341167 -1.8549966664 1.9039077769 -0.0277460430 0.0434793027 -0.1937959329 0.2005421559 -0.3187950271 0.3387944074 -0.7079097763 0.8470821514 0.2880289865 -0.0661064257 -0.0344827102 0.5763339083 0.6643163420 0.1408241044 0.2010347024 0.7218326448 0.4747983722 0.3482570767 0.2531617925 0.6559627763 -0.2794264151 0.0733491864 -0.2427439299 0.4023227871 0.3238565663 0.3861667927 0.1042259359 0.5332454388 0.3747555465 0.0803009658 0.0502173854 0.4109641535 0.2902554824 0.6463922375 1.2210180813 1.4186035773 -0.5110313129 0.2632622922 -0.8084714962 1.0017814045 -0.0116068776 0.3964015392 -0.1808842256 0.4358761326 -0.0286978438 0.0088087966 -0.0008588793 0.0300316302 -0.5092992279 -0.5508714441 -0.5713926760 0.9533175895 -0.1321754785 0.1342725956 5.9677137505 5.9723183672 0.1465787494 -0.0444265728 65.1656470939 65.1659765522 0.1356401684 -0.0529533204 19.6396925445 19.6407282283 0.6284830891 1.5371217325 317.9857341237 317.9914545880 0.1852583370 -0.0795923850 -11.2846444135 11.2864456380 0.4262631396 -0.1796548485 -85.8724997781 85.8738590844 -1.0928848583 0.4646397112 -75.5030259832 75.5124936668 -0.2150613753 0.0248481537 -33.2981866669 33.2991829316 0.2658471799 0.4482778332 -67.6668890024 67.6688960675 0.0233390639 -0.0045920856 -4.4716017027 4.4716649681 0.7134918384 0.1737064953 -132.6093495593 132.6114561977 -0.1149350539 0.1887568768 -330.2631191304 330.2632225616 0.0688286058 -0.1418063151 251.8699828150 251.8705158024 -0.0364345314 -0.2282604204 336.3064911921 336.3065995904 -0.1220050853 -0.2144828032 49.2263628202 49.2294558733 0.2823307230 -0.1144488812 52.0267488879 52.0278280232 -0.2189554070 0.1809468045 0.8768051643 0.9321750358 0.0930259137 -0.1570687620 1.3891064494 1.4079847049 -0.6570073663 0.1990448690 13.0254507554 13.0772319515 -0.1680191081 -0.0809235097 0.9039187975 0.9334495233 -0.0767064702 0.1705495426 1.8810198357 1.8954383230 -0.2949964308 -0.3913331538 0.4297666345 0.6665910864 -0.0553091196 0.0731885402 0.3993957218 0.4329115252 -0.2015971165 -0.2296847072 1.1696262190 1.2169230622 0.4002530472 -0.6474377991 0.4407174080 0.8905559074 -0.1440235733 -0.8704552900 0.4647400615 1.0069251766 -0.0854034983 -0.1712295631 0.3257331481 0.4027346390 0.3127265734 -0.5791176120 0.6646066838 0.9457044714 0.0731159930 -0.0860281270 0.0906140103 0.2010907030 -0.0680747921 0.1832607360 0.2968064692 0.3818278928 0.0848716533 -0.1495416066 5.6217148731 5.6243438732 0.4273409205 -0.6492938636 6.3515674934 6.3989540088 -0.0564082277 0.5178513292 3.0930877546 3.1397489597 0.3858638780 0.0818409207 4.3403522358 4.3604731606 0.1362416054 0.0721612747 1.7915199739 1.7981414965 0.1677065325 -0.0598861856 1.8433317541 1.8519135488 0.1606888923 -0.2716750238 36.0513707817 36.0530226647 0.2206733591 0.0829757962 66.0367585106 66.0373268394 0.0736080783 0.0449905902 6.5713328280 6.5718990740 0.8382525396 0.4653913276 45.9488278966 45.9588298533 -1.0644723654 0.3192295631 102.1551941260 102.1613340537 0.4213528730 -0.6006837482 44.7254184478 44.7316542766 -0.0368627276 0.1157488682 29.8168302320 29.8174043393 -0.1439645912 -0.0798302692 21.4231433668 21.4237758201 -0.4640050805 -0.0856268113 87.9686619861 87.9699273860 -0.6053471397 0.2432703678 34.6275273661 34.6339538156 -0.2338232311 -0.0609424090 8.6780302195 8.6825155085 0.0942800261 0.7037099875 18.9028191092 18.9166631976 -0.8227535215 -0.1059587418 40.2949115459 40.3143998950 -0.7489089332 0.1100931653 29.4015316832 29.4154158796 -0.7271755111 -0.2309875392 15.3448359927 15.3644268001 0.1193783781 0.0134494735 0.5693574096 0.5983976356 -0.3904781613 -0.2296288581 0.6488968677 0.8035854259 -0.2776178911 -0.0283060508 0.3227889573 0.4489381047 0.2218796029 -0.0455508355 -0.0296894448 0.2677063406 -0.1134476473 0.2661843714 -0.0886696369 0.3332665264 -0.1108571409 0.1143393419 -0.0060437214 0.1593716328 0.0324535745 0.0888906491 0.0233734656 0.0974735908 -0.8159829411 0.1671532106 -0.3659836481 0.9097870007 -0.1077221596 0.3317448940 -0.2065456203 0.4053638262 0.0054873597 0.0630309091 -0.0198947794 0.0663235167 0.2371322143 0.3260399460 -0.4446520137 0.6002075864 -0.0353798222 0.3723894946 -0.6000737409 0.7207592850 -0.3279717163 0.0506917039 -0.4186434679 0.5521568922 -0.0365174917 -0.1609858339 -0.2292479789 0.2824970827 -0.1585435001 -0.1482394811 -0.1727435157 0.2774009867 0.0770765184 0.3138724596 -0.4334561709 0.5406856413 0.0740953736 0.3099059312 -0.6942321252 0.7638652069 -0.6434029687 0.4412526157 -1.4654223405 1.6601608016 -0.5038128901 0.0022414855 -1.8709649161 1.9376124922 0.1713137528 0.4417987748 -0.6664273937 0.8177163508 0.1327035161 0.6070688632 -1.1005528513 1.2638668468 0.2221577460 0.1015578121 -15.2335032940 15.2354616162 -0.1104588418 -0.0004082762 -34.4037375258 34.4041979539 0.5070705066 -0.0572918686 -47.7853747099 47.7883031589 0.2523656975 0.2498832584 -122.2020341498 122.2061621696 0.3752695801 0.2230778764 -200.1358290802 200.1385106980 0.0412018538 -0.2130877438 -89.4451508143 89.4455230180 -0.4046127874 0.1168170630 -3.7425999970 3.7688051497 0.0173224392 -0.0781860199 -2.6694834421 2.6743288417 -0.0039970851 -0.1184762703 -1.6976667817 1.7018005479 0.2153864448 -0.3052401230 -4.9590799203 4.9731314591 0.0340432783 -0.0145367706 -0.9573335118 0.9580489107 0.0248734174 -0.2348326471 -2.2676924767 2.2799548741 0.0429530787 -0.1000636099 -2.5905802710 2.5928678782 0.2631993921 -0.1558223389 -4.8749697336 4.8845557039 -0.0048911180 -0.0186228310 -1.0456701768 1.0458474322 0.2406553761 0.0871500153 -6.6811927915 6.6860935720 -0.3499602329 -0.7175420980 -5.4171899247 5.4756995450 -0.1016750115 -0.0862186957 -0.9512210787 0.9605170545 -0.1301707423 -0.4549447088 -1.6743581572 1.7399409038 -0.1411654775 -0.2017079647 -1.0895526349 1.1170222644 0.4457023104 1.5874126373 1.4438650717 2.2474321358 0.0092373177 0.0563992149 0.2939289063 0.2994334675 -0.0852576752 0.0697392184 0.1388864120 0.1772621369 0.4026282448 1.3468360272 0.8739855515 1.6611463863 0.3564036213 0.0633905346 0.2359817474 0.4541024897 0.0089254977 0.0631119586 0.0682260786 0.0933679904 0.2013344182 0.3613057148 0.0833209565 0.4219238666 0.1330416143 0.3451070868 -0.5880604058 0.8545697410 0.0172731545 0.3584073418 -0.0297852795 0.3600574223 -0.0035898507 -0.0067907924 0.0152830765 0.0171048039 0.0557006260 0.0871143528 -0.8691871914 0.8753158538 0.0633957964 -0.0292576360 -0.2431137281 0.2529413392 0.0025349339 0.0448095923 -0.0889181418 0.0996030190 -0.0261714137 0.1762920434 -0.0093697504 0.1784702208 0.3543394371 0.1667147710 2.4879143839 2.5185448642 0.1965890554 0.1876294963 2.2457706121 2.2621533384 -0.0909742670 0.1833930937 19.0328598254 19.0339607669 -0.0280687453 0.0832697482 21.3364989993 21.3366799492 0.0821457670 -0.0305187131 4.4965119234 4.4973657619 -0.0289164112 0.0405384991 5.1769241553 5.1771636287 0.0267417808 0.2807673724 -43.6815706084 43.6824811138 0.1097720716 0.1703091814 -42.6622752050 42.6627563665 0.0040856809 0.1371818239 -10.5501208037 10.5510134356 -0.0419821364 0.0746048048 -19.2261285348 19.2263191176 -0.1571306479 -0.6331822160 -232.2231121386 232.2240285180 0.0245948174 -0.0726385924 -33.9904999742 33.9905864875 0.0835080533 -0.0411652288 -77.9257446910 77.9258003091 0.0925292911 0.0999769912 -105.4975726390 105.4976605892 -0.0428097952 -0.2354149965 -391.2767293430 391.2771190009 -0.0723368913 -0.0545505226 83.8887718639 83.8888207881 -0.0138969202 -0.2226353690 132.1371650631 132.1373533508 -0.2138015673 -0.1509608617 2.3268186182 2.5229698688 0.3622205292 0.4128540894 1.2262726042 1.3436505166 0.0075634036 0.0578611248 0.0748489629 0.0949077557 0.0240375957 -0.1985177758 0.3501757996 0.4032495554 -0.0047318279 -0.0857233793 0.3634152196 0.3734190273 -0.0039338748 -0.0336301753 0.1449557498 0.1488586361 -0.2613091544 -0.1916906165 0.0840059529 0.3347906312 -0.0021070413 -0.0123330385 0.0457025608 0.0473842540 -0.2635863447 0.2562528666 2.1336111161 2.1695436092 -0.2129196626 -0.1481752280 2.2503469389 2.2695444061 0.0026227545 -0.1581032268 0.0193982628 0.1593103944 0.0547292786 -0.0316933816 0.0758740410 0.0987756775 -0.0083738512 -0.1402749299 0.0395162228 0.1459750294 0.1644861172 -0.6735558540 0.4329699238 0.8174326431 0.0086328734 0.0281334747 0.3542626270 0.3554828094 0.1935499165 0.0611291808 0.6060826855 0.6391670897 0.1652150214 -0.0973653132 10.3685982044 10.3703714847 0.1644037048 -0.0753690236 19.7503813147 19.7512093590 -0.0131488860 -0.0035294431 0.0514945953 0.0532639045 0.0115789246 0.0888776940 4.8605690306 4.8613953365 -0.1493534648 0.1615105664 17.0778843606 17.0793011085 -0.0144510465 0.1360450618 6.7497157594 6.7511021266 -0.0405016547 0.0832403075 5.9354938856 5.9362157137 -0.2191942739 0.0330186113 16.4311650853 16.4326602356 0.0380413109 0.0558848526 0.6765287670 0.6798981031 0.0935757232 -0.0233103885 3.0678403600 3.0693556758 -0.0914750333 0.6898058757 9.7089054984 9.7789261372 -0.0639123368 0.0275961699 0.8607485362 0.8747652044 0.0410981851 -0.0095704130 0.4310256363 0.4330863109 -0.7075040229 0.0546515489 0.7821227770 1.0560609700 -0.0939281609 0.1255094994 0.0280497288 0.1592542657 0.0327700087 0.1612413466 -0.0022568297 0.1645531483 -0.1497038515 0.2423153700 -0.2029323316 0.3497277697 -0.0683450386 0.0641843072 0.0095354096 0.0942422073 -0.3130310851 0.3835024487 -17.6822710529 17.6891993086 -0.1867396630 0.4353485971 -16.7091717222 16.7158852516 0.0290550015 0.3418836569 -48.2399611685 48.2411813928 -0.0477831894 0.0553136116 -7.2413867307 7.2417556305 -0.0892831778 0.1584026457 -3.2532855841 3.2583630823 -0.0155788244 -0.0190807147 -1.3260187944 1.3262475699 -0.0333814551 -0.0827739741 -4.9503152751 4.9511197900 0.0036968710 0.0520286306 -2.6113932687 2.6119141351 0.0579793025 0.0762842827 -4.5846119603 4.5856131235 0.0312644996 -0.0438184656 -1.0107953343 1.0122276102 -0.1467479272 -0.0512067586 0.5495087533 0.5710665077 0.0124921620 -0.0524702446 0.0993536796 0.1130501408 0.1880413720 -0.3179714008 1.0837835413 1.1534868523 0.0935552445 -0.0133970296 1.6702850763 1.6787686217 0.2678279762 0.8570988359 -0.0111913703 0.8980398021 0.1940917722 0.3772493212 -0.0627191283 0.4288616973 0.1870214831 0.2998829157 0.0484846952 0.3567317815 0.1826713842 0.1297990004 0.0947431530 0.2432958695 -0.2459194989 0.2206222223 702.9726837095 702.9727613445 -0.0325734456 0.0890530233 360.7484548306 360.7484672929 -0.0583974132 -0.0800890923 204.5949041748 204.5949281845 0.0488220524 -0.0115910783 41.6286833172 41.6287135601 #SUBSTART 0.3427342115 0.2873884881 2762.8243896279 2762.8244293587 1.0465573566 -0.4282709796 1372.3460670936 1372.3468537204 -0.4049533038 -0.2280589205 117.9630390915 117.9640371874 0.1406675994 0.7590017056 9.5514344989 9.6285286381 -0.2947323301 0.5278422044 34.5648395732 34.5704078519 -0.0072282568 -0.6129783650 28.7257555942 28.7476541820 -0.3835839675 0.1330811641 29.3149578793 29.3219242834 -0.6737165377 0.2501334482 0.5026629304 0.8880374550 0.0867214777 -0.7347657130 1.9891858624 2.1269088950 0.0950660433 -0.6542487503 -0.2752857329 0.7296170224 -0.3646744434 -0.1687797384 -0.2261958697 0.6754847010 0.4131002042 -0.0021718445 173.8803304556 173.8808771994 -0.0114398907 -0.1086356575 -4.5226852397 4.5261566631 -0.1713059709 0.0458797677 -0.7004706274 1.1852854397 0.5511135102 -0.6288120983 0.4331458441 0.9519589610 -0.7412514169 0.3715097812 -0.6026648909 1.0344843818 -0.0055642603 0.0639107617 -3.7544941414 3.7576351059 -0.0076013747 0.5501336846 -6.5333900406 6.5580004619 -0.1292389870 0.3074533973 -82.3183330486 82.3191269754 -0.5647502607 0.6666143574 -3630.1680758661 3630.1683025924 0.0135314117 -0.1293240441 4.7737003294 4.7775100656 0.0399682861 -0.8301912176 195.8459402520 195.8477536452 0.0751585002 -0.0331918544 67.9440444530 67.9442374813 0.0601631722 -0.1563285828 21.4217371095 21.4228466551 0.0036633105 0.0002991783 0.0077965673 0.0086195019 0.1343139684 0.2113779413 11.7166121311 11.7192884045 0.5462683293 -0.7672930528 224.1963710439 224.1983495412 0.2376151702 -0.2169606531 86.6660072011 86.6666045088 -0.0665840117 -0.5116262837 31.0658373513 31.0704349021 -0.0064568486 -0.2779312608 4.2928681454 4.3041240892 -0.0374937103 -0.1482495408 3.5187978215 3.5248832035 0.2149157902 -0.0323557191 11.5483142507 11.5512024269 -0.0725197457 -0.3839567041 5.0402294422 5.0572793554 -0.0414612402 -0.0386137258 1.1294620361 1.1394622987 -0.6074297295 0.3728556960 13.5657629626 13.6168376504 -0.1392136894 0.1499072624 1.9494595406 1.9651272030 0.2359151935 0.0180823702 2.7768447582 2.8302810323 0.2891581607 0.4921904312 1.5835325456 1.6890586048 -0.5096402479 0.2400293043 2.5433040239 2.6520592067 0.0533709949 0.1155201600 0.5910193115 0.6204651335 -0.8577368601 -0.9297966826 32.6544510480 32.6792424548 -0.3927584470 -0.1691945428 25.8210899445 25.8250082613 -0.3476691479 -0.5482953623 24.2035252187 24.2304545240 0.0860945911 -0.2593578041 9.6511684431 9.6560453008 0.0361075568 0.1417067236 2.0100517089 2.0153640921 0.1465597713 0.0717938683 2.8626581563 2.8673063746 0.1252003006 0.6900336264 -0.3883436150 0.8016434895 0.0299439992 0.6179076553 -0.4586229502 0.7700918932 -0.4770738066 0.9051244713 -4.8239310311 4.9332180272 0.1203637682 0.6497040176 -32.4559226333 32.4629480564 0.1408993573 -0.1673386530 -7.0308075960 7.0355945087 -0.5401134941 -0.4292467222 -29.6165226010 29.6248859254 0.2585860397 -0.1157496748 -10.7260011637 10.7306498161 0.1838214949 0.2133291042 -44.2075345523 44.2086517621 -0.5207070431 0.6081982910 -61.9552474730 61.9605778718 0.1216784498 0.5142957916 -161.9051122605 161.9060349761 0.2256764769 0.0193052124 -61.1283016153 61.1288805780 0.4364724401 0.4316447473 -175.8258707616 175.8269977399 -0.5882204236 0.4931288276 -320.7240592466 320.7250081280 -0.1428541720 1.4820730802 212.8157499015 212.8209584464 -0.0815200037 0.6768592211 111.1660382357 111.1681287103 0.1628578095 0.1792924676 75.7420813072 75.7440769312 -0.2835980228 2.8900214398 519.7906022510 519.7989520148 0.2472015518 0.0089663126 1.5132484796 1.5396719611 0.2657238644 0.1711112786 13.3785032891 13.3829637331 0.1428619587 -0.4320135728 1.7257279610 1.8517081902 0.3817806870 -0.1416244033 0.1578497596 0.4584869639 0.0480934351 -0.2527893561 -1.4577980112 1.4868995472 0.4918018433 -0.3951184888 -0.7161098638 0.9645106506 -0.1104938824 0.1069748430 -1.0200889624 1.0410157498 0.5654201214 0.5509289637 -5.7554153195 5.8109816659 0.1305022814 0.1181095347 -1.3848426156 1.4029431786 -0.2272103374 0.0341552564 -5.6427970274 5.7250974835 0.0515448338 0.0099387214 -0.3586079392 0.3624297202 0.9811697586 0.8393341779 -8.0927383541 8.1950954860 -0.1593149826 -0.0361199851 0.1224563730 0.2041604278 -0.0438614263 0.0444819997 -0.0122131777 0.0636524526 -0.2668638836 -0.1822766879 -0.2104829599 0.4101511729 0.0771582264 0.4775604939 0.1794423975 0.5345061049 0.1403523728 -0.6434188758 1.6553018928 1.7869501334 0.0300196911 -0.0503811116 0.8014616892 0.8156347604 0.2174349022 0.2344617884 0.9796916563 1.0399643231 0.3148802613 -0.6046272522 0.9073756026 1.1434745131 0.1003237111 0.1924448242 1.0528942689 1.0840507293 -0.0807484241 -0.2164112780 0.4533342857 0.5275849777 0.0725321981 -0.3184870228 2.1707370469 2.1996076958 0.4812598898 0.0212726595 1.1488614687 1.2535653420 0.0811839514 -0.2410980898 0.6376188082 0.7005402575 0.2318856645 -0.0148910504 1.6584630061 1.6804678016 0.5384749661 -0.2799051100 -0.2720583012 0.6650698301 0.0119727992 -0.0193939310 -0.0439995497 0.0495523244 0.3047328089 -0.1252600471 0.4576335660 0.5809134444 0.1285182994 -0.0496845313 -0.1056782644 0.1736473481 0.1058940959 0.0818613694 -0.1293171045 0.1861122158 0.1922488996 -0.0931589461 -1.0417465688 1.0725455362 0.2369662934 -0.0107733493 -2.6218928897 2.6362987690 -0.0545904104 -0.3278539586 -1.1594864781 1.2142310360 -0.3647731938 -0.1909646722 -7.7591338001 7.7713038868 0.3931371315 0.0125474283 -8.2510921943 8.2616412671 -0.4145396482 -0.2454427565 -6.8849141765 6.9031592962 0.3446552950 -0.0876780193 -66.4679284674 66.4690263901 0.2608514254 0.2922587610 -162.2666308947 162.2671637774 -0.6254716219 -0.1058668316 -1077.0937460814 1077.0939328908 -0.2075903843 0.0304796577 -434.3625551762 434.3626058513 -0.0824102021 0.0022395463 13.1874797046 13.1877373881 0.2074576996 -0.1332647366 21.6038392085 21.6056970848 -0.0213761632 -0.3170262685 29.8895436326 29.8915583560 -0.2092413002 0.3556256842 27.5733176639 27.5767579372 0.3029471678 0.2985969581 40.2698706199 40.2751419343 -0.1339462321 0.0455984883 45.3205277032 45.3207485829 -0.1761968469 -0.0889598286 50.3563529119 50.3567397452 0.0436770341 0.0221419026 5.6511523214 5.6513644818 -0.0947974411 -0.0093641351 8.9655865321 8.9660925774 -0.0890158372 0.0194841588 6.4086548962 6.4093026946 -0.3272842509 0.1673654757 13.1167291415 13.1218790405 -0.0501883010 -0.0885686251 3.0052793106 3.0102403204 -0.2475447530 -0.3097018602 5.0392358485 5.0567352481 0.0066214608 0.0291068650 0.5052564152 0.5250284595 -0.6938998983 0.0725432815 2.7361080483 2.8271056990 -0.0628685198 -0.5174622376 6.2236129485 6.2652017669 -0.7006467615 -0.1821782765 30.8319504413 30.8404484861 -0.0800648665 -0.0673931008 5.5141975970 5.5151905998 -0.0128072372 0.0080912000 1.6543627836 1.6544321420 -0.0025915817 0.4904418360 16.6370961923 16.6443236457 0.0091144927 -0.0148645155 -0.0760029034 0.0779773629 -0.3412189236 -0.0355960977 -2.3030656386 2.3284777799 0.0047467969 0.0154538321 -0.2452425122 0.2457747806 0.2845936248 -0.1741846432 -12.5476440857 12.5520797449 0.0550366518 -0.0441084759 -1.1070785442 1.1093229889 0.1820670968 -0.1210783993 -9.6827846751 9.6852530928 0.0975800613 -0.2681382807 -5.4022090284 5.4097395864 0.1038570456 -0.1042221137 -4.5627087742 4.5650804914 0.0422596223 0.0146128360 -11.8087477701 11.8088324278 -0.0784397008 -0.0652366207 -19.0159417908 19.0162154698 -0.1712985220 -0.1714715574 -39.1960108407 39.1967602169 0.0155100131 0.0080834741 -5.2325022558 5.2325314868 -0.1147190137 -0.0360883320 -185.8909256974 185.8909645988 -0.1390297075 -0.0587886196 -89.3382468582 89.3383743811 0.1362506460 -0.1939444686 30.3942750815 30.3951992332 0.2098800095 -0.1142238662 42.8698202849 42.8704862110 -0.1388015284 -0.0948561030 1.2602362705 1.2714004098 -0.2248510597 -0.4056508198 4.0250631725 4.0516964508 0.0202840276 0.0946512183 0.2940661778 0.3095887786 0.0583348137 -0.0291710259 0.1006695875 0.1199510945 -0.0589899313 0.2391889050 2.9471694973 2.9607395993 -0.2697911233 -0.0689611315 1.7951036416 1.8219274840 0.0733009520 0.0841871611 -0.0039237243 0.1116955830 0.0362333111 -0.0455633696 0.0382431592 0.0696520833 0.1166956992 0.1791022221 0.2512425902 0.3581872642 -0.4251776354 -0.1226755490 -0.0640302909 0.4684068478 0.0720900098 0.1404923506 0.0908089744 0.1821574591 0.0800513601 -0.0096068133 0.0158023017 0.0821597459 -0.0373019302 0.0916613970 -0.1485613773 0.1785041414 0.0159376039 0.0551413597 -0.4304732849 0.4342831171 0.2066508512 -0.2607917259 -2.6981813421 2.7186208734 0.2364492994 -0.5970589968 -5.2317123587 5.2709773213 -0.1827887545 0.2479164978 -1.8725420573 1.8977060033 -0.0537564085 -0.0086480478 -0.3482564110 0.3524869756 0.0507230632 -0.3823314884 -1.7225905288 1.7652388864 -0.0483935838 -0.3133642977 -1.0821785803 1.1276744219 0.1131097588 0.0096459835 -2.1215891342 2.1246240413 0.0086919002 0.0326179450 -0.1180909900 0.1228208508 -0.0439283255 0.0220218133 -0.7374281948 0.7390635971 0.0851148553 0.0533067654 -0.6830113680 0.6903554727 -0.0842071091 0.0711040218 -2.1416604532 2.1444943730 -0.0835172712 -0.0129094788 -0.5581162232 0.5644780845 -0.2208879358 -0.0670857942 -2.4172156039 2.4282140061 -0.1180377049 0.0552859175 -1.0069895168 1.0153902301 0.1894842872 0.1628532498 -0.4709752189 0.7293274723 0.0785562627 0.0253139280 -0.0001404834 0.0825342419 0.0458788235 0.0219675309 0.1522494246 0.1605220426 -0.1480473798 -0.1666027673 1.4340161584 1.4512328728 0.0136466306 -0.0249319988 0.0532024320 0.0603186029 0.4157891803 0.0936957899 -0.2568511504 0.4976264231 0.1418266638 -0.0063315000 -0.0135554893 0.1426136099 -0.0768947985 -0.0490942044 -0.1424559040 0.1691648176 -0.1721282834 -0.2010473298 -0.1179303654 0.2897511792 -0.0494563696 -0.0116687747 0.0278507586 0.0579461608 0.0308970720 -0.1586086937 -0.0024388011 0.1616084605 0.0152581226 -0.0065457632 -0.0532151055 0.0557449977 -0.0675980383 -0.0769179437 0.0443643123 0.1115977466 -0.0245777935 0.0627860972 -0.3272350135 0.3341091378 -0.0116127410 0.1533383779 -2.5413722056 2.5460204637 -0.4364987732 -0.2620297104 -1.8384191061 1.9076099072 -0.1477212750 -0.0334517068 -0.7969918973 0.8112562333 0.2555346523 0.1467234791 -2.2179506139 2.2374384156 0.0189246958 0.0865547516 -0.5433150685 0.5504917190 0.0061125039 0.1482128240 -1.0065901670 1.0174616298 0.1248818754 0.2111566166 -2.7734620258 2.7842906113 -0.1137481023 -0.0841268217 -4.7668489513 4.7689479843 -0.0333541496 -0.0105385165 -6.3510020684 6.3510983958 0.1344632671 -0.5925017327 -119.4295122208 119.4310576357 -0.0200196144 -0.0166389467 -6.5099358614 6.5099879078 -0.2741378513 -0.0863519961 23.4493082217 23.4514849016 0.0798598960 0.7685933964 75.8384504232 75.8425154896 0.1287150171 0.1050110676 9.0119864887 9.0135173685 0.1527709096 -0.0231235240 6.6634423898 6.6652335391 -0.0994405619 -0.0826650556 8.4563471291 8.4573357924 -0.0129514207 -0.2067113393 17.0224417157 17.0237016915 0.5854429357 0.3174027102 45.1473895113 45.1523008007 0.1657956342 0.1233707429 10.0405523070 10.0426788838 0.0927732778 -0.4370027253 19.7725632122 19.7776094168 -0.0169854937 -0.1484712213 9.9546088997 9.9557305385 -0.0329998175 -0.0109685452 0.5130544509 0.5142316273 -0.0180198979 -0.3352944341 8.4573842745 8.4640472495 0.0437357113 -0.0158949013 1.3931397333 1.3939167037 0.0594454805 -0.3656573142 13.2904491123 13.2956111798 -0.0645067407 -0.0552828763 3.6764747038 3.6774561267 -0.0155775810 -0.0752306551 0.8029314467 0.8065985499 0.0020224904 -0.2202271194 4.6949328940 4.7000956324 0.0210268069 -0.0032647372 0.1136161000 0.1155915365 -0.1276892243 0.0937364327 1.0290871968 1.0412067592 0.0230400538 0.0079552397 0.0455686626 0.0516781668 -0.4990637786 -0.1258269654 5.8157914437 5.8385209769 -0.0599863419 -0.0479550568 0.5119618738 0.5176900703 -0.1078217834 -0.0623841040 -0.0802077441 0.1481573340 0.0329858889 0.0117336586 -0.0445429971 0.0566553281 -0.0042120079 -0.0089249911 0.0043292746 0.0107767850 0.4437854217 -0.2434170862 -0.4643758283 0.6869077727 0.2447013372 0.1179531108 0.1646735685 0.3469709640 -0.1132821072 -0.1006947007 0.1712834942 0.2679367068 0.1788045206 0.1699117647 0.2930191933 0.4076531576 0.0270992065 -0.2055747302 0.3842812565 0.4584181559 0.0602935964 0.0890158741 0.0768323141 0.1321451781 0.0696528691 0.1329862982 -0.0533073905 0.1593064831 0.0000162854 -0.0528588383 -0.1152939303 0.1268335422 0.0792675213 -0.1091156129 -0.0211254001 0.1365131475 0.0130367070 -0.0499796049 2.1010759148 2.1017107119 -0.1864807060 -0.2650042297 24.2045509852 24.2067199490 -0.1637107915 0.0068238561 8.1876677980 8.1893071599 -0.1285508721 -0.0069016616 2.6288597266 2.6320099586 #SUBSTART 0.3260484276 0.1443906029 -5.3057550225 5.3195556550 0.6186205464 0.0817203591 -78.2905977775 78.2987219675 -0.7599072451 0.1771096580 -112.2761167005 112.2827482688 -0.1481631330 -0.1312790778 -23.0508470474 23.0521195533 -0.4115615697 -1.4964719725 -4264.5040212802 4264.5044069243 0.0799199797 -0.6449725729 -7.4395924556 7.4692297135 0.1809378368 0.5772113412 -0.6019470198 0.8647146539 0.1143057461 0.4126118414 -0.7061900854 0.8375551068 0.2300522007 -0.7189853996 -0.7309861528 1.0600398862 -0.8135268220 0.7136722019 0.8593053895 1.3888986425 0.3713206376 0.1767281088 27.2788590524 27.2823155693 -0.0649795335 -0.0922985236 59.5260993687 59.5336210825 0.2885954493 0.1321377466 498.5660647671 498.5670511344 -0.1180311282 -0.3784124160 6371.5109047637 6371.5109863707 0.6447903198 0.1881748686 -7.1780720931 7.2703971759 -0.1688090965 -0.0064836175 -2.0030408608 2.0149915691 -0.0367754010 0.4402268934 -23.1101199445 23.1334300911 0.0525853584 -0.2685749932 -5.2178610390 5.2268969144 0.0992850750 0.7343014068 -34.8307262390 34.8386071252 -0.1078980360 0.0350607788 -1.4595757168 1.4639783187 0.1263015890 -0.0208764748 -21.2737723659 21.2746153521 0.0741519408 -0.2469562953 -350.8098144236 350.8102564390 -0.3457575266 -0.3410945582 -245.4946260645 245.4951461844 -0.1095519112 0.2058945417 -253.6943227764 253.6944683728 0.3119249131 -0.0329662807 -170.3851771059 170.3855229799 -0.1898485684 -0.0490881718 -455.4940270109 455.4940692202 -0.0804239535 -0.1364898695 -357.5292387848 357.5292738834 -0.0249828328 -0.0420969565 -1.1098413295 1.1109203717 -0.2559603105 -0.0942381352 -15.5886735709 15.5910596242 0.0106798019 -0.2147223863 8.1767793526 8.1807958126 0.6211567452 0.0372860639 8.2574279937 8.2820180397 0.0979146570 -0.0444712584 0.1035664237 0.1493016309 0.0896228367 -0.2514480446 0.3191995074 0.4161089972 -0.1833855654 0.2457970667 6.0898356967 6.0991495359 -0.0246679673 0.0355772294 0.8170795222 0.8182256373 -0.1552690778 0.0204118768 11.1379499768 11.1390508939 -0.0465042889 0.4377709350 -29.0518015758 29.0551369097 0.0276395102 0.6150983044 -32.9136010567 32.9193597202 0.1289215085 0.2235404990 -107.7590174033 107.7593263845 -0.0201653670 0.1503110582 -79.1321813715 79.1323266981 -0.1062699170 -0.0088279903 -84.4314358392 84.4315031792 0.0091966434 0.0664581205 -73.8381696934 73.8382001740 0.0170196905 0.0237950815 -0.1426263995 0.1455958983 0.0215493265 -0.0724665431 -0.0279170376 0.0805923963 0.0311894191 -0.0536085031 -0.0334187139 0.0704518411 -0.1413094252 -0.1588116842 -0.0980622592 0.2341061968 0.0931851403 -0.0866718545 -0.1258853139 0.1790044497 -0.0091060247 -0.0885536137 -0.2477525838 0.2632603369 -0.2640467467 -0.2196076421 4.3273364787 4.3409433538 -0.0951499618 -0.0153574019 2.0366267046 2.0389060054 -0.0056522988 0.2119613037 -104.4483306571 104.4486391313 0.0207884091 -0.1714156509 -48.6718922252 48.6723986264 #SUBSTART 1.0771468473 -0.0914845056 4435.4974162760 4435.4976475248 0.0503660002 0.1691112931 33.5941786821 33.6077783924 -0.2722776120 0.6360577835 82.7171944775 82.7254238951 0.2658122648 -0.1668253108 6.6373624589 6.7106942896 0.1484980589 0.0093941585 0.7420205304 0.9035349197 0.5375719370 0.2039938870 -13.9265427360 13.9699513337 0.1200994880 0.1743946927 -26.6741802827 26.6753858629 -0.2423848976 0.0532717458 4.3786597022 4.3879071196 -0.2509099134 1.0283670552 2.5371427474 2.7526473967 -0.1848163288 -0.0145086192 0.7810500949 0.8147923730 0.0798989858 0.0177152149 0.6381423480 0.8109033809 0.1405868712 -0.3484884657 0.0634771676 0.4058546720 -0.2544897258 -0.6531346083 3.9089237932 4.0806109409 -0.1399340867 -0.5392663281 -3.3629465752 3.4116387812 0.1283099893 -0.1545093473 -2173.2916461948 2173.2918580134 -0.0505030378 0.6710773020 69.5708873693 69.5742822057 0.0695297561 -0.1868442055 62.0716087657 62.0720858333 0.0105390795 0.0046327660 1.1091409568 1.1092007017 -0.1472491691 -0.4232072930 28.6622786755 28.6657810918 0.1119293360 -0.0270607863 2.5389630384 2.5890605889 0.2021383655 -0.0490517077 5.7384925580 5.7439570517 -0.2262464120 -0.1108540837 0.6650809227 0.7247678839 0.2940671618 -0.1807426302 5.7489603243 5.7610040782 -0.0304905555 -0.0429412202 -0.0567276926 0.0774057716 0.4064139024 1.2153648022 -0.2896012180 1.3138313164 0.1511861687 -0.3500025958 0.3964520787 0.5674619902 -0.1617250450 -0.0820865837 -0.0898413518 0.2458545318 0.1703061199 0.4107291443 -0.3343744192 0.5735753146 0.9714761942 0.7950819239 -2.8416202637 3.2451621804 -0.1076899006 -0.3782352011 -2.5618637547 2.7569179648 0.0914930775 0.0458068883 -0.1770382742 0.2475713830 0.4807530770 -0.2024581356 -1.6510914821 1.7371516010 0.3160080474 -1.0763148458 -21.2371977921 21.2668024112 -0.1060751673 -0.6656464170 -8.1563494257 8.1841537772 -0.2575020112 -0.0795074146 -5.5962276243 5.6027129444 -0.1373116590 -0.1209981957 -2.4551141960 2.4619262317 0.1620598954 -0.3310185734 -3.4983044811 3.5176655537 0.1224823433 -0.0751824814 -1.6375227736 1.6438172538 0.0532496592 -0.1741710120 -7.3278969329 7.3314885468 0.0157392840 -0.2773076980 -13.5284358356 13.5320066224 0.0031280872 -0.3010747616 -5.9638996985 5.9731260823 -0.5405945489 -0.7468889036 -62.9290306281 62.9377201863 -0.1541591036 0.0093634802 -4.5057751508 4.5105811375 -0.2829997380 0.0758951723 -31.0696783980 31.0713733921 -0.3757359322 0.0293756986 -29.3391550013 29.3419075112 -0.2442064796 0.0028403697 -6.5114008469 6.5174738700 -0.0373338230 -0.0310361303 118.0851090994 118.0851190798 0.1042333815 -0.2316634279 553.3265834705 553.3266417838 0.2438147877 -0.4021690426 594.2740754097 594.2744664972 0.1302023361 0.0993079539 15.0798299772 15.0813648800 0.0717679507 0.1375753764 108.7994828772 108.7996830499 0.0402844719 -0.3564924308 191.5011529587 191.5015398737 0.2049100941 0.1616435511 61.9239488936 61.9246561811 0.0601128582 0.6010591067 17.2364494499 17.2726045236 0.0861610587 -0.1699287642 4.1860476585 4.1927048903 -0.0396801121 -0.4716916997 9.8545053274 9.9103831112 -0.2745340389 -0.3055512572 3.6613114515 3.6869244418 0.5651868859 -0.0937961993 14.1793806926 14.1916366411 0.4919594264 0.4471448173 6.9400499062 6.9732155459 -0.0196293499 0.4114498934 2.1295114649 2.1734707705 0.0384893623 0.3742906823 1.4934704969 1.5401393025 0.0316174284 0.0507004465 0.1046608291 0.1205159168 0.0826441927 0.1179370030 0.1956369187 0.2429259213 -0.0488151020 0.1517909400 0.2069873395 0.2612798545 -0.1867558882 0.0776545101 0.2301632461 0.3366940592 0.1537000072 -0.0337410647 0.0339417857 0.2130586337 0.1848337279 -0.2857156151 1.3101156071 1.3607643472 0.3945810023 -0.4822627261 1.2128136595 1.3706451992 -0.1624327888 0.1112322768 3.1328896148 3.1390690290 -0.0003963869 -0.0114712661 1.2514092178 1.2514618562 0.6376400482 -0.4358936368 4.9846112159 5.1308604397 -0.7556059715 1.9498705418 2.5458407683 3.3313483293 -0.3474383870 1.3692257678 1.7556163845 2.3067991862 -0.3304737366 -0.1250918604 15.1329469052 15.1451174924 -0.5307605838 -0.4264573928 9.0108285578 9.0375928094 -0.1948113411 0.1333171507 0.2199687870 0.3515550788 0.1419488547 0.1879520209 -0.2236372431 0.3535093222 -0.0134597648 0.0243286069 0.8831575938 0.8945502595 0.3487155182 0.0954617226 -0.5282402950 0.6551587954 -0.1535767230 0.0708291354 -0.6449338310 0.6811916085 -0.1019534073 0.5576148937 -3.1877358687 3.2407512432 -0.3790742723 -0.1197657943 -2.7669045097 2.7988000107 0.2359232552 0.5831934149 -25.3233344084 25.3359562847 -0.3087529998 0.3671051215 -7.5633091477 7.5797902104 -0.1347249257 0.3254560678 -14.1338327412 14.1389101489 0.2277815435 0.2373422179 -1200.6657242553 1200.6657774322 -0.3313679436 0.5802113875 -1461.5048879359 1461.5050473365 -0.4593798832 -0.0244222439 -396.7822830972 396.7825743224 -0.1371016559 0.0390527205 -126.6262776264 126.6263578703 -0.6218000806 0.4732004739 -815.4439552875 815.4443296565 -0.1215358997 -0.0236258916 17.7261813186 17.7266137008 -0.0885561224 -0.1328205126 40.2348612352 40.2351779180 -0.0044039537 0.0849650394 2.3610365196 2.3625689195 -0.0566994721 0.2224867548 15.8857595328 15.8874186425 -0.1901658448 -0.0398369347 11.1977366999 11.2387654578 0.0762295067 0.1177236700 1.0091883352 1.0188870871 -0.0470706360 0.0529480456 0.2777459969 0.2866391095 -0.0089000760 -0.2774171007 -0.0776237013 0.5751002756 -0.0193045541 0.0537465510 0.0585780140 0.0818091760 -0.2403039019 0.3139063152 0.0310875531 0.3965470665 -0.0117586322 -0.3081899759 0.0218862536 0.3091898038 0.0210653084 0.0027721451 -0.0131185410 0.0249705451 0.0557023812 -0.0567698358 -0.0264301192 0.0838100276 0.0466082191 -0.0151853147 -0.2108178155 0.2164418425 -0.1051469392 0.0810289501 -2.1972845831 2.2012907824 -0.0243084395 -0.0504282100 -0.7587364203 0.7607988303 0.1183557971 -0.3939313038 -12.9396981453 12.9462341265 0.0960099924 -0.2451780329 -5.5543137107 5.5605513201 0.5542228616 -0.1157019972 -19.8537428612 19.8840249275 0.0319194968 -0.0281070208 -1.8587021857 1.8591887140 -0.0026680923 -0.6073155258 -30.6238018915 30.6298234006 -0.0286164827 0.0044098764 -1.7752407331 1.7754768403 0.0640835686 0.1988070149 -5.6854897549 5.6893255036 -0.0813932719 -0.2380353101 -30.9891428038 30.9901638813 -0.0230503150 0.0090018826 -7.4058791935 7.4059205356 -0.0129558868 -0.0167651718 4.6286048220 4.6286533165 0.0138691739 0.2045852641 91.4849875243 91.4852173294 -0.7538509939 -0.0598284626 199.1123948239 199.1144528122 -0.0217432632 0.0228584553 19.1431998726 19.1432258682 -0.1282079198 -0.1639526288 63.8990959120 63.8994348654 -0.0386389018 -0.1293673397 13.5620330807 13.5627051193 -0.1406133130 -0.2054677620 12.9702962263 12.9726856627 -0.4005395763 -0.1376992529 1.4422810152 1.5031858046 -0.0366367525 0.0287954072 0.1442117853 0.1515535091 -0.3056855592 0.4155662790 -0.2354509299 0.5670768323 -0.0907587808 0.1480175054 -0.0004059892 0.1736274835 0.0895779851 -0.1957882823 0.4670865475 0.5143219903 0.5114868344 -1.2957924318 3.9163460051 4.1567370424 0.1018406600 -0.1255248871 0.5336859185 0.5576277225 -0.0445553806 -0.0492210526 0.2059530844 0.2163898495 0.3203606756 -0.0012133885 0.0470607827 0.3238010995 0.2566454328 -0.1058735256 0.1091560781 0.2983138129 0.0270407464 -0.0304360629 -0.2327492008 0.2362831910 0.0650159863 0.1327133516 -0.4985052263 0.5199493944 -0.3850739325 -0.1443443678 -32.0717911630 32.0744275964 -0.0423766449 -0.0590868435 -3.3877729438 3.3885531653 -0.1126229237 0.0097070348 -57.4153970724 57.4155083503 -0.0872303331 0.1169515992 -141.5576325999 141.5577077876 0.0183159154 -0.0350624937 0.5577936308 0.5591945867 -0.0719434326 0.0221833740 0.2308702752 0.2428354248 -0.0383288724 0.0132575968 -0.1513156919 0.1566566467 0.0447038879 -0.0424941908 -1.2341788741 1.2357190972 -0.0503591042 -0.0209595736 -9.0089343440 9.0090994753 0.0678564659 -0.1414441379 -22.2401568041 22.2407100969 0.0466962257 0.0607855409 -27.0438685163 27.0439771437 -0.0080696724 0.0293332386 -95.6030272265 95.6030320671 0.0868873593 -0.2582409762 0.5114096200 0.5794632123 0.0850637181 -0.1239740616 0.1313306481 0.1996325205 0.0352693072 0.0433247772 0.2372331124 0.2437221983 0.0691086716 0.0537454953 0.0406942121 0.0965432838 #END fastjet-3.0.6+dfsg.orig/example/data/cone-midpoint-problem-ev2.dat0000644000175000017500000000124011766120141023161 0ustar sunsun# Cluster this event with # # ../fastjet_timing_plugins -midpoint -r 0.7 -incl 0 < cone-midpoint-problem-ev2.dat # # and compare the output to what you get with # # ../fastjet_timing_plugins -midpoint -r 0.7 -incl 0 < cone-midpoint-problem-ev1.dat # # which lacks the soft particle 4.000000000000000e+02 0.000000000000000e+00 0.000000000000000e+00 4.000000000000000e+02 1.100000000000000e+02 0.000000000000000e+00 7.397603280415953e+01 1.325611309149182e+02 9.000000000000000e+01 0.000000000000000e+00 2.161315626191299e+02 2.341214478858930e+02 # the soft particle 1.100000000000000e+00 0.000000000000000e+00 1.379242352923605e+00 1.764173876945876e+00 fastjet-3.0.6+dfsg.orig/example/data/Pythia-Z2jets-lhc-pileup-1ev.dat0000644000175000017500000107064211766120141023447 0ustar sunsun# ./gen-events -Z2jets -lhc -pileup -out pippo -nev 1 # Random generator sequence: 19780503 # Stamped by ./gen-events on 17/08/2006 at 20:04:37 #SUBSTART 0.3954777037 -0.3673222022 -5.5667288574 5.5945757811 -0.5734773309 0.1245593657 -1.2834308450 1.4181205179 0.4356693274 0.2288104897 -30.3453880070 30.3496987643 0.0975446006 -0.5315884534 -23.8794891793 23.8860123185 -0.3671850506 0.2749471255 -80.0854738668 80.0869091989 -0.4589804461 1.0933220413 -917.7103502176 917.7115972376 0.4890326290 0.2271214701 0.7102487651 1.0192307603 0.9620460936 -0.1371148865 1.8707178217 2.1126755860 -0.4265074515 0.1524393905 0.2258185917 0.5249954240 -0.2854455532 -0.8896230081 1.1043374697 1.4532547239 -1.3400826650 -0.9523925375 1.6856250053 2.3587463912 -0.2075451905 0.0641659240 1.3196175283 1.3446421374 0.5406343804 -0.7740567249 3.9746470146 4.1919041046 -0.3578078804 -1.7354383315 6.4129596827 6.7190903526 -1.6118695968 1.5582485089 1.9024112268 2.9436219651 0.1143429692 -0.4574338006 -0.0475288902 0.4940230530 -0.6465492582 -0.1950820930 0.4309382983 0.8131854451 -1.3187581886 -0.8272947214 -3.4439719403 3.7820579354 -1.0197479028 -1.3993922034 -2.8184561622 3.3107943529 0.0177751480 -0.3715033654 -5.0374444625 5.0530839301 -1.7969415170 0.0563314901 -8.3697855685 8.5618317140 -0.7576930515 -0.6997743092 -4.0430438428 4.1748612126 -1.3563817887 -1.8332677734 -15.3808839362 15.5496531385 -1.2759294995 -0.6207325264 -12.2632057384 12.3458089943 -1.4125912138 0.8190729941 -16.8449267321 16.9244595453 -0.3333587496 0.7139050981 -84.4418604770 84.4507630584 -0.8131711559 0.0487480676 -34.2800369361 34.2899990642 0.1175685979 -1.5275906268 -58.9343017227 58.9543785891 0.9438714201 -1.7468129724 -124.7156161864 124.7323967963 1.2012274148 1.0867287408 -29.6627785752 29.7073027932 2.1217668638 0.1269747826 -34.5508191431 34.6164209655 1.1333236411 1.1678736601 -9.5431584062 9.7264081506 0.5227402466 0.6572331776 -13.1620827856 13.2222701476 0.2285739557 0.0144492742 -1.2038954780 1.2334094785 0.5739495541 0.2055766201 -1.1812834106 1.3366338760 0.4957539036 -0.6322651654 -1.8744538193 2.0441595041 0.9028934034 1.0588904336 -1.5276189716 2.0711264944 0.1579772002 -0.4191506621 -0.3460071292 0.5829620843 0.2552851785 1.1285086251 -0.1724492837 1.1781004964 -0.3037193568 0.2247247779 0.5221111507 0.6594137639 0.4237728863 0.1217617500 0.0136594827 0.4626832062 2.8590184124 0.4133105395 3.5062185571 4.5450918846 1.0412453989 0.1799268361 1.5898700641 1.9140878383 0.4081284644 -0.1649444870 2.3003574547 2.3462522736 1.8287023978 1.5002444729 5.7603731671 6.2975849933 -0.8422102437 0.1094949714 5.9219786230 5.9841973430 -1.1195537255 0.5149480800 11.7402139823 11.8055358288 -2.2827017458 0.3739097535 22.1587071699 22.2795493444 -0.8064287284 0.4965255206 10.3630195079 10.4071378386 0.2786821344 0.2209461635 4.6018860728 4.6177176344 -0.6501398236 0.8326763836 13.2770378447 13.3197314336 -0.3449085817 -0.0930200840 2.5865256638 2.6148058170 1.6694063131 -1.5361292491 136.7557309894 136.7754371585 0.0364074570 -2.3019537241 360.4173138323 360.4258914372 0.1870806721 -1.4985151620 134.7316281782 134.7433670731 -0.9902408374 -0.7836659786 3.7112391664 3.9226885190 -0.3768197701 0.4264928331 289.6762101775 289.6782929801 0.0291815048 0.4020302407 7.9848179472 8.0102083921 -0.4291262372 -0.2051004720 0.7700230227 0.9157678589 -0.7267752947 -0.0658551072 -0.0480454154 0.7445316454 -0.1305766044 -0.1970575211 0.1140426605 0.2972665968 0.3214264428 0.1275785307 10.9789289258 10.9852606424 0.1235992617 0.0600161115 4.3048121908 4.3092651919 -0.6715514705 -0.3647012024 -40.9510323357 40.9583998405 -0.1427785825 0.0388998945 -65.4871021390 65.4891295288 -0.1908966089 0.2848235405 909.4984331945 909.4989831445 0.5172948509 -0.6988807813 236.6108396461 236.6124784244 0.9737962631 -0.4018185468 -2.7914569931 2.9868795147 -0.1695253287 -0.0042682644 -0.2409587380 0.3260336692 0.1523475423 -0.0253770071 -14.6183675878 14.6198496738 -0.9200903299 0.1796553285 -0.0565956134 0.9494867564 -0.1240085641 -0.3825543733 0.2633752199 0.5005719368 -0.0052131503 -0.1300005373 0.4566049036 0.4948688104 0.0164640673 -0.2134359932 4.2450237719 4.3530270615 0.5788797378 0.0387167603 -23.6709873863 23.6967304995 0.0401712566 -0.3136021414 -1.7271999000 1.9908616527 -0.2153950375 0.5709089782 -0.8091806525 1.0230274663 -0.4888665609 0.2218166344 -0.8917232784 1.0501634748 0.3937303921 -0.5422475799 2.3542602889 2.4517498552 -0.1608571180 0.0196580691 0.0801146185 0.1807755630 0.0177824303 0.0395163187 0.0198243394 0.0476524785 0.5456370020 -0.5211739045 3.0990481727 3.1926354847 -0.0018125887 -0.0049837651 0.0885280468 0.1653636095 -0.0213304911 0.1387081924 0.0649564232 0.1546424567 0.0049909695 0.0254643638 -0.0528385720 0.0588664446 0.0665168191 -0.2712457321 -0.1830363850 0.3339177333 0.1043043517 -0.0826556908 -0.0478239106 0.1414160084 -0.1905838765 0.4077359868 -0.8906930036 1.0076629697 0.2261261399 -0.0150247203 -0.1711187396 0.3164177323 0.0489414017 -0.1237824964 0.2399299569 0.2743788466 0.0689341941 -0.4437604102 0.4302460139 0.6219219060 0.2496436435 -0.2634112467 -0.4833114828 0.6203041253 0.2889007027 0.5866388082 -138.9110143504 138.9125534880 0.1335340015 0.0287355920 -6.6425568653 6.6439610755 -0.6587893504 -0.1198216137 -71.6088556753 71.6121222388 0.2460993858 0.6955037114 -1.1691853093 1.3824921728 2.8580616275 0.2488753138 -5.6144998254 6.3050030720 0.0451348344 0.5482936164 -1.4052125345 1.5155081970 -0.2279328873 -0.1318329038 -0.8317820343 0.8835578380 2.4098519422 0.7545343244 3.4737886612 4.2969053839 0.3652490573 0.0306127682 0.7086916108 0.8099799995 0.7733286075 0.1483750899 0.9795434117 1.3502587004 -0.0834973131 0.1641373690 0.3795195019 0.4443283858 -0.4304398279 -0.2283119965 0.3277442868 0.6035734550 -0.7638897783 -0.0128295613 0.2913042622 0.8294758279 -1.7462636790 -1.5929590636 1.6564257226 2.8896680388 -0.7103423098 -0.9604329484 0.9166010610 1.5121689507 -0.0707047370 0.0212183030 -0.0350860221 0.0817337456 -0.3311885374 -0.1357627502 0.0107505278 0.3580962796 -0.7552217154 -1.4206744382 3.0260006699 3.4299906032 -0.2133036947 -0.2711582557 1.2479629039 1.2947728277 -0.8247059239 -1.4541594355 5.4802651436 5.7295746412 0.1317609499 0.0285162505 0.3783629605 0.4016623636 0.0407055119 0.0817450818 0.0970575331 0.1332642556 -0.2570250542 -0.5194826854 1.8566162886 1.9499815299 -0.4262967203 -1.3937950304 2.2666061472 2.6984026186 0.4729969296 -0.4898280626 4.0933493183 4.1495983261 0.0629189730 -0.0113597628 0.4718708945 0.4761827196 -0.0072865236 -0.1265029225 1.1098645868 1.1257598628 -0.2880072667 -0.3041880176 0.3270873846 0.5494947477 -0.4215951779 -0.1507729350 1.1980065209 1.2865358063 -0.5019672804 0.7282714884 0.9247252329 1.2872245541 -0.1413583081 0.1450204289 0.7113050675 0.7526272517 -0.0681035044 0.0238784785 0.0876142558 0.1135100297 -0.1168042108 0.2936089416 0.5732375529 0.6545614763 -0.7526465077 0.2824378355 1.8032689842 1.9743421502 -0.4511344010 0.2834819234 1.1398130420 1.2581963358 -1.6684970907 1.6963797270 -0.2676743680 2.3984820350 -0.1561175424 -0.0193245735 0.0006440120 0.2103005607 -0.1605245734 -0.0993587698 -0.6106561687 0.6542331733 -0.2311563269 -0.2847534279 -1.0501741502 1.1210991449 -1.9599217534 -1.6506765085 -3.5082437392 4.3466400971 -0.0361790367 -0.0469229940 -0.6901957196 0.7066545169 -0.7857858923 -0.9756178836 -9.6820130486 9.8077019219 -0.5596856448 -0.6392750543 -6.8610148766 6.9148337318 0.1909209173 -0.6622632938 -4.7406385179 4.7925125779 -0.1003109056 -0.1469378340 -1.1168742748 1.1395354033 -0.9266619565 0.3702544683 -6.6373856128 6.7119802239 -3.0594187119 0.5020669238 -25.4057323765 25.5945859787 -0.7720341935 0.2062904274 -8.2373633860 8.2772113585 -0.4416654065 -0.0613586221 -2.9044525131 2.9384821954 -0.7342743268 0.0846060069 -18.3211685820 18.3366031467 -2.4259244322 -0.2276430005 -30.2155576456 30.3177263322 -1.6273682086 0.3136819726 -331.1494283434 331.1549084758 0.0136651613 0.2588001035 -22.4060822109 22.4075809554 -0.1353670712 0.3278384353 -32.6671419312 32.6690673916 0.1260931270 1.0109882497 -238.4248214238 238.4275091273 -0.2073176455 0.3263925942 -44.2571448330 44.2590540035 -0.0348607950 0.0485660214 -17.7699178380 17.7705664988 -0.1749483103 0.2762705687 -39.8330884012 39.8346751424 -0.5871836041 0.9693390997 -79.3443137353 79.3525299205 -0.3335391482 0.1067355279 -25.5857406941 25.5885178838 -0.2342108726 0.7291659542 -25.4496713197 25.4611921952 -0.0804723512 0.2768497656 -12.7402326128 12.7434943646 -0.3957752594 -0.0915170156 -49.3450346022 49.3469039870 -0.1100338436 0.4568281160 -52.5467989749 52.5490852600 -0.2456634684 0.2607022247 -19.0214765165 19.0248491468 -0.0988321045 0.1797669894 -7.1136711422 7.1166284907 -3.3640854743 3.4333139664 -271.9381718836 271.9822730162 -0.2492469868 0.1474447556 -26.0883826002 26.0903631730 -0.5682746975 1.0852456844 -41.5374262612 41.5557210804 -0.7111190570 0.6830367325 -46.1103588720 46.1211112678 -2.4393659126 1.4334935779 -175.6201371663 175.6454405329 -1.3022373590 0.4337758688 -88.1200887596 88.1308884922 -0.0157339496 0.0589469759 -8.0580505064 8.0582814711 -2.0139276527 -1.0343145538 -202.3769836798 202.3918219324 -0.3217923055 -0.0673968341 -35.4621364643 35.4639351316 -0.3485374502 -0.1305633763 -32.4818876231 32.4843197327 0.0282481641 -0.4576161552 -26.2651222697 26.2694944400 -1.5272585298 -1.4733939622 -167.7292475517 167.7427297156 0.9539416254 -1.2822513199 -98.8772134222 98.8901284619 0.3756428776 -0.5708501287 -37.6646477494 37.6708463871 0.4117347715 -0.8811848870 -51.0583855631 51.0700341648 -0.0082426431 -0.1735017749 -9.7411357117 9.7436838796 0.4906170002 -0.3070277273 -14.5797068466 14.5918574069 1.8310879088 -0.8861824773 -29.5818389859 29.6520299455 0.3494174965 -0.2741683195 -5.7242724349 5.7431729513 0.9309046873 -0.8742529105 -16.0259556502 16.0773640867 0.4112596605 -0.8506537018 -12.8988780612 12.9428529477 0.0087594371 0.0260752183 -5.8667658499 5.8684902630 0.7773546907 -0.0701204304 -7.1401688075 7.1840578766 0.3471187063 0.6498452566 -7.1033697326 7.1428377831 0.2656321253 0.0559721787 -5.9134069273 5.9212798096 0.6163993510 0.6239613245 -15.8529395805 15.8777973605 1.1758367629 1.1849253087 -12.3610608688 12.4740508924 0.6913601171 0.7301331130 -8.9088264266 8.9664787547 0.9684321476 1.8963792062 -8.8996486190 9.1989484314 0.0206070458 0.0593271630 -0.3518476965 0.3836938220 1.4054777069 0.4561353096 -7.1212788956 7.3332387597 0.1452431119 0.0391606477 -1.3070875481 1.3230974119 0.1670035955 -0.0148128205 -1.6235156042 1.6381063221 0.1067065347 0.0375519426 -3.5618207880 3.5663487692 2.4635070151 -0.2656336690 -8.3027380072 8.6657005637 1.1109109907 -0.6154488577 -4.0070678837 4.2058261180 1.7633091756 -0.4014448374 -6.6521065151 6.8935432322 0.7379150573 -0.3672701973 -4.4679218005 4.5433172072 0.6653718026 -0.3782925071 -2.0751731263 2.2162238483 1.5060241048 -0.7113715158 -4.5971358370 4.8915535085 0.8034474448 -0.1287846174 -2.0945260997 2.2513623968 0.5252236201 -0.1233031893 -1.6212700666 1.7143686714 -0.0105268913 0.0254546832 -0.0257080376 0.0376783696 0.2898029864 0.0909319885 -0.3009609560 0.4275884640 -0.0312971625 0.0203817337 -0.1533022175 0.2106567878 1.1712845334 0.1426757993 -1.6209031377 2.0097439162 0.7534567154 0.1693141600 -1.5955617284 1.7781061050 0.0870691107 -0.0583237813 -0.1635482769 0.1942440022 -0.0365419890 0.0210177513 -0.0415352880 0.0591797514 3.1285943598 -0.1021905908 -3.8909918242 5.0814520313 0.9751662314 0.4039773533 -1.4093069105 1.7662878116 2.7143305687 1.1280454257 -2.5230540536 3.9857532876 0.2886545637 0.0628189086 -0.1163731114 0.3468287162 0.0725292311 0.2037746374 -0.3016052886 0.3711473324 0.0807600545 0.0379281979 -0.0515570013 0.1030478480 1.0335770932 1.1003029744 -0.3472951065 1.5553269492 -0.1106042451 0.0146058051 -0.1454258169 0.2303802980 0.1517987822 0.4730019333 -0.0885892297 0.5235470712 0.1649694866 0.0885944011 -0.0102852340 0.1875358244 0.1506101710 0.1097053444 -0.1533171755 0.2412982439 0.5694064646 1.4323239978 -0.7042924964 1.7003774469 0.1880552576 0.0878789157 0.0645742205 0.2583352446 0.3401073743 0.2736941561 -0.1660795057 0.4874871324 0.4734570778 -0.3742452200 0.1469233807 0.6366218295 0.5447847587 0.0455881184 0.1131613255 0.7478968006 0.7635247917 -0.3726406236 -0.0381364703 0.8618383358 1.7309909216 -0.1594460132 0.5215190474 1.8202237509 0.2508965720 -0.1485186716 0.1657973405 0.3632842258 2.5573951665 -0.9930976454 2.6634517990 3.9371104950 0.8721957514 -0.6972461851 1.1639288662 1.6189774124 1.9553502224 -0.7528083684 4.6947269544 5.2259857157 0.3206930570 0.0264567345 0.9326108680 0.9963868785 1.0917382492 -0.3323450514 1.8210317852 2.1535974985 0.4300078732 -0.1823545586 0.4182865393 0.6423420973 0.0601311416 0.1274641924 0.1812084023 0.2686617660 0.3412667167 0.1578009958 1.0790513290 1.1511714389 1.0734975740 0.7960471748 3.0403745377 3.3240705859 0.5048140991 0.6402760429 0.7732155221 1.1323129930 1.0393008443 1.6055406986 6.4230049459 6.7670710287 0.1975088419 0.2045910427 0.6891190474 0.7584405604 -0.1544143686 0.1732570411 1.2460589936 1.2751488541 0.0389674873 1.3910604240 7.8461732023 7.9698482591 -0.6551260717 1.3273121276 16.4440452919 16.5111190717 -1.5119756237 1.8507196283 17.6201448962 17.7820195528 -0.1319587228 0.4275914100 1.9415710927 1.9973546534 -0.4899439823 0.0004047599 6.2302584080 6.2494931875 -0.3039733636 0.0997600808 4.6365918170 4.6476161155 -0.1134090971 0.2229601244 0.8295017255 0.8775680816 -0.5747387407 0.8129708817 9.9841064258 10.0345955166 -1.1094285549 0.0522207430 12.5854357266 12.6351189523 -1.8837549048 1.1472701137 21.9934749910 22.1042345088 -0.1827553225 0.3563139266 9.2401878197 9.2499140456 -2.2204222713 1.3327667974 28.2728719422 28.3915711091 -0.0703467188 0.0660313741 1.8807542548 1.8832273814 -0.9590567490 0.4041446966 25.7377795221 25.7588124243 -0.1376254764 0.3267224335 11.6541893859 11.6973762163 0.1412016354 0.1883602592 2.1024905625 2.1202273084 0.7376126744 0.4614061354 18.0157063327 18.0611581725 0.4645192425 0.0820184012 8.0112459845 8.0263346026 -0.0075473501 0.1218923687 0.9606366091 0.9783747706 0.8168557282 0.2707502434 15.2914413129 15.3162729208 1.2386773322 0.2721085238 16.5731096086 16.6221480701 1.0537166467 -0.6064681204 11.2379564355 11.3143019298 0.7443339906 0.0495623516 6.9585712205 6.9998344789 0.1076696186 -0.5622069015 7.1155758532 7.1558901961 0.2189926658 -0.6128047892 95.8119477056 95.8154501428 0.0306437112 -0.4757662182 68.2441373249 68.2459453120 -0.7087116950 -0.9714016552 84.4948999144 84.5035708403 -0.0549044787 -0.0232618921 6.9062859884 6.9065434025 -0.4631273145 0.1351417246 85.3947824659 85.3961452443 -0.3545022920 0.4433753504 65.4859143259 65.4885234867 -0.0481719128 -0.0143077260 16.8888196066 16.8894710613 -0.1607067414 0.2612669362 30.2342827997 30.2361608553 -0.3656075232 -0.5428547197 31.3298088741 31.3506879476 -0.0668529032 0.1119379472 2.6400431478 2.6469429578 0.2905075793 -0.0333283661 26.5467891339 26.5649744842 -0.1027536791 -0.2781948796 7.2685638511 7.2759501752 0.2359210632 -0.4027833297 1.5263423385 1.6022153032 -0.1051863979 0.1719424674 3.2141024088 3.2234395403 0.2855386337 0.1952193504 100.2797589308 100.2804526012 0.1686709121 -0.2443283947 -2.2009622313 2.2252776837 -1.0422472447 -1.0524600756 -14.6295178370 14.7342150882 0.0780610156 -0.0982495961 -1.6093469053 1.6202542244 -0.0657754911 -0.0895843956 -1.4304200801 1.4415037875 -0.7100510566 0.0002207430 -4.2618843364 4.3228821906 0.0158741060 -0.0846083944 -1.5666702808 1.5752289107 -0.7248210161 0.7626380268 -11.6616579123 11.7098559903 1.6389879405 0.7405211086 43.9688557346 44.0058451501 0.1323698777 0.1306769889 7.1862130762 7.1899747164 -2.3144557876 -1.1492230154 20.1484943265 20.3196190462 -2.3039935887 -0.2661097484 12.0704003798 12.3011140610 -2.5863501714 -0.2349331991 14.8935355279 15.1263162170 -2.7609557835 -0.8178332272 23.9457680195 24.1233325854 -2.4525760651 -0.8875456431 20.7344380730 20.8983077930 -0.3040230251 -0.1262664929 2.0120506042 2.0388037818 0.4471710247 -0.0601494610 0.9100643664 1.0253179111 -0.1252205475 0.0683550023 4.3076231803 4.3122441768 0.2980527890 -0.0562465421 -5.5666872649 5.5766913155 0.2242318422 -0.0842506081 -38.3764359939 38.3771835558 0.3939189646 0.0090531917 -50.6606697390 50.6622020101 0.1284922244 0.0560503543 -46.4506815750 46.4511027906 0.0041582800 0.1226483202 -21.0069579927 21.0131145947 -0.1750089941 -0.1987170938 -38.1970568697 38.1982296700 0.3056408108 -1.1315283527 -73.5139675176 73.5249948543 -0.0388790079 -0.0791699709 -5.9403143157 5.9409690818 0.9211768243 0.2433362955 -105.8252689623 105.8295579233 0.5438371062 0.2885355883 -148.4794534724 148.4807953738 0.1946713575 0.6125516373 -58.6014821578 58.6051730424 -0.4384726193 -0.1944966035 81.8157298410 81.8172550038 -0.1999039868 0.1085761263 40.0732934091 40.0741821478 -0.4221995482 -0.1599706045 176.1096514272 176.1109218925 -0.1587036933 0.3631242352 75.2648755566 75.2660482449 0.0970587675 0.2343060684 95.5705753851 95.5710138010 -0.0276814501 -0.1119012186 154.4786789233 154.4787849830 0.3462764215 -0.0629469569 45.0724722582 45.0740624410 -0.1875865008 0.1246637958 -5.9569378241 5.9815950179 -0.2015478096 -0.1631416279 -0.9620653069 1.0061243213 0.1961232192 0.1769925118 -6.8410694965 6.8475909857 0.1054079688 -0.2814167735 -1.3679298182 1.4005492593 0.0753270619 -0.0353739220 -0.2510205070 0.2644556211 0.1755308179 0.0795383679 -23.4791971629 23.4804028207 0.3209458012 -0.4672289059 -13.1951128250 13.2080199617 0.3768504377 -0.1701377349 -6.1090515673 6.1432198057 -0.1729256489 0.3936380687 -0.1911543968 0.4907891579 0.3935373791 0.0957203060 0.3064746532 0.5267262512 -0.4301162607 0.4253493580 0.5574304989 0.8343444253 -0.0607844034 -0.0872409955 0.2003912894 0.2268532651 0.0699012597 0.0811938824 -0.3147981057 0.3325304197 0.0021048894 0.3937774633 0.2466311203 0.4851513326 -0.2065089867 -0.2859035445 0.0932338981 0.3905882013 -0.3731969960 0.2109007203 1.5644844631 1.6221488055 -0.5113530649 0.1472868567 2.2887165403 2.3497656855 0.0621973168 0.0390745404 -0.1078862629 0.1305173232 -0.0613780206 -0.1736377607 0.5681537822 0.5972571084 0.7950400248 -0.2240801065 0.3193110315 0.8965153958 -0.1835727253 0.4202710833 1.8190945031 2.0975657637 0.1967172453 -0.1147441514 0.1171695359 0.2916716989 0.2411947545 0.1951407088 1.1048047279 1.1559965733 0.7572944863 0.1724697997 1.5663973146 1.8167229502 0.0167322763 -0.1422794631 0.2100524963 0.2900435326 0.5958071318 -0.1853412147 1.1627598835 1.4103274371 0.1651276412 -0.1831219814 0.7085216174 0.8980226280 0.0002598626 0.1002106602 0.9085069061 0.9140169815 0.0335346980 0.2243570125 0.8609648272 0.8903488523 -0.0696665765 -0.0251451180 4.2078714507 4.2108369286 -0.1346751420 0.0027366696 3.3250230885 3.3306760886 0.1241266812 0.2978393309 1.1363166653 1.1894583005 0.0600001707 -0.1198918007 1.3437738314 1.3576383757 -0.5358208324 0.0246763205 7.6441342336 7.6788112379 0.0793647025 -0.5593342474 -4.5006013363 4.5380662985 0.1537446470 -0.5286506627 2.9604594599 3.0112172213 0.5291572302 -2.2631388444 11.2099584711 11.4483611808 -0.0348474669 0.0766812248 -0.1151735660 0.1426860417 -0.0184335797 0.0493567407 0.0374518182 0.0646414991 0.0777071925 -0.1508025095 -59.1345607332 59.1348040744 -0.0533979157 -0.0484011855 -27.0397616529 27.0398576967 -0.2627263530 0.1580236970 0.0155837625 0.3069844932 -0.2804563693 0.0380875280 0.0765010998 0.2931874027 -0.1737427686 -0.0819195155 0.0606528913 0.2014351754 -0.1437715723 -0.1320224570 -0.0610869552 0.2045282627 -0.0082605443 -0.0192976989 0.1370088401 0.1386075757 -0.1755869845 -0.0463218812 0.1638208384 0.2445685444 -0.0669030799 -0.0420585840 0.1230981148 0.1462808684 0.0621391254 -0.0046150111 0.1365140209 0.1500621442 -0.1177539719 -0.1870079794 0.5684392996 0.6098862350 -0.1497115297 -0.1229067589 0.2628126388 0.3264813878 0.0118145598 -0.2130785868 0.5220931360 0.5640242111 -0.0679588459 -0.0600913364 0.3462946527 0.3579795524 -0.0484887343 -0.1435121719 0.1948818926 0.2468316287 -0.3097811152 -0.3075917605 0.7624308720 0.8785658001 -0.1015189000 -0.0982464467 0.1223698177 0.1869032467 -0.2831258208 -0.1167078746 0.5241087429 0.6070180663 -0.3095604079 -0.1259990704 0.7914341531 0.8591108372 -0.0624577120 -0.1074357763 0.2504532311 0.2795894004 0.0515823318 -0.1027906405 0.2419887300 0.2679275988 -0.0395516377 -0.5617946657 1.1361225329 1.2680504675 0.1329994959 -0.3853447195 0.9685785940 1.0508681703 0.0401177738 -0.0731886549 0.4111910096 0.4195760496 -0.1939431533 0.3873909418 0.6025053794 0.7420905744 -0.0227832122 0.2295299825 0.4181439600 0.4775431488 -0.7141501319 -0.1845931836 -0.4142646434 0.8459906909 -0.4321789969 -0.0394610073 -0.3351192876 0.5483072071 -1.2215959715 -1.1808526803 -1.4245997744 2.2172492614 -0.0602251054 -0.0679678120 -0.0401779863 0.0993023533 -0.0762747027 0.0352573917 -0.0834173241 0.1184033949 -0.0097554816 -0.0184539797 -0.2602261350 0.2610619852 -0.0152338788 0.0268349096 0.0231389354 0.0385693371 -0.1973226932 -0.0341334028 -0.1061979500 0.2266701106 -0.0893085642 0.0505154244 -0.3009886938 0.3179968892 0.0062746955 0.0176510150 0.0092798647 0.0209056457 -1.3083641887 -0.8222789988 -2.4801912118 2.9642846486 -1.7007457924 -0.4357978267 -7.0395137197 7.3155696975 -0.2647091404 0.0194813425 -1.3574228565 1.3901536059 -0.0849011449 0.0021127548 -0.1743319894 0.1939183093 -0.2506358313 -0.2070046116 -1.0362655256 1.0860550026 -1.0761190086 -1.0051434043 -5.0920710604 5.3831109650 -0.1119058444 -0.1781109254 -0.4905633255 0.5517051576 0.0235000309 -0.0174073379 -0.1727785699 0.1752361295 -0.1906383143 -0.1286147253 -1.1016446961 1.1253913768 -1.4463220337 -1.9448434710 -13.0293437485 13.2860232072 -0.1973402349 -0.1738367112 -1.1684036557 1.2057401288 -0.0760983219 -0.3531862250 -3.1115055432 3.1324109260 -0.1875099785 -0.2881791480 -2.6154020426 2.6379035346 -0.0947841914 0.1686006575 -3.8479581691 3.8528161513 -0.1698542550 0.0554662176 -3.5808220897 3.5852773682 -0.5992261740 0.0199871368 -6.3559332279 6.3841490186 -1.1887550997 0.1206281557 -10.9572544928 11.0222101168 -2.1209143446 -0.4311658351 -21.4756060158 21.5848399383 -1.2090917666 0.2838946608 -11.2108347605 11.2802834579 -0.6028162786 -0.0026441950 -10.5154663576 10.5327312305 -0.7362056070 -0.1513476166 -12.7035561660 12.7257708631 -0.0879124919 -0.0099958656 -11.5971606406 11.5974981546 -0.0776948633 0.1407133778 -25.9649439790 25.9654415056 -0.3450226338 0.2741977590 -120.5636422981 120.5680986821 0.0122443551 0.0529893761 -31.3198908949 31.3202490931 -0.0357780990 -0.0502629627 -7.6268675142 7.6271170515 -0.0728876526 0.0412510425 -3.0070456579 3.0082117357 -0.4332334204 0.9625345457 -126.0501617357 126.0580730780 -0.0770622329 0.0452530116 -10.3180667998 10.3193976904 -0.0747186254 0.0642744265 -8.1032290597 8.1038284329 -0.0430005649 -0.0535560947 -2.6127493725 2.6136519637 -0.2233091561 0.6336498074 -54.0258855265 54.0323547646 -0.0447770018 0.0511137172 -2.8979063790 2.8987029812 -0.5093557172 1.4747225344 -77.6899867489 77.7056516017 -0.5524692359 0.5496582592 -27.3137703791 27.3248860708 -0.2018189200 0.3271961398 -12.4917954594 12.4977094697 -1.2379598071 0.6382542158 -102.9531899627 102.9668858760 -0.0620354965 0.0218568370 -7.9203940352 7.9218967162 -1.7369652102 0.2290843629 -93.7925132755 93.8101953401 -0.5236721761 -0.9485149337 -96.0160486336 96.0234512177 -0.3165605321 -0.2423959117 -25.6750685556 25.6781641026 -0.8777949867 -0.9579223558 -89.4315532282 89.4409908940 0.3341846777 -0.0316253932 -39.1256198500 39.1270597951 -0.0071308990 0.0169952813 -2.0878116612 2.0878930101 -0.0208496598 -0.2102237731 -19.1292766079 19.1304430760 0.0232465760 -0.0418916412 -1.3880453731 1.3888719417 0.6445971420 -1.3341010107 -47.3138711910 47.3370651611 0.1560349699 -0.5043920935 -17.3464782843 17.3545114354 0.0374066805 -0.0216535239 -0.9240124041 0.9250227336 0.2440577766 -0.0243399044 -16.9497306092 16.9515050763 0.0563670228 -0.0441113909 -1.3797355445 1.3815908327 0.0662919954 0.0026456136 -0.2431926735 0.2520799563 0.5930111774 -0.0419709059 -9.5589345155 9.5774032433 0.2058396143 0.0272531707 -2.4091454310 2.4180765889 1.4181804630 -0.6288951525 -14.5464075281 14.6295658410 0.3393551628 -0.3304410709 -3.5824110558 3.6162828962 0.0821288096 0.0881774133 -1.1273669348 1.1337886061 0.5370730368 0.1637705962 -5.2673363134 5.2971785031 0.0661815275 0.1771386364 -0.4970495819 0.5318048306 0.0202917763 0.1300094120 -0.7986196860 0.8093871794 0.4103598017 -0.1182638766 -0.8815727030 0.9795672218 0.2483370370 -0.1465756274 -0.8146714802 0.8642021286 0.0016741361 0.0094410547 -0.1420299409 0.1423532239 0.2752270019 -0.3561670177 -2.6811391011 2.7186599137 0.0829618053 -0.1484599286 -0.5798666082 0.6042915644 0.2776750483 -0.1520302145 -0.8929860225 0.9474389980 1.9343859010 -0.2571320735 -3.2523012684 3.7928128424 0.2233719836 -0.0254456308 -0.2932785275 0.3695332432 0.0320700203 -0.0252418530 -0.0420920314 0.0586291434 1.5619120238 -0.5157106655 -2.7622500255 3.2148953115 0.1731709181 0.1333669538 -0.0845230848 0.2343481664 0.0776802115 0.2114221912 -0.1504034209 0.2708408153 0.0431824666 0.0957344446 -0.0536580262 0.1179363942 0.5866548230 0.4889465580 -0.5342576261 0.9320213672 0.2604941768 0.1575420237 -0.0687118754 0.3120865701 0.0096804769 0.0028003350 0.0303690766 0.0319974112 0.1648271246 0.0097769983 -0.1681202262 0.2356437590 0.1026144901 0.0683766985 -0.0154122483 0.1242684348 0.1625152665 0.0099929871 -0.0709955605 0.1776272537 0.1958410273 -0.0525305582 0.0479322627 0.2083522721 0.2149674247 0.3591314873 0.0977084157 0.4298061811 0.4581324238 0.0260024020 -0.2777294723 0.5363721678 0.0456138150 0.0782143050 -0.1039925118 0.1378859679 0.0904419477 0.0711757798 0.0247217158 0.1177153378 0.0997780553 0.1039671440 -0.0270954482 0.1466253411 0.4213639461 0.5967158512 -0.4415570900 0.8535748625 0.0277027136 0.0944917310 -0.0467457604 0.1090013471 0.1703678112 0.0810224262 0.0177754563 0.1894882358 0.1411968667 0.0655205326 -0.0502729498 0.1635752574 0.7358255599 0.5864991910 -0.5738278054 1.1021337967 0.1776632437 0.1712914504 0.0808347159 0.2596906629 0.1594335011 0.0584967475 -0.0319239392 0.1728006037 0.0795782378 0.0725790195 -0.0591324763 0.1228700930 -0.0552296199 0.0826230533 -0.0588212283 0.1154851365 0.2850767327 0.5685353485 -0.2274696286 0.6754580801 0.1924520804 0.0233998426 0.1776405277 0.2629477381 0.2980529400 0.5724396682 -0.1822945022 0.6706370213 0.6844786997 0.4050708675 0.1979129675 0.8196115182 0.2014723121 -0.0174114117 -0.0999984684 0.2255968606 0.1341285297 0.0112455687 -0.2173234334 0.2556294193 1.0005753504 -1.0028804009 0.7532143621 1.6798593497 0.5161975728 -0.2416625771 0.2372875664 0.6173865277 0.5804902935 -0.1774763123 0.3763726013 0.7142290650 0.2471596496 -0.2097533974 0.4318329725 0.5399667548 0.2297222850 -0.1781709271 0.2074750447 0.3571597705 0.3441845579 0.0720242587 0.6343069650 0.7252556994 0.0819413598 0.0326772877 0.0584820172 0.1058410975 0.2546737852 0.0639983314 0.4740810791 0.5419477769 0.8727935229 -0.0089781279 1.8009370568 2.0013054297 0.1483950375 -0.0458949472 0.2666376146 0.3085823243 0.1364726690 -0.0080216403 0.5946689391 0.6101805333 0.4867902977 0.0066708639 0.9009913319 1.0241067691 0.4203802753 -0.0247380925 1.0707554223 1.1505862521 0.0028492492 0.0002308254 0.0612901275 0.0613567537 0.8495560359 0.0883301004 1.8656091242 2.0518394355 -0.4538401627 2.1979390930 11.4455016196 11.6634649429 -0.1269544686 0.3766165599 2.1883933638 2.2241904111 0.0057124218 -0.0330515697 0.1085448252 0.1136090538 0.0523215981 0.1076827015 0.9939074149 1.0010919354 -0.7342954428 0.8493696720 9.5548252505 9.6205667299 -0.2406969173 0.1942993786 3.0407003856 3.0563942955 0.0056692703 -0.0041227568 0.0187737363 0.0200397336 -0.3984955147 0.0338337368 5.0508257659 5.0666344169 -0.0605247039 0.0405594702 2.0984917090 2.0997561199 -0.2206754750 0.1706546589 3.2214542061 3.2335101484 -0.5271134873 0.1129179000 6.4739072542 6.4963123552 -0.2101091638 -0.0152487793 3.3599052039 3.3665028390 0.0622711736 0.0262767577 0.6140379785 0.6177465549 0.4039186777 0.5806816996 8.4021613784 8.4318833817 0.0899476311 -0.1620171754 2.0426555117 2.0510440466 -0.0400029868 -0.0489485113 0.4058271320 0.4107211423 0.4137019625 0.3523235057 3.9845715394 4.0214539061 0.1298930930 0.2144814394 2.1993357589 2.2135835841 0.3275242646 -0.1499307408 3.9644542557 3.9807849624 0.4133954429 -0.1516167889 6.7368248167 6.7511993049 0.3141913477 0.0048821617 4.5405561317 4.5514162657 0.2059415123 -0.1002236648 4.0189403453 4.0254612392 0.3863544307 0.0402488297 5.0363278401 5.0512857599 0.5390020792 -0.1011620478 7.4682759445 7.4883845110 -0.6677893123 -0.6103377218 104.9946987693 104.9997757130 0.0120696533 0.0027307664 15.3105313626 15.3105363635 -0.0678234628 0.0445698548 6.0145687934 6.0151163135 -1.0279694291 -0.6871000294 110.7479389890 110.7559591776 -0.0917467285 0.0053246108 8.0857943258 8.0863165714 -0.7076021767 -0.1774929537 97.8258113779 97.8285315045 -0.0505036544 0.0568330897 20.1115812184 20.1117249316 0.0746252539 0.0588046128 46.9720667497 46.9721628377 0.1699032481 -0.0592395464 11.6492530451 11.6506425980 0.2517511020 -0.0166314930 9.2722883356 9.2757202524 -0.2726442257 -0.0808311663 1.1836855533 1.2173660256 -0.1019438263 0.0505993152 0.3988297121 0.4147504957 0.0748402258 0.2074888313 25.8634845399 25.8644250897 0.0292970503 0.0034023733 11.7493916685 11.7494286871 -0.2679828908 0.3716673862 133.3419089380 133.3426962031 -0.1400992528 0.2284166377 53.5545941458 53.5552645039 -0.3735652016 -0.0297520335 -0.9905325562 1.0590518818 -0.1098337740 -0.0320222804 -0.5699407147 0.5813099884 8.1523806910 3.5291167899 209.6719524197 209.8606376830 9.6536038740 4.6779807642 252.3543347957 252.5822744014 2.6130761555 1.0817291643 71.5066636536 71.5627048932 0.5570161168 0.4182217451 16.6428092790 16.6579637671 1.5850892238 0.1819712711 52.2327590060 52.2655673130 0.3449977066 0.0570331437 8.0256901925 8.0333043801 0.4882446136 -0.0462135659 13.7437444349 13.7524917593 0.8718462509 -0.1270798568 37.7494784327 37.7714466085 0.4658110940 0.1230080799 12.3071886128 12.3174056643 0.5808173375 -0.5831507879 15.7754621981 15.8047555062 0.5366160381 -0.1061015224 10.2359427386 10.2505481830 0.0090842532 0.0109245554 0.0892334416 0.0903574937 -1.5233477270 -0.1271517514 13.2473771994 13.3352824691 -0.1446070324 -0.0050037664 1.6646628732 1.6709394702 -7.7926298297 -1.6178844302 68.1414047396 68.6064234967 -14.1315922828 -2.6608764968 107.0727606080 108.0341506570 -0.1464839017 0.0423942011 0.0704528150 0.1679833352 -0.2833955748 0.2964685070 0.1262234473 0.4291141878 0.0680597359 0.0075197302 0.8341507933 0.8369565222 0.4521954580 -0.2792699934 4.9075777744 4.9362730955 0.1835410931 -0.2939161709 -29.8796279977 29.8816372264 0.0915165339 -0.0460332457 -5.5380992193 5.5390466055 0.1572723877 0.0703588449 -6.4708559710 6.4731493083 0.2270059801 0.2744071951 -18.0342576211 18.0377736700 0.1748121932 -0.0274661681 -13.6683828252 13.6695282563 0.0261726204 -0.0297403927 -3.3624276695 3.3626610875 0.1285697731 -0.1393060033 -16.3828330179 16.3839297576 -0.0890533671 0.1006980199 -22.6754750818 22.6758735394 -0.2855436187 0.0513187034 -40.4678333248 40.4688732580 0.4708720407 0.2481474965 -21.9827359376 21.9891786332 0.0681738965 0.0388525117 -1.6941470390 1.6959632624 -0.3110263754 -0.0291934473 153.4910937472 153.4914116470 -0.0141006011 0.0309398240 9.1680144488 9.1680774993 0.1906553609 -0.0542015623 548.7000355149 548.7008735294 -0.0590571917 0.0229615907 133.0655099972 133.0655982799 0.0896845599 -0.1769536197 23.4452766313 23.4461159304 0.1770036074 -0.0747008172 24.3134634929 24.3142225356 0.5486008049 0.0286564924 176.7843637695 176.7852173046 0.2658341523 0.0396965333 61.7925520674 61.7931366303 0.2658259369 -0.5311529878 -34.9217117725 34.9303079786 0.1190707335 0.0505166981 0.1032394698 0.5244650545 -0.5492335360 0.1579201078 0.1728394967 0.7772677518 -0.0410677002 0.0298164808 0.0146684043 0.0528274608 0.0769325622 -0.0141553235 -0.0474279641 0.0914789816 0.0263477524 0.0931655100 -0.0448533859 0.1067044635 0.1526468150 0.0417727924 0.0029768085 0.1582873264 -0.0155737281 0.0086433489 -0.0015747549 0.0178809491 -0.0236962589 0.0838321319 0.5177552767 0.5250332042 -0.0928147650 -0.0934298733 0.2076198479 0.2458652539 -0.0066400955 -0.1869950800 0.4887220901 0.5233168564 -0.0400914783 -0.0073243542 0.4462845414 0.4481415676 0.0001870184 0.0111784626 -0.0069783007 0.0131791381 0.0592847223 0.0870762845 0.2463994998 0.2679732656 -0.0300404471 0.0912089611 0.0628246103 0.1147538004 0.0747859737 0.2357251404 0.0954417696 0.2650819026 0.0401934412 0.0002559929 -0.0114773065 0.0418007992 -0.4051789345 0.0959559165 5.5968209399 5.6122884940 -0.0088520469 -0.0122637260 0.0596301684 0.0615184094 0.0498265578 -0.0408402192 0.5536585563 0.5573943006 0.0295131433 0.0617618687 1.9805503996 1.9817329384 -0.0522176288 -0.0194354645 0.0593242108 0.0813866084 -0.0782347112 -0.1478136417 0.6502217112 0.6713849986 -0.0339064490 -0.0381893155 -1.4503549410 1.4512537773 0.0397523506 0.0796833313 -3.3251144474 3.3263066261 0.4492735398 1.0109014175 -1.2679387783 1.6884658480 0.1585007302 0.7899621114 -1.6533246090 1.8444849326 0.0962548833 0.2772527438 -0.6248509830 0.6903425508 0.0249869821 0.0278170996 -0.0129456216 0.0395692990 0.3412084484 -0.1125330439 -1.1854953635 1.2387437783 0.1514136912 -0.0189667935 -0.2817189184 0.3203925625 0.2878130373 -0.0700408952 -0.7067324934 0.7662981722 0.2366212168 -0.1825167553 -0.8667265711 0.9167970960 0.0744112741 -0.0276107614 -0.4913528161 0.4977217915 0.0664530445 -0.1587236185 -0.4594817592 0.4906451683 0.5927407118 -0.0294442498 1.0838162571 1.2356642725 0.7223280775 0.1087077877 1.2588099334 1.4553960571 0.0347410548 -0.0330930107 0.2421263652 0.2468344890 0.3594134433 0.0475258061 1.0426161071 1.1038501131 0.8038296020 0.1540599194 -11.3461157314 11.3764536857 0.8946307364 -2.1912462131 -21.6277577270 21.7573276898 0.6186629512 -1.1488586903 -9.6893519734 9.7778137427 1.1038059229 0.5062196075 32.0941804426 32.1171459517 1.2629008145 0.5365758161 32.7902734287 32.8189710930 0.0110457583 0.0412069348 0.8518625976 0.8529301879 0.3659942492 0.1172760253 11.8819174722 11.8881314037 -0.5362752472 -0.0640226459 4.9071291286 4.9387332495 -0.9470432647 -0.2393834055 8.6977913631 8.7535849651 0.1842244225 0.1329893621 -26.4880880623 26.4894302277 -0.0906696059 0.3815169974 -20.7590232593 20.7631958682 -0.2380632217 -0.0245891293 -0.6206607461 0.6796898333 -0.2087525687 0.3996732227 -1.7048107202 1.7689476240 0.2076421686 1.7978822646 -4.5751062704 4.9451763085 0.0230528477 0.0301594314 -0.0143167234 0.0405708474 0.1487424944 0.2142918301 -0.6453739574 0.6960983141 -0.0010578890 0.0147331555 -0.1170141673 0.1179427842 0.2879245718 0.6423244653 -1.6776861576 1.8193713533 0.2560089496 -0.4926487158 -9.7677466217 9.8284010907 0.4160639994 -0.2084433339 -4.2744396904 4.3019614511 0.6749145140 -0.8709768466 -10.3015103852 10.3612116217 0.5269024438 -0.0230384509 -3.2829735641 3.3250672742 0.2587944179 -0.0895421981 -2.1010892681 2.1188601815 0.3282324928 -0.4864828059 -5.1936529013 5.2267037939 0.1477143864 -0.1443675690 -2.5435463654 2.5519188169 0.3604991927 -0.5139618437 -4.9337220311 4.9983402199 -0.0860860481 0.0067206448 0.5255594983 0.5326056337 -1.8331175031 -0.3564381405 13.9281047060 14.0527388302 -0.2663511899 -0.1232384554 1.8636806771 1.8866468507 -0.5929916788 -0.2191651327 5.4452705689 5.4818467741 -0.1734017367 0.0021305579 1.1690403545 1.1818324975 -0.6071100992 -0.2438964322 4.8030096200 4.8473672805 #SUBSTART -1.4073086856 0.2244084049 0.7586594861 1.6204693362 -0.2715875076 0.3381806225 -0.3047122252 0.5481379688 -0.1434263522 0.0154243305 1.3289698392 1.6331933305 -0.3718276920 0.3084898354 1.5948857780 1.6722925106 -0.4297409867 0.4160429242 -3.0332116872 3.0947733285 -0.7926277650 0.5495319793 -3.3130761171 3.4534326855 0.1381853144 0.1769882476 -2942.7730168376 2942.7731749828 -0.3042028248 -0.2524771513 -1425.4500871803 1425.4501488323 0.2972749356 -0.3670605216 303.0838453360 303.0842455313 0.2916080890 -0.1483834141 13.8516644720 13.8562311378 0.2913379747 -0.9958179705 91.2644077427 91.2704121370 0.0027885907 -0.7072888780 61.3065447519 61.3107835094 -0.4357703372 -0.5091103315 76.0465078154 76.0552643268 -0.3381816563 -1.9711726561 85.0551753848 85.0838735601 0.7188800577 0.4113850229 458.3573101876 458.3580797895 -0.2903275900 0.6683921995 87.8156226089 87.8236583332 -0.6726632517 0.4928389766 83.7726981329 83.7821168887 -1.1045433173 0.7363925935 71.4515008046 71.4700080384 1.0446936986 0.0386739562 22.9455328316 22.9884907752 0.6637980758 -0.1165318498 7.7250445760 7.8109456439 1.7261513373 -1.4701137154 5.6354807938 6.1465296831 0.5341312442 -0.1593820988 1.4450189706 1.6255520984 -0.0853882078 -0.0914491157 0.0910301826 0.2083755404 0.3648937796 0.2126945546 0.5445763932 0.7031569362 -0.3841295328 -0.4214105181 0.1382026204 0.6030937505 -0.0489399565 0.0659862265 0.8078117633 0.8238864796 0.6081472190 -0.2305814981 0.0620175590 0.6680844481 0.1057754186 -0.7796115934 0.1521013926 0.8133863131 -0.1931394774 -0.3083753011 -1.4599364649 1.5110567331 0.1844528891 0.0799340123 -1.1006420764 1.4610328811 1.0268184407 -0.8795911895 -0.9127564809 1.6372663037 2.3811360695 -0.5868449572 -39.9372646672 40.0127327843 0.1987071910 -0.4907348503 -4.1566771964 4.1925827769 0.0427580057 -0.0403196998 -3.1556886126 3.1593202322 0.1457056341 -0.0765693890 -2.9754707922 2.9832866479 0.4250984119 -0.2671449863 -18.8160681230 18.8232827768 -0.2162042345 1.1108102277 -49.5473648164 49.5691920014 1.8004625091 1.8539426095 -160.9400132348 160.9635033797 0.6800951861 0.4608828499 -0.2292879631 1.2680165718 -0.4842635636 -0.3044188764 0.4782790854 1.1994685156 -0.1958316225 -0.1564639735 -0.4696270612 0.5503275033 0.0242214596 0.7685691002 -0.7161183325 1.1609270291 -0.2448525069 0.4165125712 0.0620585056 0.5067213387 -0.1793392402 0.0351416866 -0.1245341425 0.2211475839 -0.1554687474 0.1475976208 -0.0537988679 0.2210201513 0.3464038392 0.4726687358 0.0136933364 0.5861730641 0.0070062933 0.0869944202 0.0234794673 0.0903792160 -0.1321265254 0.0351219547 1.1200982878 1.2332828442 0.2585853238 -0.1699715449 20.2289993137 20.2374861423 -0.0668030997 -1.2628280592 186.3919879327 186.3963300139 0.2309028894 -0.3838699762 34.3686783686 34.3718810206 -0.9944544957 0.5651682112 1.4104584660 1.8818578308 -1.4188406749 1.2466226515 1.7329240818 2.5670377002 -0.2344180284 0.8406508243 0.3038032475 1.0495796600 -0.5746128673 0.7198529691 -0.1547752653 0.9443534360 -0.5910482736 0.7124621376 0.5236310894 1.0726647481 -1.7545777209 1.7248032086 -1.2252209573 2.9047284324 -0.1376547378 0.1834074230 -0.1809580517 0.3237479128 -0.1623937702 0.0829088275 -0.0199579355 0.2304858225 0.1079086074 1.0628009158 1.4161623620 2.0073608730 -0.0128872716 0.7555337672 0.9621790792 1.2313674190 0.0367239000 1.1118253301 2.2619882288 2.6901462305 -0.1635483305 0.0723964146 0.3728829454 0.4364753981 0.1940775460 0.8543822134 6.4707481537 6.5487321031 -0.0916205274 0.4564440170 0.1625984886 0.6977210691 0.0172684216 -0.0474114177 0.0352085332 0.1525302154 -0.2916069220 0.1686583846 0.0192551822 0.3651448953 -0.2845411547 1.0902542292 -0.2780216810 1.1689284807 0.0821992512 0.0482666276 -0.2209382615 0.2781724007 -0.2165311248 0.4202557578 -0.5661632982 0.7506805547 -0.2452901795 -0.2663369417 -0.8225781474 0.9095148334 -0.8708068062 0.2375344960 -5.0154039237 5.0959791648 -0.4656214132 0.0821960416 -2.1757027081 2.2264864167 0.1583343417 0.0393639269 -0.5155504598 0.5584723306 0.0806922830 0.8891298948 -7.3607920105 7.4160502979 -0.0644168292 0.1948967993 -3.9743606772 3.9821045776 0.0872750546 0.0066353098 -1.7108242833 1.7187380474 -0.9958460119 0.4712635647 -15.0672844893 15.1081547614 0.1367956641 -0.1249876171 -7.0635079538 7.0673162768 0.1103147978 0.0339030942 -56.0455350216 56.0458276272 -0.1206291930 0.1451066612 -79.9158775442 79.9161003241 -0.3681603456 0.1513067369 -152.7221988009 152.7227175058 -0.0082546796 0.0840658125 -42.7213485566 42.7216600506 0.2357582353 0.1517696000 -29.3151445204 29.3168175967 -0.0625245159 -0.0804413073 -36.9894249640 36.9898285894 -0.0738297296 -0.6002312138 2175.2652568998 2175.2655433198 0.2845736213 -0.7229341665 407.5696090201 407.5703734234 0.1347292020 0.1849934725 17.4769443067 17.4784426321 0.7455304045 -0.2238021965 33.2974425675 33.3065396663 -0.3754948826 -0.9994709816 94.5263223575 94.5324549394 -0.1705928907 -0.4981694386 579.0085384013 579.0087778405 -0.2451430439 -0.3741365517 556.1585565822 556.1587364529 -0.8698398317 0.4428968185 353.7856611054 353.7870351815 -0.6803084172 -0.0215772354 214.4523318370 214.4554702199 0.1147605945 0.3420667800 50.7604686098 50.7619427618 0.0138363617 -0.0660850048 21.5928934391 21.5934500608 -1.1783357251 -0.0128872450 196.8041564599 196.8099271704 0.0222661559 0.1588997441 17.9943270973 17.9955836910 -0.0291045947 -0.1954292887 15.8783190618 15.8801617025 -0.5032543791 -0.0439154148 6.7266544244 6.7470403189 0.2125775021 0.0727782255 2.2173749224 2.2330958770 0.2818969094 -0.3229013163 2.4917199986 2.5321689248 -0.0386025101 -0.2709770833 2.3472255885 2.3672487156 -0.1366767264 -0.3338381200 0.9760057606 1.0498549650 0.1291841829 0.0887845717 0.1219844878 0.2427576023 -0.2367607858 0.0918027332 2.7526400727 2.7678494479 -0.4918229504 -0.9008479499 1.9534241940 2.2110546601 -0.0113849321 0.0044217848 -0.0101067997 0.0158529575 -0.0264249798 -0.1752600880 -0.1130546692 0.2102284384 -0.0093464343 -0.3541072918 -0.2037413839 0.4086442726 0.2021554594 0.4588086728 0.2441414100 0.5748539301 0.5371777257 0.0549079082 -0.2623176503 0.6163319901 -0.1039642276 -0.2506450354 -0.4232596724 0.5217854248 0.5575016715 -0.3209493639 -0.1397161083 0.6729167733 0.3322198700 0.0510629757 0.1473152330 0.3926309110 0.4890294551 0.1899892112 -5.1765307604 5.2872023043 0.2012864293 -0.1708344597 -1.5422866905 1.5709324173 0.2159370145 -0.8374536557 -7.1766919044 7.2454471961 0.1888827412 -0.2703934413 -0.9140742572 0.9817335868 0.0961639038 -0.0748510316 -3.3126609902 3.3178385726 0.9515906017 -1.0317363880 -14.1683500281 14.2462552317 -0.0757139284 -0.0103448175 -2.2637682670 2.2693536890 1.0970490058 -0.2420135636 -18.5927362186 18.6331845947 2.0023280462 -0.8149866993 -30.6361010514 30.7125982024 0.0302028820 -0.1423387585 -3.0298500758 3.0365513009 0.0369666684 0.2099644160 -1.6691905049 1.6885284473 1.2792192769 -0.8677931730 -18.9208843752 19.0070955983 0.5684792439 -0.3696018053 -4.1241786538 4.1818779870 0.0478064433 -0.0899281926 -1.9600103648 1.9676109755 -0.0419350811 0.1372476457 -8.6818311922 8.7335639294 0.2896088597 0.0503279976 -4.9854055763 4.9960138855 0.3570761778 -0.3224608693 -11.5561691035 11.6042802681 0.2938150888 -0.0318399166 -2.2681527894 2.2915797930 0.0593179775 0.0181641691 -0.6054101853 0.6085803578 -0.3069871669 -0.0962606155 -6.3436924553 6.3518454951 -0.0725311020 -0.0768744831 -3.5201754769 3.5217617516 -0.2007497857 -0.1544957315 -11.7502809642 11.7538398802 0.1580083280 -0.0153900567 -13.7337567341 13.7353834057 0.0545720054 -0.2055421314 -27.4614015646 27.4625796558 -0.1246944612 -0.0401178502 -7.1365628077 7.1391292636 -0.0054318744 -0.5412320319 -184.7080896363 184.7088826740 0.2230783438 -0.3063610017 -47.9887677568 47.9902641358 -0.4096785203 0.1505520196 -23.8371977856 23.8416018853 -0.0428569866 -0.3859390289 -45.2260497130 45.2279320563 -0.2607104349 -0.0047999644 -100.3311375294 100.3314763717 -0.4007609011 -0.1708944406 -188.8566308923 188.8571334268 0.1393463890 -0.0004270359 -21.6251756810 21.6260750164 -0.4375133564 -0.1116217969 -85.7436341143 85.7449365751 -1.2048266587 0.5522436288 -81.4775692856 81.4937646006 -0.3407117917 0.0184556330 -30.6305847314 30.6328031024 0.6907488015 0.4389634667 -75.6915938626 75.7018493570 -0.0183040454 0.2350699444 -22.3486726492 22.3503521646 -0.1916377593 0.2010476413 -4.8350038352 4.8449857643 0.1872613545 -0.0062152054 -12.1676632472 12.1699060853 -0.1103173946 0.4985362686 -8.5212831950 8.5377078548 -0.1977428801 0.3283557174 -3.4231630834 3.4473823409 -0.0974457282 -0.1339545461 -0.8594369539 0.8752550303 -0.2071332904 -0.4823650456 -4.0723038016 4.1060003031 0.0413038850 -0.0097964921 -0.0148397271 0.0449688745 0.2526841941 0.1470257734 0.1799119300 0.3432698393 0.0282405849 0.0338927352 0.1202185244 0.1280575720 0.2917414074 0.5092544889 0.6267527035 0.8586455233 0.6114514097 0.2965263516 0.6586222575 0.9463529900 0.1374858610 0.1008525767 0.2605961883 0.3114225065 -0.0402358604 0.3051960096 -0.7562287177 0.8283267394 -0.1453442669 0.1126728744 -1.8397345055 1.8541636843 -0.2485005504 0.0453959529 -2.8219594484 2.8366790847 -0.5143013846 0.5924367407 -4.7153675745 4.7822231601 -0.5997874934 0.5695644031 -4.7944216342 4.8652469057 -0.2366520778 0.2996291383 -1.8184218833 1.8580742644 -0.1371379721 -0.0169230861 -0.2396901206 0.2766668902 -0.2781789409 0.1623838678 -0.5516909626 0.6388387605 0.0051386329 -0.1312612754 -4.5614209608 4.5633120767 0.1853041625 -0.2234548303 -7.7998176952 7.8052178555 -0.0123870716 -0.0124588271 -45.2740680155 45.2740714243 -0.0017482752 -0.1230569877 -32.4867943433 32.4870274537 -0.1571135238 -0.3819053014 -220.9311079106 220.9314938593 -0.0733985245 -0.1929764685 -174.5326954670 174.5328175853 0.0747244754 -0.0526433294 204.4512786074 204.4512990403 0.0812010923 -0.0924754200 84.5163846931 84.5164742930 -0.1401062547 -0.0649775140 41.0245392914 41.0248299924 -0.1356553464 -0.1057567253 99.3410080288 99.3411569443 -0.5439045608 -0.6396478851 42.9540066406 42.9622120947 -0.0115365419 -0.0596764266 2.2732933920 2.2741058054 0.0791973129 0.0000737039 12.3432660570 12.3435201289 -0.0462761664 0.0384524090 5.5245407965 5.5248684223 -0.0343470783 -0.0094523572 12.3745339166 12.3745851939 0.0341766775 0.0987033892 10.4370098847 10.4375325502 -0.0982495399 0.1251032143 22.6988206764 22.6993780507 -0.1959404139 0.0261293230 31.4398552495 31.4404766742 -0.4378803685 0.6158985993 8.9699889321 9.0017649238 -0.0676874145 0.2211763060 2.6239414251 2.6341163882 -0.2986867849 -0.0365416970 1.7046658655 1.7310213182 -0.0334433032 -0.0489590654 0.6008831815 0.6038013270 0.2484395709 0.4785677243 2.9369071515 2.9859961326 0.0041604757 0.1309690227 0.5545587461 0.5698294458 0.5181978935 -0.2442365421 1.8529539219 1.9394893096 0.1935569199 -0.0403293485 0.8940320263 0.9156331152 -0.0774124077 -0.5757338872 1.5257093538 1.6385148785 -0.1682496198 -0.2668262081 0.4891607655 0.5820501820 -0.2851212791 -0.3546207208 1.0330294040 1.1288045663 0.4830674862 -0.3914343011 -0.2097636874 0.6561827587 0.3480080564 -0.1506498071 -0.1518427065 0.4084864492 -0.0257524367 -0.2866292840 -0.7010043455 0.7577774257 0.0495962635 -0.1847932063 -0.7505239040 0.7745285333 0.1420674626 -0.1005393247 -1.1054018139 1.1190194324 0.4147068139 -0.0666002430 -3.2984628951 3.3250977135 0.0361005887 0.0017994858 -0.6651374491 0.6661188459 0.3213805872 -0.3933630390 -6.1353583079 6.1563496919 0.3223663596 -0.1767910366 -2.5835154034 2.6095453589 0.8323700359 -0.4415664779 -8.3353887684 8.3884758301 0.1202947581 -0.3007357189 -1.7889286728 1.8180150158 0.0603739512 -0.2029036102 -0.6977619128 0.7291684140 0.8009141295 -0.9531460441 -23.8792193209 23.9300525865 0.0116040592 -0.1048654411 -2.0743317173 2.0816972098 0.2635800490 -0.1770750191 -9.6457522837 9.6509775216 0.0014224282 0.0088967123 -1.4624198548 1.4624476081 -0.0194250588 0.0157769812 -0.2612484606 0.2624442878 -0.0538118691 0.2063053973 -10.7499991119 10.7521132127 -0.3822178732 0.0022766991 -14.1446987021 14.1498620863 -0.2284378798 0.0456840426 -5.7362882227 5.7410167627 -0.0823806128 0.2977867805 -15.5645852254 15.5676516139 0.0006003603 -0.0149160848 -0.7141627576 0.7143187624 0.1363821414 0.0947799476 -16.5758441623 16.5766761752 0.1240645894 0.2900367962 -38.7299790691 38.7312637550 0.1584652475 0.1957714477 -15.7722773880 15.7742883103 -0.0151755746 0.1144476973 -6.8955830995 6.8965494891 0.0330709898 0.2543723703 -17.7123904899 17.7142478209 0.1175142665 0.1148276290 -11.9647500727 11.9658781244 0.0395684840 0.0706256030 -3.0080087228 3.0090978909 0.0558038148 -0.0566654388 -1.7627066253 1.7644998398 0.0754912541 0.1606681665 -1.0239819269 1.0392555873 0.0792865115 0.0316028653 -1.0946932550 1.0980156714 -0.0430194261 0.0253016252 0.4866299357 0.4891825197 -0.2073596150 -0.0545639159 0.7477831170 0.7779169756 -0.5137360858 -0.0723349699 0.7093761775 0.8898603597 -1.0136196057 -0.7390948240 1.7424348281 2.1515679815 -0.1435789301 0.2516162283 0.4919791452 0.5709370498 0.0304753978 0.0800446982 0.1577593251 0.1795101898 -0.0279849115 0.0759967051 -0.0239799637 0.0844611930 -0.0757996771 -0.0400231364 0.0260091301 0.0895763213 #SUBSTART -0.3323374991 -0.1849449482 990.8964226915 990.8965055118 0.1851082386 -0.0668942268 6009.0752431881 6009.0753198664 0.2238488133 0.1243611064 -1386.7806346456 1386.7809765763 0.0897287955 0.0021402654 -3842.0488385844 3842.0489545184 -0.0949850912 0.6239550309 -1649.1696683033 1649.1700559809 -0.0950551274 -0.6282164615 -75.5273635809 75.5358636111 0.1365263817 0.0469319655 -11.1986218920 11.2387866309 0.2247187435 0.0842504512 -8.6333204404 8.6377831800 -0.3375532546 -0.0015831824 -26.6132329715 26.6157395856 #SUBSTART 0.1810322254 0.0178146512 0.0892185688 0.2460279788 -0.2939165691 -0.8473522394 -2.0299790128 2.2236652951 -0.0251269998 0.2986636221 -0.7130983881 0.7860155350 0.0595672856 0.0212654075 0.3968959133 0.4254487396 -0.2081797921 0.3708634056 11.5917897841 11.6004288143 0.3044595833 0.1687424704 208.6629192129 208.6653249006 -0.3077703576 -0.1537005470 245.7125868223 245.7146240278 0.2461047686 -0.3082749946 379.3205885676 379.3208193496 -0.0420705500 -0.4619819525 4369.2681157364 4369.2682411061 0.3226933505 -0.1987493578 0.1925572573 0.6514227222 -0.4168787422 -0.4293726415 -1.4707740236 1.5939902022 -0.0714745648 -0.2131724828 -7.8183280144 7.8776363621 0.9214129261 -0.6178134153 -11.2178351706 11.2734201065 0.0552191616 -0.4879636923 -73.9932083789 74.0007864453 -0.0175691986 -0.1899127456 -3.3873382112 3.3955729222 0.0912017593 0.1609041419 -19.8548606412 19.8618564073 0.0296019750 0.1095821365 -6.2349475650 6.2554853225 0.5287070335 0.1488847615 -3.1217131556 3.1727386608 -0.9872014151 0.4878894402 -6.1149721180 6.2332304764 -0.1546037430 0.3031467785 -6.2097851244 6.2206680801 -0.0033282968 -0.6183878494 -3.8052693837 3.8577155776 -0.2102238460 0.0257763583 -0.4667992189 0.5312624415 0.4983626645 -0.0460050053 1.4574542996 1.5472991392 -0.0904809114 0.0309504573 0.0629561049 0.1805214175 -0.0044507503 -0.0743567545 0.9657583131 0.9686267885 0.2566031196 -0.5323530620 11.4152174086 11.4305045133 -0.0638548971 0.0866472233 2.2531207796 2.2600040313 -0.0384200749 -0.1222174271 1.6524364124 1.6632615801 0.0615884420 -0.0455483303 722.5462595128 722.5468744625 -0.4162307888 -0.3649134992 645.1774576789 645.1783773946 0.0024828864 0.1586327153 260.5247933301 260.5248790231 0.0667940688 -0.1003494478 0.1981036725 0.2706590277 -0.5597917977 -0.0908385050 1.5336975337 1.6411357045 0.5769956063 0.2996830848 -0.6859928022 0.9554055634 0.0128466165 1.1856493653 -0.7212063398 1.3948289582 0.2928539826 -0.6027490636 -2.9560111083 3.1733047988 -0.0069313949 0.5693822586 -11.7902506017 11.8412247696 0.6398037326 0.0823799751 -57.8159620496 57.8197291829 0.1916519700 -0.2431471992 -8.8006704395 8.8072203905 0.1131809324 0.3279531494 -222.8898128536 222.8900828594 0.3583488589 -0.1509286507 -185.5398167679 185.5402242093 -0.1692890662 0.1603674237 -189.0739757910 189.0741195878 -0.1698428646 0.1343450021 -315.3713889156 315.3714632647 -1.2987988061 0.3172114832 -3323.5097651885 3323.5101665492 -0.1056512515 -0.1121608296 -631.8749007012 631.8749349026 0.1935358236 -0.3213394311 -987.5815127539 987.5815938586 -0.2369081669 0.2751464571 -879.4737652040 879.4738512275 -0.0138602112 0.8827762193 -16.0025033374 16.0268399574 -0.0373644452 0.0599785436 -1.1854284019 1.1875327463 0.3355411691 0.0756266271 -6.0018612567 6.0117090588 0.0529694955 -0.0409067167 -1.5118966824 1.5133772514 -0.1206493712 0.2743459086 0.9933265310 1.0375545988 -0.0953701498 0.0438061856 0.4613666582 0.4731528724 0.0223632468 -0.0435730828 96.3789713558 96.3789838001 0.0898061219 -0.0303752447 36.1163424753 36.1164669035 -0.0826570527 0.0635830120 0.0891363062 0.1371869850 -0.0191033014 -0.0580761473 0.0936827493 0.1118670306 0.2062754916 -0.4073488518 -0.3469645937 0.5734693495 0.0000186702 0.0053112679 0.0063493150 0.0082779054 0.0621284386 0.0057110014 -0.1937957184 0.2035911071 0.2437469596 0.1152997579 -0.2792828485 0.3882080936 0.0340782664 0.0827969448 -0.0852655976 0.1236401409 -0.0051543280 0.0716801199 -0.3648869059 0.3718965727 -0.0792502316 0.0538145129 -1.0419407960 1.0463351391 -0.1297914381 -0.0118994731 -3.7253718675 3.7276511326 0.0108946615 0.2613177275 -0.9328346318 0.9788083998 -0.2082835871 -0.0080278468 -1.8057683384 1.8231087669 -0.0400225206 -0.0353784130 0.0701484656 0.0881716592 -0.3514957024 0.0859383955 0.3205454659 0.4834087632 0.0634920507 0.0549100321 0.1152971723 0.1426176359 -0.0443661600 0.0903968748 0.3346474959 0.3494694516 #SUBSTART 0.3368696623 -0.8585951361 5.2974639928 5.3789656363 0.0071880380 -0.1662948218 4.4521455075 4.4574415353 -0.7837243531 -0.0547847951 1.4540340341 1.9011133561 -0.8434469455 0.1509376090 0.2840034109 1.3019959454 0.1150352615 -0.1322159852 -1.4732989155 1.4902361080 0.3590460836 0.1382200943 -65.6758316396 65.6771068198 -0.1341584617 -0.1345165590 -27.1816111712 27.1867563350 0.3491750992 0.1292657251 -41.9743250996 41.9788785153 0.2888000874 0.1297856795 -695.7325980811 695.7326841268 0.3971589232 0.2626488563 -4647.0441135601 4647.0442326756 -0.0158668582 -0.7132075801 427.4508606964 427.4524857543 -0.0285185634 -0.0550855004 541.8765024023 541.8765239270 -0.1612581004 -0.7567178223 7.5902834396 7.6308917248 0.1725965085 -0.3036194485 2.9467844461 2.9706889237 0.6114937660 -0.7657569789 5.8938823283 5.9747934924 0.0490472552 -0.1355833714 0.7431229822 0.7569810106 0.0272769160 -0.0635907392 0.8284009662 0.8312857349 0.3181204909 -0.0853870585 3.2485827534 3.2652383531 -0.0720122819 -0.0951456055 0.7252210456 0.7481068138 0.2613875374 0.0727677553 0.0576595134 0.2773863918 -0.1862279387 -0.0149300886 -0.0738870217 0.2009055616 -0.4506888046 0.1398419187 -0.3212666698 0.5708663889 0.3697503395 0.0744408423 -0.9273335582 1.0107838867 0.4553620696 0.0215921172 -11.5208554229 11.5307159489 0.3965691932 0.4389910569 -11.2315696607 11.2480050276 0.3348850359 -0.0538237233 -1.4651726970 1.5103826658 0.2594502435 0.2051003690 14.7039945730 14.7083757356 0.0789085410 0.0261817010 13.2510396242 13.2520354265 -0.1314316568 0.3216804496 5.1512566120 5.1629640009 -0.0556909431 0.0101736394 0.7944451767 0.7964597434 0.2609930299 -0.0508045778 15.5262955765 15.5291993541 0.2511664606 0.1289706808 12.3455827446 12.3495996338 -0.2038200758 0.0459172805 6.5239564974 6.5287930879 -0.1277010414 0.1584643002 5.3328273452 5.3385340469 0.1162856735 -0.2314895134 2.1236001545 2.1438906581 -0.1027563410 0.8539899379 -0.7388377191 1.2366809673 -0.1143405220 -0.1234521848 -0.1724221444 0.2409223791 -0.2730815768 0.0682566171 -1.0767145851 1.1216178476 -0.2571520168 0.4949288797 -3.5187828930 3.5967423822 -0.2702889850 0.1316203716 -5.6566816311 5.6663839367 -0.0226088593 -0.0717747448 -0.4294609426 0.4360039859 0.1249473634 -0.0572161814 -0.8666077917 0.8774363793 -0.3020668905 0.3045573904 -20.9982208508 21.0030654499 -0.1236766178 -0.2308697598 -5.3127823938 5.3210650533 -0.2363705707 -0.0128816051 -16.2972448084 16.2995615006 -0.6544995275 0.1060512129 -20.5035333472 20.5147258328 0.0667084674 -0.0221893465 -2.3387810368 2.3439963545 -0.0291284966 -0.1001494410 -22.4991847265 22.4998593667 -0.2739666830 0.2637022572 -40.7588655912 40.7608783111 0.0569549382 -0.3876834303 -915.8598841531 915.8599786120 0.0645914946 0.0566318670 1.2084173821 1.2194800465 -0.0505956378 0.0454348898 20.4950376798 20.4956257169 -0.3302139807 -0.5642301659 6.5513452770 6.6023604000 0.2342852500 0.0378351526 370.9782714067 370.9786811292 -0.3256501397 -0.3777810766 104.9410616268 104.9423396999 0.1862088064 0.5869897934 506.7497253453 506.7509681480 -0.0633015585 0.0677961633 108.5603530496 108.5604823932 0.0250330885 0.2123452581 318.2002311822 318.2003336286 0.2516022095 -0.2812881277 3.7111208227 3.7302606401 0.0841557676 -0.2194918858 3.0383261666 3.0474062374 0.4586002886 -0.4496622154 5.1624691853 5.2022685842 0.4460362326 -0.6049332808 5.4038385080 5.4558558646 -0.3073715775 0.4735629943 0.9400438060 1.0965498408 0.0107405403 0.0213418365 0.0178791893 0.0298412232 0.0128147488 -0.0760367607 -0.0422139547 0.0879080470 0.0073705163 -0.2805906689 0.1017263936 0.2985526874 -0.0434895846 0.0055241575 -0.3964992607 0.3989154347 0.0794790577 -0.0595538914 -1.7345688863 1.7374097985 -0.2206242383 0.0701211784 -3.5165807175 3.5241923865 -0.1194413632 -0.0447177213 -1.2556238868 1.2620844896 0.1445738335 0.3153621856 24.2517330665 24.2542143065 0.3388193355 0.4973289156 53.6077454940 53.6111230207 0.3657810027 -0.1249384141 29.3215007665 29.3240483656 0.2783765255 -0.2307472765 27.2324525793 27.2348528779 -0.1166030866 0.1360596774 6.4150085245 6.4175106455 0.0141450807 0.1465078520 6.9530601358 6.9546178821 0.0925247223 -0.0654439136 4.1712817262 4.1728209846 0.5610713342 -0.0441785868 19.4293479561 19.4374976473 -0.0323884936 0.0696982267 0.7036091310 0.7077942261 -0.2005381296 0.2911601389 1.4649470581 1.5070035338 -0.2087065515 -0.2842740918 0.1112361986 0.3697886907 -0.0858159407 -0.0635366405 -0.0333783763 0.1118722323 -0.0586366139 0.0567762287 -0.3265184396 0.3365651260 0.0663339209 0.0036212500 -0.2559802497 0.2644601874 -0.2741617903 -0.2955972052 -2.0328142898 2.0771028180 0.3064948434 -0.0170570671 -0.8567511600 0.9207238281 -0.1665786910 0.1003460362 -1.2168799599 1.2323208284 -0.0131392992 0.0829759230 -0.9857929779 0.9893661811 -0.0369434723 0.0120319362 -0.2648274145 0.2676623752 -0.2777115899 0.0303040330 -6.3841561964 6.3902654407 -0.1094355849 0.1410765685 -160.8258179266 160.8259170361 -0.0268905946 0.1333970439 -251.8301714473 251.8302082139 -0.1205128311 0.1415721200 1.0354311161 1.0519903059 0.0036628701 0.0245551706 0.7056755871 0.7061121775 -0.2033320150 0.2330877167 50.2916913073 50.2926424871 -0.0779639114 0.0109291401 21.1889049047 21.1890511556 -0.6028054782 1.2491670411 3531.4120765533 3531.4124735819 -0.0943278989 0.1246921184 684.5156093973 684.5156414825 -0.0927133414 0.2683709817 -0.0546293953 0.3210652632 0.0146599071 -0.1444725920 -0.0093230968 0.2016282414 0.0621703933 -0.3348517048 -3.3920374846 3.4119479632 -0.0603322492 -0.0835410515 -0.4086711130 0.4439717909 #SUBSTART 0.1142359251 0.1395056979 -863.2310185946 863.2310487091 0.1809638934 -0.0410759759 -11.9591078173 11.9613617426 0.1219265731 0.6556577830 -99.3663459963 99.3698098560 0.1161527327 -0.5576895742 -45.5408598841 45.5446364338 -0.0586364764 0.9738226971 -13.8493026260 13.8843232421 0.3515100403 -0.4986848366 -1.2476044449 1.6767690689 -0.0280487788 0.4093488187 -2.2032091519 2.4300772707 -0.0524468210 -0.0301435731 -10.4457658535 10.4468733770 -0.2902732449 -0.1406139607 -25.1453456868 25.1478015010 -0.0089829773 0.0616980077 -20.6587585145 20.6593240568 -0.0040036542 -0.1395282607 -24.9575212318 24.9583018249 0.2561798501 0.1347489182 -187.6397072581 187.6399824267 -0.1115570928 0.3216290743 -99.0573844678 99.0580677564 -0.3853323754 0.1570011374 -1802.1660828067 1802.1663750885 -0.2764913891 -0.0757292056 -425.1719892016 425.1720858477 -0.5973907910 0.0355527360 -870.8620503270 870.8622559507 -0.1272779881 0.1579406326 -1.0891686336 1.1078958624 0.5789493810 0.5646674759 1.0778622642 1.4350817972 0.2366456242 0.1993203754 -0.0197493917 0.3399993925 0.3055918854 0.4552260819 -120.9372832978 120.9386066913 0.8133604609 -0.4805414234 -505.0913187346 505.0922022129 0.1987634300 -0.0491248523 -120.9240022047 120.9241755372 0.0452047972 -0.0714083492 -18.6709677843 18.6716807067 0.3023335787 0.0609986356 -130.4514681913 130.4519074582 0.0245576211 -0.3495744206 -74.0434844586 74.0444452738 0.3644104625 0.0939749666 -63.0437911555 63.0450688739 0.0068484888 -0.0184313386 -2.0434485571 2.0435431539 -0.0306685832 0.2120972943 -12.2438436622 12.2457189846 -0.1896389425 -0.0099187482 -7.1649194670 7.1687943243 0.1940908796 -0.4507259305 -66.5065046179 66.5101467641 0.2298698490 -0.1984866669 -64.9984321703 65.0010158586 -0.1721037172 -0.0787967309 -17.1270757286 17.1353502170 0.1851716737 -0.4702834291 0.1616715706 0.5306531345 -0.0158180745 -0.0863869914 -0.0012300026 0.0878318659 0.3694440933 0.1903591955 1.0296125596 1.4545168852 -0.1705376000 0.0051991829 0.2251294963 0.3150764661 0.1286597214 0.0420071835 0.4216799539 0.4643400648 -0.0460248003 0.1953606161 0.6833309355 0.7257444487 -0.0859561700 -0.5037912998 15.1698777102 15.2075368047 0.0267715340 -0.2981155329 3.6369422342 3.6519061031 0.2704828342 0.0706207318 286.5799478126 286.5801181455 -0.4624789094 -0.1649113411 738.6069030537 738.6070794413 -0.0810448123 0.0557126475 88.9529579135 88.9531217749 -0.0863283411 0.0089982639 135.2860154397 135.2861152776 0.2070904296 0.0632835837 25.0414322531 25.0427574426 0.0703308888 0.2389059629 128.8906143122 128.8909304802 0.4197841408 -0.4250977924 4636.8804043455 4636.8805380257 -0.0976754262 -0.0105189741 861.4167794643 861.4167963731 -0.1296238691 -0.1329452770 -16.6359002626 16.6375218745 -0.5428933539 -0.0069675306 -26.8372337298 26.8430880450 -0.0549936734 -0.1817888845 -10.2575400376 10.2592981790 -0.1223048170 -0.1944567696 -22.1683011281 22.1694913521 -0.4138789658 -0.2115610157 -353.8366742447 353.8369795463 -0.1014295211 -0.0571938676 -50.0807971638 50.0809325358 -0.0305127005 -0.0230096877 -221.9231472619 221.9231505524 -0.0935593588 -0.1379443595 -213.5458402405 213.5459052898 -0.6795641000 0.3484790011 -2.4963485187 2.6568104688 -0.2379642387 -0.1416653423 -1.0116535131 1.0581203446 -0.2225451784 0.1543063208 -2.0574496297 2.0798835449 0.0943272134 -0.0568004560 -43.5188166896 43.5189559845 0.0202613632 -0.2033426741 -87.4076892442 87.4079281174 -0.0438349627 -0.0563075545 -16.5042054668 16.5043597311 0.0923187853 -0.0490468070 -33.0166476272 33.0168131243 0.1531377463 0.0451546583 -43.7041742742 43.7044658942 0.0811923806 -0.0619775690 -16.2925242506 16.2928444379 -0.1185671027 0.2412588052 0.9484848069 0.9956742352 0.0403176966 0.1993698867 0.4471343731 0.5106689739 0.0536710944 0.0440173569 27.6960519465 27.6961389283 0.0037594382 -0.0351291768 2.2842547733 2.2845279735 0.0101439173 0.0375286158 23.6783449384 23.6783768514 -0.0209869705 -0.0872613979 19.0146709348 19.0148827439 -0.2865764223 -0.0388501286 -1.5232481337 1.6271328203 -0.3448869901 0.3943542737 -1.5668286245 1.6579789060 0.0184596164 -0.0184123601 0.0344754152 0.0432241448 -0.1425826694 0.1023451124 0.2583163621 0.3123006285 0.1404652305 -0.4229920234 -97.8476270016 97.8499077056 -0.0154639620 0.0078644367 -0.5473004726 0.5475753745 0.1535005511 0.1889159221 -27.7842054333 27.7852716957 #SUBSTART 0.1712998803 -0.9617839056 5872.9775984778 5872.9777548860 0.3703263090 -0.0100644096 -581.8946810796 581.8950083585 -0.0058688706 -0.0258741569 -298.7288254280 298.7292344021 -0.1384036437 0.1554803187 -3.1521030006 3.1620504122 0.4032379019 0.3198375923 0.5768037736 1.2157097010 0.2335375227 0.1944140466 1.8993311373 1.9285422344 -0.2913094173 -0.2500267312 1.2210301208 1.3718345596 -0.3878217185 -0.0908334331 8.3524023614 8.3630593319 0.0021695394 0.2645686874 0.2337821624 0.3796513949 0.4919864161 0.5230543356 -22.3577473176 22.3747210608 0.1704951162 0.1604341000 325.0545426609 325.0546269663 0.0463857287 0.2002025734 232.1680313707 232.1681223236 0.1214647007 -0.0175407473 18.4064660947 18.4068752222 0.0858228934 0.0677696180 7.1336860875 7.1345241947 0.1303843861 -0.4141941836 227.9831831082 227.9836393622 0.0544944948 0.0117811388 -485.3393501514 485.3393734220 -0.3219505401 -0.0681190106 -84.6680979210 84.6701762067 0.1963069692 0.1358441291 -48.5901897810 48.5909766602 0.0502917293 -0.0412903628 -4.0242354390 4.0247614862 0.0558596663 -0.3604684451 -13.6394937331 13.6443705277 -0.2754435981 -0.0125336628 -4.5371897301 4.5477023539 -0.2032493357 -0.1242593042 -3.6357692499 3.6462375801 -0.2119613998 -0.8064236598 -1.7238856800 1.9200282229 0.0434979310 -0.2512007278 3.2155009442 3.3596475980 -0.1998129792 0.6985751753 7.2617784072 7.2993724335 0.0175258021 -0.5336439380 0.4368029027 0.7038178507 0.4346156576 -0.0089172350 0.6415830364 0.7874508648 -0.2043552785 -0.4410627561 -2.5830162932 2.6320620036 -0.4774411191 0.1281491262 -5.7745383656 5.7973395054 -0.5340445637 -0.1708982658 -14.2473061728 14.2590189978 -0.1282980424 -0.0743214376 -54.6832390622 54.6856677691 -0.3062084368 0.2461869450 -21.7710592267 21.7750515787 0.0706536496 -0.3090732309 -70.9228424795 70.9236884501 -0.2244415641 0.2575344038 200.8745327919 200.8748232665 -0.1026759507 0.0187800403 80.6185405075 80.6186080791 -0.4285031390 0.5972928235 -4708.3645877353 4708.3647388669 -0.1759376346 0.1413043999 -483.3241257098 483.3241985396 0.0789670365 0.0082460997 -0.9100976166 0.9135543021 0.3582915752 0.3603820491 -5.6150457275 5.6379949092 0.0698018127 -0.0001417290 -16.4548482123 16.4549962627 0.0680879864 0.1131360723 -11.8652401105 11.8659748282 -0.2603650236 0.0258529660 -0.5831379763 0.6391464783 -0.0414794208 0.0076059356 -0.3281936572 0.3308919298 0.0129886495 -0.0711266105 0.1661718112 0.1812202267 -0.0304683231 -0.0614454560 0.8356548002 0.8384645537 0.2316000106 0.2022796773 5.5886836808 5.5971368499 0.1020875460 0.0212127976 3.2878169072 3.2894698456 0.0544874929 0.0252758792 -0.5378409122 0.5411844452 0.1076719204 0.0850594189 -0.3011708352 0.3309565216 0.0140419451 0.0351790872 -3.9194811339 3.9196641570 -0.0916945482 0.0325965599 -2.1639198559 2.1661070076 0.1880914741 -0.0575242310 -9.8290002274 9.8309680556 0.2299009765 0.0741172495 -10.3296456154 10.3324695193 -0.0223078368 -0.0217840862 -1.9896847281 1.9899290196 0.0177272528 -0.1620453734 -2.2582318342 2.2641077659 -0.0380102191 0.1448128070 -7.4033526616 7.4061816034 -0.0424178092 0.3010973270 -2.9240487049 2.9431275006 -0.0263220820 0.0219289133 -2.0927995188 2.0977281378 0.4866905214 -0.2333952036 -5.4659002603 5.4942594065 #SUBSTART 0.2395897192 0.1991548139 -0.5679145490 0.6626255302 -0.2236300562 0.1478589102 0.8971726733 0.9467160345 -0.4533439393 -0.0910755421 2.9805319349 3.0194148244 0.0730960295 0.6210094869 2.4161314648 2.4996333436 1.0121538963 -1.6601913854 -38.8783337789 38.9300548334 0.5178983230 -0.3667867409 -51.8884363082 51.8925047910 -0.0970354329 0.8542814517 -2008.3932909660 2008.3936947724 -0.2915201199 0.4231604837 -1875.0692237451 1875.0695289070 -0.5615516066 0.1312889257 1.1950126362 1.3342083700 0.0287281723 -0.7218881156 0.9809924201 1.3145093562 0.1567535887 0.1661160655 1552.8422089428 1552.8425092041 -0.1472018360 -1.0749564663 -11.0909134036 11.1438574969 -0.2411547779 -0.4230979443 -0.6813084390 0.8490161784 0.1504584756 0.0016996665 -1.4673034120 1.4815868957 0.2362400565 -0.2100581549 -0.3301357686 0.4570814134 0.1645820855 0.3357464344 -0.3873620892 0.5383886321 0.3347580312 -0.1333790868 0.9493070595 1.0153998294 0.4185048624 0.2106625736 0.7727328980 0.9036820079 0.2309405816 0.1302003717 0.6666556530 0.7174367210 0.7360965856 -0.6170482763 -17.5889781215 17.6222136392 0.5242763077 -0.2288758909 -40.7226669141 40.7296758074 0.5322039656 0.1124019956 -69.2497283287 69.2520052320 0.0287688161 0.0648752252 -64.0610175710 64.0612089213 -0.3147910832 0.2265254264 -94.8651785952 94.8706240566 0.1213179185 -0.0818917354 -22.6816271241 22.6825288069 -0.3054907702 -0.1096050697 -95.9789992605 95.9841467573 -0.2282677324 0.0500291563 -44.0765686061 44.0771880814 -0.1728193972 0.0211778568 -62.9705183044 62.9707590122 0.2268638561 0.1570022600 -38.0787062473 38.0799614781 -1.0885970820 -0.0245373954 -423.0510464647 423.0534911242 -0.0444880507 0.0774402685 -58.7433398932 58.7435735870 -0.0436204987 0.0127751314 -1143.4898578192 1143.4898587225 0.0361039059 0.0556175311 -315.8034917098 315.8034986711 0.2141165831 1.4686056250 -44.7274653136 44.7619163170 -0.2269130880 0.4192479228 -11.0789316884 11.0900615648 -0.2946748037 0.5235747052 -17.3037769727 17.3396081797 -0.4134418681 0.4195046411 -7.7158130486 7.7395199533 -0.1061431458 0.0396157216 -0.1128578053 0.2122556051 -0.2456818371 -0.4685782239 -0.2891844744 0.7792263709 -0.1931776158 0.1217742137 0.1974388814 0.3325784827 -0.6526582579 0.3998921099 0.7279485681 1.1659445008 0.1256467557 0.1904863422 0.3199974752 0.4170735221 0.1533089184 -0.2707288731 2.3463365749 2.3709856294 0.0697924937 -0.4578302833 7.5443114794 7.5598012569 -0.0831936777 0.0372450762 7.0317715127 7.0337471362 0.0332716345 -0.0059616338 1.4178588034 1.4251125969 0.0674383800 0.1889772066 118.0740363045 118.0752385156 -0.0185400353 -0.4242288475 1917.8848926234 1917.8849447104 0.0061957966 0.1999157645 3056.8246022937 3056.8246120235 0.1718753762 -0.0005539583 -0.9822199936 0.9971447075 0.0297429214 -0.0711120528 -0.2960041355 0.3058758142 -0.4022390650 -0.2735768853 2.0488954853 2.1058521523 0.0010179752 0.0110657588 0.0338059458 0.0355855204 -0.0099501111 -0.0981509650 -8.9172302126 8.9177759156 -0.1554815916 -0.0586193940 -14.3397935936 14.3407562933 0.2951877903 -0.0595400931 -47.5178537540 47.5188079211 0.0235175866 -0.0584578161 -7.8066262869 7.8068805791 0.0432559800 0.0612423078 -7.0325632348 7.0329629142 -0.0479313569 0.2583068178 -43.0940881683 43.0948889647 0.0940468723 -0.1323425706 -120.7492079334 120.7493170826 -0.0420715480 -0.0279985079 -55.8780890954 55.8781119482 -0.0803691605 0.1558947185 -1.3300687408 1.3415831024 -0.0275511156 0.1079018581 -2.1006798536 2.1036296542 0.0381267560 0.2365297619 -0.6843624375 0.7383980692 0.0311054953 -0.1397428600 -0.1966859527 0.2804652699 -0.0004164969 0.0468481971 1.8409207098 1.8415167626 0.1017829489 0.0108371180 1.0775190128 1.0823698235 -0.0302781454 0.0555626607 0.4255250686 0.4302040903 -0.3726013697 0.1024978319 3.7486467296 3.7685129547 -0.2573266498 -0.0530840905 169.5732796656 169.5734832203 -0.0331200668 0.0453799476 28.2487039230 28.2487597888 0.0523971263 -0.0587811506 -2.1965418250 2.1979528365 0.3588854986 -0.3503559929 -7.1998265252 7.2172744243 0.0634513656 0.0845581190 -3.9583942860 3.9598057370 0.0701737001 -0.0478905156 -2.2585952493 2.2601925470 0.1181537243 -0.1520519355 -12.8741318648 12.8755718850 -0.0105603614 -0.0928776842 -12.0156665483 12.0160301425 -0.0136742480 -0.0751344533 -9.8861522597 9.8864472220 -0.0401852201 -0.2072977074 -75.6778229083 75.6781174933 0.0226355505 0.0297080190 36.7108885385 36.7109075374 -0.1244410371 0.1022571320 57.8457357312 57.8459599659 0.0998652350 0.0682079391 10.7435241714 10.7442048105 0.0418066148 -0.0563732524 9.9691964006 9.9694434454 #SUBSTART -1.2010349565 0.9921074126 8.8355375848 8.9853841019 -1.3617602224 -0.0896505822 5.1104238492 5.3720769393 -0.4949684252 -1.0686730991 6.0510139528 6.1661418712 0.1518616218 -0.1700662193 1.3080786496 1.3351157289 0.5433246137 0.9473338574 12.0162384178 12.0665698760 0.2941683699 -0.2681603581 99.5543913899 99.5552849919 1.2044315288 -0.1610539203 49.5492622544 49.5643567840 -0.2697837960 0.0006700391 1.0277857343 1.4184213218 0.3424865471 0.1728428856 0.3055584579 1.0598723764 -0.1838267422 0.1329806693 -0.3970202134 0.4781014164 0.5060672431 -0.0321591279 -1.0444458156 1.1693951901 -0.6565712363 -0.6123601978 -20.7392956407 20.7799135000 0.5295542379 -0.2250071661 -35.2493559799 35.2575069152 0.1140872007 -0.4061326714 -24.4271616496 24.4312027063 0.5793516503 -0.1786532287 -1911.6242361584 1911.6245625604 -0.5705294503 -0.0929802913 -92.6514482676 92.6580021685 -0.1249769719 0.1112276506 -9.9775245622 9.9799031562 0.1267639857 0.6464357863 -131.5139942798 131.5189909875 -0.1015367278 0.3630853446 -71.7653513869 71.7664774121 0.3277860344 0.1102387126 -28.2690304232 28.2755256848 0.2047266662 -0.3857476378 -9.3170959762 9.3403764720 -0.1256474972 -0.2130438780 -3.9776460827 3.9853285118 -0.0605277030 -0.3312467631 -3.9738260842 3.9880674228 0.0578716286 -0.3491740246 -10.2330530717 10.2391721732 -0.0057013642 -0.5058489878 -11.2106359682 11.2220441327 0.4900468767 -0.8026577908 -9.0670360905 9.1167444147 -0.4673916845 -0.9511330615 -18.4795910285 18.5099539078 -0.1310654482 -0.1149135239 -1.0168734756 1.0411026462 0.9295038293 -0.4354381912 -4.3082149001 4.4310020534 0.3925215679 -0.0310181130 -4.3771434720 4.3970330979 0.5584611626 -0.3282255872 -3.9894308360 4.0440881650 0.0356332630 0.0765158741 -2.0204858185 2.0270587402 0.1852577648 0.1624287279 0.2697331819 0.3910745522 0.1334004357 -0.4481835260 1.7887211355 1.8540947211 0.9754209031 -0.3649901197 6.6321915304 6.7149168280 -1.1494308024 1.4262573721 2.8034954216 3.3850596450 -0.7857036752 1.2091028349 2.1126117136 2.6050007952 0.0333366267 0.0507063875 0.3379221323 0.3433275927 0.1933418499 0.1695685890 0.4976922898 0.5602072765 -1.9158396150 1.0820551625 10.4310583219 10.7018041990 -0.3757686714 0.2113238082 2.5788073730 2.6183176084 0.0010329688 -0.1363173281 0.7444824070 0.7568603142 0.0842271744 -0.2253915466 2.5261119628 2.5375455099 -0.0481432479 0.2099530614 0.3379894337 0.4007928612 0.0506073977 0.1813691556 0.4893728831 0.5243488324 -0.0599660095 0.3112982464 7.0647983279 7.0732847899 0.0028175668 0.4976566672 2.9521526080 2.9938061257 0.0274567968 0.0135910478 0.2467850347 0.2486794033 1.5569738335 0.3274826716 9.6760424782 9.8069715124 0.7575360624 0.2258521996 11.5933737080 11.6581102511 0.2555986792 -0.1153010063 1.5518395205 1.5831331875 0.1318507738 -0.2435745659 6.6582731100 6.6654927640 -0.1080138196 0.3291826375 13.4165210403 13.4217191449 0.4646358005 0.3591410291 40.4884008194 40.5035284909 0.4271251242 0.0447644972 19.5432399538 19.5484563945 -0.6904290081 -0.3120585253 102.7901921876 102.7930793511 -0.2337826626 -0.1788571429 23.1997434095 23.2020304772 0.3943063431 -0.1735105912 71.7186396920 71.7200693145 -0.0040369716 0.1877085881 42.4668656473 42.4672806842 -0.1624550233 0.2837469813 58.7227521862 58.7236624225 -0.3428635045 0.5298714194 2574.2824267008 2574.2826750553 -0.2797533128 -0.0960878981 1029.4964719341 1029.4965238889 0.2184529990 0.2133218523 515.7007745620 515.7008838383 0.3236973198 -0.3523977579 180.0965158611 180.0971515307 -0.0172488528 0.1425708352 23.4779609914 23.4784002069 -0.2399797914 0.3810128528 52.4756401935 52.4777577131 0.0355128878 0.1112677934 0.1466960655 0.2337545884 -0.0087539613 -0.0947360320 1.4795180769 1.4891289643 -0.0463564818 0.1056412711 1.9953552270 2.0035546582 -0.2696587087 -0.2487349200 3.2528352444 3.3110719466 0.0027307893 -0.0190267311 0.1903800706 0.1913479683 -0.0869633747 -0.1098722501 0.1453009891 0.2018586568 -0.0828839688 -0.3324766028 0.0547421202 0.3740146097 0.0047257428 0.0244240834 -0.0734600460 0.1596716373 0.1745810143 -0.2408045061 -0.0011543959 0.3285520632 0.0249775197 0.0760665884 -0.0003677479 0.0800633349 0.3655474726 0.2396845892 -0.1303504423 0.4561413102 -0.1865047970 -0.1857845862 -1.1555124293 1.1851197940 -0.2982907896 -0.3566642352 -2.9829723525 3.0189916905 -0.1119841989 0.2126377718 -2.5797214252 2.5946478950 0.1995205180 -0.4397893890 -35.8270369580 35.8425745577 0.1681312148 0.0125468070 -8.3855336176 8.3883895573 -0.3314704217 -0.1266565014 -16.3052139657 16.3096718778 -0.0782369488 0.2617193249 -20.7622337993 20.7644997567 0.4196426353 -0.0693026491 -9.4463103509 9.4569107973 0.3604265585 0.0764434380 -41.4980573479 41.4999276426 -0.1757596082 -0.0300109339 -9.2174333537 9.2202141792 -0.1222098387 -0.1099781465 -25.8532285375 25.8541280269 0.4602077991 -0.0915845979 -57.8071867255 57.8090911196 -0.1513163739 -0.1168866350 -20.0056157170 20.0065294178 0.5603472762 0.6279447781 -11.7668079053 11.7976926465 -0.1968057258 -0.1154096495 -3.3202835954 3.3645172009 -0.8126710973 0.3640725351 -10.7737676617 10.8217694353 0.0593492912 -0.0636666468 -0.6273516107 0.6485565578 0.0312194806 0.0506192394 -7.0820256419 7.0836504672 -0.1717105158 0.2724170955 -10.0619494873 10.0680684764 0.2089637945 -0.4424467108 -14.1073333257 14.1165065900 -0.0857289781 -0.1543775363 -1.6614493731 1.6766262809 -0.5340775741 -1.1503780357 -2708.2365069273 2708.2368075082 0.0778180101 0.3567950453 -24.6970728376 24.6997725716 -0.0420725839 0.1157427221 -11.3404771975 11.3411458657 0.2145656209 -0.1345342227 -15.8289631420 15.8316042080 0.3327392720 0.2973537082 -27.9969337086 28.0008376932 -0.0423942819 0.0229363812 -0.9658394215 0.9670414370 -0.1307924401 -0.1399762635 -7.5711992742 7.5736225458 0.2365778600 -0.1906339289 -5.0775867298 5.0866685932 -0.0024783092 -0.0203955763 -0.0915736511 0.0938501738 0.0992737324 0.0228227990 -3.6964486128 3.6978518766 0.2359637275 -0.1049940725 -5.4963954003 5.5024599074 0.1401829531 -0.1041835990 -4.3492671744 4.3527727297 0.3955647344 -0.0733585951 -7.9237833569 7.9339898934 0.4057786485 -0.4415090720 -7.5657272672 7.5894542395 0.2055409717 -0.0224028190 -9.5303547437 9.5325972599 0.2144532881 -0.2677167489 -10.0939564028 10.0997830834 0.0041321376 0.0159568901 -0.4144701816 0.4147978162 0.1091658174 -0.2228416830 -2.7313641236 2.7461619311 0.0354976324 -0.0274693863 -0.2464334705 0.2867470826 0.3687044853 0.0122020759 -3.7241390977 3.7753118198 -0.0901760971 0.0563930464 -1.5579063324 1.5615325948 0.0174864735 0.0456071341 -2.5881191832 2.5885800536 -0.1671036396 -0.1347803194 -0.8988331256 0.9241159822 -0.1167670205 0.0048269596 -0.7934433238 0.8020038308 -0.0235145964 0.0006144249 -0.0502126029 0.0554492493 0.1819547490 -0.0426250174 -0.6304744324 0.6575883459 -0.3909384931 0.3018517924 0.7551840469 0.9023582186 -0.3552354150 0.1720597599 0.7827555674 0.8766430512 0.1871089619 0.0422899332 0.2433766650 0.3098877267 0.3827376575 0.0730406156 0.8736282008 0.9565820818 0.0221342907 -0.0065738329 0.2825903940 0.2835321373 0.1564142682 0.1247713715 0.4824396859 0.5222847585 0.1287782316 -0.4091758194 1.0783702294 1.1689186545 -0.2564950889 -0.2606464573 1.0716497203 1.1408940417 -0.3303714257 0.1578131319 1.2231038918 1.2843337489 -0.3188065615 -0.2557073514 1.4006901596 1.4657546116 -0.0993591260 0.0878224545 0.4374702548 0.4571271631 -0.1191889717 -0.0219443703 0.2086117263 0.2412600645 0.5897345042 0.4764231959 11.4280164242 11.4539864250 0.0154754214 0.2925404084 4.1510574005 4.1637214972 0.0510775367 -0.0792630352 0.5786774455 0.5863097556 0.2069192770 -0.0353768710 0.7602484194 0.7886981485 0.0375079488 0.0062012113 0.7270549499 0.7280482136 0.0403891561 0.2183853105 1.7454750670 1.7595472820 -0.0017156693 -0.0771051138 2.7916951596 2.7927602844 0.0019415480 0.0537321537 3.6102322741 3.6106326297 -0.1315317872 0.1540692671 61.9348233195 61.9351546181 -0.0396506130 0.0863630944 11.7868851423 11.7872682210 0.0381045633 -0.0155674825 851.1801058912 851.1801068865 -0.0584646471 -0.1214210971 992.9650508434 992.9650599884 -0.4081856611 -0.2803671376 16.9624846419 16.9697114440 -0.0071913933 -0.0292697037 2.3480573761 2.3482508114 -0.3388404753 0.0973857188 1.1728435478 1.2246872391 -0.2392447897 -0.0011636744 1.1608490197 1.1852467549 0.3370754456 0.0822810955 0.4009002523 0.5482616454 -0.0072558945 -0.1832191046 0.2906155474 0.3708895652 0.0254192043 0.0056867633 -0.0200978737 0.0328998443 -0.1378228806 -0.0886827115 -0.2866338379 0.3301798401 -0.0856377826 0.2234123020 -0.1045655413 0.2611146088 -0.1826535985 0.3828635624 -0.0046237826 0.4242266185 -0.4807666736 0.0661396036 -22.3023464872 22.3076258234 -0.2818802603 -0.0639399836 -13.8660895117 13.8691017427 0.0593584924 -0.0789288965 -4.4231695178 4.4242718932 0.0206098308 -0.1816942817 -3.5630377489 3.5677269482 -0.1395731062 0.0454062959 -2.1680026509 2.1729652271 0.0077059366 -0.0318798451 -1.1163601720 1.1168418597 0.0062342639 -0.0671230588 -3.8336503309 3.8342429801 -0.0010916888 -0.1218614146 -1.7505109199 1.7547478101 -0.1080006790 0.0539982154 -2.5208082630 2.5236985266 0.0373784716 -0.0025757983 -0.5122818697 0.5136501717 0.0739213199 0.0389779632 -1.8015849388 1.8035220916 -0.0219043592 -0.0578478979 -1.5656771298 1.5668985465 -0.0033687342 0.0048969148 -3.1137644236 3.1137700965 0.2059305438 -0.2973680163 -1196.8667861741 1196.8668408314 -0.0441821522 0.1898415703 -20.8384786328 20.8398575667 -0.7184195084 0.3218615607 -54.6789286147 54.6847733440 0.1445133351 0.0484924737 2.0823785218 2.0926097861 -0.2526794375 -0.0008910687 4.8830734508 4.8915982872 -0.0174280028 -0.1865522740 1.1262829032 1.1417612116 -0.0350955288 -0.0085514843 0.0680876546 0.0770762786 -0.0432842936 -0.1064261018 0.5611346331 0.5727758041 -0.0289697533 0.0398828472 0.3606742537 0.3640272042 -0.1772394532 0.0221538909 1.1681873355 1.1817640498 0.0015227240 0.0522741619 0.4980967758 0.5008346082 0.0930627689 -0.0793289613 -9.0955861433 9.0974788177 -0.0374291445 0.3579343007 -22.0738965966 22.0772713134 -0.2256045876 -0.1839929299 -14.6518713660 14.6554278388 0.1781742035 -0.1970929504 -10.4049821585 10.4093095439 -0.0583074884 0.1439923667 -2.6377037388 2.6422745085 -0.3524958138 0.3356232977 -10.6166192051 10.6277702103 0.0049004496 0.0593993681 -4.6344500464 4.6348332799 0.0605915531 0.0475524226 -1.1653448875 1.1678875271 #SUBSTART -0.0509370766 -0.2648594918 0.1699801341 0.3480203544 -0.1297912769 -0.2759003549 -1.0849520663 1.1355912787 0.0652306638 -0.7129018550 -351.1482288035 351.1493054483 -0.3015960543 -0.1458585900 -1775.2132355578 1775.2135151258 0.3321354402 -0.7784940409 16.1079804654 16.1308053544 0.1205175870 0.0887992391 4.0433635045 4.0761304179 0.3359346105 -1.1972094597 7.3224773818 7.4436871589 0.0829080855 0.4454470746 138.0455563491 138.0463704860 0.0635918667 -0.8102026461 -2.2904744126 2.6056740151 0.1106217095 0.1320705694 -2.9621959263 3.1124068322 -0.0018439633 -0.4718247923 -51.6415441608 51.6438881683 0.4661622821 0.1962812673 -362.7733571705 362.7737366268 0.0736242344 0.1199625671 -474.0252419612 474.0252834056 -0.5279208510 1.9793568219 7.4654355211 7.7982096123 -0.1840205457 0.2223927891 1.3148372398 1.3461497246 -0.2418259771 0.1126108279 0.9820526324 1.0176386267 -0.3432639653 0.5376209196 3.5008498477 3.6801041632 -0.0433748195 0.0869181779 0.8479556590 0.8648379785 -0.2474910350 0.1869619687 -0.3144138998 0.4631873006 -0.0085349151 0.1408985219 0.6999751635 0.7275783481 0.1520002065 0.0764702116 -0.4289382098 0.4614539455 0.1733493091 -0.2259847111 -0.3828318433 0.4971509607 -0.0959267602 0.4924933501 -1.2143896645 1.3213529753 0.3784688678 -0.1932081869 -1.5291462660 1.6632894574 -0.0696769887 -0.8419189150 -2.5504064527 2.6903039235 0.0831668918 -0.1394569942 -13.9935549151 13.9944969237 0.0778797648 -0.0356675830 -18.9506642514 18.9508578435 0.1820720753 0.1522757896 -3.9290654376 3.9387019631 -0.0417205372 0.3011839377 -1.9958548491 2.0237017397 -0.7373897127 -0.0373208856 -12.5400780707 12.5968839893 -0.2383350455 -0.0646169635 -1.1634954204 1.2877660886 0.1792952869 0.5302966663 -1.7512820170 1.8438627503 -0.2256142409 1.6520027617 -6.4971132055 6.7731297566 0.0732970521 0.1662615766 -0.3991221321 0.4602104203 -0.1865785951 0.4311667249 -19.1970624959 19.2033175408 -0.0219924106 0.0849892238 -6.1218168250 6.1240368923 -0.1455436262 0.2365233100 -28.0888736498 28.1059121847 -0.2220745715 0.1081062879 -64.6559168731 64.6632150652 0.0924430469 0.2051632237 -16.4912413395 16.4933671022 0.4955426067 0.3732759117 -3000.3753268557 3000.3754315990 0.1126513862 -0.0245483377 0.1443817409 0.1847675372 0.0059966329 -0.0762029902 0.2326345492 0.2448707593 0.1893094751 -1.1165191621 9.4007603791 9.4697533551 0.1187314507 -0.0326053653 1.1538247897 1.1687393625 0.1403724833 -0.9133144463 13.4439292099 13.4763704349 -0.1709321112 0.1187843393 81.7042925194 81.7045576673 -0.1133306823 0.0656762364 113.5628793115 113.5629548520 0.3720137596 0.0974798835 217.7876631441 217.7880474088 -0.0348477710 -0.4069452150 126.6413037917 126.6420393259 0.1870813130 -0.0872658414 171.0790486592 171.0792301382 0.0001759466 0.9300268342 2738.2295230422 2738.2298417336 0.2115435425 0.0493454778 808.2087014437 808.2087426864 -0.3589168658 -0.0189310290 395.3654313613 395.3656193639 -0.0114795002 0.0043740579 -0.0962817196 0.1700025462 -0.3636800835 -0.2959082893 -3.8536325390 3.8845576903 0.0390260714 -0.1831886651 -1.4836467165 1.5019215977 -0.0732673208 0.3033048781 -3.1873277720 3.2025646404 -0.1121431565 0.1815430329 -1.4354204019 1.4511945737 -0.0367481226 0.1135322170 -36.1418108066 36.1422772962 0.3366319959 0.0292486158 -69.7978579072 69.7988153539 -0.1138643127 0.0706805253 1.0829135342 1.0911748443 0.0241182684 -0.0209467974 0.1517293156 0.1550556171 0.1098374573 -0.9261198239 -2.2014534518 2.3908491161 0.1148698677 -0.3937049615 -1.1276685611 1.1999312759 0.0048710519 -0.0390953243 -0.2080152435 0.2117132803 0.1278272213 0.0627784565 -0.3430550188 0.3714400074 -0.0004467411 -0.0135715786 -0.1391381485 0.1397991834 -0.0128417412 0.3350564029 -3.1644927879 3.1822071441 0.0679682184 0.1417600307 -9.8815485283 9.8953217397 0.0774568048 -0.2061015582 -4.0313510566 4.0679164421 0.0465569470 0.0517187205 -12.8783441615 12.8785321647 0.0329029702 0.0016652131 -0.6586861407 0.6595095226 -0.0286011647 -0.0132689891 -29.4065705378 29.4065874403 0.0342840358 -0.1801742160 -571.1574379924 571.1574674397 0.2700205327 -0.3038181850 2.5849056485 2.6166684523 0.1151678658 -0.0400792085 1.0880523467 1.0948643247 0.2003481998 0.5028468806 653.4857191343 653.4859433124 0.1105639743 0.1222869810 263.2936914160 263.2937430285 0.0132757308 -0.0182556346 84.2169361040 84.2169391290 -0.0222402968 0.2068650237 1134.2148290558 1134.2148481385 -0.2655273249 -0.1042250388 -0.0796661108 0.2961660145 -0.8638890910 -0.4856221106 -0.0625385601 0.9929976170 -0.0985666673 0.0646456069 -1.6232634805 1.6275376400 0.0447239233 0.0509865319 -0.9601792828 0.9625716134 -0.0427734480 -0.0708136968 -3.4481102734 3.4491025797 -0.0385054305 -0.0600440521 -14.5159690301 14.5161442828 -0.0048801588 -0.1261602670 -0.2173857834 0.2513897527 0.0891232252 -0.0480893864 -0.0853168713 0.1324179251 0.1231818473 -0.1647097198 -1.5403343912 1.5540055007 -0.0259388277 0.0015196939 -0.1372863870 0.1397235997 #SUBSTART 0.3513835747 0.0863842872 0.4305961478 0.7483225669 -0.2394316678 -0.0964748384 0.4472757872 0.7143749070 -0.0962470037 -0.6143451748 0.1102640111 0.6467777181 0.0882349019 0.9428763691 0.8585895270 1.2858681916 -0.5081978700 -0.3991755096 8.9858237983 9.0101118351 0.2502257525 -0.4135313380 29.7060495929 29.7140815855 0.4382471970 0.4828008138 -1.7885108790 1.9087713799 0.0688331918 0.8906618148 68.2269956989 68.2329864389 0.2401969212 -0.7619777158 81.0257680767 81.0351389683 -0.3788060032 -0.2183419049 14.6955080966 14.7102945706 -0.2081692618 -0.4040860307 11.4923038422 11.5021366428 0.0882205793 -0.0110568982 0.0586545508 0.1755712586 -0.3289355697 -0.0163956219 1.8133611763 1.8483035373 0.0515791286 0.2470485053 0.2188255201 0.3620190100 0.0901237096 0.2647083161 0.8978747819 0.9507111467 -0.4248530210 -1.2417659758 -1.3072339742 1.8576391674 0.1286987368 -0.0083646410 0.0407527810 0.1943551032 -0.1564100953 0.3410265719 -45.1683850928 45.1726401275 -0.1260660784 -0.1703210744 -575.6749638566 575.6750197751 0.3196320210 -0.1425785036 -866.1344222912 866.1350012103 -0.1587039488 0.6188909248 -143.1835567546 143.1850502588 0.1802038877 0.0611284026 -47.6106990501 47.6112838930 0.0178346007 -0.1592064747 -24.4440992312 24.4450226382 0.9420648081 0.8497533301 -12.6900208445 12.7540454619 0.0387810512 -0.1829012599 151.6305335483 151.6335517344 0.4507642446 -0.2687987137 132.1349766666 132.1393593583 -0.0908790077 0.0991418424 0.8937843745 0.9145591243 -0.2746445694 0.3186459654 2.9409535285 2.9741641401 -0.5603401564 0.8424524862 0.9343869277 1.6664743641 -0.4970156516 -0.2495409175 -1.9796930523 2.0610578821 0.1187721030 0.5876354550 -7.3825738961 7.4081913688 -0.0218581490 0.0688815068 -3.0486183702 3.0526670622 0.2525240870 -0.4960841087 -9.6546520989 9.7162218373 -0.3239554754 -0.1433068940 -2.2427707428 2.4567977560 0.1839998331 -0.2738257098 0.0774495534 0.3664896671 -0.2857045623 0.3379413295 0.2323627567 0.5189447704 0.2506682559 -0.0726082590 0.3355672535 0.4474278716 -0.0376138396 0.0776708370 0.5555060479 0.5792359744 0.1717120796 -0.4044677745 2.7103949833 2.7457822536 0.0699124145 -0.0808089112 0.3817150550 0.3963889618 0.4451863718 0.6987070109 7.1426676041 7.2074769410 0.2565954670 -0.0562772464 1.4859873092 1.5154690463 0.1777284803 -0.2353512404 29.2371014675 29.2389219983 0.1789671712 0.2193490468 8.4557455846 8.4604832394 -0.0210440465 0.0053343587 0.9150385374 0.9152960353 1.2368367824 -0.8910283844 -8.3349804990 8.4875931622 1.0529050908 -0.1832613604 -5.0578894662 5.1714523583 0.6775419726 -0.5864847002 -2.3027461708 2.6435693939 0.0199983460 -0.0627587948 -0.2924209245 0.3306484268 0.2366324956 -0.3284748100 -1.7559709639 2.0316680973 0.3514193699 -0.2543253733 -1.3133852470 1.3901933538 0.1728712083 -0.7057742283 0.2073525280 1.2057315504 0.0517370079 -0.1129449967 0.2762285800 0.3334895854 0.1222946120 0.0289346910 0.2196535496 0.2530629770 0.1454885863 0.0162924103 1.7788962193 1.8519030997 0.6854447280 -0.2328609130 1.2249170321 1.4296713610 0.2132316179 -0.9154663652 1.8533504135 2.0827707337 0.0464755619 -0.1147566085 2.0207004633 2.0244899159 0.7726530146 -0.4068852434 7.7178455675 7.7670900913 0.3269458017 -0.0860636289 2.6983095198 2.7194070622 0.1268780430 0.2180718314 6.8290603940 6.8351444031 0.6455361591 0.5313835850 15.0169463080 15.0408524243 0.5596353138 0.1161023227 17.6030417569 17.6128711547 0.7680020692 -0.1127127811 32.3480580258 32.3709706370 0.6983703179 0.5935546092 89.9948101485 90.0043678519 -0.1062699011 0.1869527399 20.6927868264 20.6943748648 -0.1307433841 0.0736303268 121.9641081117 121.9642004144 -0.0899043048 0.2142744765 137.4759291889 137.4761255734 0.1583710439 -0.1596163519 66.4787949287 66.4810076254 -0.0547152709 0.3262564991 30.8900990872 30.8921857185 -0.1030840496 -0.0145927889 14.0778153835 14.0788921804 -0.3814800376 -0.4953111690 333.5073438232 333.5079590114 -0.2517675119 -0.6024863461 376.4509881756 376.4515803591 -0.1763305492 -0.0421270053 2.5729633647 2.5831158333 -0.3895841814 -0.2476009491 6.3130903830 6.3314826094 -0.2550797052 -0.0598126234 8.1363865785 8.1418001415 -0.2221070476 0.0151249759 0.3814421288 0.4631826724 -0.9161630148 0.5499367145 5.0748116663 5.1879647544 -0.0762149093 -0.2521347467 4.6077573416 4.6173897547 -0.7777770833 -0.0674658849 4.4260742327 4.4965655489 -0.1122568541 -0.3432704188 0.2153668070 0.4204985651 -0.9785147782 -0.3390581542 0.7480054023 1.2774833404 -0.4740289086 0.1117179975 -0.2792147622 0.5784677912 0.5639903520 0.1294667741 0.1248072592 0.6081968428 -0.0084708087 0.0041157778 -0.0236083139 0.0254174489 -0.8072015961 -0.9749667678 -3.3431144853 3.5747096493 -0.0283360821 -0.1356588674 -0.9180536692 0.9388868869 -0.1311486095 0.0017617580 -1.4393881292 1.4520747339 0.0071001260 -0.4130757745 -2.4092590496 2.4484057997 0.3246640651 -0.2998738615 -15.1699075117 15.1843691328 0.1855192498 -0.0002007397 -1.3540292659 1.3737876365 0.1641733496 -0.6556734698 -6.0895820554 6.1285683469 -0.1322846352 -0.0809387546 -4.9906636671 4.9950229158 -0.2211364576 -0.5250485379 -37.9757233733 37.9802530641 0.1104229890 -0.1018287038 -14.8745442884 14.8759574446 -0.4857614264 0.3019904732 -54.8090275897 54.8121897712 -0.0385357965 0.0592827995 -5.1775114233 5.1779942059 0.0896591469 0.3006854457 -16.3528825991 16.3558925101 -0.3652418169 -0.6842401798 -217.3140789752 217.3155079299 -0.0034234873 0.1969739181 -19.3594067330 19.3609121501 -0.0290826310 -0.0221466697 -8.4786081241 8.4786869264 -0.2577155050 0.0778430860 -165.2421020747 165.2423213795 0.2126398737 -0.2250677107 -279.3267159726 279.3269224529 0.1081640021 -0.1688561687 -84.4485575381 84.4489109575 0.1834010756 0.0865142133 -473.1517199256 473.1517839647 -0.0488719920 0.0721643079 -221.7981217409 221.7981827783 -1.7448455566 2.4921877129 -616.8193555961 616.8268739309 -0.4194674477 0.4334598557 -79.7555558049 79.7579588626 -0.2405230503 -0.0328744566 -26.5858463022 26.5873209530 -0.6034955259 -0.5141579264 -31.2385200705 31.2488908796 0.1638126043 0.0101811828 -10.5332319494 10.5354351268 -0.1401235635 0.0774205777 -1.0673152115 1.0792545203 -0.0764670415 0.2015020117 -4.4632576682 4.4684582668 0.1004790435 -0.0916098374 -0.3248806156 0.3521871872 -0.1064736351 0.4738688694 -5.2841534501 5.3082620328 0.3218016390 0.1968768848 -9.1562298793 9.2119060459 0.1353904184 -0.0260064587 -1.2436441750 1.2590224463 0.6100942143 0.6575841496 -8.3789476071 8.4790439704 0.2440437200 -0.0330929644 -1.2553184594 1.2868398117 0.0514526277 0.2190608661 -1.5701180420 1.6611883282 0.1372299060 0.7254283299 -3.3552051347 3.4383076636 0.2249887106 -0.1520320231 -0.5965768782 0.6701622285 0.1695471797 -0.3391619865 -0.2457642903 1.0414066346 -0.2556074022 0.0614822381 -0.0548780131 0.3026658073 -0.2632482254 0.0670017819 0.4434716970 1.0738937554 -0.0644068099 0.2659118756 0.1505389224 0.3420513336 -0.3570493913 0.0031080420 0.1813753305 0.4241116871 -0.0864124590 0.1621691599 -0.1595860487 0.2805591583 -0.9306299732 -0.3204726026 1.7361986340 2.0006599706 -1.4872367863 1.2030974562 3.5849514878 4.1706097519 -0.7031097587 0.6300072817 1.2064951069 1.5383051504 -0.2161833966 0.3903551137 10.4084767637 10.4189721519 0.0803149198 -0.0314024289 268.6716585303 268.6717086219 -0.1581949575 -0.2312517393 1476.8147189483 1476.8150435840 -0.1128636898 -0.2129492528 384.6157144328 384.6158152677 0.0461300467 -0.1554289250 1722.9398811202 1722.9398944016 -0.0998121208 0.2192375613 604.2849937145 604.2850578460 -0.1306452713 -0.0419120639 -0.1385822216 0.2398116449 0.0670971285 0.2300405729 -0.2102272170 0.3479884444 -0.0658102562 0.0504672667 -0.0541361008 0.0990386401 -0.0328327591 0.1792983550 0.0355750233 0.1857187994 0.3790254689 1.6577306248 3.3185232279 3.8454023625 0.0790284068 0.0732545670 0.6390348988 0.6629156112 0.4044764321 -0.1037192791 0.2540253546 0.5082986707 0.3155650118 0.0137480471 0.4594672070 0.5747696796 -0.2368070353 -0.0717572765 -0.0776267413 0.2945036070 0.0150794557 0.2493484796 0.0538285482 0.2911689402 0.5242711188 0.5212543040 -1.3586428394 1.5530474575 -0.1894719837 0.1388649068 -1.0339703461 1.0694660146 -0.3230259180 -0.7345551608 -4.0749313721 4.1555339609 -0.5041837063 -0.8320104728 -10.0061700444 10.0543205330 -0.4430443258 -0.1303902894 -2.1797648253 2.2325197381 -0.2655783851 -0.0905889652 -0.9675911081 1.0170794348 -0.3808833270 -0.0313661032 -3.4652636450 3.4890669032 -0.1074870207 -0.0080526398 0.0037284190 0.1763859140 0.1188952262 -0.1178720167 -1.9654917259 1.9775407446 -0.1168153378 -0.2905825802 -0.2873425139 0.4473584293 0.2049314285 -0.2479883935 0.2698296068 0.4198846870 -0.0115063078 -0.0023845109 -0.0063955375 0.0133784869 -0.0372355634 -0.0566035911 1.2681726633 1.2699812430 0.0095869995 -0.0500175566 0.1409128402 0.1498335578 0.0651788088 -0.0161068207 -0.3786984860 0.3846040173 0.0880974512 0.1266280344 -1.7199246665 1.7268285029 0.5861372256 -0.6143882111 -6.2493026180 6.3263329316 0.0316062155 -0.0701959191 -0.0816668505 0.1122314323 0.0700243700 -0.0096230070 0.0371710422 0.0798605098 0.0811806041 -0.1901402898 -0.0263621421 0.2084192477 -0.0030988249 -0.0110203230 -0.0589043005 0.0600063901 -0.0027336410 0.0395970907 0.0654290850 0.0765269074 -0.0803960589 -0.0443262239 -0.0079819519 0.0921523303 0.7791232530 -0.2180356777 1.5238053207 1.9639006717 0.0454966914 -0.0416899157 0.3516787782 0.3833611169 0.2095421580 -0.2994765104 0.9330361334 1.0020731123 0.1476283312 -0.0694285574 0.3343999962 0.3720723132 0.5711175696 -0.2783425159 1.4917671457 1.6214250064 0.0388355179 -0.0696716584 0.1901792717 0.2062292239 0.2132034763 -0.2607602674 0.5536634459 0.6480700970 0.0014997178 -0.0745293339 0.2221850392 0.2343566991 0.9662601153 -0.7349221488 7.1749592229 7.2782751260 0.2981093263 -0.1352674214 0.8619324895 0.9325094354 0.2706155557 0.1954741305 7.3065204295 7.3141427182 0.2527854008 0.3085378940 6.7006701520 6.7125313092 -0.0484253203 -0.1535503692 1.0508531019 1.0631156895 -0.0073954533 -0.0316416273 1.1277327544 1.1282008025 -0.0361965680 0.0967665602 1.8918128213 1.8946318137 0.1201730013 0.2366800895 4.2592436700 4.2675069602 -0.1022789177 0.1157269997 111.9907956587 111.9909021572 -0.0385313296 0.0033758186 6.5748743822 6.5749881521 0.0262426582 -0.4107163889 21.5650881072 21.5694664163 0.2220230408 -0.1883020242 7.2028256603 7.2100575005 -0.1632574252 0.2417854378 21.7088366894 21.7310619664 -0.0324910742 0.0813730435 6.9821019527 6.9840464421 -0.0050033700 0.0490308675 0.2916829212 0.2958174879 -0.1734647770 0.1735972586 3.9232654003 3.9309334054 0.2533262048 0.2469523288 -2.3632817914 2.3896151247 0.0196764305 0.0160780510 -0.0419359201 0.0490335297 0.2930993519 0.0841211651 -0.8909584177 0.9416955466 -0.0141795796 0.0136312697 -0.0471636871 0.0511007375 -0.1453322307 -0.0139368720 -1.2076737231 1.2164668163 -0.1630557917 0.0003257640 -3.1463672485 3.1505894940 0.0095116858 0.0180053813 -0.1189006657 0.1206318127 -0.1769584512 -0.0276514653 -0.2729277487 0.3264482394 0.1896578048 0.4085830995 -45.5044755719 45.5094263064 -0.1524816922 0.0190522875 -11.2835849965 11.2846313201 -0.0360013212 0.1013039258 -8.1518479826 8.1525569064 0.0541654450 -0.2255027699 -46.9986165450 46.9991887434 0.0908246117 -0.2086991583 -80.2573434400 80.2576661790 0.0573497401 -0.0666658658 -64.6668414856 64.6669012792 -0.0386824311 0.0160515455 -10.9807010116 10.9807808779 0.1910298306 -0.2779106293 -391.7005768967 391.7007220671 0.1300084946 -0.1303620513 -354.3333990162 354.3334468475 0.0251052219 -0.1885166599 -285.6351653452 285.6352286582 0.0869150029 -0.1962836236 -585.1473153807 585.1473547566 -0.4971768159 1.2021426904 -241.3635377853 241.3670435334 -0.3171213084 0.7550579181 -133.3462899279 133.3488047038 0.0298209664 0.4932502680 -92.0747424137 92.0760684199 -0.0918700286 0.8593316264 -142.5516850893 142.5543047850 0.0022881145 -0.0183777781 -2.9930200237 2.9930773195 -0.3489039330 -0.2466578632 -200.3801401872 200.3805957559 0.1115025753 0.2281227797 -18.2499967926 18.2522967196 0.1880057745 -0.0933137134 -6.5186782948 6.5235496561 0.0514040776 -0.1979955194 -3.6573958348 3.6631119144 0.0465743616 -0.0353700208 -0.3814593489 0.3859163697 0.2128325537 -0.0942725555 -0.0134117086 0.2331627855 0.1240031763 -0.0162884840 0.0893528319 0.1537076153 0.0120010760 0.3680152047 0.4202785963 0.7482571377 -0.3442075736 0.8041751857 0.7264554852 1.1370638307 0.0076321592 0.0019066994 0.0015007169 0.0080085896 -0.0167925223 0.0279474618 0.0080812496 0.0335910110 0.1810677361 0.2432940014 0.3580630615 0.4692405057 -0.5266418094 -0.6322139825 0.6574217017 1.0532091003 -0.2982095941 -0.2345215137 0.2467416052 0.4525601862 -0.3724109473 -0.3054553985 1.9831696794 2.2467190916 -0.0436926025 -0.0291551658 0.1958170811 0.2027397259 -0.3107149439 -0.2210414708 0.5131845065 0.6393445440 -0.3876987808 -0.0238519199 6.6548850022 6.6847624550 -0.0000806122 0.0857601813 14.7877350752 14.7879837527 -0.1944682679 0.1308906987 47.2761395375 47.2767206969 -0.2261926949 0.4047311087 0.5617003127 0.8821298520 -0.0927429169 0.0857225751 -0.0123488268 0.1268940584 0.0095444890 -0.0370200596 -0.0157182661 0.0413357711 0.0520036366 0.0216514984 0.0463238464 0.0729319159 -0.0356572397 -0.0504258695 -0.0269616210 0.0673879519 0.1207138060 0.0316860843 0.0132839635 0.1255081455 0.0483281031 0.1503209370 0.0156791213 0.1586752170 -0.0004292783 -0.2162291731 -0.6127388926 0.6497724141 0.1326266003 -0.1931440529 -0.6109146182 0.6543020029 -0.1128137064 -0.2122895578 -0.8568156382 0.9007811119 0.1681673440 -0.1731319996 -2.4547336051 2.4705165051 0.1826472912 0.0559993044 -0.0106887589 0.1913379331 0.2113169464 -0.0797999001 -0.0268818269 0.2274763911 0.0378914183 0.0495242267 0.1091709586 0.1257247263 0.0472951004 0.0243294952 -0.0365668762 0.0645436851 0.0337805991 -0.0320483379 0.0883461283 0.0998662266 0.1997591503 0.0075575967 0.0587808887 0.2083651321 -0.1238906915 0.3094257544 0.2326753235 0.4064861709 0.0285115833 0.1523117308 0.1488429769 0.2148627597 0.0337604191 -0.0011512632 -0.0444313839 0.0558143277 -0.0853958386 0.0842971209 -0.0137632047 0.1207802949 -0.0906088516 0.1313208263 -0.0807469672 0.1788160958 -0.2982407157 0.1338396349 -0.0802725363 0.3366069703 0.0842579992 0.0465765645 -0.9480490171 0.9529248269 0.1753075370 -0.0330739435 -0.8162876861 0.8355550280 0.0233613671 0.1374946930 -1.6842967976 1.6900610186 -0.0104885032 -0.0039609901 -1.4305331671 1.4305771005 -0.1568064396 -0.2921406838 -3.9731468285 3.9869575066 -0.0189382543 0.0049192561 -0.0786708200 0.0810675921 0.4072918690 -0.3850262714 0.7891977184 0.9779799179 0.3576534236 -0.4609440474 1.7453730619 1.8455872497 -0.0109044807 -0.0489811159 16.1431782388 16.1432562300 -0.1348219263 0.0621136559 40.9312911311 40.9315603015 -0.0466158917 0.4899579310 255.1024573732 255.1029321464 -0.0294563013 0.0099071009 17.3387371998 17.3387650514 -0.4092977643 0.2592610266 5.6280044295 5.6505446271 0.0390781913 0.1223951497 4.2729081893 4.2771172367 -0.2960106623 0.1327471298 -1.4325253415 1.4754161283 0.1321383114 0.0286037763 -0.7034850307 0.7298285296 -0.0742082503 -0.0637583434 0.0862751249 0.1304430448 0.0139318062 -0.1172677077 0.2820643613 0.3057876950 -0.0377906757 -0.1980415706 -1.3148594040 1.3302269924 0.0923925970 -0.4442223395 -2.3801195057 2.4229813743 -0.0624540441 -0.1397797130 -1.1614842197 1.1715308226 -0.1304726959 -0.0219842154 -1.0945031652 1.1024715909 #SUBSTART -0.1734802534 -0.6041668205 -0.1421520806 0.6593936186 0.4443987084 0.1415820509 0.5326604713 0.8630781116 -0.0787821948 -0.0818522167 0.7012006802 0.8650027592 -0.0905139288 -0.5927715090 -0.6316011141 0.8820264086 -0.5943964647 -0.3576600087 -103.3205943620 103.3241021646 0.0223434023 0.1266335828 523.8052686327 523.8053030110 -0.0575108692 0.5959050182 -2.7909402527 3.0046810776 0.3069975221 0.1023654814 1.4141896532 1.4574423935 0.0592643018 -0.2362899846 2.1181056544 2.1366320606 -0.0508582763 -0.3792723507 2.6871176324 2.7178143858 0.9616613368 -1.2990970152 15.4607226708 15.5456061596 -0.1830107530 0.1251128457 1.6697175951 1.6901428318 0.1940028217 0.5105226357 0.7085770749 0.9054455878 0.0657422154 -0.4273219204 1.3012054987 1.4572929603 -0.0997198286 0.1260492435 0.0580357083 0.2206363169 0.5213862652 0.5884167570 -0.7804661353 1.1165505321 -0.3223707327 -0.4524102880 -2.8138441856 2.8715495544 -0.1316881238 -0.1507365427 -5.4327603602 5.4588084193 -0.1414872979 0.0368425353 -4.1659346682 4.1976217848 0.0491209552 -0.0766561171 -6.0326205865 6.0534652167 0.4435705326 0.0278006940 -6.4770933992 6.4938237105 0.1889086076 0.5401954372 -13.9149142356 13.9266771255 0.2680073416 0.2273877454 -25.9716436074 25.9743967125 0.5801820870 0.1288392377 -5204.6451886675 5204.6453074078 0.0974608350 0.0542162049 0.1249135093 0.2179935342 0.4607558325 0.8695076077 3.3822885311 3.5252935919 0.0528442804 -0.2863591633 2.7110654417 2.7302288737 -0.1251166711 0.0155063756 0.9371201624 0.9558078325 -0.2564335475 0.2159304535 1.8392774016 1.8747813925 -0.0230738398 -0.0027189269 17.7405780807 17.7411423030 -0.1046715048 0.0107004547 122.5364074007 122.5365320592 0.2123350858 0.0998350989 3.9711557758 3.9780813756 -0.0010632646 0.0302179597 0.1680133022 0.1707124053 -0.0596022320 -0.4832071644 172.3906884120 172.3914324221 -0.6495453516 0.0584863024 3650.9960390211 3650.9962178326 -0.1740655122 -0.0806533981 551.7780176316 551.7780686336 0.1299177805 -0.3327717024 626.3304378584 626.3305552847 -0.1680372555 0.4438737410 0.2109428577 0.5378076713 -0.5363354113 0.0029591480 -0.4613330325 0.8626317620 -0.0497901576 0.2899353359 -0.0676833640 0.3325693634 -0.1279344345 0.6757355112 -0.2080739530 0.8717347248 -0.2475285333 -0.0770208859 -0.1701051824 0.3400266896 -0.2310754579 -0.9986128508 0.2013776147 1.0538767583 -0.2412693537 0.5685249332 -1.0634730503 1.2376939098 -0.1011573295 0.0505398783 -11.3515882563 11.3908600912 0.0520423101 -0.0672655598 -1.3867686645 1.3963667754 0.2313286717 0.1176001878 -10.4576544974 10.4618048219 0.1391125635 -0.1956243934 -29.8690528923 29.8703435145 -0.2009385373 -0.0156450475 -19.1777952390 19.1793621134 0.0535340978 -0.1883255548 -43.5964076343 43.5970706678 0.2279978612 -0.0617316098 -27.2323609417 27.2333853253 0.2536002229 0.0568476880 -38.7283576421 38.7292296643 0.0776591667 -0.0580536110 -101.2558722941 101.2560149077 -0.2258733262 -0.7381644083 -117.4678617981 117.4704811459 -0.1689065502 0.1150742064 -0.0626991002 0.2553085540 0.2401454328 0.0554121902 -0.0853807601 0.2958208897 -0.0072941971 0.3797417417 -1.0431272235 1.1101222455 0.0367663270 0.2501462116 -0.4469108255 0.5134726632 -0.0724928974 -0.1153778103 -1.5979547385 1.6037539105 -0.0671331855 -0.0804901441 -3.5882366067 3.5897670500 -0.1546711308 0.0146859195 -4.1777297713 4.1806177625 -0.0365854078 -0.0692633348 -1.2711935789 1.2736047333 -0.0609984921 -0.0764320590 -13.5441712044 13.5445242180 -0.3339793544 -0.0896602029 -32.6346811914 32.6365132578 0.0939780897 -0.1198445091 -399.2274933145 399.2275223638 -0.0001960881 -0.0946678667 -601.0634071431 601.0634145982 0.0976934242 0.1191038860 1.1753632392 1.1854148999 0.0904562731 -0.0271725062 0.8370557516 0.8423675052 0.1290435611 0.2429608757 1.4765722921 1.5019813453 0.0879582657 0.5046377586 3.2812641836 3.3210074626 0.0145036523 0.0123537927 6.7250561883 6.7250831748 0.1227715488 -0.2164119558 27.8873284417 27.8884383680 -0.0965883056 0.1453065644 160.5906474174 160.5907422028 0.0020149626 0.1023885242 42.6336715583 42.6337945533 -0.3228813408 0.0186734444 713.9731362588 713.9732095116 -0.1271526455 -0.0804418439 330.6858342898 330.6858685197 -0.0031595986 -0.0327052276 0.3487370793 0.3502815517 0.1927768334 0.0163487302 1.0155757844 1.0338396212 0.0261850537 -0.0352144032 0.0216618444 0.0489381930 0.1094173635 0.0558621251 -0.1016963366 0.1594831694 -0.0084439985 -0.0679023673 0.0322318056 0.0756367760 -0.0684326877 0.0544960496 0.0432654693 0.0975948410 -0.1259573171 -0.0143346254 -0.4511619109 0.4889760546 0.1377687227 0.3693423903 -0.7420435084 0.8517642722 -0.2802526561 -0.1529295678 -14.3956013798 14.3991412275 -0.1589627168 -0.2036933693 -14.7604705739 14.7627318508 0.1115740216 -0.0143871725 -5.2956564841 5.2968512676 0.0056657821 -0.0522380541 -0.7621266101 0.7639357861 -0.3279092480 0.3435085073 -56.5342112437 56.5362057758 -0.1787150844 0.1136784234 -35.7344525606 35.7350802668 0.0259034502 0.1418016086 -1.4082850397 1.4225066688 0.0312634471 -0.2088360572 -0.6664225938 0.7128735936 -0.0507776495 -0.0704892619 -6.8536448739 6.8541954424 0.0017364223 0.0182842508 -0.1505630033 0.1516790921 0.2599755299 0.0628337163 -13.8705334856 13.8731119265 0.1870480262 0.0921703262 -6.4185287169 6.4219150744 #SUBSTART -0.1039065923 0.0051110575 37.9336431352 37.9340425475 0.1039065923 -0.0051110575 0.5220210047 0.5502803077 0.1034556933 0.3673674817 -2882.4625129511 2882.4626909261 0.4232895108 0.4152906349 -2175.8930370949 2175.8931223748 -0.1411130628 -0.3963674436 -6.9145578872 6.9287524567 0.1517250416 0.3954868301 -1.8422058821 1.8954241262 1.1065101142 0.2749451166 -10.2224525153 10.2976762348 0.3962337478 0.1346423045 -12.2245997474 12.2417159613 -0.3096747287 -0.1012363756 -1.7799566916 1.8756422967 -0.3998973155 0.1328527280 0.9435873110 1.0427868951 0.0996720735 0.1357040248 -0.0345750576 0.2214166301 0.3664551199 -0.5493840302 20.9586439962 20.9900267012 -0.3802947715 -0.0339800129 37.7033098950 37.7169153880 0.2034489154 0.5002362111 142.2573944596 142.2584879224 -0.3106042504 0.2462147367 1287.4155349562 1287.4156035341 0.1628871932 -1.0632061761 907.2064559011 907.2075787376 -0.5609124055 -0.2393434827 0.3113120613 0.6987868157 0.0175247922 0.2683783832 0.4695669622 0.5588443359 1.1220437970 0.5833688799 -0.6077705844 1.6886321093 -0.1326592342 -0.1950979122 -3.7135707186 3.8378458717 0.4649766782 0.4590134083 -1.0238500172 1.2225568547 0.4094962442 -0.1448258130 -2.7242652115 2.7622024577 -0.2614016343 -0.0546712323 -4.7177679129 4.7510309195 -0.0389861985 0.8817123334 -241.6885697156 241.6920023880 0.7370695954 -0.6471947066 -438.8132699339 438.8153721036 0.0027705361 -0.2894844961 -1.5913639365 1.6174820332 0.0069707551 0.0112204726 -0.1978958306 0.1983362050 -0.0605733521 0.0262848931 -0.3766114468 0.4070331600 -0.9279145314 0.1252598721 -10.6178694360 10.6599881125 0.5999660866 -0.5149943295 -4.8225776712 4.8889583394 0.6419844727 -1.0834346584 -8.4814921860 8.5756145091 0.0638010032 0.2587692383 -2.7176651062 2.7342669038 -0.0632748766 -0.4452752965 -2.8247544265 2.9026112950 0.1886979313 0.0553675578 -1.7820037420 1.7982462560 0.4034994338 0.0684907907 -2.2310359963 2.2682646227 0.5555470663 0.2060544347 -2.6328824834 2.6987332481 -0.2506615571 -0.3669370219 -2.6645504144 2.7049552103 -0.2472580843 0.1274218453 -0.0907360477 0.5738003810 0.4137344322 0.2032217605 -0.1844874201 0.5157428210 0.0877180488 0.0017347943 -0.0511241690 0.1015438145 0.1899687547 -0.1670324770 -0.3344824477 0.4193643809 -0.9478307825 -0.3695990951 -0.7087243369 1.2477005466 -0.3216864310 0.3585487666 0.5641095059 0.7548103719 -0.1082089695 0.2384215269 0.4677429161 0.5539108467 0.2407833089 -0.1970657345 0.4922551973 0.5988375988 0.1721983140 0.1365870249 -0.0675218218 0.2689744524 -0.0780196050 -0.2124420431 0.3486728024 0.4384873869 -0.3187790217 0.4238260521 0.9355522532 1.1832783129 -0.4180636942 -0.3091524746 0.6595230849 0.9741479172 -0.0057599471 0.1057756440 0.2457744754 0.3018386018 -0.1818004317 0.2481281858 0.1997776840 0.3924409528 0.1337357285 0.0564103971 0.2281081205 0.3042704020 -0.4834817121 -0.6207110617 0.9215502538 1.2197423676 0.0083982759 -0.0143388489 -0.0618281712 0.1535533825 0.0613117494 -0.0938097722 -0.0262954669 0.1809161144 -0.1182343544 -0.7619446561 0.5949061311 0.9738851710 -0.1458008411 0.0574592875 0.1636242427 0.2265664312 -0.2680402121 -0.1111101158 0.5714457284 0.6559123558 -0.1630883591 -0.2669096387 3.3679510266 3.3853230969 -0.6383325092 -0.6548783764 2.3345166573 2.5111315952 0.0274365592 0.0580202893 6.7840576090 6.7857966773 0.2268176806 -0.1984675096 6.1102538196 6.1192742329 -0.1849019690 -0.2966372399 9.6386204680 9.6459663436 -0.1468270345 0.7480774698 10.9211651245 10.9588624736 -0.0041426521 0.2284397826 11.1371480988 11.1403657685 -0.0271887007 0.1067016442 3.0696058649 3.2120704253 -0.3348621699 0.0254219873 2.7377217740 2.8020600318 0.2474702119 -0.0717134448 0.7921330295 0.8445938937 -0.0120867789 -0.2521130103 0.2865576135 0.3818668957 0.1091019451 -0.2104094790 0.3399961895 0.4144548132 0.0340184432 0.1320421419 0.0514899758 0.1457518416 0.6135930141 0.8937962796 0.4662534848 1.1801527395 0.0368112000 0.6434021832 0.6341470437 1.3039385306 -0.1522087245 0.1442942087 -0.1156828694 0.2772194539 0.7879368308 1.1240806020 0.1563957485 1.6708240674 0.4606761494 0.5314601126 0.2408973797 0.7564282506 -0.5920719378 0.0604711208 0.5583672734 0.8279249561 -0.6474928874 -0.6703616379 19.4889211831 19.5116929156 -0.0478520576 0.2350259357 412.2824708696 412.2825406361 0.0788380057 0.1776706681 385.2613040814 385.2613531160 -0.2964233868 -0.0254668328 974.2100070225 974.2100624496 -0.0852523310 0.0773462890 65.9798970457 65.9801450768 0.4409343342 0.3117100979 933.3545773441 933.3547439828 0.1073993289 -0.1328245249 175.2940498079 175.2941885939 -0.6293620655 -0.4818051760 126.6400829780 126.6426402493 0.2167947516 0.0817237799 109.8111896095 109.8115227195 -0.1180107168 -0.0472207866 2.8662901789 2.8724998706 0.1850697253 0.2411865730 3.6587042026 3.6739648873 0.0934140245 -0.4062675746 1.7987426855 1.8516842484 -0.1513943519 0.0578420144 0.4485903519 0.4969698554 0.4440681710 0.3096166890 3.8728514427 3.9129933704 0.3728657612 0.1979906872 -0.0492209489 0.4473607882 -0.1552187472 -0.1080082267 -17.1017877168 17.1034026302 0.0498557590 0.0123088693 -3.7247487643 3.7251027452 0.1750868784 0.3270039615 -46.0428202437 46.0443143395 -1.0532051166 0.3027144018 -173.7614219882 173.7648774879 -0.0899923848 0.2418175494 -30.7830451748 30.7841265078 -0.0115458851 0.0398428159 -4.7958709859 4.7960504095 0.0323371416 0.0212456978 -8.5915803861 8.5916675099 0.2022442611 0.0346197511 -11.7742272909 11.7760150121 -0.2370913767 -0.2248721240 -133.7537431868 133.7550531279 0.2023546551 0.0181372237 -196.9018849706 196.9020392508 0.2040566843 -0.1974873361 -125.9760498977 125.9773369665 -0.1681111823 -0.1788885259 -24.7525603703 24.7541711060 0.1934901133 0.2544818011 -101.7165589969 101.7171571239 0.4431634221 -0.8048983472 -3.4464391011 3.5668189814 0.5239966650 -0.6821225560 -3.2543208416 3.3660760281 -0.0580010022 -0.1766229554 -1.8728430707 1.8820470111 -0.0327618734 -0.0629395750 -2.1664999530 2.1676615918 -0.0127584669 0.0096437241 -0.3558998427 0.3562590040 -0.0192497129 -0.1497355481 -0.5145898226 0.5362778863 0.0672581358 -0.0552225762 -0.1369944864 0.1622981178 -0.0193951643 -0.0472293832 -0.3902059210 0.3935320163 0.1980909280 -0.2636747290 -2.4542451812 2.4763044619 0.0050794673 0.0139014216 -0.0495400322 0.0517036295 0.1636916316 -0.3521738423 -5.6301432367 5.6435214389 0.1599063552 -0.2376317754 -2.8619667973 2.8762636966 -0.0224755734 0.0120320984 -0.6123148647 0.6128453446 0.1692305961 0.0622473954 -1.9883333474 1.9964927331 -0.1013839586 0.1265374641 -6.7744120413 6.7763521855 -0.0128024845 0.0231933722 -0.1821114059 0.1840282595 -0.0216433426 0.0285919252 0.0786113553 0.0864041530 0.0545751693 -0.0185899990 -0.0250181285 0.0628485793 -0.1423437673 0.3345611322 0.1760116533 0.4039467803 -0.0844514265 -0.0228228490 0.6665368701 0.6722531704 -0.3037044020 0.0529864744 -0.0134818101 0.3085865997 -0.0271790976 -0.0103959124 0.0437842271 0.0525722064 0.0950867531 0.0392774979 -0.0696607725 0.1242450629 -0.0280429602 -0.0193411285 0.0151170851 0.0372694665 -0.1508107793 0.0676924340 0.1211147168 0.2049266488 0.0065719502 0.0821609560 0.0514224499 0.0971487600 0.3805017428 -0.1369645127 0.3552801363 0.5382980859 0.0661718044 -0.0720033691 0.0313062800 0.1026804559 -0.1513072139 -0.0639385966 2.3572036956 2.3629200748 -0.8838879674 -0.4346420971 19.6561054667 19.6807686285 -0.2779044034 0.1211170347 5.8586924744 5.8665302951 -0.1343317569 -0.0345749808 2.4292301943 2.4331871665 -0.7455485397 -0.5204308906 22.5996745090 22.6374099543 -0.2480076375 -0.1993699238 5.0334263565 5.0454055165 -0.0246675830 -0.0080580270 0.1623808065 0.1644413202 0.0995700893 0.1215190286 0.4044664781 0.4339057604 -0.0468402196 0.5962391038 0.9068834038 1.1949092066 -0.0702712395 -0.0234918490 0.3841131004 0.3911940541 0.0437038875 -0.1067430091 0.5967806301 0.6078249915 -0.2370575603 0.2063068478 940.1573030915 940.1573556140 -0.0615978617 0.0296470614 86.9643150880 86.9643419568 -0.3231725544 -0.5223856757 179.4678455043 179.4688967405 0.0049750786 0.0026916162 0.5170926580 0.5171235957 -0.1749963829 0.2233065660 2.9392507299 2.9529111753 0.0151677692 0.0740437515 1.1436933832 1.1461880706 -0.0805072621 -0.0063345819 1.6103232025 1.6123468493 -0.1148525386 -0.0384120338 0.6812536392 0.6919343256 -0.1424136704 -0.0479389019 -0.2696774262 0.3087162225 -0.0305664054 0.0590206841 -0.1768966179 0.1889713199 0.4746987215 0.2164568022 -3.0048827891 3.0498381924 0.0991807664 0.0801456524 -1.1629700215 1.1699399219 0.0952798243 -0.0479218531 -1.4793221784 1.4831617769 0.1024359657 0.0790097780 -1.1669209573 1.1740699266 0.0995366917 -0.0405691920 -0.5682548317 0.5783311907 0.0901591062 0.0917672139 -0.9004189009 0.9095625778 -0.1019200353 0.4499532578 -10.2429764583 10.2543109051 -0.0106130842 0.2691275418 -17.6247297227 17.6273401242 0.0434971876 0.2857760563 -6.2137669961 6.2204871386 0.1297485746 0.1540029648 -3.7710577065 3.7764305675 -0.3852392116 0.7685264631 -181.7900181124 181.7920507819 -0.0526601807 0.0398120413 -9.9723768875 9.9725953933 0.0612640533 -0.0731883131 0.1410934528 0.1703442862 -0.0049150314 0.0312590731 -0.0070712766 0.0324236047 -0.0553722816 -0.1733983055 0.1090969179 0.2122149839 -0.0016237695 -0.1482247201 -0.0268711003 0.1506494617 0.1014096975 -0.1593307325 0.1407920095 0.2355686716 -0.0166242150 0.0058894077 0.0623495601 0.0647959667 0.0463266376 -0.0170960604 -0.2371025418 0.2421901071 -0.0757088802 -0.0959765289 -1.1019265373 1.1086863498 0.0306894230 -0.1885989198 -2.9802004337 2.9863198118 -0.0323073059 -0.4311671345 -10.1014237872 10.1106731422 #SUBSTART -0.2142622169 0.0132640633 -4052.3894773558 4052.3895919643 -0.1841169489 0.3410823540 5.4810937741 5.4965539176 -0.8010173997 0.1515839082 7.4863371212 7.5318875346 -0.0244780853 -0.3729051304 0.8373221513 0.9274942495 -1.2690867166 0.7869083518 -0.0409538738 1.5732526905 0.2654372432 0.1206053163 -2.4895099164 2.5104067362 -0.8244243628 0.9384208203 -17.5886237149 17.6334759232 0.0380115412 -0.0966053111 -3.3781296849 3.3826051227 -0.0821663003 0.2806009503 -153.2040649188 153.2044074941 0.1555363725 0.5610747953 -179.8805043996 179.8838936930 0.3146196330 -0.6417709607 -36.9821936676 36.9893631161 0.1164330153 0.2746600055 -127.7132381147 127.7136627941 0.7372036343 -0.9010700684 -41.9826939987 42.0093125681 0.7772580311 0.1887906058 -33.2915879777 33.3144105848 -0.5695048024 0.1928050554 187.3823155685 187.3839303096 0.0734573508 0.4179464513 22.6073235101 22.6117365829 0.3028687216 0.3416629543 0.7787232019 0.9134290596 1.5113505593 -0.8319323071 4.3801223220 4.7096967225 0.4194522363 0.3437806609 -0.1491879678 1.0939529076 0.3345456002 -0.9500052286 -2.0978704344 2.5091515788 -0.6172043868 0.2847387002 -0.5154442234 0.8643956934 -0.8303424704 0.3742602810 -0.7734765596 1.2030316493 -0.3334019759 0.2243061588 -0.1255667925 0.4435278285 0.1542546701 -0.2325117203 -150.9195177596 150.9205828837 -0.1984983628 -0.0696492444 567.8250587967 567.8251149164 -0.9787689728 -1.0768889568 2809.0842232381 2809.0846036394 0.0751778353 0.0156020723 -766.4294671890 766.4294710348 0.0002771890 -0.0398063977 -73.8241060446 73.8241167771 -0.2345572194 -0.7000360590 31.3789857004 31.3915506486 -0.3991794306 0.0554905345 25.2952496033 25.2988449478 -0.7810930341 -0.1422369735 46.7683150621 46.7752617440 0.6595146577 -0.6449841753 29.0325613258 29.0475482802 0.7786390580 0.2869091319 43.8005611855 43.8086433890 0.2748563098 -0.6668204914 10.3376283300 10.3636979324 0.6986057413 -0.3500814092 33.0472913153 33.0568230482 0.4251002412 -0.0302754031 5.8322071401 5.8494227685 0.1062065675 -0.7580672647 4.7481906731 4.8115216165 0.2952296778 -0.4778352981 4.0688798498 4.1074651997 -0.5263913334 0.2164774596 2.8845559743 2.9434831884 -0.0769586966 -0.0567339403 2.7654375052 2.7706074715 0.1379027186 -0.1141707228 0.5065561166 0.5550954854 -0.8726849001 0.2137649406 2.6927923968 2.8813271659 -0.0918375192 -0.1729541914 1.5346804728 1.5534063283 -0.2203864170 -0.0817215438 2.9499468440 2.9625858217 -0.3551147278 0.3708696564 2.9889505888 3.0359440343 -1.0459156336 0.0040836953 2.6311543444 2.8348561089 -1.5283196276 0.7886132457 3.5044160488 3.9061596695 0.1151987804 0.3441067308 6.1560094671 6.1682746814 -0.8178740981 0.8177424866 0.0176158427 1.1650797902 -0.0636272772 0.2193219190 0.0865768814 0.2442254920 -0.3471227420 0.5552574145 0.1029821892 0.6628803253 -0.0068387142 -0.1470876131 0.3060198320 0.3671640729 -0.0470609980 -0.0458981367 0.0811723593 0.1743276034 -0.1917391855 0.0990101391 -0.4748117059 0.5399007908 -0.4672032006 0.1536159150 -0.7743450150 0.9278828952 -0.0811736973 -0.1042054678 -0.4389334731 0.4583781654 -0.1017957626 -0.1055507787 -1.2583733674 1.2668886597 -0.0724376051 0.5138857828 -1.7119926685 1.7889227768 -0.0127717754 0.0411112357 -0.3423721493 0.3450680231 -0.2620316128 -0.0353048502 -0.6591978746 0.7238291383 -0.7342559869 0.5751432716 -1.1501172577 1.4873369250 0.1816369233 -0.1777653324 -2.1507934724 2.1702499467 0.0140842898 -0.0434922026 -0.0256150391 0.0524029497 -0.1630247878 -0.0488821470 -0.2199504020 0.2781091963 0.2159666297 1.3728867402 -18.5819665179 18.6404018256 -0.4416353882 -0.2335946613 -17.7741681190 17.7880381595 -0.3401619610 -0.4440599956 -22.2200284321 22.2325483002 0.5674328646 0.2606919689 -151.4983984006 151.4997496305 -0.0256828270 0.4543719973 -100.3340467302 100.3394779664 -0.0130984943 0.1238780061 -5.4761588003 5.4793532759 0.0822611120 -0.3674394559 -5.3511531949 5.3661996743 -0.0504505120 -0.1856302933 -16.9289668270 16.9306349992 -0.0279085727 -0.1164727332 -2.2210426981 2.2286442600 1.6550133296 -0.8691234076 -22.0829678949 22.1623869529 0.3692557119 -0.0516618026 -4.5427017861 4.6535479833 -0.1410738018 -0.5215517757 -1.1836264478 1.3085753418 -0.0183550294 0.1334025852 -2.6645425280 2.8285529560 0.0941597940 -0.0594795524 -0.1378777335 0.2255968489 0.0473134594 -0.2092443407 -4.7923816861 4.8225081589 0.8271538542 -0.4794459277 -7.8663026118 7.9254178730 0.0308049354 -0.0262407001 203.8191809648 203.8191849818 0.0796073783 -0.3185386069 632.0585518261 632.0586371063 -0.2305720301 -0.1609910715 1989.7929685798 1989.7932096682 -0.0433529407 -0.1098849443 131.1606952020 131.1608226562 -0.0631824116 -0.0915330261 3.8096788654 3.8138567297 0.2140283746 -0.2389081709 27.4985053886 27.5164219267 0.0355894741 0.0040200710 1.1278710227 1.1370380822 -0.1227579543 -0.2076378359 1.6487059451 1.6662575670 -0.0092478346 0.0196532264 0.0816583254 0.0844976560 0.2082376013 -0.0030777195 0.6964310486 0.7401813030 0.5884444653 0.1092300346 1.9713629418 2.0602111391 0.1577740998 0.0516424744 0.8295784672 0.8460260310 0.2926759906 -0.0564000436 2.0072887188 2.0340914399 0.3493031772 0.7075012839 2.7635907752 2.8774093442 0.2606424676 0.0934350716 0.5974011019 0.6730768678 -0.0324068858 -0.0716933180 0.2777851439 0.3206782018 0.3028338049 -0.0324254342 -0.3105516234 0.4568170507 0.9128661166 0.0777442689 -0.6865071179 1.1533171836 0.5395256615 0.1282431076 -0.4480876633 0.7264960929 -0.1416095402 -0.1082945956 0.0023745992 0.5286417018 -0.8665977122 -0.5992301787 0.9870215181 1.5270741004 0.1442774215 0.4169936783 0.2644565053 0.5330260127 -0.3742246649 -0.0199635701 0.2598724784 0.4769236143 -0.2527720173 0.1338598592 0.6529703801 0.7264036459 -0.4653704392 -0.4352536942 0.7776039675 1.0149695262 0.1473823526 0.2192189738 0.0956411119 0.3136965469 0.0795304379 -0.1216527421 -0.3353824838 0.3912616459 0.1889208086 0.1134976468 -0.0547504575 0.2270911719 0.1246812128 -0.0232633555 0.0173914436 0.1280197283 0.1845456359 0.2767539105 -0.3017758669 0.4703172094 0.0848930096 0.1624232976 -0.5064470382 0.5563780532 0.5367276448 -0.1215767550 0.4429753584 0.7201141751 0.1623548882 -0.0439059281 -0.4077965430 0.4411177402 0.1297490429 0.0827963403 -0.4738791101 0.4982483909 -0.3478478681 -0.1094824218 -1.4229653124 1.4689502443 0.3275759604 -0.0619942141 -6.6893387693 6.6990956291 -0.0022597869 -0.2273794071 -9.2593559368 9.2631991585 0.1366049792 0.2523606889 -87.8565752950 87.8584534626 0.4645161392 0.0934104213 -239.7622402709 239.7627084441 0.0971414403 0.0826337496 -80.7544289236 80.7545296289 0.0939573204 -0.1400171278 -139.8865610077 139.8866626356 -0.3259000090 -0.1677619538 -69.2592741428 69.2602440776 -0.2392295351 -0.1814690010 4.6364764567 4.6461893744 -0.0893186801 -0.2082737363 3.7969960523 3.8037527255 0.0125904231 0.0087514016 0.2866231406 0.2870329781 -0.2559969967 -0.0542262326 11.0324076825 11.0355106008 0.0009644919 0.1277702098 1.6587126177 1.6636266723 0.0408683800 0.0689104745 3.3270573964 3.3280219045 0.2633995307 0.0088436740 8.8404968536 8.8444243534 0.5974361325 0.1783885440 16.9062108944 16.9177043127 -0.0270295059 -0.0418911001 1.4944879746 1.4953192852 0.0249488222 -0.0273078852 0.1045874078 0.1109355227 -0.0773693609 -0.0736025356 0.1688530029 0.1997866058 -0.4770703865 -0.1029293424 1.0127160514 1.1241816597 -0.4337886522 -0.0028358280 2.2835984518 2.3244359586 -0.6219854735 -0.0202729755 4.2545215494 4.2997942435 -0.0038173430 -0.0162062591 0.1086233990 0.1098920277 -0.1932892211 0.2021088512 0.7365727582 0.7878757128 -0.0990586410 -0.0492853145 0.0839710917 0.1388985270 -0.6139530339 0.0362616713 0.5076970436 0.7975020532 -0.0628880433 0.1994148176 -0.1116331282 0.2370298099 -0.1619390098 0.1216449145 -0.1662816995 0.2620521545 -0.0382634389 0.2413640998 0.1251453102 0.2745579504 0.0160740541 0.0376006803 -0.0296206312 0.0504932488 -0.0422933803 -0.0071904348 -0.0944327308 0.1037206489 0.0600840858 0.1135342853 -0.2021810457 0.2395356060 0.0271600890 -0.0055895242 -0.8427997340 0.8432557766 -0.0068810289 0.0093717095 -0.0011661760 0.0116849247 0.0111172517 -0.0286059541 -11.6071491255 11.6071896993 -0.0118095396 0.0793317356 -5.7654622000 5.7660200632 0.0064438112 0.0213396245 -1.4014557173 1.4016329868 0.2120185137 -0.1867552518 -13.8803223296 13.8831976629 0.2262978941 -0.2073692738 -2.7580412610 2.7750683505 0.0395248568 -0.1501422983 -1.0809556671 1.0920485695 0.0222802075 -0.0540982659 -0.0189633228 0.0615031514 0.0185755522 0.0599987725 -0.1262324391 0.1409947961 -0.0048896778 0.0138864255 -0.0670563512 0.0686534486 0.4535600814 -0.0091389501 -2.4343897781 2.4762984189 -0.0153727074 0.1055314174 4.5523233379 4.5557107851 0.0851240322 -0.1094761844 2.2283632008 2.2326741120 0.3804294898 -0.4211046710 5.6845440184 5.7128011026 0.0039404872 0.0354900433 0.1713398336 0.1750211678 -0.0611617349 0.3471286594 0.5075539402 0.6179401801 0.3571252576 -0.1056606841 -0.0045633337 0.3724559757 0.0084261000 -0.0429391382 0.0086908299 0.0446127704 0.0012857421 -0.0714624218 -0.0158866379 0.0732182773 0.3341160423 -0.4300538334 -0.2733248635 0.6093326763 -0.2184034297 0.0135086664 -0.0493195402 0.2243099624 -0.0507886455 -0.0075605129 0.0573712055 0.0769941756 -0.0225136518 0.0962688089 0.0199552211 0.1721991400 -0.0516983653 -0.3739032857 0.1051091453 0.4159376219 -0.0054563615 -0.0077923311 -0.0639071514 0.0646112707 0.3311188890 -0.2832191460 -0.6048696012 0.7454663224 0.0447253877 0.0381528752 0.0752386264 0.0954822135 0.3740579866 0.4357205843 0.2128131282 0.6124224298 -0.0196772643 0.0669149995 -0.1741041969 0.1875555471 -0.2169439031 0.0280849857 -0.5426696465 0.5851015029 -0.1276083777 -0.0348945017 -0.0960563367 0.1634880550 -0.0559296581 0.0836116204 -0.0802221741 0.1286647851 0.1816977651 0.1657535405 -0.8403280867 0.8755795836 0.1175327548 0.1368908195 -1.1620661147 1.1759892431 0.0718481941 -0.1126042017 -0.6923306873 0.7050983263 0.0282183295 0.0290090132 -0.5314909197 0.5330294501 0.0344280690 0.1367449449 -21.8542400785 21.8546950077 0.0668483309 0.1737489540 -12.9298244750 12.9311646170 -0.0474111991 0.0906996749 -16.6008405636 16.6011560342 0.0457603527 -0.0144310197 -13.2939866196 13.2940732098 0.0118344508 -0.0114579596 0.0098860163 0.0192112567 0.0129232019 -0.0779379675 1.0831326396 1.0860099681 0.0045451702 -0.0331871098 0.3288454797 0.3305471106 0.1423345922 -0.1084272932 0.3982023751 0.4365555469 0.1664433983 -0.1877712394 2.2912968601 2.3049951723 -0.0166366521 0.0061388556 0.0911397073 0.0928488556 0.1562239676 0.0747468229 1.1616312901 1.1827341436 -0.2041257654 0.3799263403 2.4355919046 2.4774178216 0.0085726273 0.2510258181 -90.1610473121 90.1615051985 0.1779302075 0.4225690632 -55.5105256193 55.5125945897 0.4039338021 -0.0390360447 29.9089157976 29.9263810227 0.1066803599 -0.1067447791 4.4508974248 4.4556416842 -0.0562812811 0.0003622653 -2.9429701741 2.9468153903 -0.3736738183 -0.2112368471 -29.9858391721 29.9892361318 0.1562463932 0.0052486027 -0.0188005144 0.1574609239 0.1766624141 -0.0470864773 0.1178388124 0.2175148974 -0.0152206210 0.0990728214 -0.1031065999 0.1437986863 0.0899580254 0.0142203191 -0.1026570936 0.1372338977 0.0220188071 -0.0692366043 0.1510330259 0.1675992546 0.1270289206 0.0246454779 0.4175375584 0.4371285382 0.0461778066 -0.0572841603 0.0351547472 0.0815458220 0.0672773548 0.0361242286 -0.0613810249 0.0979736320 -0.1356212796 -0.0879092012 -6.1407699502 6.1428964455 -0.0961168149 0.0208643146 -7.7482046363 7.7488288694 -0.0385117139 0.2647368197 -12.0006091307 12.0035906396 -0.0182642243 0.0420581511 -0.6645290926 0.6661091388 #SUBSTART -0.0799108353 -0.9455238996 2779.1584552750 2779.1587756510 0.9206109935 -0.6259202699 -21.1638605615 21.1988663756 0.0989462328 0.2293728293 -3.9692727930 3.9795739147 1.8800296894 -0.6806842246 -23.8433067634 23.9274026974 0.2719983479 -1.1647432499 -19.1545774821 19.1923924575 -0.1719675040 0.3950528715 -1.6234428973 1.6854335405 -0.6788119863 -2.4288268935 -28.5094443726 28.6211090632 -0.2642169144 -0.5302064976 -1.7526611869 1.8553249120 -0.1472174349 -0.7488612564 -1.0147150121 1.2773380505 0.4125205041 0.5734020899 -1.3131016937 1.7616894658 -0.2614297700 0.1008168208 -0.1159766478 0.9872952566 0.7368048413 0.0719889144 0.2141070921 0.7831892554 0.1587919404 -0.9503792531 -0.7634560552 1.2372471613 -0.1221600489 0.3701228916 -0.1011386671 0.4261723212 -0.2983325165 0.0202834878 9.8486424101 9.8541692099 0.5570105785 0.5883216753 288.5057910349 288.5084542859 -1.1001086686 0.0317730097 -333.3195640414 333.3214102052 -0.6670238582 -0.0570738974 -420.9775906017 420.9781460442 -0.2228359817 0.6395519502 -215.2271361404 215.2282469695 -0.0393600161 0.5494134211 -333.6672634838 333.6680832295 0.2304138583 -0.0928085944 118.1788339942 118.1791774721 0.1666920003 -0.2384955829 93.1262763521 93.1268355167 -0.5069387845 -0.0452023916 69.8677671670 69.8713643780 0.3883285872 0.1209483080 23.5356182185 23.5443070289 0.6115610613 -0.0391639572 0.8891500823 1.0888564648 -1.5049917253 -0.7867003230 1.7726374751 2.6280204913 0.6449101219 -0.7816797148 0.9125459630 1.6553014738 0.1385533279 -0.1256206822 0.1682968578 0.2877172183 0.1227710073 0.0840671586 -0.2434915720 0.3176600981 -0.1803515573 -1.0866665437 1.4729945366 1.8446039009 0.0661100132 -0.1664739812 11.2443419105 11.2466345591 1.7636245714 -0.7094415418 44.4700462106 44.5108769706 0.1989259961 -0.4427521816 70.2892545898 70.2910690744 -0.4541332506 0.6216566067 44.7101802665 44.7170257642 0.3128294777 -0.0321348846 0.4516536975 0.5677726484 0.4413222625 0.6003184411 -20.3002008110 20.3143491237 0.2412124939 -0.2402749072 -81.2277963088 81.2286297340 -0.1422386869 -0.0991655084 -151.2852458679 151.2854096161 0.7369303548 0.6728819731 -2866.2023657756 2866.2026934964 0.3880992057 0.0406014380 -10.8638992844 10.8718009969 -0.1495814528 -0.3184974964 -27.9643678341 27.9669298174 0.2525252797 -0.2992691960 -4.6880938371 4.7064885721 -0.0402013889 0.0003581829 -1.3603103458 1.3680425073 -0.1461553154 -0.8807085459 -9.8486305494 9.8899955714 0.1103672695 0.1888951222 -2.8344956547 2.8463498912 -0.0077301276 0.0070167693 -0.0160419832 0.0191398838 -0.4959795548 -0.1957474697 -3.4842598391 3.5248233171 -1.2019346657 -0.9174859801 -11.2544119828 11.3942339425 -0.4266884666 -0.3193275713 -6.1626244067 6.1872007005 -0.5499778730 -1.3540484181 -12.9981909229 13.1137043066 -0.0635058872 0.0105776156 -0.3076033124 0.3438669312 -0.3642963845 -0.1779341167 -1.8549966664 1.9039077769 -0.0277460430 0.0434793027 -0.1937959329 0.2005421559 -0.3187950271 0.3387944074 -0.7079097763 0.8470821514 0.2880289865 -0.0661064257 -0.0344827102 0.5763339083 0.6643163420 0.1408241044 0.2010347024 0.7218326448 0.4747983722 0.3482570767 0.2531617925 0.6559627763 -0.2794264151 0.0733491864 -0.2427439299 0.4023227871 0.3238565663 0.3861667927 0.1042259359 0.5332454388 0.3747555465 0.0803009658 0.0502173854 0.4109641535 0.2902554824 0.6463922375 1.2210180813 1.4186035773 -0.5110313129 0.2632622922 -0.8084714962 1.0017814045 -0.0116068776 0.3964015392 -0.1808842256 0.4358761326 -0.0286978438 0.0088087966 -0.0008588793 0.0300316302 -0.5092992279 -0.5508714441 -0.5713926760 0.9533175895 -0.1321754785 0.1342725956 5.9677137505 5.9723183672 0.1465787494 -0.0444265728 65.1656470939 65.1659765522 0.1356401684 -0.0529533204 19.6396925445 19.6407282283 0.6284830891 1.5371217325 317.9857341237 317.9914545880 0.1852583370 -0.0795923850 -11.2846444135 11.2864456380 0.4262631396 -0.1796548485 -85.8724997781 85.8738590844 -1.0928848583 0.4646397112 -75.5030259832 75.5124936668 -0.2150613753 0.0248481537 -33.2981866669 33.2991829316 0.2658471799 0.4482778332 -67.6668890024 67.6688960675 0.0233390639 -0.0045920856 -4.4716017027 4.4716649681 0.7134918384 0.1737064953 -132.6093495593 132.6114561977 -0.1149350539 0.1887568768 -330.2631191304 330.2632225616 0.0688286058 -0.1418063151 251.8699828150 251.8705158024 -0.0364345314 -0.2282604204 336.3064911921 336.3065995904 -0.1220050853 -0.2144828032 49.2263628202 49.2294558733 0.2823307230 -0.1144488812 52.0267488879 52.0278280232 -0.2189554070 0.1809468045 0.8768051643 0.9321750358 0.0930259137 -0.1570687620 1.3891064494 1.4079847049 -0.6570073663 0.1990448690 13.0254507554 13.0772319515 -0.1680191081 -0.0809235097 0.9039187975 0.9334495233 -0.0767064702 0.1705495426 1.8810198357 1.8954383230 -0.2949964308 -0.3913331538 0.4297666345 0.6665910864 -0.0553091196 0.0731885402 0.3993957218 0.4329115252 -0.2015971165 -0.2296847072 1.1696262190 1.2169230622 0.4002530472 -0.6474377991 0.4407174080 0.8905559074 -0.1440235733 -0.8704552900 0.4647400615 1.0069251766 -0.0854034983 -0.1712295631 0.3257331481 0.4027346390 0.3127265734 -0.5791176120 0.6646066838 0.9457044714 0.0731159930 -0.0860281270 0.0906140103 0.2010907030 -0.0680747921 0.1832607360 0.2968064692 0.3818278928 0.0848716533 -0.1495416066 5.6217148731 5.6243438732 0.4273409205 -0.6492938636 6.3515674934 6.3989540088 -0.0564082277 0.5178513292 3.0930877546 3.1397489597 0.3858638780 0.0818409207 4.3403522358 4.3604731606 0.1362416054 0.0721612747 1.7915199739 1.7981414965 0.1677065325 -0.0598861856 1.8433317541 1.8519135488 0.1606888923 -0.2716750238 36.0513707817 36.0530226647 0.2206733591 0.0829757962 66.0367585106 66.0373268394 0.0736080783 0.0449905902 6.5713328280 6.5718990740 0.8382525396 0.4653913276 45.9488278966 45.9588298533 -1.0644723654 0.3192295631 102.1551941260 102.1613340537 0.4213528730 -0.6006837482 44.7254184478 44.7316542766 -0.0368627276 0.1157488682 29.8168302320 29.8174043393 -0.1439645912 -0.0798302692 21.4231433668 21.4237758201 -0.4640050805 -0.0856268113 87.9686619861 87.9699273860 -0.6053471397 0.2432703678 34.6275273661 34.6339538156 -0.2338232311 -0.0609424090 8.6780302195 8.6825155085 0.0942800261 0.7037099875 18.9028191092 18.9166631976 -0.8227535215 -0.1059587418 40.2949115459 40.3143998950 -0.7489089332 0.1100931653 29.4015316832 29.4154158796 -0.7271755111 -0.2309875392 15.3448359927 15.3644268001 0.1193783781 0.0134494735 0.5693574096 0.5983976356 -0.3904781613 -0.2296288581 0.6488968677 0.8035854259 -0.2776178911 -0.0283060508 0.3227889573 0.4489381047 0.2218796029 -0.0455508355 -0.0296894448 0.2677063406 -0.1134476473 0.2661843714 -0.0886696369 0.3332665264 -0.1108571409 0.1143393419 -0.0060437214 0.1593716328 0.0324535745 0.0888906491 0.0233734656 0.0974735908 -0.8159829411 0.1671532106 -0.3659836481 0.9097870007 -0.1077221596 0.3317448940 -0.2065456203 0.4053638262 0.0054873597 0.0630309091 -0.0198947794 0.0663235167 0.2371322143 0.3260399460 -0.4446520137 0.6002075864 -0.0353798222 0.3723894946 -0.6000737409 0.7207592850 -0.3279717163 0.0506917039 -0.4186434679 0.5521568922 -0.0365174917 -0.1609858339 -0.2292479789 0.2824970827 -0.1585435001 -0.1482394811 -0.1727435157 0.2774009867 0.0770765184 0.3138724596 -0.4334561709 0.5406856413 0.0740953736 0.3099059312 -0.6942321252 0.7638652069 -0.6434029687 0.4412526157 -1.4654223405 1.6601608016 -0.5038128901 0.0022414855 -1.8709649161 1.9376124922 0.1713137528 0.4417987748 -0.6664273937 0.8177163508 0.1327035161 0.6070688632 -1.1005528513 1.2638668468 0.2221577460 0.1015578121 -15.2335032940 15.2354616162 -0.1104588418 -0.0004082762 -34.4037375258 34.4041979539 0.5070705066 -0.0572918686 -47.7853747099 47.7883031589 0.2523656975 0.2498832584 -122.2020341498 122.2061621696 0.3752695801 0.2230778764 -200.1358290802 200.1385106980 0.0412018538 -0.2130877438 -89.4451508143 89.4455230180 -0.4046127874 0.1168170630 -3.7425999970 3.7688051497 0.0173224392 -0.0781860199 -2.6694834421 2.6743288417 -0.0039970851 -0.1184762703 -1.6976667817 1.7018005479 0.2153864448 -0.3052401230 -4.9590799203 4.9731314591 0.0340432783 -0.0145367706 -0.9573335118 0.9580489107 0.0248734174 -0.2348326471 -2.2676924767 2.2799548741 0.0429530787 -0.1000636099 -2.5905802710 2.5928678782 0.2631993921 -0.1558223389 -4.8749697336 4.8845557039 -0.0048911180 -0.0186228310 -1.0456701768 1.0458474322 0.2406553761 0.0871500153 -6.6811927915 6.6860935720 -0.3499602329 -0.7175420980 -5.4171899247 5.4756995450 -0.1016750115 -0.0862186957 -0.9512210787 0.9605170545 -0.1301707423 -0.4549447088 -1.6743581572 1.7399409038 -0.1411654775 -0.2017079647 -1.0895526349 1.1170222644 0.4457023104 1.5874126373 1.4438650717 2.2474321358 0.0092373177 0.0563992149 0.2939289063 0.2994334675 -0.0852576752 0.0697392184 0.1388864120 0.1772621369 0.4026282448 1.3468360272 0.8739855515 1.6611463863 0.3564036213 0.0633905346 0.2359817474 0.4541024897 0.0089254977 0.0631119586 0.0682260786 0.0933679904 0.2013344182 0.3613057148 0.0833209565 0.4219238666 0.1330416143 0.3451070868 -0.5880604058 0.8545697410 0.0172731545 0.3584073418 -0.0297852795 0.3600574223 -0.0035898507 -0.0067907924 0.0152830765 0.0171048039 0.0557006260 0.0871143528 -0.8691871914 0.8753158538 0.0633957964 -0.0292576360 -0.2431137281 0.2529413392 0.0025349339 0.0448095923 -0.0889181418 0.0996030190 -0.0261714137 0.1762920434 -0.0093697504 0.1784702208 0.3543394371 0.1667147710 2.4879143839 2.5185448642 0.1965890554 0.1876294963 2.2457706121 2.2621533384 -0.0909742670 0.1833930937 19.0328598254 19.0339607669 -0.0280687453 0.0832697482 21.3364989993 21.3366799492 0.0821457670 -0.0305187131 4.4965119234 4.4973657619 -0.0289164112 0.0405384991 5.1769241553 5.1771636287 0.0267417808 0.2807673724 -43.6815706084 43.6824811138 0.1097720716 0.1703091814 -42.6622752050 42.6627563665 0.0040856809 0.1371818239 -10.5501208037 10.5510134356 -0.0419821364 0.0746048048 -19.2261285348 19.2263191176 -0.1571306479 -0.6331822160 -232.2231121386 232.2240285180 0.0245948174 -0.0726385924 -33.9904999742 33.9905864875 0.0835080533 -0.0411652288 -77.9257446910 77.9258003091 0.0925292911 0.0999769912 -105.4975726390 105.4976605892 -0.0428097952 -0.2354149965 -391.2767293430 391.2771190009 -0.0723368913 -0.0545505226 83.8887718639 83.8888207881 -0.0138969202 -0.2226353690 132.1371650631 132.1373533508 -0.2138015673 -0.1509608617 2.3268186182 2.5229698688 0.3622205292 0.4128540894 1.2262726042 1.3436505166 0.0075634036 0.0578611248 0.0748489629 0.0949077557 0.0240375957 -0.1985177758 0.3501757996 0.4032495554 -0.0047318279 -0.0857233793 0.3634152196 0.3734190273 -0.0039338748 -0.0336301753 0.1449557498 0.1488586361 -0.2613091544 -0.1916906165 0.0840059529 0.3347906312 -0.0021070413 -0.0123330385 0.0457025608 0.0473842540 -0.2635863447 0.2562528666 2.1336111161 2.1695436092 -0.2129196626 -0.1481752280 2.2503469389 2.2695444061 0.0026227545 -0.1581032268 0.0193982628 0.1593103944 0.0547292786 -0.0316933816 0.0758740410 0.0987756775 -0.0083738512 -0.1402749299 0.0395162228 0.1459750294 0.1644861172 -0.6735558540 0.4329699238 0.8174326431 0.0086328734 0.0281334747 0.3542626270 0.3554828094 0.1935499165 0.0611291808 0.6060826855 0.6391670897 0.1652150214 -0.0973653132 10.3685982044 10.3703714847 0.1644037048 -0.0753690236 19.7503813147 19.7512093590 -0.0131488860 -0.0035294431 0.0514945953 0.0532639045 0.0115789246 0.0888776940 4.8605690306 4.8613953365 -0.1493534648 0.1615105664 17.0778843606 17.0793011085 -0.0144510465 0.1360450618 6.7497157594 6.7511021266 -0.0405016547 0.0832403075 5.9354938856 5.9362157137 -0.2191942739 0.0330186113 16.4311650853 16.4326602356 0.0380413109 0.0558848526 0.6765287670 0.6798981031 0.0935757232 -0.0233103885 3.0678403600 3.0693556758 -0.0914750333 0.6898058757 9.7089054984 9.7789261372 -0.0639123368 0.0275961699 0.8607485362 0.8747652044 0.0410981851 -0.0095704130 0.4310256363 0.4330863109 -0.7075040229 0.0546515489 0.7821227770 1.0560609700 -0.0939281609 0.1255094994 0.0280497288 0.1592542657 0.0327700087 0.1612413466 -0.0022568297 0.1645531483 -0.1497038515 0.2423153700 -0.2029323316 0.3497277697 -0.0683450386 0.0641843072 0.0095354096 0.0942422073 -0.3130310851 0.3835024487 -17.6822710529 17.6891993086 -0.1867396630 0.4353485971 -16.7091717222 16.7158852516 0.0290550015 0.3418836569 -48.2399611685 48.2411813928 -0.0477831894 0.0553136116 -7.2413867307 7.2417556305 -0.0892831778 0.1584026457 -3.2532855841 3.2583630823 -0.0155788244 -0.0190807147 -1.3260187944 1.3262475699 -0.0333814551 -0.0827739741 -4.9503152751 4.9511197900 0.0036968710 0.0520286306 -2.6113932687 2.6119141351 0.0579793025 0.0762842827 -4.5846119603 4.5856131235 0.0312644996 -0.0438184656 -1.0107953343 1.0122276102 -0.1467479272 -0.0512067586 0.5495087533 0.5710665077 0.0124921620 -0.0524702446 0.0993536796 0.1130501408 0.1880413720 -0.3179714008 1.0837835413 1.1534868523 0.0935552445 -0.0133970296 1.6702850763 1.6787686217 0.2678279762 0.8570988359 -0.0111913703 0.8980398021 0.1940917722 0.3772493212 -0.0627191283 0.4288616973 0.1870214831 0.2998829157 0.0484846952 0.3567317815 0.1826713842 0.1297990004 0.0947431530 0.2432958695 -0.2459194989 0.2206222223 702.9726837095 702.9727613445 -0.0325734456 0.0890530233 360.7484548306 360.7484672929 -0.0583974132 -0.0800890923 204.5949041748 204.5949281845 0.0488220524 -0.0115910783 41.6286833172 41.6287135601 #SUBSTART 0.3427342115 0.2873884881 2762.8243896279 2762.8244293587 1.0465573566 -0.4282709796 1372.3460670936 1372.3468537204 -0.4049533038 -0.2280589205 117.9630390915 117.9640371874 0.1406675994 0.7590017056 9.5514344989 9.6285286381 -0.2947323301 0.5278422044 34.5648395732 34.5704078519 -0.0072282568 -0.6129783650 28.7257555942 28.7476541820 -0.3835839675 0.1330811641 29.3149578793 29.3219242834 -0.6737165377 0.2501334482 0.5026629304 0.8880374550 0.0867214777 -0.7347657130 1.9891858624 2.1269088950 0.0950660433 -0.6542487503 -0.2752857329 0.7296170224 -0.3646744434 -0.1687797384 -0.2261958697 0.6754847010 0.4131002042 -0.0021718445 173.8803304556 173.8808771994 -0.0114398907 -0.1086356575 -4.5226852397 4.5261566631 -0.1713059709 0.0458797677 -0.7004706274 1.1852854397 0.5511135102 -0.6288120983 0.4331458441 0.9519589610 -0.7412514169 0.3715097812 -0.6026648909 1.0344843818 -0.0055642603 0.0639107617 -3.7544941414 3.7576351059 -0.0076013747 0.5501336846 -6.5333900406 6.5580004619 -0.1292389870 0.3074533973 -82.3183330486 82.3191269754 -0.5647502607 0.6666143574 -3630.1680758661 3630.1683025924 0.0135314117 -0.1293240441 4.7737003294 4.7775100656 0.0399682861 -0.8301912176 195.8459402520 195.8477536452 0.0751585002 -0.0331918544 67.9440444530 67.9442374813 0.0601631722 -0.1563285828 21.4217371095 21.4228466551 0.0036633105 0.0002991783 0.0077965673 0.0086195019 0.1343139684 0.2113779413 11.7166121311 11.7192884045 0.5462683293 -0.7672930528 224.1963710439 224.1983495412 0.2376151702 -0.2169606531 86.6660072011 86.6666045088 -0.0665840117 -0.5116262837 31.0658373513 31.0704349021 -0.0064568486 -0.2779312608 4.2928681454 4.3041240892 -0.0374937103 -0.1482495408 3.5187978215 3.5248832035 0.2149157902 -0.0323557191 11.5483142507 11.5512024269 -0.0725197457 -0.3839567041 5.0402294422 5.0572793554 -0.0414612402 -0.0386137258 1.1294620361 1.1394622987 -0.6074297295 0.3728556960 13.5657629626 13.6168376504 -0.1392136894 0.1499072624 1.9494595406 1.9651272030 0.2359151935 0.0180823702 2.7768447582 2.8302810323 0.2891581607 0.4921904312 1.5835325456 1.6890586048 -0.5096402479 0.2400293043 2.5433040239 2.6520592067 0.0533709949 0.1155201600 0.5910193115 0.6204651335 -0.8577368601 -0.9297966826 32.6544510480 32.6792424548 -0.3927584470 -0.1691945428 25.8210899445 25.8250082613 -0.3476691479 -0.5482953623 24.2035252187 24.2304545240 0.0860945911 -0.2593578041 9.6511684431 9.6560453008 0.0361075568 0.1417067236 2.0100517089 2.0153640921 0.1465597713 0.0717938683 2.8626581563 2.8673063746 0.1252003006 0.6900336264 -0.3883436150 0.8016434895 0.0299439992 0.6179076553 -0.4586229502 0.7700918932 -0.4770738066 0.9051244713 -4.8239310311 4.9332180272 0.1203637682 0.6497040176 -32.4559226333 32.4629480564 0.1408993573 -0.1673386530 -7.0308075960 7.0355945087 -0.5401134941 -0.4292467222 -29.6165226010 29.6248859254 0.2585860397 -0.1157496748 -10.7260011637 10.7306498161 0.1838214949 0.2133291042 -44.2075345523 44.2086517621 -0.5207070431 0.6081982910 -61.9552474730 61.9605778718 0.1216784498 0.5142957916 -161.9051122605 161.9060349761 0.2256764769 0.0193052124 -61.1283016153 61.1288805780 0.4364724401 0.4316447473 -175.8258707616 175.8269977399 -0.5882204236 0.4931288276 -320.7240592466 320.7250081280 -0.1428541720 1.4820730802 212.8157499015 212.8209584464 -0.0815200037 0.6768592211 111.1660382357 111.1681287103 0.1628578095 0.1792924676 75.7420813072 75.7440769312 -0.2835980228 2.8900214398 519.7906022510 519.7989520148 0.2472015518 0.0089663126 1.5132484796 1.5396719611 0.2657238644 0.1711112786 13.3785032891 13.3829637331 0.1428619587 -0.4320135728 1.7257279610 1.8517081902 0.3817806870 -0.1416244033 0.1578497596 0.4584869639 0.0480934351 -0.2527893561 -1.4577980112 1.4868995472 0.4918018433 -0.3951184888 -0.7161098638 0.9645106506 -0.1104938824 0.1069748430 -1.0200889624 1.0410157498 0.5654201214 0.5509289637 -5.7554153195 5.8109816659 0.1305022814 0.1181095347 -1.3848426156 1.4029431786 -0.2272103374 0.0341552564 -5.6427970274 5.7250974835 0.0515448338 0.0099387214 -0.3586079392 0.3624297202 0.9811697586 0.8393341779 -8.0927383541 8.1950954860 -0.1593149826 -0.0361199851 0.1224563730 0.2041604278 -0.0438614263 0.0444819997 -0.0122131777 0.0636524526 -0.2668638836 -0.1822766879 -0.2104829599 0.4101511729 0.0771582264 0.4775604939 0.1794423975 0.5345061049 0.1403523728 -0.6434188758 1.6553018928 1.7869501334 0.0300196911 -0.0503811116 0.8014616892 0.8156347604 0.2174349022 0.2344617884 0.9796916563 1.0399643231 0.3148802613 -0.6046272522 0.9073756026 1.1434745131 0.1003237111 0.1924448242 1.0528942689 1.0840507293 -0.0807484241 -0.2164112780 0.4533342857 0.5275849777 0.0725321981 -0.3184870228 2.1707370469 2.1996076958 0.4812598898 0.0212726595 1.1488614687 1.2535653420 0.0811839514 -0.2410980898 0.6376188082 0.7005402575 0.2318856645 -0.0148910504 1.6584630061 1.6804678016 0.5384749661 -0.2799051100 -0.2720583012 0.6650698301 0.0119727992 -0.0193939310 -0.0439995497 0.0495523244 0.3047328089 -0.1252600471 0.4576335660 0.5809134444 0.1285182994 -0.0496845313 -0.1056782644 0.1736473481 0.1058940959 0.0818613694 -0.1293171045 0.1861122158 0.1922488996 -0.0931589461 -1.0417465688 1.0725455362 0.2369662934 -0.0107733493 -2.6218928897 2.6362987690 -0.0545904104 -0.3278539586 -1.1594864781 1.2142310360 -0.3647731938 -0.1909646722 -7.7591338001 7.7713038868 0.3931371315 0.0125474283 -8.2510921943 8.2616412671 -0.4145396482 -0.2454427565 -6.8849141765 6.9031592962 0.3446552950 -0.0876780193 -66.4679284674 66.4690263901 0.2608514254 0.2922587610 -162.2666308947 162.2671637774 -0.6254716219 -0.1058668316 -1077.0937460814 1077.0939328908 -0.2075903843 0.0304796577 -434.3625551762 434.3626058513 -0.0824102021 0.0022395463 13.1874797046 13.1877373881 0.2074576996 -0.1332647366 21.6038392085 21.6056970848 -0.0213761632 -0.3170262685 29.8895436326 29.8915583560 -0.2092413002 0.3556256842 27.5733176639 27.5767579372 0.3029471678 0.2985969581 40.2698706199 40.2751419343 -0.1339462321 0.0455984883 45.3205277032 45.3207485829 -0.1761968469 -0.0889598286 50.3563529119 50.3567397452 0.0436770341 0.0221419026 5.6511523214 5.6513644818 -0.0947974411 -0.0093641351 8.9655865321 8.9660925774 -0.0890158372 0.0194841588 6.4086548962 6.4093026946 -0.3272842509 0.1673654757 13.1167291415 13.1218790405 -0.0501883010 -0.0885686251 3.0052793106 3.0102403204 -0.2475447530 -0.3097018602 5.0392358485 5.0567352481 0.0066214608 0.0291068650 0.5052564152 0.5250284595 -0.6938998983 0.0725432815 2.7361080483 2.8271056990 -0.0628685198 -0.5174622376 6.2236129485 6.2652017669 -0.7006467615 -0.1821782765 30.8319504413 30.8404484861 -0.0800648665 -0.0673931008 5.5141975970 5.5151905998 -0.0128072372 0.0080912000 1.6543627836 1.6544321420 -0.0025915817 0.4904418360 16.6370961923 16.6443236457 0.0091144927 -0.0148645155 -0.0760029034 0.0779773629 -0.3412189236 -0.0355960977 -2.3030656386 2.3284777799 0.0047467969 0.0154538321 -0.2452425122 0.2457747806 0.2845936248 -0.1741846432 -12.5476440857 12.5520797449 0.0550366518 -0.0441084759 -1.1070785442 1.1093229889 0.1820670968 -0.1210783993 -9.6827846751 9.6852530928 0.0975800613 -0.2681382807 -5.4022090284 5.4097395864 0.1038570456 -0.1042221137 -4.5627087742 4.5650804914 0.0422596223 0.0146128360 -11.8087477701 11.8088324278 -0.0784397008 -0.0652366207 -19.0159417908 19.0162154698 -0.1712985220 -0.1714715574 -39.1960108407 39.1967602169 0.0155100131 0.0080834741 -5.2325022558 5.2325314868 -0.1147190137 -0.0360883320 -185.8909256974 185.8909645988 -0.1390297075 -0.0587886196 -89.3382468582 89.3383743811 0.1362506460 -0.1939444686 30.3942750815 30.3951992332 0.2098800095 -0.1142238662 42.8698202849 42.8704862110 -0.1388015284 -0.0948561030 1.2602362705 1.2714004098 -0.2248510597 -0.4056508198 4.0250631725 4.0516964508 0.0202840276 0.0946512183 0.2940661778 0.3095887786 0.0583348137 -0.0291710259 0.1006695875 0.1199510945 -0.0589899313 0.2391889050 2.9471694973 2.9607395993 -0.2697911233 -0.0689611315 1.7951036416 1.8219274840 0.0733009520 0.0841871611 -0.0039237243 0.1116955830 0.0362333111 -0.0455633696 0.0382431592 0.0696520833 0.1166956992 0.1791022221 0.2512425902 0.3581872642 -0.4251776354 -0.1226755490 -0.0640302909 0.4684068478 0.0720900098 0.1404923506 0.0908089744 0.1821574591 0.0800513601 -0.0096068133 0.0158023017 0.0821597459 -0.0373019302 0.0916613970 -0.1485613773 0.1785041414 0.0159376039 0.0551413597 -0.4304732849 0.4342831171 0.2066508512 -0.2607917259 -2.6981813421 2.7186208734 0.2364492994 -0.5970589968 -5.2317123587 5.2709773213 -0.1827887545 0.2479164978 -1.8725420573 1.8977060033 -0.0537564085 -0.0086480478 -0.3482564110 0.3524869756 0.0507230632 -0.3823314884 -1.7225905288 1.7652388864 -0.0483935838 -0.3133642977 -1.0821785803 1.1276744219 0.1131097588 0.0096459835 -2.1215891342 2.1246240413 0.0086919002 0.0326179450 -0.1180909900 0.1228208508 -0.0439283255 0.0220218133 -0.7374281948 0.7390635971 0.0851148553 0.0533067654 -0.6830113680 0.6903554727 -0.0842071091 0.0711040218 -2.1416604532 2.1444943730 -0.0835172712 -0.0129094788 -0.5581162232 0.5644780845 -0.2208879358 -0.0670857942 -2.4172156039 2.4282140061 -0.1180377049 0.0552859175 -1.0069895168 1.0153902301 0.1894842872 0.1628532498 -0.4709752189 0.7293274723 0.0785562627 0.0253139280 -0.0001404834 0.0825342419 0.0458788235 0.0219675309 0.1522494246 0.1605220426 -0.1480473798 -0.1666027673 1.4340161584 1.4512328728 0.0136466306 -0.0249319988 0.0532024320 0.0603186029 0.4157891803 0.0936957899 -0.2568511504 0.4976264231 0.1418266638 -0.0063315000 -0.0135554893 0.1426136099 -0.0768947985 -0.0490942044 -0.1424559040 0.1691648176 -0.1721282834 -0.2010473298 -0.1179303654 0.2897511792 -0.0494563696 -0.0116687747 0.0278507586 0.0579461608 0.0308970720 -0.1586086937 -0.0024388011 0.1616084605 0.0152581226 -0.0065457632 -0.0532151055 0.0557449977 -0.0675980383 -0.0769179437 0.0443643123 0.1115977466 -0.0245777935 0.0627860972 -0.3272350135 0.3341091378 -0.0116127410 0.1533383779 -2.5413722056 2.5460204637 -0.4364987732 -0.2620297104 -1.8384191061 1.9076099072 -0.1477212750 -0.0334517068 -0.7969918973 0.8112562333 0.2555346523 0.1467234791 -2.2179506139 2.2374384156 0.0189246958 0.0865547516 -0.5433150685 0.5504917190 0.0061125039 0.1482128240 -1.0065901670 1.0174616298 0.1248818754 0.2111566166 -2.7734620258 2.7842906113 -0.1137481023 -0.0841268217 -4.7668489513 4.7689479843 -0.0333541496 -0.0105385165 -6.3510020684 6.3510983958 0.1344632671 -0.5925017327 -119.4295122208 119.4310576357 -0.0200196144 -0.0166389467 -6.5099358614 6.5099879078 -0.2741378513 -0.0863519961 23.4493082217 23.4514849016 0.0798598960 0.7685933964 75.8384504232 75.8425154896 0.1287150171 0.1050110676 9.0119864887 9.0135173685 0.1527709096 -0.0231235240 6.6634423898 6.6652335391 -0.0994405619 -0.0826650556 8.4563471291 8.4573357924 -0.0129514207 -0.2067113393 17.0224417157 17.0237016915 0.5854429357 0.3174027102 45.1473895113 45.1523008007 0.1657956342 0.1233707429 10.0405523070 10.0426788838 0.0927732778 -0.4370027253 19.7725632122 19.7776094168 -0.0169854937 -0.1484712213 9.9546088997 9.9557305385 -0.0329998175 -0.0109685452 0.5130544509 0.5142316273 -0.0180198979 -0.3352944341 8.4573842745 8.4640472495 0.0437357113 -0.0158949013 1.3931397333 1.3939167037 0.0594454805 -0.3656573142 13.2904491123 13.2956111798 -0.0645067407 -0.0552828763 3.6764747038 3.6774561267 -0.0155775810 -0.0752306551 0.8029314467 0.8065985499 0.0020224904 -0.2202271194 4.6949328940 4.7000956324 0.0210268069 -0.0032647372 0.1136161000 0.1155915365 -0.1276892243 0.0937364327 1.0290871968 1.0412067592 0.0230400538 0.0079552397 0.0455686626 0.0516781668 -0.4990637786 -0.1258269654 5.8157914437 5.8385209769 -0.0599863419 -0.0479550568 0.5119618738 0.5176900703 -0.1078217834 -0.0623841040 -0.0802077441 0.1481573340 0.0329858889 0.0117336586 -0.0445429971 0.0566553281 -0.0042120079 -0.0089249911 0.0043292746 0.0107767850 0.4437854217 -0.2434170862 -0.4643758283 0.6869077727 0.2447013372 0.1179531108 0.1646735685 0.3469709640 -0.1132821072 -0.1006947007 0.1712834942 0.2679367068 0.1788045206 0.1699117647 0.2930191933 0.4076531576 0.0270992065 -0.2055747302 0.3842812565 0.4584181559 0.0602935964 0.0890158741 0.0768323141 0.1321451781 0.0696528691 0.1329862982 -0.0533073905 0.1593064831 0.0000162854 -0.0528588383 -0.1152939303 0.1268335422 0.0792675213 -0.1091156129 -0.0211254001 0.1365131475 0.0130367070 -0.0499796049 2.1010759148 2.1017107119 -0.1864807060 -0.2650042297 24.2045509852 24.2067199490 -0.1637107915 0.0068238561 8.1876677980 8.1893071599 -0.1285508721 -0.0069016616 2.6288597266 2.6320099586 #SUBSTART 0.3260484276 0.1443906029 -5.3057550225 5.3195556550 0.6186205464 0.0817203591 -78.2905977775 78.2987219675 -0.7599072451 0.1771096580 -112.2761167005 112.2827482688 -0.1481631330 -0.1312790778 -23.0508470474 23.0521195533 -0.4115615697 -1.4964719725 -4264.5040212802 4264.5044069243 0.0799199797 -0.6449725729 -7.4395924556 7.4692297135 0.1809378368 0.5772113412 -0.6019470198 0.8647146539 0.1143057461 0.4126118414 -0.7061900854 0.8375551068 0.2300522007 -0.7189853996 -0.7309861528 1.0600398862 -0.8135268220 0.7136722019 0.8593053895 1.3888986425 0.3713206376 0.1767281088 27.2788590524 27.2823155693 -0.0649795335 -0.0922985236 59.5260993687 59.5336210825 0.2885954493 0.1321377466 498.5660647671 498.5670511344 -0.1180311282 -0.3784124160 6371.5109047637 6371.5109863707 0.6447903198 0.1881748686 -7.1780720931 7.2703971759 -0.1688090965 -0.0064836175 -2.0030408608 2.0149915691 -0.0367754010 0.4402268934 -23.1101199445 23.1334300911 0.0525853584 -0.2685749932 -5.2178610390 5.2268969144 0.0992850750 0.7343014068 -34.8307262390 34.8386071252 -0.1078980360 0.0350607788 -1.4595757168 1.4639783187 0.1263015890 -0.0208764748 -21.2737723659 21.2746153521 0.0741519408 -0.2469562953 -350.8098144236 350.8102564390 -0.3457575266 -0.3410945582 -245.4946260645 245.4951461844 -0.1095519112 0.2058945417 -253.6943227764 253.6944683728 0.3119249131 -0.0329662807 -170.3851771059 170.3855229799 -0.1898485684 -0.0490881718 -455.4940270109 455.4940692202 -0.0804239535 -0.1364898695 -357.5292387848 357.5292738834 -0.0249828328 -0.0420969565 -1.1098413295 1.1109203717 -0.2559603105 -0.0942381352 -15.5886735709 15.5910596242 0.0106798019 -0.2147223863 8.1767793526 8.1807958126 0.6211567452 0.0372860639 8.2574279937 8.2820180397 0.0979146570 -0.0444712584 0.1035664237 0.1493016309 0.0896228367 -0.2514480446 0.3191995074 0.4161089972 -0.1833855654 0.2457970667 6.0898356967 6.0991495359 -0.0246679673 0.0355772294 0.8170795222 0.8182256373 -0.1552690778 0.0204118768 11.1379499768 11.1390508939 -0.0465042889 0.4377709350 -29.0518015758 29.0551369097 0.0276395102 0.6150983044 -32.9136010567 32.9193597202 0.1289215085 0.2235404990 -107.7590174033 107.7593263845 -0.0201653670 0.1503110582 -79.1321813715 79.1323266981 -0.1062699170 -0.0088279903 -84.4314358392 84.4315031792 0.0091966434 0.0664581205 -73.8381696934 73.8382001740 0.0170196905 0.0237950815 -0.1426263995 0.1455958983 0.0215493265 -0.0724665431 -0.0279170376 0.0805923963 0.0311894191 -0.0536085031 -0.0334187139 0.0704518411 -0.1413094252 -0.1588116842 -0.0980622592 0.2341061968 0.0931851403 -0.0866718545 -0.1258853139 0.1790044497 -0.0091060247 -0.0885536137 -0.2477525838 0.2632603369 -0.2640467467 -0.2196076421 4.3273364787 4.3409433538 -0.0951499618 -0.0153574019 2.0366267046 2.0389060054 -0.0056522988 0.2119613037 -104.4483306571 104.4486391313 0.0207884091 -0.1714156509 -48.6718922252 48.6723986264 #SUBSTART 1.0771468473 -0.0914845056 4435.4974162760 4435.4976475248 0.0503660002 0.1691112931 33.5941786821 33.6077783924 -0.2722776120 0.6360577835 82.7171944775 82.7254238951 0.2658122648 -0.1668253108 6.6373624589 6.7106942896 0.1484980589 0.0093941585 0.7420205304 0.9035349197 0.5375719370 0.2039938870 -13.9265427360 13.9699513337 0.1200994880 0.1743946927 -26.6741802827 26.6753858629 -0.2423848976 0.0532717458 4.3786597022 4.3879071196 -0.2509099134 1.0283670552 2.5371427474 2.7526473967 -0.1848163288 -0.0145086192 0.7810500949 0.8147923730 0.0798989858 0.0177152149 0.6381423480 0.8109033809 0.1405868712 -0.3484884657 0.0634771676 0.4058546720 -0.2544897258 -0.6531346083 3.9089237932 4.0806109409 -0.1399340867 -0.5392663281 -3.3629465752 3.4116387812 0.1283099893 -0.1545093473 -2173.2916461948 2173.2918580134 -0.0505030378 0.6710773020 69.5708873693 69.5742822057 0.0695297561 -0.1868442055 62.0716087657 62.0720858333 0.0105390795 0.0046327660 1.1091409568 1.1092007017 -0.1472491691 -0.4232072930 28.6622786755 28.6657810918 0.1119293360 -0.0270607863 2.5389630384 2.5890605889 0.2021383655 -0.0490517077 5.7384925580 5.7439570517 -0.2262464120 -0.1108540837 0.6650809227 0.7247678839 0.2940671618 -0.1807426302 5.7489603243 5.7610040782 -0.0304905555 -0.0429412202 -0.0567276926 0.0774057716 0.4064139024 1.2153648022 -0.2896012180 1.3138313164 0.1511861687 -0.3500025958 0.3964520787 0.5674619902 -0.1617250450 -0.0820865837 -0.0898413518 0.2458545318 0.1703061199 0.4107291443 -0.3343744192 0.5735753146 0.9714761942 0.7950819239 -2.8416202637 3.2451621804 -0.1076899006 -0.3782352011 -2.5618637547 2.7569179648 0.0914930775 0.0458068883 -0.1770382742 0.2475713830 0.4807530770 -0.2024581356 -1.6510914821 1.7371516010 0.3160080474 -1.0763148458 -21.2371977921 21.2668024112 -0.1060751673 -0.6656464170 -8.1563494257 8.1841537772 -0.2575020112 -0.0795074146 -5.5962276243 5.6027129444 -0.1373116590 -0.1209981957 -2.4551141960 2.4619262317 0.1620598954 -0.3310185734 -3.4983044811 3.5176655537 0.1224823433 -0.0751824814 -1.6375227736 1.6438172538 0.0532496592 -0.1741710120 -7.3278969329 7.3314885468 0.0157392840 -0.2773076980 -13.5284358356 13.5320066224 0.0031280872 -0.3010747616 -5.9638996985 5.9731260823 -0.5405945489 -0.7468889036 -62.9290306281 62.9377201863 -0.1541591036 0.0093634802 -4.5057751508 4.5105811375 -0.2829997380 0.0758951723 -31.0696783980 31.0713733921 -0.3757359322 0.0293756986 -29.3391550013 29.3419075112 -0.2442064796 0.0028403697 -6.5114008469 6.5174738700 -0.0373338230 -0.0310361303 118.0851090994 118.0851190798 0.1042333815 -0.2316634279 553.3265834705 553.3266417838 0.2438147877 -0.4021690426 594.2740754097 594.2744664972 0.1302023361 0.0993079539 15.0798299772 15.0813648800 0.0717679507 0.1375753764 108.7994828772 108.7996830499 0.0402844719 -0.3564924308 191.5011529587 191.5015398737 0.2049100941 0.1616435511 61.9239488936 61.9246561811 0.0601128582 0.6010591067 17.2364494499 17.2726045236 0.0861610587 -0.1699287642 4.1860476585 4.1927048903 -0.0396801121 -0.4716916997 9.8545053274 9.9103831112 -0.2745340389 -0.3055512572 3.6613114515 3.6869244418 0.5651868859 -0.0937961993 14.1793806926 14.1916366411 0.4919594264 0.4471448173 6.9400499062 6.9732155459 -0.0196293499 0.4114498934 2.1295114649 2.1734707705 0.0384893623 0.3742906823 1.4934704969 1.5401393025 0.0316174284 0.0507004465 0.1046608291 0.1205159168 0.0826441927 0.1179370030 0.1956369187 0.2429259213 -0.0488151020 0.1517909400 0.2069873395 0.2612798545 -0.1867558882 0.0776545101 0.2301632461 0.3366940592 0.1537000072 -0.0337410647 0.0339417857 0.2130586337 0.1848337279 -0.2857156151 1.3101156071 1.3607643472 0.3945810023 -0.4822627261 1.2128136595 1.3706451992 -0.1624327888 0.1112322768 3.1328896148 3.1390690290 -0.0003963869 -0.0114712661 1.2514092178 1.2514618562 0.6376400482 -0.4358936368 4.9846112159 5.1308604397 -0.7556059715 1.9498705418 2.5458407683 3.3313483293 -0.3474383870 1.3692257678 1.7556163845 2.3067991862 -0.3304737366 -0.1250918604 15.1329469052 15.1451174924 -0.5307605838 -0.4264573928 9.0108285578 9.0375928094 -0.1948113411 0.1333171507 0.2199687870 0.3515550788 0.1419488547 0.1879520209 -0.2236372431 0.3535093222 -0.0134597648 0.0243286069 0.8831575938 0.8945502595 0.3487155182 0.0954617226 -0.5282402950 0.6551587954 -0.1535767230 0.0708291354 -0.6449338310 0.6811916085 -0.1019534073 0.5576148937 -3.1877358687 3.2407512432 -0.3790742723 -0.1197657943 -2.7669045097 2.7988000107 0.2359232552 0.5831934149 -25.3233344084 25.3359562847 -0.3087529998 0.3671051215 -7.5633091477 7.5797902104 -0.1347249257 0.3254560678 -14.1338327412 14.1389101489 0.2277815435 0.2373422179 -1200.6657242553 1200.6657774322 -0.3313679436 0.5802113875 -1461.5048879359 1461.5050473365 -0.4593798832 -0.0244222439 -396.7822830972 396.7825743224 -0.1371016559 0.0390527205 -126.6262776264 126.6263578703 -0.6218000806 0.4732004739 -815.4439552875 815.4443296565 -0.1215358997 -0.0236258916 17.7261813186 17.7266137008 -0.0885561224 -0.1328205126 40.2348612352 40.2351779180 -0.0044039537 0.0849650394 2.3610365196 2.3625689195 -0.0566994721 0.2224867548 15.8857595328 15.8874186425 -0.1901658448 -0.0398369347 11.1977366999 11.2387654578 0.0762295067 0.1177236700 1.0091883352 1.0188870871 -0.0470706360 0.0529480456 0.2777459969 0.2866391095 -0.0089000760 -0.2774171007 -0.0776237013 0.5751002756 -0.0193045541 0.0537465510 0.0585780140 0.0818091760 -0.2403039019 0.3139063152 0.0310875531 0.3965470665 -0.0117586322 -0.3081899759 0.0218862536 0.3091898038 0.0210653084 0.0027721451 -0.0131185410 0.0249705451 0.0557023812 -0.0567698358 -0.0264301192 0.0838100276 0.0466082191 -0.0151853147 -0.2108178155 0.2164418425 -0.1051469392 0.0810289501 -2.1972845831 2.2012907824 -0.0243084395 -0.0504282100 -0.7587364203 0.7607988303 0.1183557971 -0.3939313038 -12.9396981453 12.9462341265 0.0960099924 -0.2451780329 -5.5543137107 5.5605513201 0.5542228616 -0.1157019972 -19.8537428612 19.8840249275 0.0319194968 -0.0281070208 -1.8587021857 1.8591887140 -0.0026680923 -0.6073155258 -30.6238018915 30.6298234006 -0.0286164827 0.0044098764 -1.7752407331 1.7754768403 0.0640835686 0.1988070149 -5.6854897549 5.6893255036 -0.0813932719 -0.2380353101 -30.9891428038 30.9901638813 -0.0230503150 0.0090018826 -7.4058791935 7.4059205356 -0.0129558868 -0.0167651718 4.6286048220 4.6286533165 0.0138691739 0.2045852641 91.4849875243 91.4852173294 -0.7538509939 -0.0598284626 199.1123948239 199.1144528122 -0.0217432632 0.0228584553 19.1431998726 19.1432258682 -0.1282079198 -0.1639526288 63.8990959120 63.8994348654 -0.0386389018 -0.1293673397 13.5620330807 13.5627051193 -0.1406133130 -0.2054677620 12.9702962263 12.9726856627 -0.4005395763 -0.1376992529 1.4422810152 1.5031858046 -0.0366367525 0.0287954072 0.1442117853 0.1515535091 -0.3056855592 0.4155662790 -0.2354509299 0.5670768323 -0.0907587808 0.1480175054 -0.0004059892 0.1736274835 0.0895779851 -0.1957882823 0.4670865475 0.5143219903 0.5114868344 -1.2957924318 3.9163460051 4.1567370424 0.1018406600 -0.1255248871 0.5336859185 0.5576277225 -0.0445553806 -0.0492210526 0.2059530844 0.2163898495 0.3203606756 -0.0012133885 0.0470607827 0.3238010995 0.2566454328 -0.1058735256 0.1091560781 0.2983138129 0.0270407464 -0.0304360629 -0.2327492008 0.2362831910 0.0650159863 0.1327133516 -0.4985052263 0.5199493944 -0.3850739325 -0.1443443678 -32.0717911630 32.0744275964 -0.0423766449 -0.0590868435 -3.3877729438 3.3885531653 -0.1126229237 0.0097070348 -57.4153970724 57.4155083503 -0.0872303331 0.1169515992 -141.5576325999 141.5577077876 0.0183159154 -0.0350624937 0.5577936308 0.5591945867 -0.0719434326 0.0221833740 0.2308702752 0.2428354248 -0.0383288724 0.0132575968 -0.1513156919 0.1566566467 0.0447038879 -0.0424941908 -1.2341788741 1.2357190972 -0.0503591042 -0.0209595736 -9.0089343440 9.0090994753 0.0678564659 -0.1414441379 -22.2401568041 22.2407100969 0.0466962257 0.0607855409 -27.0438685163 27.0439771437 -0.0080696724 0.0293332386 -95.6030272265 95.6030320671 0.0868873593 -0.2582409762 0.5114096200 0.5794632123 0.0850637181 -0.1239740616 0.1313306481 0.1996325205 0.0352693072 0.0433247772 0.2372331124 0.2437221983 0.0691086716 0.0537454953 0.0406942121 0.0965432838 #SUBSTART -0.9160929986 -0.8593324597 808.1925580139 808.1935461185 -0.1820239912 0.3298017368 396.1325541511 396.1338475212 -1.5990206826 0.1584100921 622.6316124735 622.6343948129 0.1055245089 0.1471147192 19.2226947910 19.2298833629 0.5248003931 0.1034141144 7.3645570558 7.4433299774 5.1483309745 -0.2533852231 16.0863307613 16.9181070171 0.4713950046 0.2419539131 0.2984857871 0.6239619351 0.3599340057 -0.5490224393 0.2395568581 0.7126327248 -0.1485440041 -0.6716947622 1.6448991185 1.8500197958 0.6462144419 -1.2416022506 0.5587049361 1.5135389801 -0.7500514218 -0.1698965001 4.1043037962 4.2048058894 0.8230709798 -0.2359957561 0.1143390715 0.8750388808 0.3236288187 -0.0231930836 -0.3278100858 0.4818846010 -0.2736985339 -0.9067781163 -3.8645295996 3.9813598494 1.9878191772 -0.5551899200 -28.6785899240 28.7681068676 1.1798904580 0.3500462428 -4.4813940734 4.6734577848 0.3430939274 0.4287598719 -0.7151546499 0.9124003665 -0.8385278191 -0.1944607015 -334.9670082249 334.9681432954 -0.9404214509 -0.3094211621 -132.6716383259 132.6786589540 -1.0275741987 -1.4598872166 -191.5763636866 191.5869793420 -0.6583574213 0.5401782703 -81.8841814903 81.8887286821 -0.2406475585 -0.0467443099 -22.0854759201 22.0923512523 -1.3070579143 -0.3632589858 -19.2953300984 19.3492574030 0.6643164678 1.1600688235 -5.1720452781 5.3438383385 -1.7192160427 -0.3323258351 25.3804272395 25.4411420912 -1.9014658716 2.8728870249 72.1496791531 72.2379958609 -1.2587633670 2.5125630407 50.0287379949 50.1100361661 -1.3285293958 0.3841629556 0.8689883289 1.7062687970 0.1250064844 1.2178415334 0.8250014478 1.4828593309 0.3233154022 -0.3500173418 -0.1217884159 0.5112310554 0.0004183932 0.2727684565 -0.8176102220 0.8731374840 0.0502008455 0.6533207844 -1.2433273281 1.4123352300 -0.1428602648 0.1211148163 -0.8647419106 0.8957322205 0.0888250660 0.5694877663 -0.1908357272 0.6229801506 -0.3190243172 -0.8325093538 297.5807172480 297.5820854923 0.3013286125 -1.0117650517 786.9607146656 786.9614351252 0.0357943665 -0.9788380564 353.0159948910 353.0173813480 -0.3516498575 -1.1266821560 653.8470704647 653.8481506476 -0.5138444929 0.1347528190 145.2968765163 145.2979146432 -0.1496245735 0.2180207113 241.2828284164 241.2830136768 0.4158409641 -0.0047385028 37.5845093167 37.5900509137 0.1476298466 -0.2992292692 9.1868287323 9.1939455442 0.6604875671 0.1776485313 7.6645866642 7.7108580923 1.2350057198 0.1381950703 5.8813039651 6.0127824774 0.5244846497 -0.1072902209 0.6397855894 0.9693100121 -0.1221872573 0.1559011494 0.4519908651 0.5128454166 2.2154306075 -0.5758393400 -0.0468775783 2.3429888302 0.1803608494 -0.6802345051 0.6665347898 0.9792841410 0.0598774393 0.0648375463 0.0735630836 0.1807775631 0.2045674706 -0.0498441078 -0.1561320764 0.2621249900 0.1193378466 0.0653075031 -0.1644290780 0.2134092624 0.5870529985 -0.0005140908 0.6917537221 0.9179512429 0.2821822387 -0.0520004009 0.1681799157 0.3606870201 -0.0976479443 -0.0886710225 -0.0353197419 0.1952560891 0.0374635474 0.5115862598 0.2660108404 0.5778285090 -0.0580857276 -0.2812266542 0.2152624673 0.3850715486 -0.0551200600 -0.0002022818 0.0963922446 0.1110393027 0.1506421544 -0.5766872453 0.6617313589 0.9014596019 0.2509288278 -0.1255296283 -0.1395275510 0.3430316117 -0.3392452737 -0.7777483289 -2.1592183846 2.3199577261 0.0708184239 0.0317148907 -0.0559089394 0.0956393902 0.0754429978 0.4726913464 -0.8581685018 0.9925027543 0.6308101599 0.1043023891 -4.1756298956 4.2266020934 -0.0275845360 -0.0675721948 -1.0338858463 1.0364588034 0.1456837930 -0.7373499178 -10.1623874326 10.1901436202 1.0232294437 0.0649693174 -22.3397670406 22.3632826511 0.2383928233 0.0741203121 -1.9704802387 1.9862319426 -0.4451542591 -0.3702257807 -9.1721818454 9.1914976491 -0.4004818487 0.1819224374 -15.0785417549 15.0856018350 0.0386465451 0.0046703094 -0.2536359308 0.2566058312 0.9628998761 -0.5164117335 -5.5021959891 5.6096361693 0.1874128681 -1.2713052891 -9.5969299063 9.7280623010 -0.1105512451 -0.4834122663 -2.3868625297 2.4418234001 0.1001244311 -0.0523783197 -3.9149834502 3.9475948077 0.1451030698 -0.1195798702 -0.3598515016 0.4293333604 -0.0271129964 -0.1922514792 -0.2096642005 0.2857530802 0.1260769659 -0.3112669969 -0.4142931827 0.5333117155 -1.0484760998 0.3491928752 -1.8483171657 2.1534888300 -0.2170290413 0.0643473877 -0.2729922590 0.3546363836 0.0673804992 -0.3215755962 -0.7154534308 0.7995651270 0.1031424771 0.1396210835 -3.4599308892 3.4670930130 0.0801899546 -0.1509620604 -1.9773865501 1.9896626161 0.1918741445 0.3545487656 -29.6650492952 29.6681167246 0.0948731378 -0.0136586076 -3.0856449146 3.0902866847 0.1891687776 0.0174242315 -5.2894562569 5.2947063855 -0.0794865368 0.1740913604 -6.1597576399 6.1643101706 -0.1417341526 -0.0544743161 -263.0922747313 263.0923555695 0.2233015126 0.4243264017 -152.1384927885 152.1393124219 0.4333456864 0.7726580645 -1342.5346944091 1342.5353145566 -0.0065379299 0.0160103066 -7.1939885430 7.1940093294 -0.5200765801 0.1903869312 -669.1589633670 669.1591925553 -0.3780231062 -0.5320154202 -108.6430485442 108.6450984566 -0.4434109388 -0.0294936396 -150.6883378193 150.6890577237 -0.0615224420 -0.0149986540 -13.7925212516 13.7933727649 0.2818528745 0.1763468096 -56.9642429134 56.9653841357 0.0939081984 0.1047381232 -29.3515772375 29.3522461651 -0.0152274033 -0.1026223575 -3.8748586328 3.8787591355 0.1810935785 0.0814976423 -10.2759762035 10.2788425160 0.0844834525 0.1359568739 -3.1337519639 3.1409398086 0.0423023974 0.1132253427 -1.0154225100 1.0320717658 -0.0736588467 0.2915777480 -2.9634639709 2.9819526657 0.2180520014 0.3035250702 -3.5095408017 3.5321424897 0.4750040757 0.5204530042 -2.5774690389 2.6756918045 0.2275846759 0.2223647368 -1.2661068244 1.3129155101 0.9350969290 0.0924826053 595.5548050764 595.5555627216 0.2647410792 0.0101987658 128.0071703652 128.0075206250 0.2407944013 0.4246235058 150.9583220768 150.9620352377 -0.0921005301 -0.1045909923 34.5310374215 34.5316007010 0.0746048493 0.1871274537 26.1815250487 26.1826720605 -0.6973866499 0.2001327777 11.5814685421 11.6050116176 -0.0632148266 0.0969586774 1.5930281131 1.5972274943 -0.6331840869 0.5344662720 15.7640715086 15.7858331048 -1.5584286758 0.9664893800 27.6186424767 27.6794547257 -0.4285849648 0.3310010134 7.4630129491 7.4826338292 -0.2988658862 -0.3338727057 6.5540743031 6.5708569880 -0.5070487998 0.3156172897 3.6254416068 3.6769578986 -1.1180359673 1.4770265181 37.8872310632 37.9327479782 -0.5366614069 0.3180903613 9.0653392933 9.0878514089 -1.2698931024 1.0843627368 38.2243333402 38.2723257997 -0.0904064618 0.1749567974 2.4591167266 2.4709346549 0.0837860248 0.0472543972 0.3265153135 0.3678927981 -0.1878472685 0.1038797250 6.3514301439 6.3565888849 -1.2831499175 0.4019775352 18.3762113329 18.4258699221 -0.3519711789 0.5581438827 13.5509141311 13.5676881553 -0.7278418332 0.2674441033 1.3305719418 1.8040214964 -0.7348221999 0.1697763052 0.9981063481 1.2587627761 -0.1284170527 0.0964210067 0.2255991229 0.3101011111 -0.0082098926 0.2004043101 0.8405222872 0.9951622808 -1.0014616113 -0.2870242720 0.5663682527 1.5120951962 -0.7029231334 -0.0277654948 -2.5208882861 2.6209214773 -0.0199106159 0.1735364742 -1.7886900236 1.8648321024 -0.5859035988 -0.2877806272 -5.2579947860 5.3001971351 -0.0177297024 -0.0006033095 -0.1332445561 0.1344203038 -0.2459724857 0.5210865123 -9.1080252828 9.1262346106 -0.0268551066 -0.1880583072 -2.8306021884 2.8404006157 0.1001514353 -0.2346401003 -3.3454216061 3.3580368959 0.0092531402 -0.0447227304 -15.8764219146 15.8771010684 0.1556517610 -0.0596471686 -11.9521312001 11.9541083007 -0.3393177470 -0.2248187303 -330.1018247325 330.1020756852 -0.1024423681 -0.0053285871 -123.5905619413 123.5906045126 0.4704592967 1.1024207707 -1532.6686797360 1532.6691547712 0.3973352851 -0.0832020621 -2.0775358246 2.1214223528 -0.1233336548 -0.3673182633 -1.5668702113 1.6200913372 -0.0051118974 -0.1849970869 -3.7170127469 3.7242332901 0.1290741696 0.1302735192 -0.1553778095 0.5526744283 -1.0204913202 0.8343745132 -0.4503655011 1.3929868798 0.2376989817 0.3253412822 -0.6094710731 0.8817276817 -0.2755252911 0.4303773900 -0.6575078282 0.8443549093 -0.2526317998 -0.2409440117 -0.6962818611 0.7913059194 0.2161961557 -0.1380763983 -1.3265334555 1.3511094989 0.3091216497 -0.0375068382 -1.3451254097 1.3806974053 0.1408844604 0.0562712774 -1.0490151890 1.0690778921 0.0232313577 0.0889454794 -0.2662471444 0.3143538151 -0.0379420920 -0.3515208834 -4.3708087647 4.3873061868 -0.0114340145 -0.7365270185 1.0169430550 1.2634301515 -0.1373396840 0.0588818616 0.2476646213 0.3211647739 0.1343035450 0.3878698744 0.7968961274 0.9071955161 -0.1924482837 -0.5089226180 0.8000341258 0.9775341224 0.1498486738 -0.0129221189 0.4753291850 0.5177250479 0.2869755107 -0.5190747279 -0.1628970078 0.6307208075 0.1251006426 0.2291355089 0.1085084047 0.2827142128 -0.0312717913 0.1313830423 0.0635898527 0.1492752428 0.2661284782 -0.1486373221 0.1020660724 0.3504492666 -0.2121960488 0.0623226437 0.2344162247 0.3512008348 0.1521372576 -0.0038333932 0.1957065802 0.2845018286 -0.1195248030 -0.2342655933 95.2651181499 95.2654811706 -0.2430101558 -0.3343397977 218.0713559934 218.0717476929 -0.1050851816 -0.0365918264 73.4609231037 73.4610073788 -0.6257880440 -0.5068499640 397.5965908852 397.5974064190 -0.0643346499 -0.0119085625 3.1284224364 3.1291065341 0.0094880725 0.0773760046 1.4412931501 1.4433998109 0.1734194625 0.1414983231 0.9708781602 1.0060717034 0.5793914586 -0.0468766042 1.0293626719 1.1903609425 1.1551568125 -0.4938230200 4.0354325438 4.2264600142 0.5226835310 -0.1303719277 1.6609923145 1.7461644773 0.0108719332 0.0283992157 0.0435158804 0.0530880988 0.1568985471 -0.1182123729 0.0946076928 0.2180411308 0.0863556608 -0.0927934083 0.1577845381 0.2023953489 0.3457705661 -0.2087024704 0.9251106808 1.0094274502 0.3200655234 -0.0990142979 0.4396458492 0.5527515203 0.0292589235 0.0056164274 -0.0030969307 0.0299536281 0.0561136393 -0.1161126599 0.2726448829 0.5819291635 0.1830373170 0.1363983922 0.0699767156 0.2387549404 0.2803160748 0.0629586982 0.1910279492 0.3450109808 -0.1925587902 -0.4139068085 0.4118208481 0.6148122842 -0.2541230743 -0.2705441390 0.3773411729 0.5293005090 -0.2971085631 -0.2737476462 0.2638228256 0.4825077775 0.0124683508 -0.0193266616 0.0329520843 0.0401848165 0.0083356713 -0.0498084390 0.0769259452 0.0920215467 -0.1951596802 -0.5019433973 0.3388928253 0.6363040326 1.0576644472 -0.4361482231 0.8624145177 1.4394853041 0.5835441613 -0.4432892784 0.4302565739 0.9827465858 0.5795512140 -0.3306100874 -0.1306051242 0.6940606047 1.0390785862 0.0137884659 -0.4071851957 1.1247906466 -0.0446338828 0.0158569990 -0.0581359348 0.0749894315 -0.1170391713 -0.1967825164 -0.3858228232 0.4486432628 -0.1486877369 0.1457493431 -2.0751745489 2.0855935180 -0.0498718461 -0.0152065151 -1.1334153116 1.1346139025 -0.0294656729 0.1282803391 -0.8774608041 0.8872775970 0.0817112243 0.0537674645 -0.4644263239 0.4746150806 -0.0954210383 0.0799174480 -0.2332662670 0.2643957722 -0.0162070976 -0.0315561312 -0.2390765141 0.2416941021 0.0987398752 0.0218152968 -0.2870186071 0.3043109445 -0.0437824522 0.0117001262 -0.0789530203 0.0910350234 -0.1867582147 0.1207588058 -0.3911324007 0.4499398569 -0.0818467966 0.1743585115 -0.2212292175 0.2933294314 0.1381981255 -0.1292420413 -0.7024230874 0.7274616284 0.0865296860 -0.0614139376 -0.9944146076 1.0000597333 0.4330847455 0.0414050434 -13.7285386128 13.7354304344 0.1014774144 0.0518960334 -5.7653121573 5.7664386873 0.0126643700 0.0734082008 -22.1739459729 22.1740711003 -0.0285097671 0.0066525684 -1.0432509951 1.0436616800 0.1367194237 -0.0518809254 -43.9790938968 43.9793370097 0.0044610447 0.0135661283 -36.5809212947 36.5809240822 0.5170179503 -0.2658672862 -232.9083991744 232.9091247654 0.0675308851 -0.0739396454 -26.0963755852 26.0965677087 -0.2046938943 -0.0175109789 -16.2011785088 16.2024810229 -0.1616142276 0.0728504557 -22.8639633829 22.8646506188 0.1905354783 -0.0503217219 -48.8748768436 48.8752741427 0.6277664114 -0.3000173960 -126.3795248389 126.3814400915 0.1411929519 0.1507547967 -2.9561415468 2.9633486638 -0.1811459027 -0.0110827853 -0.3870952065 0.4275270344 0.0415463955 0.0487505152 -0.2626300719 0.2703280791 0.0792432747 0.1514394156 -2.3523568070 2.3585580215 0.6909879629 0.6978462537 -3.2329122867 3.3787831556 0.6335451380 0.4694940882 -2.6425156161 2.7576607699 0.6006624335 0.4551516201 426.3519460284 426.3526120954 -0.0020049669 -0.0063473021 3.7754772217 3.7754830896 -0.0001410271 -0.0893401335 2.9822415803 2.9835794816 -0.1637281749 -0.3281701646 21.8893212488 21.8923933663 -0.1500255806 0.3499772212 3.7535721149 3.7728365128 0.0266728154 0.1033445138 0.8808125913 0.8872555148 -0.7095793866 0.2389862067 3.7780090274 3.9641291751 -0.2769067714 0.0204084991 1.0464807059 1.0916480750 -0.0565482149 -0.0533723631 0.1281470431 0.1498932100 0.0386222300 -0.2753440586 0.4514621369 0.5302113620 -0.4061006890 0.3504375338 2.6499771260 2.8623233199 -0.2290133098 -0.0761639560 0.2975183873 0.3830995106 0.0037076414 -0.0348275511 0.1011420100 0.1070346257 -0.0086100812 0.0572198971 -0.0415666286 0.0712462964 -0.1209625303 0.1353113711 0.0861372346 0.2008997861 -0.2216179583 -0.2055976876 -0.7916893054 0.8474413755 -0.7593152568 -0.5562404599 -1.9298104593 2.1471216820 -0.4672799970 0.0727415360 -2.1088948605 2.2178266137 -0.2573779086 -0.1812145073 -2.9190386501 2.9359612951 -0.0254221801 0.0240316187 -0.2579553826 0.2603167020 -0.1792901741 -0.0609474027 -6.2564983935 6.2791167475 0.0725396880 0.0895862026 -27.0994480970 27.1000526686 0.3537033894 -0.0972092380 -41.0786629193 41.0805377612 0.0824725367 -0.1793617356 -159.6008989202 159.6010210133 0.0837949230 -0.0211946582 -122.4873886703 122.4874191666 -0.0269764358 0.1372816598 -0.8013993865 0.8135201036 -0.1214776761 0.0511540418 -1.0462779452 1.0545478180 -0.6090058394 0.2303102829 -0.1568808156 0.6697331776 -0.1758738084 0.1479238712 -0.0777833448 0.2426176351 -0.1201299763 0.1715182228 0.1555995983 0.2608849305 0.0105934808 0.1488610011 0.0487950690 0.1570120322 -0.0544086631 -0.2666112458 -0.6140086478 0.6716014283 -0.0051104481 -0.0709598544 -0.4220633936 0.4280174363 0.1046467368 -0.0240135539 -2.1864716241 2.1891061540 0.7382837561 -0.3776964629 -11.5765687528 11.6062337393 0.1564820369 0.0441414487 0.0517947799 0.1706393699 0.0756005778 0.0986866357 -0.0486195068 0.1334854145 0.0830195150 0.0117799923 0.0575185431 0.1016827954 0.0991012474 0.1792530737 0.0271238689 0.2066117759 -0.1309015640 0.1613494152 0.0632279432 0.2171787882 -0.0280918912 0.1803705313 0.1508212491 0.2367904814 -0.0743735195 -0.1319507848 0.1101898804 0.1873078743 -0.1963913377 -0.3653379029 0.0595905259 0.4190374346 -0.0363457894 0.1596006699 0.0888314152 0.1862375111 0.0751595009 0.1828832507 0.0154134366 0.1983250059 0.1385580065 -0.2548575683 -0.1499928987 0.3551455418 -0.1035654655 0.0802813752 -0.2111152710 0.2849918374 -0.0238627338 -0.2119094429 0.5504537006 0.6065922052 0.0193085302 -0.1400868029 0.0532373678 0.1511004600 0.1078275432 -0.1923345662 -0.0643742614 0.2297028732 0.1476376290 -0.4699072934 -9.0357727650 9.0502640282 0.2878577188 -0.0478873442 -4.6136682129 4.6249939922 -0.2096391921 0.4164719269 -42.6333625197 42.6361405028 -0.1068220736 -0.0557027463 -9.3352834474 9.3371039718 0.0016259012 0.0603195701 0.1585756763 0.1696683211 -0.0032269333 -0.0017073530 0.0003878311 0.0037065706 -0.0388953263 -0.0106198749 -0.0051909442 0.0406550631 0.0985686399 -0.1356917921 -0.9410245378 0.9558531373 -0.0271230460 -0.0467161724 -0.1213144744 0.1327978241 -0.0352499569 0.0517163458 -0.5429766010 0.5465717968 -0.0889778757 0.1316248127 -0.3732828311 0.4056873497 -0.1763358381 -0.4445779679 -5.8210435552 5.8406585219 -0.1309088945 -0.1219032916 -1.8921700531 1.9006064983 0.0273699534 -0.0840844306 -1.9193721294 1.9214079934 -0.0404898390 -0.1496633565 -1.2796966231 1.2890546903 -0.0172699863 -0.1110232561 -0.8100484525 0.8178037119 -0.1294444021 -0.0372141473 -1.2031839523 1.2106991241 -0.0071212673 0.0553384454 -13.2448627466 13.2449802655 0.1157095328 0.0047368626 -12.5582498696 12.5587838154 -0.4628718244 0.0584273021 0.2267836666 0.5371914852 -0.1258320681 -0.0627182761 -0.1341280765 0.2392434269 0.4070766543 0.0808023539 -0.8660543425 0.9704485210 -0.0714439069 -0.0303139209 -0.4319774302 0.4605512466 0.0883177610 -0.3338188293 0.3503300926 0.6968552013 0.5151386200 -0.1146329874 0.1185009374 0.5585971506 0.1295086171 0.0840545387 -0.2716849270 0.3124905550 0.1896913883 0.1903583102 -0.9242964429 0.9625710485 -0.0085812394 -0.0101931988 -0.0076672232 0.0153728749 0.0383401401 -0.0282233347 -1.1749374596 1.1759015932 0.0552427534 -0.1171088621 -1.9492539933 1.9535499425 -0.0158083133 -0.0005514152 -1.9024005826 1.9024663423 -0.2507955734 0.0323665932 -16.6153636232 16.6172878156 0.0130717178 0.0020096704 -2.7941111481 2.7941424474 #SUBSTART -0.0441574913 -0.4353151355 26.3302758397 26.3342809800 -0.1684435563 0.1045960517 2.1588214814 2.1723958063 -0.5770713716 0.6955379143 21.6256560361 21.6449824009 -1.1752739411 1.9760072781 15.0098856394 15.1855859384 -0.2977845080 0.4997607724 0.7631390766 0.9696893719 -0.1559719273 0.1740967375 0.2642535067 0.6067188739 0.1894062750 0.6689908942 1.0641104711 1.3635965709 0.1142440269 -0.7609789157 -1.2619305118 1.4846174623 -0.1867624688 -0.0614329778 -319.2977516980 319.2981937541 0.3794219007 0.2688305247 -2310.2901974809 2310.2904353347 0.1687844551 0.2209632920 -0.8584253276 0.9130645085 -0.1323813331 0.0254848837 -8.9692736459 8.9713724600 -0.0223050015 -0.0425046041 -1.1277844865 1.1374013308 0.6656247724 0.2834455504 -97.7296591444 97.7368531619 0.6041385277 -0.1127183082 -566.7768012498 566.7771516245 0.4104547203 0.1001098401 96.2280145055 96.2289419599 0.3766676493 -0.0195173659 102.2050215120 102.2057174610 -0.1773963067 -0.2794459257 119.7176053133 119.7190804441 0.5536628050 -0.7413673360 237.5619261760 237.5642409485 0.2418487329 -0.0275705849 110.0760391877 110.0763968069 0.1211127339 0.0918177206 6.2905195544 6.2923552866 0.0626006554 0.0004161362 0.8074401104 0.8098632892 -0.3992946356 -1.0545597894 22.7106418672 22.7580222858 0.0417121474 -0.1698509705 10.0664788775 10.0689654896 -0.6489843464 -0.3907697600 8.0447041982 8.1345865240 -0.1824174605 0.0632137159 1.1463805001 1.1708715299 -0.5100905812 1.1119282245 4.6061208904 4.7678513210 0.1208982619 -0.5000497215 3.8441317114 3.8784036314 -0.1250474671 -0.3562271953 0.2671491042 0.4830974151 -0.2684525449 0.0041035590 -29.8272971657 29.8325892403 -0.2305167299 -0.2303331981 -26.8578775370 26.8643894049 0.0589302654 -0.3635337077 -11.6035518010 11.6102335771 -0.2861255379 0.0875245097 -2252.3303127851 2252.3303867461 0.2147074214 -0.0493440718 -573.3428739030 573.3429332165 -0.3512128176 0.1705015166 606.9691836771 606.9693252831 -0.0545189033 -0.2629197804 1644.3988288383 1644.3991191848 0.3137805501 -0.1180062662 381.4548160342 381.4549888770 0.1665185635 0.7459044142 64.4046507722 64.4093364560 -0.1196832236 -0.0259750317 6.9744536686 6.9755288511 0.6087701295 -0.1727241416 49.5844134280 49.5884511726 -0.2601855433 -0.0984776474 9.2202601360 9.2255119709 -0.3175727586 -0.3101474438 2.4354490248 2.4795031017 -0.2753963133 -0.0613132671 0.3999933953 0.5089960189 0.5380862512 0.4584969419 -0.1195298158 0.7304268760 -0.0444677217 -0.2161922889 -0.2568845486 0.3663139914 0.1071005022 -0.6555412682 -0.9970223527 1.2061252955 0.1167686814 0.3995658137 -0.0721905295 0.4449483362 0.3221480794 -0.2510238116 -0.3823126307 0.5765718269 -0.0583993075 -0.1985441190 -1.1216535017 1.1405861757 -0.0133384962 0.0430703450 -0.2929447656 0.3276116462 0.0809192565 0.0400875874 -0.5604104264 0.5845464667 0.0304681422 -0.0529570261 0.0182684183 0.0637690317 0.0836528556 0.0741664295 -0.0240281384 0.1143495123 0.4555510747 -0.1080987016 -1.5110088644 1.5818849197 0.3014766486 -0.0215103119 -0.6941443755 0.7570913269 -0.1641431394 -0.4411654516 -0.3939015239 0.7876352560 -0.4039252069 -0.0300264155 -0.0958914049 0.4390126477 0.3044251967 -0.1331948462 -0.6076952890 0.7065330259 -0.1684239142 0.2200289693 0.0371401625 0.3124716607 0.1063768869 -0.1459702191 -1.6222150849 1.6381956274 0.2847598858 0.2966021366 -6.5535874438 6.5849988886 0.0762948828 0.0318769792 -0.3637472649 0.3730269744 0.1951369681 -0.0220355622 -2.5052655163 2.5168232148 -0.1162784899 0.0635417278 -0.7469535935 0.7713479721 -0.1681952710 0.1129415876 -5.5851454865 5.5905612725 -0.0679858088 -0.2102760193 -4.2058024713 4.2139165021 0.4418295219 -0.6620495459 -19.0063203706 19.0234911818 0.1797843649 0.0617713446 -74.4445372832 74.4506925422 -0.0012876290 -0.1708940437 -22.0694526118 22.0705556070 0.0103934528 0.0073255347 -0.4425131277 0.4426957821 -0.0043701656 -0.4457805170 -19.2152582403 19.2204289392 -0.1516577445 -0.1765477077 -27.6010756776 27.6020569474 -0.0056566917 0.1288076918 -128.5924082012 128.5924728372 -0.2517680174 -0.2266360806 -101.7909522301 101.7916115735 -0.1224778176 0.3530082700 -281.1956821029 281.1959649937 0.2360062692 -0.0235467030 45.4448973379 45.4455162526 0.0922372110 0.0516915546 11.1658408560 11.1663414663 -0.3341427239 0.4372861673 4.3995142369 4.4338015374 -0.0681940751 0.2196341586 2.1322401165 2.1446066096 -0.2009116521 0.0971726250 0.7308198704 0.7641372219 -0.1012844178 -0.0398178954 0.4990775716 0.5108056583 0.0368925678 0.0866300133 1.3739185159 1.3771412088 0.0092764250 -0.0017291697 0.0032248545 0.0099720497 -0.0203948597 0.3124584627 -3.1550078059 3.1735784663 0.1059659827 0.0377553505 -0.4675965736 0.5007799882 0.1329985369 0.0032114371 -20.7486076587 20.7550016653 0.3660545253 0.0948605500 -27.6704560743 27.6730398366 0.0098726085 0.0434149374 -3.1737995066 3.1741117866 -0.0692111607 0.3256648076 -19.6754088046 19.6782255140 0.0384004058 0.0367002910 -2.3623408103 2.3629379184 -0.4900785611 -0.0533828943 1745.8520098218 1745.8520794230 -0.3283022857 -0.1470635917 1180.7336963526 1180.7337511533 -0.1814264620 -0.0205444397 98.7126005837 98.7127694457 0.0248419023 -0.0015164888 16.4086144224 16.4086332972 -0.2004067191 -0.0837420647 149.5881746804 149.5883323652 -0.1902605094 -0.2250958392 157.4793950631 157.4796708679 -0.1399714066 -0.0837296753 8.1257531901 8.1273899599 -0.0703123333 0.0538362498 4.3994458722 4.4003370494 -0.0159653752 0.2473043122 1.8918974504 1.9080592965 0.0281207896 0.0677898195 0.2312495090 0.2426161039 -0.0061386499 -0.0106536272 0.1539491891 0.1544394238 0.3359626138 0.0994753088 10.3451825219 10.3511143181 0.0248790269 -0.1188617045 0.0553437980 0.1334541373 0.1384447312 -0.2292058176 -0.0582864518 0.2740429909 -0.0750893528 0.3970147019 -0.1959203554 0.4490477370 -0.0117513933 0.4664320235 -0.0952875283 0.4762107106 0.0366213698 -0.1908535617 0.0191893482 0.1952804082 -0.0495444757 -0.0164300420 -0.0072712417 0.0527017297 -0.1684665489 -0.1655211251 -0.5420967721 0.7728664569 -0.0077705280 -0.0271283750 -0.1601233579 0.1625909578 0.2985503418 -0.1943537073 -3.7866140559 3.8033342844 0.1145357018 -0.1888176563 -1.3010430382 1.3270129263 -0.0851260915 0.0143078920 -3.3326217524 3.3366598113 0.1861249539 -0.0696085274 -2.1990679462 2.2080280065 -0.0081718728 0.0218629486 -0.1191747050 0.1214387843 0.0046440483 -0.0454064059 -0.1986982662 0.2038732692 -0.1283936654 0.0380983822 -0.9348199605 0.9443647487 0.0784758412 0.0424801626 -0.2723256920 0.2865733840 0.1054935584 -0.0933034714 -0.2892197068 0.3216869090 0.0408590818 0.0604494054 -0.3080921201 0.3166138810 -0.0925244680 0.1541730864 -1.2354152505 1.2484313993 0.0235092171 -0.0552276523 -0.2346041984 0.2421609109 0.1755806147 -0.2245895151 -0.3861217080 0.4799572648 0.0091047332 0.1407710305 -0.1461590576 0.2031301290 0.0513514751 -0.0113435399 -0.0285874370 0.0598572589 #SUBSTART 0.6770465813 0.3513046130 2932.9940154332 2932.9942651096 -0.0417695140 -0.5205562118 1516.1967568014 1516.1971378585 0.1989410460 -0.0630978173 419.9030998168 419.9031748802 0.3409520965 -0.5293872884 42.0667056283 42.0716496163 -0.6058117347 -0.1169407679 161.7578620065 161.7590989209 0.0958752265 0.1769517299 9.8588970004 9.8619386442 0.1214223914 0.5787434124 1.8523222605 1.9494268071 -0.0670547128 0.4943335812 -0.2118289105 0.7330583001 -0.0793677873 -0.1567128659 -10.5786349883 10.5810139481 -0.0970001025 -0.1445801537 -42.5880261212 42.5886106973 0.3703284929 -0.0399450286 19.7629004476 19.7669029614 1.4533321999 -1.0896521454 20.1424410483 20.2246613680 0.3658343274 0.0812914858 14.4660505640 14.4715770311 -0.0636455908 -0.5605851203 2.3507291229 2.4215106096 0.6259190599 0.1805421839 -0.0486041130 0.6679912383 -1.5519749330 0.2472025221 -29.1064459553 29.1530199532 0.0078035256 0.0943980126 -17.4994129577 17.5002258708 -0.0548797488 -0.1370298829 1036.1884577516 1036.1888942459 -0.0074291856 0.2193125768 163.6958091162 163.6960156974 0.1914978876 0.4070487660 21.6381360319 21.6432615578 -0.1914590767 0.0584780254 14.3092278420 14.3113087269 0.2424123730 -0.4283519468 107.3841227396 107.3853413902 -0.0983276759 0.3947591799 4.8693594443 4.8883171260 -0.1305690829 -0.4243713087 -0.1823121874 0.4799760689 -0.0516891775 -0.0503703697 -0.0805988110 0.1081901731 0.1558854862 0.1136100551 -0.0874555358 0.2536449981 -0.3318060246 0.2212104011 -0.3580826634 0.5538341433 0.0629356885 -0.2583798210 -3.0019798320 3.0169659808 -0.8300974841 0.2595456596 -20.5476369139 20.5720559001 0.1285761168 0.1189190669 -54.8915143717 54.8998343838 -0.0401510367 0.2671418516 -15.6302665438 15.6332238803 0.0281649730 -0.4122759243 -345.8271122625 345.8286355008 -0.1171088176 -0.1605515566 -125.4965441409 125.4967790916 -0.2106370242 0.0707698693 -55.0953331303 55.0959580083 -0.5943466424 -0.3725778643 -496.6313627019 496.6318581015 -0.1180301614 -0.0275032674 -118.6069850561 118.6070469729 0.1195709980 0.0808099878 -53.7127092521 53.7130844624 0.9185150775 0.1541735037 -1036.2673654079 1036.2677933472 -0.3500272122 -0.1878301027 -209.7307631119 209.7311857462 -0.0669895037 -0.0961947512 3.8427504240 3.8470705257 -0.2156780993 0.5291157459 27.6308975327 27.6368047896 -0.2476374439 -0.0328806378 5.6531153731 5.6586322430 -0.1847852304 0.2316177367 11.4768421686 11.4806662925 -0.3482255085 -0.0892652067 4.1697229078 4.1851903672 0.5202508248 -0.0281775607 6.3044339099 6.3274656541 0.7373289987 -0.1469192235 12.7951337768 12.8179626876 0.0285710570 -0.0274444948 0.1010480309 0.1085366764 -0.1039300181 -0.0446321493 0.0699664568 0.1329991823 0.0993723549 0.0924859310 0.1007479290 0.2192223585 0.1166573587 0.3266489934 1.1041078499 1.1656939707 0.0927905044 0.1368028453 -0.0347829812 0.1689229172 0.0112333828 -0.0296147398 0.0115929564 0.0337285982 0.1933425277 -0.0683296207 -0.5457777002 0.5995025880 -0.0014862833 0.0659779399 -0.5650813922 0.5689220310 0.1863289901 0.1478342929 -1.1113546809 1.1365221940 -0.1922446050 0.2980532455 -1.9635354135 2.0001861989 0.0193414916 -0.0172419473 -4.6419787550 4.6441487836 -0.2848295282 -0.3678209575 -7.6933700519 7.7086861824 -0.3199278853 -0.1879575979 -15.9473171225 15.9592683503 -1.0710663773 0.0993198611 -20.7698796254 20.7977149532 -0.2757647673 0.0956668425 -5.6181856450 5.6257629077 -1.2490018212 -0.0340281411 -30.8603844919 30.8859834591 -0.1755305964 -0.1438557882 -9.2787433684 9.2825677352 -0.2124698815 0.1667916916 -6.1884785586 6.1959429931 -0.2942176899 0.3773570206 -12.4429150611 12.4528943372 0.0105092060 0.0295422923 -74.5308462655 74.5309835439 0.2584863896 -0.2976687228 -69.3044867189 69.3057485425 -0.0957526249 -0.1699727518 -1297.4184902276 1297.4185124020 0.0931045661 0.3914495124 -946.2909476485 946.2914983520 0.0360247711 -0.1163619267 -151.5313599468 151.5314731830 -0.0993581510 0.1349565774 -94.0391405685 94.0393934688 0.4844616733 -0.2826907523 -463.1607123897 463.1610730603 -0.0504836604 0.0175103698 72.2699052144 72.2699249682 -0.0368006360 0.0999886945 34.0537581371 34.0539248147 0.0665640621 0.0755456437 7.7538575753 7.7545112816 0.2243516825 0.3690620147 61.4164633694 61.4179820024 0.0816957699 0.0122835959 2.1208602398 2.1224686669 0.0144029480 -0.0503652427 5.6926704167 5.6929114323 -0.2698450161 -0.0968807088 9.7057973269 9.7100310996 0.0164336168 -0.0012397869 0.4695489357 0.4698380613 -0.0364556163 -0.0412882489 0.1074929780 0.1207827462 -0.2667218077 -0.0649448564 1.3716987678 1.3988980902 0.2077097027 -0.3570804421 0.8988831489 0.9892626941 0.0105377329 -0.1484745719 0.2294513114 0.2735025532 -0.0685732436 -0.0943891826 0.1346473855 0.1781615165 0.0382369999 0.0045851390 0.1130244698 0.1194052864 0.3963831653 0.2132704216 -0.3553422031 0.7593071820 0.1155666656 -0.2135039761 -0.0183771432 0.2434693439 -0.0123682547 0.0083868054 0.0173299548 0.0228831721 0.0360405259 0.2439023514 -1.1590296582 1.1849628792 -0.0483124564 0.0437451936 -0.1841727802 0.1953646549 -0.0063232509 0.0013555547 -0.4512860805 0.4513324135 0.6117940259 0.1041841635 -96.7891346761 96.7911242709 0.0097392890 0.1586587724 -185.8987315955 185.8987995558 0.0126099215 0.0006886785 -1.6055595426 1.6056092081 0.4457959513 0.0817576972 80.5457340205 80.5485466205 -0.1093643200 -0.1927084619 32.1425410810 32.1433048122 0.0241356187 0.0044118008 2.7467931024 2.7469026811 0.0418870354 -0.0110886184 1.4748848722 1.4755212189 -0.0354473722 -0.1887979921 11.5772747910 11.5788683724 0.0058024512 -0.0191965884 0.3125636871 0.3132063792 0.1173078971 0.0564554543 13.2352476762 13.2358879344 0.1147181205 0.0120976749 7.4073100080 7.4095227876 -0.0368528419 -0.0130518397 13.4686664620 13.4694463336 0.0430173588 0.0002779173 1.7903229774 1.7908397287 0.0883578294 -0.2186442978 4.7990642286 4.8048548267 -0.0436287774 -0.0282100033 0.0500925733 0.0721702183 0.1031194345 -0.0886409722 0.1536924624 0.2052126037 0.0052358810 0.0010948603 0.0851676243 0.0853354405 0.1037891731 -0.0282878168 -0.0050733888 0.1076946252 0.3521574111 0.0590490219 0.1443117687 0.3851331144 0.0778011855 -0.0502172090 0.0209264974 0.0949352982 0.1394697699 0.0437755024 0.1665841772 0.2216267119 0.0266028806 0.1043947157 0.0590615466 0.1228586025 -0.1405800619 0.2371123332 -0.1130999690 0.2979540491 -0.1042086095 0.0399933128 -0.0988254999 0.1490817856 0.0215861152 0.0406496160 -6.0570440969 6.0572189612 -0.0417127537 -0.0642268819 -3.5705903932 3.5714115980 0.0847143653 0.0659101892 -1.6230128539 1.6265581455 -0.0237875762 0.0298896874 -0.1356170689 0.1408943986 -0.1639741056 0.1207618984 -2.2816665346 2.2907363704 -0.3666022085 0.1156586340 -6.1317843092 6.1438223374 -0.3087523084 -0.2453129151 -8.4834676739 8.4926279907 -0.1014408362 -0.1500275563 -2.6075048230 2.6137865087 0.1497063932 -0.1088154929 -3.2823730421 3.2875865925 -0.0283050773 -0.0320002559 -1.0595448941 1.0604058546 0.2560825105 0.1528555769 -27.8668949809 27.8684907907 -0.0103388253 0.0220503079 -5.1574342009 5.1574917008 -0.0090402010 -0.0032600392 -23.7519850444 23.7519869885 0.3526365706 0.3108738458 -768.8035926136 768.8037363402 0.1176747849 0.1309046292 17.8041267255 17.8055438451 0.0162468238 -0.2410911776 40.7001501790 40.7011067822 -0.1282368223 -0.0693513557 9.8597886117 9.8608663798 -0.0024939333 0.0055438178 0.0197330279 0.0206481478 #END fastjet-3.0.6+dfsg.orig/example/data/Makefile.am0000644000175000017500000000126412215265366017645 0ustar sunsunEXTRA_DIST = Pythia-PtMin1000-LHC-10ev.dat \ Pythia-Z2jets-lhc-pileup-1ev.dat \ Pythia-Zp2jets-lhc-pileup-1ev.dat \ Pythia-dijet-ptmin100-lhc-pileup-1ev.dat \ boosted_top_event.dat \ cone-darktower.dat \ cone-midpoint-problem-ev1.dat \ cone-midpoint-problem-ev2.dat \ cone-sm-pt-problem-ev1.dat \ cone-sm-pt-problem-ev2.dat \ HZ-event-Hmass115.dat \ single-ee-event.dat \ single-event.dat fastjet-3.0.6+dfsg.orig/example/06-area.cc0000644000175000017500000001242511766120142016333 0ustar sunsun//---------------------------------------------------------------------- /// \file /// \page Example06 06 - using jet areas /// /// fastjet example program for jet areas /// It mostly illustrates the usage of the /// fastjet::AreaDefinition and fastjet::ClusterSequenceArea classes /// /// run it with : ./06-area < data/single-event.dat /// /// Source code: 06-area.cc //---------------------------------------------------------------------- //STARTHEADER // $Id: 06-area.cc 2684 2011-11-14 07:41:44Z soyez $ // // Copyright (c) 2005-2011, Matteo Cacciari, Gavin P. Salam and Gregory Soyez // //---------------------------------------------------------------------- // This file is part of FastJet. // // FastJet is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // The algorithms that underlie FastJet have required considerable // development and are described in hep-ph/0512210. If you use // FastJet as part of work towards a scientific publication, please // include a citation to the FastJet paper. // // FastJet is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with FastJet. If not, see . //---------------------------------------------------------------------- //ENDHEADER #include "fastjet/ClusterSequenceArea.hh" // use this instead of the "usual" ClusterSequence to get area support #include // needed for io #include // needed for io using namespace std; /// an example program showing how to use fastjet int main(){ // read in input particles //---------------------------------------------------------- vector input_particles; double px, py , pz, E; while (cin >> px >> py >> pz >> E) { // create a fastjet::PseudoJet with these components and put it onto // back of the input_particles vector input_particles.push_back(fastjet::PseudoJet(px,py,pz,E)); } // create a jet definition: // a jet algorithm with a given radius parameter //---------------------------------------------------------- double R = 0.6; fastjet::JetDefinition jet_def(fastjet::kt_algorithm, R); // Now we also need an AreaDefinition to define the properties of the // area we want // // This is made of 2 building blocks: // - the area type: // passive, active, active with explicit ghosts, or Voronoi area // - the specifications: // a VoronoiSpec or a GhostedAreaSpec for the 3 ghost-bases ones // //---------------------------------------------------------- For // GhostedAreaSpec (as below), the minimal info you have to provide // is up to what rapidity ghosts are placed. // Other commonm parameters (that mostly have an impact on the // precision on the area) include the number of repetitions // (i.e. the number of different sets of ghosts that are used) and // the ghost density (controlled through the ghost_area). // Other, more exotic, parameters (not shown here) control how ghosts // are placed. // // The ghost rapidity interval should be large enough to cover the // jets for which you want to calculate. E.g. if you want to // calculate the area of jets up to |y|=4, you need to put ghosts up // to at least 4+R (or, optionally, up to the largest particle // rapidity if this is smaller). double maxrap = 5.0; unsigned int n_repeat = 3; // default is 1 double ghost_area = 0.01; // this is the default fastjet::GhostedAreaSpec area_spec(maxrap, n_repeat, ghost_area); fastjet::AreaDefinition area_def(fastjet::active_area, area_spec); // run the jet clustering with the above jet and area definitions // // The only change is the usage of a ClusterSequenceArea rather than //a ClusterSequence //---------------------------------------------------------- fastjet::ClusterSequenceArea clust_seq(input_particles, jet_def, area_def); // get the resulting jets ordered in pt //---------------------------------------------------------- double ptmin = 5.0; vector inclusive_jets = sorted_by_pt(clust_seq.inclusive_jets(ptmin)); // tell the user what was done // - the description of the algorithm and area used // - extract the inclusive jets with pt > 5 GeV // show the output as // {index, rap, phi, pt, number of constituents} //---------------------------------------------------------- cout << endl; cout << "Ran " << jet_def.description() << endl; cout << "Area: " << area_def.description() << endl << endl; // label the columns printf("%5s %15s %15s %15s %15s %15s\n","jet #", "rapidity", "phi", "pt", "area", "area error"); // print out the details for each jet for (unsigned int i = 0; i < inclusive_jets.size(); i++) { printf("%5u %15.8f %15.8f %15.8f %15.8f %15.8f\n", i, inclusive_jets[i].rap(), inclusive_jets[i].phi(), inclusive_jets[i].perp(), inclusive_jets[i].area(), inclusive_jets[i].area_error()); } return 0; } fastjet-3.0.6+dfsg.orig/example/Makefile.am0000644000175000017500000001745711766120142016737 0ustar sunsun# for the time being allow these things to be distributed but without # any particular help to go with them? This should change at some point SUBDIRS = data root EXTRA_DIST = Makefile.alt ktjet_example.cc ktjet_timing.cc CmdLine.hh\ makefile.static # test-example.sh test-areas.sh makefile.static noinst_PROGRAMS = fastjet_example fastjet_areas fastjet_timing_plugins\ 01-basic \ 02-jetdef \ 04-constituents \ 05-eplus_eminus \ 06-area \ 07-subtraction \ 08-selector \ 09-user_info \ 10-subjets \ 11-filter \ 12-boosted_higgs \ 13-boosted_top \ 14-groomers check_PROGRAMS = fastjet_example fastjet_areas # basic usage example 01_basic_SOURCES = 01-basic.cc 01_basic_SHORTNAME = 01 01_basic_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 01_basic_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # further illustrates the usage of jet definitions 02_jetdef_SOURCES = 02-jetdef.cc 02_jetdef_SHORTNAME = 02 02_jetdef_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 02_jetdef_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # illustrates the usage of plugins if BUILD_PLUGIN_SISCONE noinst_PROGRAMS += 03-plugin 03_plugin_SOURCES = 03-plugin.cc #03_plugin_SHORTNAME = 03 03_plugin_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 03_plugin_LDADD = ../src/libfastjet.la $(CGAL_LIBS) 03_plugin_CXXFLAGS += -I$(srcdir)/../plugins/SISCone -I$(srcdir)/../plugins/SISCone/siscone 03_plugin_LDADD += ../plugins/SISCone/libSISConePlugin.la ../plugins/SISCone/siscone/siscone/libsiscone.la ../plugins/SISCone/siscone/siscone/spherical/libsiscone_spherical.la else EXTRA_DIST += 03-plugin.cc endif # illustrate the access to the constituents 04_constituents_SOURCES = 04-constituents.cc 04_constituents_SHORTNAME = 04 04_constituents_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 04_constituents_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # illustrate clustering in e+e- collisions 05_eplus_eminus_SOURCES = 05-eplus_eminus.cc 05_eplus_eminus_SHORTNAME = 05 05_eplus_eminus_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 05_eplus_eminus_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # illustrate the computation of jet areas 06_area_SOURCES = 06-area.cc 06_area_SHORTNAME = 06 06_area_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 06_area_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # illustrate the background subtraction using jet areas 07_subtraction_SOURCES = 07-subtraction.cc 07_subtraction_SHORTNAME = 07 07_subtraction_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 07_subtraction_LDADD = ../tools/libfastjettools.la ../src/libfastjet.la $(CGAL_LIBS) # illustrate the use of Selector's 08_selector_SOURCES = 08-selector.cc 08_selector_SHORTNAME = 08 08_selector_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include 08_selector_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # illustrate how to associate user information to the jets 09_user_info_SOURCES = 09-user_info.cc 09_user_info_SHORTNAME = 09 09_user_info_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 09_user_info_LDADD = ../tools/libfastjettools.la ../src/libfastjet.la $(CGAL_LIBS) # illustrate how to access subjets 10_subjets_SOURCES = 10-subjets.cc 10_subjets_SHORTNAME = 10 10_subjets_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 10_subjets_LDADD = ../src/libfastjet.la $(CGAL_LIBS) # illustrate the use of Filter 11_filter_SOURCES = 11-filter.cc 11_filter_SHORTNAME = 11 11_filter_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 11_filter_LDADD = ../tools/libfastjettools.la ../src/libfastjet.la $(CGAL_LIBS) # illustrate how to tag boosted higgs 12_boosted_higgs_SOURCES = 12-boosted_higgs.cc 12_boosted_higgs_SHORTNAME = 12 12_boosted_higgs_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 12_boosted_higgs_LDADD = ../tools/libfastjettools.la ../src/libfastjet.la $(CGAL_LIBS) # illustrate how to tag boosted top 13_boosted_top_SOURCES = 13-boosted_top.cc 13_boosted_top_SHORTNAME = 13 13_boosted_top_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 13_boosted_top_LDADD = ../tools/libfastjettools.la ../src/libfastjet.la $(CGAL_LIBS) # illustrate how to use various groomers in a unified manner 14_groomers_SOURCES = 14-groomers.cc 14_groomers_SHORTNAME = 14 14_groomers_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include -I$(srcdir)/../tools 14_groomers_LDADD = ../tools/libfastjettools.la ../src/libfastjet.la $(CGAL_LIBS) # backward-compatible + make-check-related things fastjet_example_SOURCES = fastjet_example.cc fastjet_example_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include fastjet_example_LDADD = ../src/libfastjet.la $(CGAL_LIBS) fastjet_areas_SOURCES = fastjet_areas.cc fastjet_areas_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include fastjet_areas_LDADD = ../src/libfastjet.la $(CGAL_LIBS) if BUILD_PLUGIN_SISCONE fastjet_areas_CXXFLAGS += -I$(srcdir)/../plugins/SISCone -I$(srcdir)/../plugins/SISCone/siscone fastjet_areas_LDADD += ../plugins/SISCone/libSISConePlugin.la ../plugins/SISCone/siscone/siscone/libsiscone.la ../plugins/SISCone/siscone/siscone/spherical/libsiscone_spherical.la endif fastjet_timing_plugins_SOURCES = fastjet_timing_plugins.cc CmdLine.cc fastjet_timing_plugins_CXXFLAGS = $(AM_CXXFLAGS) $(CGAL_CPPFLAGS) -I$(srcdir)/../include fastjet_timing_plugins_LDADD = ../src/libfastjet.la $(CGAL_LIBS) fastjet_timing_plugins_CXXFLAGS += -I$(srcdir)/../tools fastjet_timing_plugins_LDADD += ../tools/libfastjettools.la if BUILD_PLUGIN_SISCONE fastjet_timing_plugins_CXXFLAGS += -I$(srcdir)/../plugins/SISCone -I$(srcdir)/../plugins/SISCone/siscone fastjet_timing_plugins_LDADD += ../plugins/SISCone/libSISConePlugin.la ../plugins/SISCone/siscone/siscone/libsiscone.la ../plugins/SISCone/siscone/siscone/spherical/libsiscone_spherical.la endif if BUILD_PLUGIN_CDFCONES fastjet_timing_plugins_CXXFLAGS += -I$(srcdir)/../plugins/CDFCones fastjet_timing_plugins_LDADD += ../plugins/CDFCones/libCDFConesPlugin.la ../plugins/CDFCones/CDFcode/libCDFcode.la endif if BUILD_PLUGIN_PXCONE fastjet_timing_plugins_CXXFLAGS += -I$(srcdir)/../plugins/PxCone fastjet_timing_plugins_LDADD += ../plugins/PxCone/libPxConePlugin.la $(FLIBS) endif if BUILD_PLUGIN_D0RUNIICONE fastjet_timing_plugins_CXXFLAGS += -I$(srcdir)/../plugins/D0RunIICone fastjet_timing_plugins_LDADD += ../plugins/D0RunIICone/libD0RunIIConePlugin.la $(FLIBS) endif if BUILD_PLUGIN_TRACKJET fastjet_timing_plugins_CXXFLAGS += -I$(srcdir)/../plugins/TrackJet fastjet_timing_plugins_LDADD += ../plugins/TrackJet/libTrackJetPlugin.la endif if BUILD_PLUGIN_ATLASCONE fastjet_timing_plugins_CXXFLAGS += -I$(srcdir)/../plugins/ATLASCone fastjet_timing_plugins_LDADD += ../plugins/ATLASCone/libATLASConePlugin.la endif if BUILD_PLUGIN_EECAMBRIDGE fastjet_timing_plugins_CXXFLAGS += -I$(srcdir)/../plugins/EECambridge fastjet_timing_plugins_LDADD += ../plugins/EECambridge/libEECambridgePlugin.la endif if BUILD_PLUGIN_JADE fastjet_timing_plugins_CXXFLAGS += -I$(srcdir)/../plugins/Jade fastjet_timing_plugins_LDADD += ../plugins/Jade/libJadePlugin.la endif if BUILD_PLUGIN_CMSITERATIVECONE fastjet_timing_plugins_CXXFLAGS += -I$(srcdir)/../plugins/CMSIterativeCone fastjet_timing_plugins_LDADD += ../plugins/CMSIterativeCone/libCMSIterativeConePlugin.la endif if BUILD_PLUGIN_D0RUNICONE fastjet_timing_plugins_CXXFLAGS += -I${srcdir}/../plugins/D0RunICone fastjet_timing_plugins_LDADD += ../plugins/D0RunICone/libD0RunIConePlugin.la endif if BUILD_PLUGIN_GRIDJET fastjet_timing_plugins_CXXFLAGS += -I${srcdir}/../plugins/GridJet fastjet_timing_plugins_LDADD += ../plugins/GridJet/libGridJetPlugin.la endif # add entries for other plugins here #TESTS_ENVIRONMENT = $(SHELL) #TESTS = test-example.sh test-areas.sh fastjet-3.0.6+dfsg.orig/example/CmdLine.cc0000644000175000017500000001565711766120142016525 0ustar sunsun/////////////////////////////////////////////////////////////////////////////// // File: CmdLine.cc // // Part of the CmdLine library // // // // Copyright (c) 2007 Gavin Salam // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // // // // $Revision:: 139 $// // $Date:: 2007-01-23 16:09:23 +0100 (Tue, 23 Jan 2007) $// /////////////////////////////////////////////////////////////////////////////// #include "CmdLine.hh" #include #include #include // testing #include #include // for size_t #include // for exit using namespace std; // initialise the various structures that we shall // use to access the command-line options; // // If an option appears several times, it is its LAST value // that will be used in searching for option values (opposite of f90) CmdLine::CmdLine (const int argc, char** argv) { __arguments.resize(argc); for(int iarg = 0; iarg < argc; iarg++){ __arguments[iarg] = argv[iarg]; } this->init(); } /// constructor from a vector of strings, one argument per string CmdLine::CmdLine (const vector & args) { __arguments = args; this->init(); } //---------------------------------------------------------------------- void CmdLine::init (){ __command_line = ""; for(size_t iarg = 0; iarg < __arguments.size(); iarg++){ __command_line += __arguments[iarg]; __command_line += " "; } // group things into options bool next_may_be_val = false; string currentopt; for(size_t iarg = 1; iarg < __arguments.size(); iarg++){ // if expecting an option value, then take it (even if // it is actually next option...) if (next_may_be_val) {__options[currentopt] = iarg;} // now see if it might be an option itself string arg = __arguments[iarg]; bool thisisopt = (arg.compare(0,1,"-") == 0); if (thisisopt) { // set option to a standard undefined value and say that // we expect (possibly) a value on next round currentopt = arg; __options[currentopt] = -1; __options_used[currentopt] = false; next_may_be_val = true;} else { // otherwise throw away the argument for now... next_may_be_val = false; currentopt = ""; } } } // indicates whether an option is present bool CmdLine::present(const string & opt) const { bool result = (__options.find(opt) != __options.end()); if (result) __options_used[opt] = true; return result; } // indicates whether an option is present and has a value associated bool CmdLine::present_and_set(const string & opt) const { bool result = present(opt) && __options[opt] > 0; return result; } // return the string value corresponding to the specified option string CmdLine::string_val(const string & opt) const { if (!this->present_and_set(opt)) { cerr << "Error: Option "<present_and_set(opt)) {return string_val(opt);} else {return defval;} } // Return the integer value corresponding to the specified option; // Not too sure what happens if option is present_and_set but does not // have string value... int CmdLine::int_val(const string & opt) const { int result; string optstring = string_val(opt); istringstream optstream(optstring); optstream >> result; if (optstream.fail()) { cerr << "Error: could not convert option ("<present_and_set(opt)) {return int_val(opt);} else {return defval;} } // Return the integer value corresponding to the specified option; // Not too sure what happens if option is present_and_set but does not // have string value... double CmdLine::double_val(const string & opt) const { double result; string optstring = string_val(opt); istringstream optstream(optstring); optstream >> result; if (optstream.fail()) { cerr << "Error: could not convert option ("<present_and_set(opt)) {return double_val(opt);} else {return defval;} } // return the full command line including the command itself string CmdLine::command_line() const { return __command_line; } // return true if all options have been asked for at some point or other bool CmdLine::all_options_used() const { bool result = true; for(map::const_iterator opt = __options_used.begin(); opt != __options_used.end(); opt++) { bool this_one = opt->second; if (! this_one) {cerr << "Option "<first<<" unused/unrecognized"<&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fastjet-3.0.6+dfsg.orig/config.sub0000755000175000017500000010316712111460634015223 0ustar sunsun#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-11-20' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: fastjet-3.0.6+dfsg.orig/Makefile.am0000644000175000017500000000151311766120142015266 0ustar sunsun# redirect to subdirectories SUBDIRS = src include plugins tools example fortran_wrapper doc # install the fastjet-config script in the bin directory bin_SCRIPTS = fastjet-config # tests done using make check TEST_ENVIRONMENT = $(SHELL) TESTS = test-compare.sh # local macros for aclocal ACLOCAL_AMFLAGS = -I m4 # additional files we need in the distribution EXTRA_DIST = test-compare.sh makefile.static test-static.sh test-script-output-orig.txt Doxyfile BUGS # AX_PREFIX_CONFIG_H leaves some files undeleted after a make distclean # # we could use DISTCLEAN=... here but this would also overwrite the defaults # So, instead, we use the (apparently recommended) -local target to extend # the default behaviour distclean-local: distclean-ax-prefix-config-h distclean-ax-prefix-config-h: rm -f _configs.sed include/fastjet/config_auto.h fastjet-3.0.6+dfsg.orig/COPYING0000644000175000017500000006053011766120142014271 0ustar sunsunFastJet is released under the terms of the GNU General Public License v2 (GPLv2). FastJet includes a significant body of third-party code, for example for third party plugin algorithms and for computational geometry methods. These too are usually released under the GPL or permissive licenses. Details are given below on a case-by-case basis. A copy of the GPLv2 is to be found at the end of this file. While the GPL license grants you considerable freedom, please bear in mind that FastJet's use falls under guidelines similar to those that are standard for Monte Carlo event generators (http://www.montecarlonet.org/GUIDELINES). In particular, if you use this code as part of work towards a scientific publication, whether directly or contained within another program (e.g. Delphes, SpartyJet, Rivet, LHC collaboration software frameworks, etc.), you should include a citation to arXiv:1111.6097 (FastJet User Manual) and, optionally, Phys.Lett.B641 (2006) 57 [arXiv:hep-ph/0512210] A number of other citations may also be relevant, for example for jet areas and subtraction, boosted object taggers, plugins and the underlying computational geometry methods and codes. Plugins generally indicate the appropriate reference in a banner. References for other features are to be found in the FastJet manual. ====================================================================== Plugins ====================================================================== For the plugin jet finders, the licensing situation is as follows: ---------------------------------------------------------------------- . ATLAS Cone: the code was taken from SpartyJet v1.20. (GPLv2?) Licensing situation currently undergoing confirmation. ---------------------------------------------------------------------- . CDF code: originally provided by J.Huston See http://www.pa.msu.edu/~huston/Les_Houches_2005/JetClu+Midpoint-StandAlone.tgz for the original code. Informal agreement for distribution under the terms of the GPL was obtained from Robert Roser on 13 April 2011. We are awaiting final confirmation. ---------------------------------------------------------------------- . CMS Iterative Cone: Code taken from http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW GPL(v2) (permission granted by R.Harris) From: Robert M Harris To: Gregory Soyez , Matteo Cacciari , Gavin Salam Cc: Daniele.Del.Re@cern.ch, Salvatore Rappoccio , Robert M Harris Subject: Re: CMS Iterative Cone license Date: Mon, 21 Nov 2011 14:05:55 -0600 Dear Gregory, Matteo and Gavin, As a jet object coordinator for the CMS collaboration, and having consulted and obtained the consent of the other authors, I hereby grant you permission to distribute our code for the CMS Iterative Cone jet algorithm under the terms of the GNU Public License (v2). Best Regards, Robert Harris ---------------------------------------------------------------------- . D0 RunI and RunII cone plugins: Standalone version provided by Lars Sonnenschein. Permission to distribute it under the terms of the GPL(v2) granted by Lars Sonnenschein on behalf of the D0 collaboration From: Lars Sonnenschein To: Gregory Soyez Cc: Matteo Cacciari , Gavin Salam Subject: Re: D0 cone license Date: Mon, 12 Dec 2011 18:17:05 +0100 Dear Gregory, all, after some iterations with the D0 spoke persons and other programmers who have been involved in writing the C++ implementation within the D0 software framework, the conclusion is that D0 grants the permission: "As an author of the D0 Run I and D0 Run II cone code, and having consulted and obtained the consent of the other authors (D0 collaboration), I hereby grant you permission to distribute my/our code for the D0 Run I and Run II cone jet algorithms under the terms of the GNU General Public License (v2).". Citation and/or banner should then also give credit to the D0 collaboration. Kind regards Lars ---------------------------------------------------------------------- . PxCone code: GPL(v2) (permission granted by M.H.Seymour) From: Mike Seymour To: Gavin Salam Subject: Re: PxCone licence Date: Wed, 9 Nov 2011 15:15:08 +0000 Dear Gavin, As an author of the PxCone code, and having checked that this is acceptable with the other authors of PxCone (Luis Del Pozo and his then PhD supervisor David Ward), I hereby grant you the right to distribute PxCone together with FastJet under a GPL (v2) license. Many thanks for dealing with this, Mike. ---------------------------------------------------------------------- . SISCone code: GPL(v2) see http://projects.hepforge.org/siscone/ for details ---------------------------------------------------------------------- . TrackJet: available under the GPL (v2) from Rivet (v1.1.2) see http://projects.hepforge.org/rivet/ ---------------------------------------------------------------------- . EECambridge, GridJet, Jade and NestedDefs have been written by the FastJet authors and are thus distributed under the GNU Public License (v2). ---------------------------------------------------------------------- The "interface" parts of the plugins are GPL (v2). ====================================================================== CGAL ====================================================================== CGAL is not distributed with FastJet. Some parts of CGAL are released under a QPL license. Given this license's compatibility issues with the GPL, and for the purpose of resolving any ambiguity on this point, we explicitly grant permission for FastJet to be linked with CGAL. ====================================================================== Fortune's Voronoi code ====================================================================== This code, Copyright(c)1994 by AT&T Bell Laboratories is distributed under a non-restrictive license that allows for copying, modification and distribution as long as the original copyright notice is left unchanged. Modifications made subsequently by Shane O'Sullivan and Gregory Soyez are distributed under similar conditions. ====================================================================== Chan's closest neighbour algorithm ====================================================================== The code for this has been written by the FastJet authors. ====================================================================== ====================================================================== ====================================================================== GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.