You can subscribe to this list here.
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(4) |
Dec
(47) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(58) |
Feb
(15) |
Mar
(29) |
Apr
(27) |
May
(33) |
Jun
(21) |
Jul
(7) |
Aug
(32) |
Sep
(15) |
Oct
(9) |
Nov
(24) |
Dec
(84) |
2012 |
Jan
(8) |
Feb
(16) |
Mar
(2) |
Apr
(3) |
May
(3) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2013 |
Jan
(17) |
Feb
(9) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
(16) |
Dec
|
2014 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(1) |
Jun
(26) |
Jul
(22) |
Aug
(6) |
Sep
|
Oct
(2) |
Nov
|
Dec
(1) |
2015 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
(15) |
May
(24) |
Jun
(19) |
Jul
(6) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
From: <sgr...@us...> - 2015-09-05 09:30:19
|
Revision: 1387 http://sourceforge.net/p/libamtrack/code/1387 Author: sgreilich Date: 2015-09-05 09:30:16 +0000 (Sat, 05 Sep 2015) Log Message: ----------- Finalizing migration to github. Added corresponding note. Added Paths: ----------- README Removed Paths: ------------- branches/ tags/ trunk/ Added: README =================================================================== --- README (rev 0) +++ README 2015-09-05 09:30:16 UTC (rev 1387) @@ -0,0 +1,5 @@ +As of August 2015 (last revision r1386), the libamtrack repository has been migrated to a new location at github: + +http://github.com/libamtrack + +The version history has been preserved. The sourceforge repository is not maintained anymore, please update your working copy accordingly. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-07-15 06:35:21
|
Revision: 1386 http://sourceforge.net/p/libamtrack/code/1386 Author: sgreilich Date: 2015-07-15 06:35:19 +0000 (Wed, 15 Jul 2015) Log Message: ----------- Test commit for new Netbeans installation Modified Paths: -------------- trunk/README_DEVELOPERS Modified: trunk/README_DEVELOPERS =================================================================== --- trunk/README_DEVELOPERS 2015-07-15 06:28:59 UTC (rev 1385) +++ trunk/README_DEVELOPERS 2015-07-15 06:35:19 UTC (rev 1386) @@ -15,6 +15,7 @@ Contact and feedback + ############################################################################################################################ 0. Requirements ############################################################################################################################ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-07-15 06:29:01
|
Revision: 1385 http://sourceforge.net/p/libamtrack/code/1385 Author: sgreilich Date: 2015-07-15 06:28:59 +0000 (Wed, 15 Jul 2015) Log Message: ----------- Modified CSDA range functions to work with PSTAR data instead of Bethe to give better results for low energy particles. Should be extended to all stopping power data source at some point. Modified Paths: -------------- trunk/INSTALL trunk/distributions/R/NAMESPACE trunk/distributions/R/hardcoded_documentation/examples.txt trunk/distributions/R/hardcoded_documentation/libamtrack-package.Rd trunk/include/AT_DataRange.h trunk/include/AT_StoppingPowerDataBethe.h trunk/src/AT_DataRange.c trunk/test/C/AT_test.c Modified: trunk/INSTALL =================================================================== --- trunk/INSTALL 2015-07-12 15:28:35 UTC (rev 1384) +++ trunk/INSTALL 2015-07-15 06:28:59 UTC (rev 1385) @@ -1,7 +1,7 @@ Installation Instructions ************************* -Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, +Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, @@ -12,8 +12,8 @@ Basic Installation ================== - Briefly, the shell commands `./configure; make; make install' should -configure, build, and install this package. The following + Briefly, the shell command `./configure && make && make install' +should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented @@ -309,9 +309,10 @@ overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf bug. Until the bug is fixed you can use this workaround: +an Autoconf limitation. Until the limitation is lifted, you can use +this workaround: - CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== @@ -367,4 +368,3 @@ `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. - Modified: trunk/distributions/R/NAMESPACE =================================================================== --- trunk/distributions/R/NAMESPACE 2015-07-12 15:28:35 UTC (rev 1384) +++ trunk/distributions/R/NAMESPACE 2015-07-15 06:28:59 UTC (rev 1385) @@ -53,11 +53,9 @@ AT_particle_no_from_Z_and_A AT_A_from_particle_no AT_Z_from_particle_no -AT_CSDA_range_g_cm2 -AT_CSDA_range_m -AT_CSDA_range_Bethe_g_cm2_multi -AT_CSDA_energy_after_slab_E_MeV_u_multi -AT_WEPL_Bethe_multi +AT_CSDA_range_g_cm2_multi +#AT_CSDA_energy_after_slab_E_MeV_u_multi +#AT_WEPL_multi AT_electron_density_m3_multi AT_set_user_material AT_set_user_material_from_composition Modified: trunk/distributions/R/hardcoded_documentation/examples.txt =================================================================== --- trunk/distributions/R/hardcoded_documentation/examples.txt 2015-07-12 15:28:35 UTC (rev 1384) +++ trunk/distributions/R/hardcoded_documentation/examples.txt 2015-07-15 06:28:59 UTC (rev 1385) @@ -442,9 +442,9 @@ ) ::AT.CSDA.range.g.cm2:: # Range of 270 MeV/u carbon ions and 142 MeV/u protons in water -AT.CSDA.range.g.cm2( E.MeV.u = c(270, 142), - particle.no = AT.particle.no.from.particle.name(c("12C", "1H")), - material.no = AT.material.no.from.material.name("Water, Liquid")) +#AT.CSDA.range.g.cm2( E.MeV.u = c(270, 142), +# particle.no = AT.particle.no.from.particle.name(c("12C", "1H")), +# material.no = AT.material.no.from.material.name("Water, Liquid")) ::AT.E.MeV.from.CDSA.range:: # At which kinetic energy do these ions stop # in 15 cm of water Modified: trunk/distributions/R/hardcoded_documentation/libamtrack-package.Rd =================================================================== --- trunk/distributions/R/hardcoded_documentation/libamtrack-package.Rd 2015-07-12 15:28:35 UTC (rev 1384) +++ trunk/distributions/R/hardcoded_documentation/libamtrack-package.Rd 2015-07-15 06:28:59 UTC (rev 1385) @@ -89,9 +89,9 @@ %\code{\link{AT.CSDA.range.g.cm2}} \tab CSDA range in mass thickness\cr %\code{\link{AT.Stopping.Power.Mass.Bethe.MeV.cm2.g}} \tab Restricted LET / mass stopping power using the Bethe formula\cr -%\code{\link{AT.CSDA.range.Bethe.g.cm2}} \tab CSDA range from Bethe formula\cr +\code{\link{AT.CSDA.range.g.cm2}} \tab CSDA range using PSTAR data\cr %\code{\link{AT.CSDA.energy.after.slab.E.MeV.u}} \tab Ion energy after slab of material according Bethe formula\cr -\code{\link{AT.WEPL.Bethe}} \tab Water equivalent path length from Bethe range +\code{\link{AT.WEPL}} \tab Water equivalent path length from Bethe range } Mean LET / energy in mixed fields routines: Modified: trunk/include/AT_DataRange.h =================================================================== --- trunk/include/AT_DataRange.h 2015-07-12 15:28:35 UTC (rev 1384) +++ trunk/include/AT_DataRange.h 2015-07-15 06:28:59 UTC (rev 1385) @@ -43,12 +43,12 @@ /** * Structure to hold parameters other then parameter to integrate over - * for GSL integration routine used in AT_CSDA_range_Bethe_g_cm2_single + * for GSL integration routine used in AT_CSDA_range_g_cm2_single */ typedef struct { long particle_no; long material_no; -} AT_CSDA_range_Bethe_parameters; +} AT_CSDA_range_parameters; /** * Integrand function for CSDA computation: @@ -57,7 +57,7 @@ * @param[in] params * @return TODO */ -double AT_Stopping_Power_Mass_Bethe_MeV_cm2_g_int( double E_MeV_u, +double AT_Stopping_Power_Mass_MeV_cm2_g_int( double E_MeV_u, void* params); /** @@ -82,9 +82,7 @@ void* params); /** - * Computes the CSDA range using the Bethe formula (AT_Stopping_Power_Bethe_Number) - * according to ICRU49, p.6, Eq. 2.1 - * BUT WITHOUT shell or density, Bloch or Barkas correction! + * Computes the CSDA range using the PSTAR data * @param[in] n number of particles * @param[in] E_initial_MeV_u initial energy of particle per nucleon (array of size n) * @param[in] E_final_MeV_u final energy of particle per nucleon (array of size n) @@ -94,17 +92,15 @@ * @see AT_DataMaterial.h for definition * @param[out] CSDA_range_cm2_g resulting range (array of size n) */ -void AT_CSDA_range_Bethe_g_cm2_multi( const long n, +void AT_CSDA_range_g_cm2_multi( const long n, const double E_initial_MeV_u[], const double E_final_MeV_u[], - const long particle_no[], - const long material_no, + const long particle_no[], + const long material_no, double CSDA_range_cm2_g[]); /** - * Computes the CSDA range using the Bethe formula (AT_Stopping_Power_Bethe_Number) - * according to ICRU49, p.6, Eq. 2.1 - * BUT WITHOUT shell or density, Bloch or Barkas correction! + * Computes the CSDA range using the PSTAR data * @param[in] E_initial_MeV_u initial energy of particle per nucleon * @param[in] E_final_MeV_u final energy of particle per nucleon * @param[in] particle_no particle index @@ -113,10 +109,10 @@ * @see AT_DataMaterial.h for definition * @return result */ -double AT_CSDA_range_Bethe_g_cm2_single( const double E_initial_MeV_u, +double AT_CSDA_range_g_cm2_single( const double E_initial_MeV_u, const double E_final_MeV_u, - const long particle_no, - const long material_no); + const long particle_no, + const long material_no); /** * Solver function for CSDA energy after slab @@ -128,8 +124,8 @@ void* params); /** - * Computes the ion energy after transversing a slab of material using Bethe stopping power - * and CSDA approach + * Computes the ion energy after transversing a slab of material using + * the PSTAR data * @param[in] E_initial_MeV_u initial energy of particle per nucleon (array of size n) * @param[in] particle_no particle index (array of size n) * @see AT_DataParticle.h for definition @@ -173,7 +169,7 @@ * @param[in] slab_thickness_m thickness of slab of material different than water, in meter * @param[out] WEPL resulting water equivalent path length (array of size n) */ -void AT_WEPL_Bethe_multi( const long n, +void AT_WEPL_multi( const long n, const double E_MeV_u[], const long particle_no[], const long material_no, @@ -190,7 +186,7 @@ * @param[in] slab_thickness_m thickness of slab of material different than water, in meter * @return result */ -double AT_WEPL_Bethe_single( const double E_MeV_u, +double AT_WEPL_single( const double E_MeV_u, const long particle_no, const long material_no, const double slab_thickness_m); Modified: trunk/include/AT_StoppingPowerDataBethe.h =================================================================== --- trunk/include/AT_StoppingPowerDataBethe.h 2015-07-12 15:28:35 UTC (rev 1384) +++ trunk/include/AT_StoppingPowerDataBethe.h 2015-07-15 06:28:59 UTC (rev 1385) @@ -33,7 +33,7 @@ #include "AT_EnergyLoss.h" -#define BETHE_LOWER_LIMIT_E_MEV_U 1.0 +#define BETHE_LOWER_LIMIT_E_MEV_U 0.49 /** * Returns the electronic mass stopping power in MeV*cm2/g Modified: trunk/src/AT_DataRange.c =================================================================== --- trunk/src/AT_DataRange.c 2015-07-12 15:28:35 UTC (rev 1384) +++ trunk/src/AT_DataRange.c 2015-07-15 06:28:59 UTC (rev 1385) @@ -33,26 +33,27 @@ #include <gsl/gsl_integration.h> #include <gsl/gsl_randist.h> -double AT_Stopping_Power_Mass_Bethe_MeV_cm2_g_int( double E_MeV_u, +double AT_Stopping_Power_Mass_MeV_cm2_g_int( double E_MeV_u, void* params){ assert( params != NULL ); - AT_CSDA_range_Bethe_parameters* int_params = (AT_CSDA_range_Bethe_parameters*)params; - const double E_restricted_keV = 0.0; - double StPow = AT_Bethe_energy_loss_MeV_cm2_g_single( E_MeV_u, - int_params->particle_no, - int_params->material_no, - E_restricted_keV, - true); - return (1.0 / (StPow)); + AT_CSDA_range_parameters* int_params = (AT_CSDA_range_parameters*)params; + double StPow = 0.00001; + AT_Mass_Stopping_Power_with_no( PSTAR, + 1, + &E_MeV_u, + &(int_params->particle_no), + int_params->material_no, + &StPow); + return (1.0 / (StPow)); } -double AT_CSDA_range_Bethe_g_cm2_single( const double E_initial_MeV_u, +double AT_CSDA_range_g_cm2_single( const double E_initial_MeV_u, const double E_final_MeV_u, const long particle_no, const long material_no){ double range_cm2_g = 0.0; - AT_CSDA_range_Bethe_parameters params; + AT_CSDA_range_parameters params; params.material_no = material_no; params.particle_no = 1001; // Compute CSDA range for protons, then scale (see below) @@ -60,7 +61,7 @@ gsl_set_error_handler_off(); gsl_integration_workspace *w1 = gsl_integration_workspace_alloc (10000); gsl_function F; - F.function = &AT_Stopping_Power_Mass_Bethe_MeV_cm2_g_int; + F.function = &AT_Stopping_Power_Mass_MeV_cm2_g_int; F.params = (void*)¶ms; /* Set integration limits */ @@ -97,16 +98,16 @@ return(range_cm2_g * A / (Z * Z)); } -void AT_CSDA_range_Bethe_g_cm2_multi( const long n, +void AT_CSDA_range_g_cm2_multi( const long n, const double E_initial_MeV_u[], const double E_final_MeV_u[], - const long particle_no[], - const long material_no, + const long particle_no[], + const long material_no, double CSDA_range_cm2_g[]) { long i; for (i = 0; i < n; i++){ - CSDA_range_cm2_g[i] = AT_CSDA_range_Bethe_g_cm2_single( E_initial_MeV_u[i], + CSDA_range_cm2_g[i] = AT_CSDA_range_g_cm2_single( E_initial_MeV_u[i], E_final_MeV_u[i], particle_no[i], material_no); @@ -120,7 +121,7 @@ assert( params != NULL ); AT_CSDA_range_difference_parameters* solver_params = (AT_CSDA_range_difference_parameters*)params; - double material_range_g_cm2 = AT_CSDA_range_Bethe_g_cm2_single( solver_params->E_initial_MeV_u, + double material_range_g_cm2 = AT_CSDA_range_g_cm2_single( solver_params->E_initial_MeV_u, E_final_MeV_u, solver_params->particle_no, solver_params->material_no); @@ -173,7 +174,7 @@ } } -double AT_WEPL_Bethe_single( const double E_MeV_u, +double AT_WEPL_single( const double E_MeV_u, const long particle_no, const long material_no, const double slab_thickness_m){ @@ -184,14 +185,14 @@ material_no, slab_thickness_m); - double residual_range_g_cm2 = AT_CSDA_range_Bethe_g_cm2_single( E_final_MeV_u, + double residual_range_g_cm2 = AT_CSDA_range_g_cm2_single( E_final_MeV_u, BETHE_LOWER_LIMIT_E_MEV_U, particle_no, Water_Liquid); double residual_range_m = residual_range_g_cm2 / AT_density_g_cm3_from_material_no(Water_Liquid) / m_to_cm; - double range_water_m = AT_CSDA_range_Bethe_g_cm2_single(E_MeV_u, + double range_water_m = AT_CSDA_range_g_cm2_single(E_MeV_u, BETHE_LOWER_LIMIT_E_MEV_U, particle_no, Water_Liquid) / m_to_cm; @@ -199,7 +200,7 @@ return (range_water_m - residual_range_m) / slab_thickness_m; } -void AT_WEPL_Bethe_multi( const long n, +void AT_WEPL_multi( const long n, const double E_MeV_u[], const long particle_no[], const long material_no, @@ -208,7 +209,7 @@ { long i; for (i = 0; i < n; i++){ - WEPL[i] = AT_WEPL_Bethe_single( E_MeV_u[i], + WEPL[i] = AT_WEPL_single( E_MeV_u[i], particle_no[i], material_no, slab_thickness_m); Modified: trunk/test/C/AT_test.c =================================================================== --- trunk/test/C/AT_test.c 2015-07-12 15:28:35 UTC (rev 1384) +++ trunk/test/C/AT_test.c 2015-07-15 06:28:59 UTC (rev 1385) @@ -47,10 +47,18 @@ #include "AT_StoppingPower.h" #include "AT_CernlibFuns.h" +#include "AT_DataRange.h" int main(){ - const double E_MeV_u[3] = {1, 10, 100}; + double Test = AT_CSDA_range_g_cm2_single( 270.55, + 0.1, + 6012, + 1); + + printf("Range of 270.55 C-12 in water: %3.2f cm\n\n", Test); + + const double E_MeV_u[3] = {1, 10, 100}; const long particle_no[3] = {6012, 6012, 6012}; const long material_no = 2; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-07-12 15:28:37
|
Revision: 1384 http://sourceforge.net/p/libamtrack/code/1384 Author: sgreilich Date: 2015-07-12 15:28:35 +0000 (Sun, 12 Jul 2015) Log Message: ----------- Some more comments on software needed Modified Paths: -------------- trunk/README_DEVELOPERS Modified: trunk/README_DEVELOPERS =================================================================== --- trunk/README_DEVELOPERS 2015-07-05 10:05:36 UTC (rev 1383) +++ trunk/README_DEVELOPERS 2015-07-12 15:28:35 UTC (rev 1384) @@ -23,7 +23,7 @@ from source (sections 1 and 8). See section 7 for installation instructions. -To compile the DISTRIBUTED SOURCES of libamtrack: you need the GNU compiler collection gcc (section 1a). +To compile the DISTRIBUTED SOURCES of libamtrack: you need the GNU compiler collection gcc and other software(section 1a). To compile the FULL DEVELOPMENT SOURCES of libamtrack, make releases/distributions: you need in addition other parts of the GNU toolchain, i.e. the GNU build system (autotools, i.e. automake, autoconf, and libtool, and m4), @@ -36,8 +36,20 @@ Linux ===== -Most likely the repository of your distribution. +The names might change depending on your distribution. For Ubuntu 14.04 LTS you need: +automake +autoconf +libtool +gcc +gfortran +libgsl0-dev + +Plus for development using the Netbeans IDE +openjdk7 +netbeans (which is prefereably installed in the user's home directory from the Netbeans homepage) + + Using clang instead of gcc -------------------------- If clang is installed (e.g. at /usr/bin/clang), it can be used as an alternative by exporting: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-07-05 10:05:39
|
Revision: 1383 http://sourceforge.net/p/libamtrack/code/1383 Author: sgreilich Date: 2015-07-05 10:05:36 +0000 (Sun, 05 Jul 2015) Log Message: ----------- Modified autotools files to enable R souce package build (make R-package) on Windows (MSYS2). Modified Paths: -------------- trunk/Makefile.am trunk/README_DEVELOPERS trunk/configure.ac trunk/distributions/R/create.package.sh Modified: trunk/Makefile.am =================================================================== --- trunk/Makefile.am 2015-07-04 09:14:05 UTC (rev 1382) +++ trunk/Makefile.am 2015-07-05 10:05:36 UTC (rev 1383) @@ -3,14 +3,8 @@ ACLOCAL_AMFLAGS =-I m4 R-package: - $(srcdir)/distributions/R/create.package.sh - -R-package-sandbox: - $(srcdir)/distributions/R/create.package.sh --sandbox - -R-forge: - $(srcdir)/distributions/R/create.package.sh --sync /home/greilich/workspaces/libamtrack/R-Forge/pkg/ - + $(srcdir)/distributions/R/create.package.sh $(RTEST_FLAG) + deb-package: echo $(VERSION) echo $(srcdir) Modified: trunk/README_DEVELOPERS =================================================================== --- trunk/README_DEVELOPERS 2015-07-04 09:14:05 UTC (rev 1382) +++ trunk/README_DEVELOPERS 2015-07-05 10:05:36 UTC (rev 1383) @@ -35,12 +35,19 @@ You will find required tools depending on your OS here: Linux ------ +===== Most likely the repository of your distribution. +Using clang instead of gcc +-------------------------- +If clang is installed (e.g. at /usr/bin/clang), it can be used as an alternative by exporting: +CC=/usr/bin/clang +CXX=/usr/bin/clang++ +before ./configure (see 1a). + Mac OS X --------- +======== XCode and XCode Command Line Tools (we tested with Mac OS X 10.10 Mountain Lion and XCode 6.3.2). Additional autotools needed can be obtained by an additional package system for Mac OS X (e.g. Homebrew, Fink, MacPorts). On Fink, for example, use the list / install command to get: @@ -51,7 +58,10 @@ Windows -------- +======= + +MinGW/MYS +--------- MSYS from MinGW (basic POSIX shell). The MinGW DTK (developer toolkit) if you want to use autotools. The MinGW-based toolchain for both 32 bit and 64 bit comes with installation of Rtools (http://cran.r-project.org/bin/windows/Rtools/) that is also needed when compiling R tarball source packages under Windows. Switching between 32 bit and 64 bit @@ -65,26 +75,29 @@ Please make sure - for all Windows installations of MSYS, GSL, R packages, ... - NOT TO USE pathnames with spaces (i.e. C:\Program Files\MinGW) - that will most likely give you lots of strange errors. -Alternatively, you can use the mingw-w64 fork of MinGW. To do so, install MSYS2 as a POSIX-like console for windows: +mingw-w64 / MSYS2 +----------------- +Alternatively, you can use the mingw-w64 fork of MinGW. From July 2015, all check of libamtrack with Windows will +use this system. It can by installed in parallel with Rtools (s. below). + +Install MSYS2 as a POSIX-like console for windows: - Goto http://msys2.github.io/, download installer for 64bit (e.g. msys2-x86_64-YYYYMMDD.exe) - Execute installer (not as admin but regular user), install into c:\msys64 - Exit and restart MSYS by calling C:\msys64\mingw64_shell.bat (it is convenient for later use to make a shortcut) - Do "pacman -Sy" (synchronize local package database with repos) - Install software needed (gcc, gdb, etc.): - pacman -S mingw-w64-x86_64-gcc + pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gcc-libs + pacman -S mingw-w64-x86_64-gcc-fortran mingw-w64-x86_64-gcc-libgfortran pacman -S mingw-w64-x86_64-gdb pacman -S autoconf automake libtool + pacman -S mingw-w64-x86_64-binutils + pacman -S mingw-w64-x86_64-make pacman -S mingw-w64-x86_64-gsl pacman -S make pacman -S bash + - An overview of all tools in the toolchain can be seen by: pacman -S mingw-w64-x86_64-toolchain + - Optionally, you can install the same tools for 32 bit (not required): pacman -S mingw-w64-i686-toolchain - -Using clang instead of gcc --------------------------- -If clang is installed (e.g. at /usr/bin/clang), it can be used as an alternative by exporting: -CC=/usr/bin/clang -CXX=/usr/bin/clang++ -before ./configure (see 1a). ############################################################################################################################ @@ -104,19 +117,7 @@ For tweaking (target, installation directory) please see section 1b. -Under Windows you should use the MSYS shell. Also, you have to set the environmental variable GSL_LIB to point to your -GSL library, e.g. -export GSL_LIB=/c/Path/To/GSL (in MSYS) - -or - -set GSL_LIB=C:\Path\To\GSL (in Windows shell) - -or permanently using system settings. - - - ############################################################################################################################ 1b. Basic workflow for compilation of libamtrack from full source - using autotools ############################################################################################################################ @@ -174,14 +175,7 @@ ./configure CC="gcc -arch i386 -arch x86_64" CPP="gcc -E" which will give 32 AND 64 bit versions on Intel-based Mac, for PowerPC add "-arch ppc" (32 bit) and/or "-arch ppc64" - - When using Windows and the Rtools toolchain, use the MSYS shell and select 32 or 64 bit by - - ./configure CFLAGS="-m32" or CFLAGS="-m64" - - Also, set GSL_LIB (see section 1a) to point to your GSL installation. - - + You can change the default path for installation by "--prefix=/my/installation/path". The flags given in this section can be used together where applicable. @@ -206,24 +200,13 @@ 1c. Non-standard make targets ############################################################################################################################ -i. R-package +R-package +=============== +Compiles an R package tarball from current libamtrack source. Works also under Windows but will skip test of package (as +multiarchtecture compilation is not (yet) set up correctly). Instead, you should use Rtools and the Windows CMD shell for +testing and building of a binary package after running this target in MSYS2 (see below). -Compiles an R package tarball from current libamtrack source -ii. R-forge - -Syncs R package source with given directory (which is preferrably a working copy of the libamtrack R-forge repository at -svn://r-forge.r-project.org/svnroot/libamtrack/). - -iii. R-package-sandbox - -Compiles an R package tarball from current libamtrack source PLUS another directory containings files to overwrite public -files (i.e. proprietary stopping power data etc.). - - -ii. and iii. still contain hardcoded paths. - - ############################################################################################################################ 2. Using an IDE ############################################################################################################################ @@ -283,8 +266,8 @@ They are synchronized with the latest libamtrack sources through a night build system (Jenkins). -This section applies to Linux and Mac OS X only. On Windows (MSYS) there are unsolved issues yet. This workflow is partly -replaced by the make target "R-package" (see section 1), but left here for details on the procedure behind that target. +This workflow is replaced by the make target "R-package" (see section 1), but left here for details on the procedure +behind that target. The necessary files for producing an R package from libamtrack are found in: /wrapper/R/R_package package folder structure and input files, script for compilation, hardcoded wrappers @@ -303,7 +286,7 @@ Run ./create.package.sh Use --help to see options -If your function is not in resulting package, use --noclean option and check output file "collect.doxygen.information.Rout" +If your function is not in resulting package, use --no-clean option and check output file "collect.doxygen.information.Rout" for functions that fails (most likely due to faulty doxygen formatting). The resulting package is an source tarball (libamtrack-version.tar.gz). It can either be distributed by yourself (most likely in @@ -317,8 +300,7 @@ (sudo) R CMD INSTALL <package_name> Under standard Windows, source tarballs cannot be installed with a common R installation. To compile a source package -(that - for libamtrack - can only be created using Linux or Mac OS X, you have to prepare your system and the best way to do -so, is to use the RTools (see section 0). For setting up GSL properly for R package compilation, see section 7. +the best way is to use the RTools (see section 0). Under Mac OS X, the dedicated gfortran distribution should be used (http://cran.r-project.org/bin/macosx/tools/). Also, adapt the corresponding lines in the configuration file $R_HOME/etc/makeconf, e.g.: @@ -350,11 +332,9 @@ ############################################################################################################################ -6. Install MinGW toolchain (Windows) +6. Install Rtools (Windows) ############################################################################################################################ -6a. Rtools ----------- Install the latest version of Rtools from http://cran.r-project.org/bin/windows/Rtools/ with administrator priviledges. This includes a complete multilib (32/64 bit) toolchain based on MinGW. To our knowledge this is the easiest way, even when you intend not to compile R source packages but libamtrack only - everything is setup correctly. Since some releases, the @@ -368,35 +348,18 @@ first or second in the path: there are typically like-named tools46 in other directories, and they will not work. -6b. MSYS (& MinGW-DTK) ----------------------- -Download and run the latest version of the MinGW installer mingw-get-inst from - -https://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/ - -Select MSYS only (!) or "MinGW Developer Toolkit" only (the latter if you want GNU autotools). - -Make sure that C:\Path\to\MinGW\msys\1.0\etc\fstab contains only a single line (with forward slahes!) - -C:/Path/to/MinGW /mingw - -Start MSYS from C:\Path\to\MinGW\msys\1.0\msys.bat (make a shortcut to Desktop etc. for convenience). You will have a home -directory at C:\Path\to\MinGW\msys\1.0\home\yourname which you can use as workspace for compilation etc. Also, you should -create a /local directory at C:\Path\to\MinGW\msys\1.0\local where you can install compiled libraries etc. such as GSL. - - ############################################################################################################################ 7. Install GSL ############################################################################################################################ 7a. Linux ---------- +========= Most popular distribution offer GSL (libgsl) in their repositories. Please make sure that you install the development version -including headers. +including headers (e.g. libgsl0-dev). 7b. Mac OS X ------------- +============ Please make sure you have XCode and the XCode Command Line Tools installed (tested on Mac OS X 10.8 Mountain Lion, Xcode tools 4.5.2, gcc version 4.2.1 (Based on Apple Inc. build 5658)). @@ -427,30 +390,13 @@ 7c. WINDOWS ------------ +=========== i. For regular compilation (as in section 1a, 1b, 8) -==================================================== -To compiling GSL for source compilation of libamtrack, start MSYS. Download the tarball for the latest GSL version, e.g. gsl-1.15.tar.gz and -unzip in your home directory, e.g. C:\Path\to\MinGW\msys\1.0\home\yourname. +---------------------------------------------------- +Install the binary package from MSYS2 (see 0) -In MSYS, navigate into the gsl directory (cd ~/gsl-x.y), build, test and install. To switch between 32 and 64 bit, add CFLAGS="-m32" (default) -or "-m64" according to your system (or maybe the host you intend to run GSL on): - ./configure - make - make check >log 2>&1 - make install - -You can change the installation directory by the "--prefix" flag for configure (default: /usr/local). We recommend to keep the default but you -could do so for example if you want to keep / distribute binaries for both 32 bit and 64 bit versions. - -Remember to use the environmental variable GSL_LIB to point to the installation directory during compilation of libamtrack (sections 1a, 1b). - -In principle, you could alternatively use any directory and add the \bin subdirectory of it to PATH and leave GSL_LIB empty so that configure -runs gsl-config to get include and lib paths like under Linux and Mac OS X. However, the expansion of the AX_PATH_GSL seems faulty under Windows. - - ii. R package compilation (as for section 4, 8) ----------------------------------------------- There are subtle differences how regular libamtrack compilation and R package compilation handle GSL and GSL pointers: @@ -594,16 +540,11 @@ Windows: -------- -Start Windows command shell (with administrative priviledges, i.e. Start button > Search programs and files > Enter "cmd" > Press "Ctrl+Shift+Enter" +With Rtools installed, start Windows command shell (with administrative priviledges, i.e. +Start button > Search programs and files > Enter "cmd" > Press "Ctrl+Shift+Enter" Navigate to directory where the package's source tarball (created using ./create.package.sh under Linux) is located. -R has integrated support for GSL, so all we need to do is to set R's environmental variable LIB_GSL to point first to top folder of the GSL installation -(assuming you followed the instructions for GSL installation given in section 7. with correspding subdirectories for the two architectures. -NB: Linux-style slashes!): - - set LIB_GSL=C:/Rtools/MinGW/msys/1.0/local/ - Now build binary package (NB: Windows environmental variable PATH has to include the R version you are using): R CMD INSTALL --no-inst --build package_x.y.z.tar.gz @@ -617,6 +558,7 @@ If you want to install the package yourself, just skip "--no-inst" during compilation. + ############################################################################################################################ 9. A note on stopping powers ############################################################################################################################ Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2015-07-04 09:14:05 UTC (rev 1382) +++ trunk/configure.ac 2015-07-05 10:05:36 UTC (rev 1383) @@ -100,5 +100,16 @@ AC_FUNC_STRTOD AC_CHECK_FUNCS([floor pow sqrt strstr strtol]) +# Check for system and set flag for not doing R-package test in mingw +AC_CANONICAL_HOST +RTEST_FLAG="" +AS_CASE([$host_os], + [mingw*], + [ + RTEST_FLAG="--no-test" + AC_MSG_NOTICE([Running on MinGW, will suppress check of R package]) + ]) +AC_SUBST([RTEST_FLAG]) + AC_CONFIG_FILES(Makefile src/Makefile test/Makefile test/C/Makefile example/Makefile example/basic_plots/Makefile example/demo/Makefile thirdparty/cernlib/Makefile) AC_OUTPUT Modified: trunk/distributions/R/create.package.sh =================================================================== --- trunk/distributions/R/create.package.sh 2015-07-04 09:14:05 UTC (rev 1382) +++ trunk/distributions/R/create.package.sh 2015-07-05 10:05:36 UTC (rev 1383) @@ -10,13 +10,11 @@ ROOT_DIR=$(pwd) WORK_DIR=$ROOT_DIR/distributions/R SCRIPT_DIR=$WORK_DIR/scripts -SANDBOX_DIR=$ROOT_DIR/../sandbox HELP_ARG="FALSE" FAST_ARG="FALSE" NOCLEAN_ARG="FALSE" -SANDBOX_ARG="FALSE" -SYNC_ARG="FALSE" +NOTEST_ARG="FALSE" OUTPUT="ROOT_DIR is $ROOT_DIR" echo $OUTPUT @@ -24,8 +22,6 @@ echo $OUTPUT OUTPUT="SCRIPT_DIR is $SCRIPT_DIR" echo $OUTPUT -OUTPUT="SANDBOX_DIR is $SANDBOX_DIR" -echo $OUTPUT echo # set bound checking environmental variable @@ -37,8 +33,8 @@ echo "This script compiles libamtrack to an R package source tarball" echo echo "Use '--fast' to skip svn information update and R examples." - echo "Use '--noclean' to leave transient files after compilation for debugging." - echo "Use '--sync syncdir' to sync source package with directory syncdir." + echo "Use '--no-clean' to leave transient files after compilation for debugging." + echo "Use '--no-test' to skip 'R CMD check', e.g. under MSYS." echo exit 0 ;; @@ -47,42 +43,22 @@ echo "Fast execution chosen. Will not update svn information nor run R examples." shift ;; - --noclean) + --no-clean) NOCLEAN_ARG="TRUE" echo "Will leave transient files after compilation - it is strongly recommended to remove them manually." shift ;; - --sandbox) - SANDBOX_ARG="TRUE" - echo "Will use sandbox files instead of main development trunk." + --no-test) + NOTEST_ARG="TRUE" + echo "Will skip test of resulting R source package." shift ;; - --sync) - shift - if test $# -gt 0; then - SYNC_ARG="TRUE" - SYNC_DIR=$1 - echo "Sync chosen with" $SYNC_DIR - else - echo "Error: no sync dir specified" - exit 1 - fi - shift - ;; esac done echo -# Check for bad combinations -if [ $SANDBOX_ARG == "TRUE" ] ; then - if [ $FAST_ARG == "TRUE" ] ; then - echo "--sandbox and --fast must not be combined. Exiting" - exit 1 - fi -fi - # Clean up residues from earlier runs if applicable if [ -d "$WORK_DIR/libamtrack" ]; then rm $WORK_DIR/libamtrack -rf @@ -116,21 +92,16 @@ cp $ROOT_DIR/thirdparty/cernlib/*.f $WORK_DIR/libamtrack/src/ -# *** Copy sandbox files if chosen *** -if [ $SANDBOX_ARG == "TRUE" ] ; then - echo "Copying sandbox sources..." - cp $SANDBOX_DIR/include/*.h $WORK_DIR/libamtrack/src/ - cp $SANDBOX_DIR/src/*.c $WORK_DIR/libamtrack/src/ -fi - - # *** Clean temporary files (e.g. from gedit that will confuse the collect.doxygen.information.R script) -if [ ls $WORK_DIR/libamtrack/src/*.h~ &> /dev/null ]; then - rm $ROOT_DIR/include/*.h~ +if [ ls $WORK_DIR/libamtrack/include/*.h~ &> /dev/null ]; then + rm $WORK_DIR/libamtrack/include/*.h~ fi if [ ls $WORK_DIR/libamtrack/src/*.c~ &> /dev/null ]; then rm $WORK_DIR/libamtrack/src/*.c~ fi +if [ ls $WORK_DIR/libamtrack/cernlib/*.f~ &> /dev/null ]; then + rm $WORK_DIR/libamtrack/cernlib/*.f +fi # *** Copy hardcoded documentation *** @@ -145,14 +116,6 @@ cp $WORK_DIR/hardcoded_wrappers/hardcoded_wrapper.h $WORK_DIR/libamtrack/src/ -# *** Copy sandbox configure.ac *** -if [ $SANDBOX_ARG == "TRUE" ] ; then - echo "Copy sandbox configure.ac" - cp $ROOT_DIR/configure.ac $ROOT_DIR/configure.ac.org - cp $SANDBOX_DIR/configure.ac $ROOT_DIR -fi - - # *** Run autoconfigure (to update svn version) *** if [ $FAST_ARG == "FALSE" ] ; then echo "Running autoreconf and configure in main folder (to update svnversion information)..." @@ -162,9 +125,11 @@ fi -# *** Copy generated file *** +# *** Copy generated files *** cp $ROOT_DIR/config.h $WORK_DIR/libamtrack/src/ + +# *** Run R scripts for automated C to R *** echo echo "Running R script to parse doxygen information from sources..." Rscript --no-save $ROOT_DIR/scripts/collect.doxygen.information.R $WORK_DIR $ROOT_DIR/include >$WORK_DIR/collect.doxygen.information.Rout 2>&1 @@ -194,13 +159,6 @@ exit 1 fi - -if [ $SANDBOX_ARG == "TRUE" ] ; then - echo "Roll back copy of sandbox configure.ac" - mv $ROOT_DIR/configure.ac.org $ROOT_DIR/configure.ac -fi - - echo "Running R script to create Rd documentation from parsed doxygen information..." Rscript --no-save $SCRIPT_DIR/R.generate.Rd.documentation.R $WORK_DIR libamtrack hardcoded_documentation >$WORK_DIR/R.generate.Rd.documentation.Rout 2>&1 if [ "$?" -ne "0" ]; then @@ -208,6 +166,7 @@ exit 1 fi + # *** Move resulting file (wrapper C and R), dynamically coded documentation to temporary folder echo "Moving results from R scripts into package structure..." mv $ROOT_DIR/AT_R_Wrapper.* $WORK_DIR/libamtrack/src @@ -242,39 +201,26 @@ cd $ROOT_DIR -# *** Copy package directory for sync *** -if [ $SYNC_ARG == "TRUE" ] ; then - echo "Syncing..." - cp -rp $WORK_DIR/libamtrack $ROOT_DIR/libamtrack.pkg - rm -rf $ROOT_DIR/libamtrack.pkg/autom4te.cache - rsync -vhau --delete-before $ROOT_DIR/libamtrack.pkg/* $SYNC_DIR - rm -rf $ROOT_DIR/libamtrack.pkg +# *** Test package *** +if [ $NOTEST_ARG == "FALSE" ] ; then + echo + echo "Running package check..." + if [ $FAST_ARG == "FALSE" ] ; then + R CMD check $WORK_DIR/libamtrack --no-manual + if [ "$?" -ne "0" ]; then + echo "Problem with executing R CMD check ./package --no-manual" + exit 1 + fi + else + R CMD check $WORK_DIR/libamtrack --no-manual --no-examples + if [ "$?" -ne "0" ]; then + echo "Problem with executing R CMD check ./package --no-manual --no-examples" + exit 1 + fi + fi fi -# *** Build test package *** -echo -echo "Running package check..." -if [ $FAST_ARG == "FALSE" ] ; then - R CMD check $WORK_DIR/libamtrack --no-manual - if [ "$?" -ne "0" ]; then - echo "Problem with executing R CMD check ./package --no-manual" - exit 1 - fi -else - R CMD check $WORK_DIR/libamtrack --no-manual --no-examples - if [ "$?" -ne "0" ]; then - echo "Problem with executing R CMD check ./package --no-manual --no-examples" - exit 1 - fi -fi - - -# *** Build binary distribution *** -#echo -#echo "Building binary distribution package..." -#sudo R CMD INSTALL --build libamtrack - # *** Build tarball source package *** echo echo "Building source package tarball..." This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-07-04 09:14:07
|
Revision: 1382 http://sourceforge.net/p/libamtrack/code/1382 Author: sgreilich Date: 2015-07-04 09:14:05 +0000 (Sat, 04 Jul 2015) Log Message: ----------- Added "no-undefined" flag for linker (necessary for MinGW where undefined symbols are not allowed) Modified Paths: -------------- trunk/src/Makefile.am trunk/thirdparty/cernlib/Makefile.am Modified: trunk/src/Makefile.am =================================================================== --- trunk/src/Makefile.am 2015-07-04 08:55:02 UTC (rev 1381) +++ trunk/src/Makefile.am 2015-07-04 09:14:05 UTC (rev 1382) @@ -23,4 +23,4 @@ ../include/AT_StoppingPower.h libamtrack_la_CFLAGS =-I../include -I../thirdparty/cernlib -Wall -pedantic -std=c99 -fPIC $(GSL_CFLAGS) $(OPENMP_CFLAGS) -libamtrack_la_LDFLAGS = -version-info 0:0:0 $(GSL_LIBS) ../thirdparty/cernlib/libcernlibfuns.la +libamtrack_la_LDFLAGS = -version-info 0:0:0 $(GSL_LIBS) ../thirdparty/cernlib/libcernlibfuns.la -no-undefined Modified: trunk/thirdparty/cernlib/Makefile.am =================================================================== --- trunk/thirdparty/cernlib/Makefile.am 2015-07-04 08:55:02 UTC (rev 1381) +++ trunk/thirdparty/cernlib/Makefile.am 2015-07-04 09:14:05 UTC (rev 1382) @@ -3,4 +3,4 @@ include_HEADERS= AT_CernlibFuns.h libcernlibfuns_la_CFLAGS =-I. -Wall -pedantic -std=c99 -fPIC -libcernlibfuns_la_LDFLAGS = -version-info 0:0:0 +libcernlibfuns_la_LDFLAGS = -version-info 0:0:0 -no-undefined This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-07-04 08:55:04
|
Revision: 1381 http://sourceforge.net/p/libamtrack/code/1381 Author: sgreilich Date: 2015-07-04 08:55:02 +0000 (Sat, 04 Jul 2015) Log Message: ----------- Fixed sourcing call for type conversion (which funnily worked under Linux - but gave a reasonable error under Windows/MinGW), added some output Modified Paths: -------------- trunk/distributions/R/scripts/R.generate.Rd.documentation.R Modified: trunk/distributions/R/scripts/R.generate.Rd.documentation.R =================================================================== --- trunk/distributions/R/scripts/R.generate.Rd.documentation.R 2015-06-26 12:23:33 UTC (rev 1380) +++ trunk/distributions/R/scripts/R.generate.Rd.documentation.R 2015-07-04 08:55:02 UTC (rev 1381) @@ -50,6 +50,7 @@ hardcoded.variable.descriptions <- c("E.MeV.u", "particle.no", "material.no", "er.model", "rdd.model", "fluence.cm2.or.dose.Gy", "number.of.field.components", "stopping.power.source.no", "stopping.power.source") # Read in hard-coded examples +cat("Scanning: ", paste(args[1], "/", args[3], "/examples.txt", sep = ""), "\n") if(args[2] == "libmaterials"){ hardcoded.examples <- scan("../../../libmaterials/wrapper/R/hardcoded_documentation/examples.txt", what = "character", @@ -64,7 +65,8 @@ nchar(hardcoded.examples[pos.start.examples]) - 2) # Read in type conversion table for C to R -source(paste(args[1], args[3], sep = "/")) +cat("Sourcing conversion table: ", paste(args[1], "scripts/R.type.conversion.R", sep = "/"), "\n") +source(paste(args[1], "scripts/R.type.conversion.R", sep = "/")) # exclude function with "C only" flag noR <- sapply(functions, check.type <- function(x){x$wrapper.type == "C only"}) @@ -107,6 +109,7 @@ parameter.list <- paste(parameter.list, cur.function$parameter.comment$name[ii[length(ii)]], sep = "") } + cat("Writing automatically created Rd file for", cur.function$name, "\n") write("% Automatically created Rd file\n", file = paste(args[1], "/", args[2], "/man/", cur.function$name, ".Rd", sep = "")) # Create Rd description @@ -215,6 +218,7 @@ } # Write current description to file + cat("Writing...", cur.function$name, "\n") write(c(cur.description, "\n"), file = paste("./", cur.function$name, ".Rd", sep = ""), append = T) } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-26 12:23:34
|
Revision: 1380 http://sourceforge.net/p/libamtrack/code/1380 Author: sgreilich Date: 2015-06-26 12:23:33 +0000 (Fri, 26 Jun 2015) Log Message: ----------- Updated change log Modified Paths: -------------- trunk/ChangeLog Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2015-06-26 07:12:47 UTC (rev 1379) +++ trunk/ChangeLog 2015-06-26 12:23:33 UTC (rev 1380) @@ -1,3 +1,10 @@ +Changes in 0.6.2 (2015-06-26) +============================= + +- Fixed (many) bugs in energy deposition loss routines +- Cut dependency from mathlib (cernlib) by using the Fortran code directly. Now, routines work in any OS. + + Changes in 0.6.1 (2015-05-22) ============================= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-26 07:12:50
|
Revision: 1379 http://sourceforge.net/p/libamtrack/code/1379 Author: sgreilich Date: 2015-06-26 07:12:47 +0000 (Fri, 26 Jun 2015) Log Message: ----------- Switched back to development version (0.6.3), augmented info for developers. Modified Paths: -------------- trunk/README_DEVELOPERS trunk/configure.ac Modified: trunk/README_DEVELOPERS =================================================================== --- trunk/README_DEVELOPERS 2015-06-26 06:43:18 UTC (rev 1378) +++ trunk/README_DEVELOPERS 2015-06-26 07:12:47 UTC (rev 1379) @@ -29,7 +29,7 @@ system (autotools, i.e. automake, autoconf, and libtool, and m4), (see sections 1b and 8). -To check out the FULL DEVELOPMENT SOURCE, you also need subversion (svn) installed. +To check out the FULL DEVELOPMENT SOURCE, you also need subversion (svn) installed. You will find required tools depending on your OS here: @@ -41,9 +41,15 @@ Mac OS X -------- -XCode and XCode Command Line Tools (we tested with Mac OS X 10.8 Mountain Lion and XCode 4.5.2). +XCode and XCode Command Line Tools (we tested with Mac OS X 10.10 Mountain Lion and XCode 6.3.2). Additional autotools +needed can be obtained by an additional package system for Mac OS X (e.g. Homebrew, Fink, MacPorts). On Fink, for example, +use the list / install command to get: + automake(1.15), autoconf, libtool2, pkgconfig +Do not install gcc. Do also not install gfortran if you also want to compile the R package. In this case, use the gfortran +distribution from the "CRAN tools for R compilation on Mac OS X" website (s. below) + Windows ------- MSYS from MinGW (basic POSIX shell). The MinGW DTK (developer toolkit) if you want to use autotools. The MinGW-based @@ -59,7 +65,20 @@ Please make sure - for all Windows installations of MSYS, GSL, R packages, ... - NOT TO USE pathnames with spaces (i.e. C:\Program Files\MinGW) - that will most likely give you lots of strange errors. - +Alternatively, you can use the mingw-w64 fork of MinGW. To do so, install MSYS2 as a POSIX-like console for windows: + - Goto http://msys2.github.io/, download installer for 64bit (e.g. msys2-x86_64-YYYYMMDD.exe) + - Execute installer (not as admin but regular user), install into c:\msys64 + - Exit and restart MSYS by calling C:\msys64\mingw64_shell.bat (it is convenient for later use to make a shortcut) + - Do "pacman -Sy" (synchronize local package database with repos) + - Install software needed (gcc, gdb, etc.): + pacman -S mingw-w64-x86_64-gcc + pacman -S mingw-w64-x86_64-gdb + pacman -S autoconf automake libtool + pacman -S mingw-w64-x86_64-gsl + pacman -S make + pacman -S bash + + Using clang instead of gcc -------------------------- If clang is installed (e.g. at /usr/bin/clang), it can be used as an alternative by exporting: @@ -127,11 +146,7 @@ As for section 1a, please make sure that GSL_LIB points correctly to your GSL installation (section 7) if you are working with Windows. -### IMPORTANT NOT AS OF 2013-02-05: -### Due to an expansion problem of the AX_GSL_PATH by autoconf under Windows, libamtrack compilation is not recommended -### at the moment. We are looking for a fix. - Steps for compilation: ---------------------- i. After you check out libamtrack OR @@ -208,8 +223,9 @@ ii. and iii. still contain hardcoded paths. + ############################################################################################################################ -2. Using the eclipse IDE +2. Using an IDE ############################################################################################################################ Eclipse 3.6+ supports the autotool toolchain. There are, however, some peculiarities to be considered: @@ -220,7 +236,9 @@ When using a second build configuration with debug flags (see above), eclipse gets confused and you have (TODO: fix) to prepare debugged code to use with gbd in eclipse using the command line. +Also, Netbeans can be used. + ############################################################################################################################ 3. Doxygen comments ############################################################################################################################ @@ -258,8 +276,16 @@ 4. Build an R source package tarball ############################################################################################################################ -This applies to Linux and Mac OS X only. +From Jun 2014, development versions of the libamtrack R-packages are provided by R-forge: +http://r-forge.r-project.org/R/?group_id=1918 + +They are synchronized with the latest libamtrack sources through a night build system (Jenkins). + + +This section applies to Linux and Mac OS X only. On Windows (MSYS) there are unsolved issues yet. This workflow is partly +replaced by the make target "R-package" (see section 1), but left here for details on the procedure behind that target. + The necessary files for producing an R package from libamtrack are found in: /wrapper/R/R_package package folder structure and input files, script for compilation, hardcoded wrappers and documentation @@ -290,19 +316,33 @@ (sudo) R CMD INSTALL <package_name> -Under standard Windows, source tarballs cannot be installed. To compile a source package (that - for libamtrack - can -only be created using Linux or Mac OS X, you have to prepare your system and the best way to do so, is to use the -RTools (see section 0). For setting up GSL properly for R package compilation, see section 7. +Under standard Windows, source tarballs cannot be installed with a common R installation. To compile a source package +(that - for libamtrack - can only be created using Linux or Mac OS X, you have to prepare your system and the best way to do +so, is to use the RTools (see section 0). For setting up GSL properly for R package compilation, see section 7. +Under Mac OS X, the dedicated gfortran distribution should be used (http://cran.r-project.org/bin/macosx/tools/). Also, +adapt the corresponding lines in the configuration file $R_HOME/etc/makeconf, e.g.: +CC = clang -arch x86_64 +CXX = clang++ -arch x86_64 +CXXCPP = $(CXX) -arch x86_64 -E +FC = gfortran -arch x86_64 +F77 = gfortran -arch x86_64 +FLIBS = -L/usr/local/lib/gcc/i686-apple-darwin8/4.2.3 -L/usr/local/lib/gcc/i686-apple-darwin8/4.2.3/x86_64 -lm +OBJC = clang -arch x86_64 +OBJCXX = clang++ -arch x86_64 + + + ############################################################################################################################ 5. Python wrappers ############################################################################################################################ -i. make "wrapper/Python/pyamtrack/NAMESPACE" file completely empty this will cause wrappers will be created for (almost) all functions +i. make "wrapper/Python/pyamtrack/NAMESPACE" file completely empty this will cause wrappers will be created for (almost) + all functions -ii. run "python generate_Py_wrapper.py" to generate file "pyamtrack.py". The script will complain, but ignore it - some functions are -impossible to translate yet. +ii. run "python generate_Py_wrapper.py" to generate file "pyamtrack.py". The script will complain, but ignore it - some + functions are impossible to translate yet. iii. copy compiled library to the same directory as "pyamtrack.py": cp ../../../src/.libs/libamtrack.so.0.0.0 libamtrack.so Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2015-06-26 06:43:18 UTC (rev 1378) +++ trunk/configure.ac 2015-06-26 07:12:47 UTC (rev 1379) @@ -1,13 +1,13 @@ AC_PREREQ([2.68]) m4_define(gsl_required_version, 1.8) -AC_INIT([libamtrack], [0.6.2], [s.g...@dk...], [libamtrack]) +AC_INIT([libamtrack], [0.6.3], [s.g...@dk...], [libamtrack]) AC_PACKAGE_URL([libamtrack.dkfz.org]) # Code names: # minor - 4: Ocelot, 5: Wombat, 6: Armadillo # micro - 0: Black, 1: Blue, 2: Red, 3: Green, 4: Yellow, 5: Violet -AC_DEFINE(CODE_NAME, ["Red Armadillo"], [Cryptonym to faciliate versioning for users]) +AC_DEFINE(CODE_NAME, ["Green Armadillo"], [Cryptonym to faciliate versioning for users]) # Status: "Development" or "Release" (will trigger some different actions, e.g. with R package) -AC_DEFINE(CODE_STATUS, ["Release"], [Status of the code]) +AC_DEFINE(CODE_STATUS, ["Development"], [Status of the code]) LT_INIT AM_INIT_AUTOMAKE([subdir-objects]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-26 06:43:20
|
Revision: 1378 http://sourceforge.net/p/libamtrack/code/1378 Author: sgreilich Date: 2015-06-26 06:43:18 +0000 (Fri, 26 Jun 2015) Log Message: ----------- Tag 0.6.2 Added Paths: ----------- tags/0.6.2/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-25 06:04:34
|
Revision: 1377 http://sourceforge.net/p/libamtrack/code/1377 Author: sgreilich Date: 2015-06-25 06:04:32 +0000 (Thu, 25 Jun 2015) Log Message: ----------- Simplified check for gsl Modified Paths: -------------- trunk/configure.ac Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2015-06-25 04:43:08 UTC (rev 1376) +++ trunk/configure.ac 2015-06-25 06:04:32 UTC (rev 1377) @@ -68,19 +68,16 @@ AC_SUBST(OPENMP_LDFLAGS) # Checks for libraries, add user-set path to gsl if necessary (e.g. on Windows) +AC_CHECK_LIB([m],[cos]) + if test "${GSL_LIB}" != ""; then GSL_CFLAGS = "-I${GSL_LIB}/include" GSL_LIBS = "-L${GSL_LIB}/lib -lgsl -lgslcblas" else - AX_PATH_GSL(1.8, - AC_DEFINE(HAVE_GSL_1_8, 1, [gsl>=1.8 found]), - AC_MSG_ERROR([No gsl>=1.8 found!])) + AC_CHECK_LIB([gslcblas],[cblas_dgemm]) + AC_CHECK_LIB([gsl],[gsl_blas_dgemm]) fi -# Look for libm -AC_SEARCH_LIBS([cos], [m], [], [AC_MSG_ERROR([unable to find the cos() function])]) - - # Checks for essential header files AC_CHECK_HEADER([malloc.h]) AC_CHECK_HEADER([stdint.h]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-25 04:43:10
|
Revision: 1376 http://sourceforge.net/p/libamtrack/code/1376 Author: sgreilich Date: 2015-06-25 04:43:08 +0000 (Thu, 25 Jun 2015) Log Message: ----------- Updated ignore list Modified Paths: -------------- trunk/INSTALL Removed Paths: ------------- trunk/thirdparty/cernlib/.deps/ trunk/thirdparty/cernlib/Makefile trunk/thirdparty/cernlib/Makefile.in Property Changed: ---------------- trunk/thirdparty/cernlib/ Modified: trunk/INSTALL =================================================================== --- trunk/INSTALL 2015-06-25 04:41:34 UTC (rev 1375) +++ trunk/INSTALL 2015-06-25 04:43:08 UTC (rev 1376) @@ -1,7 +1,7 @@ Installation Instructions ************************* -Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, +Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, @@ -12,8 +12,8 @@ Basic Installation ================== - Briefly, the shell command `./configure && make && make install' -should configure, build, and install this package. The following + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented @@ -309,10 +309,9 @@ overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf limitation. Until the limitation is lifted, you can use -this workaround: +an Autoconf bug. Until the bug is fixed you can use this workaround: - CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== @@ -368,3 +367,4 @@ `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. + Index: trunk/thirdparty/cernlib =================================================================== --- trunk/thirdparty/cernlib 2015-06-25 04:41:34 UTC (rev 1375) +++ trunk/thirdparty/cernlib 2015-06-25 04:43:08 UTC (rev 1376) Property changes on: trunk/thirdparty/cernlib ___________________________________________________________________ Added: svn:global-ignores ## -0,0 +1,3 ## +* +*.deps +*.in Deleted: trunk/thirdparty/cernlib/Makefile =================================================================== --- trunk/thirdparty/cernlib/Makefile 2015-06-25 04:41:34 UTC (rev 1375) +++ trunk/thirdparty/cernlib/Makefile 2015-06-25 04:43:08 UTC (rev 1376) @@ -1,702 +0,0 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. -# thirdparty/cernlib/Makefile. Generated from Makefile.in by configure. - -# Copyright (C) 1994-2013 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. - - - - - -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/libamtrack -pkgincludedir = $(includedir)/libamtrack -pkglibdir = $(libdir)/libamtrack -pkglibexecdir = $(libexecdir)/libamtrack -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 = x86_64-unknown-linux-gnu -host_triplet = x86_64-unknown-linux-gnu -subdir = thirdparty/cernlib -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp $(include_HEADERS) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(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)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/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__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" -LTLIBRARIES = $(lib_LTLIBRARIES) -libcernlibfuns_la_LIBADD = -am_libcernlibfuns_la_OBJECTS = libcernlibfuns_la-AT_CernlibFuns.lo \ - CERNLIBFUNS.lo -libcernlibfuns_la_OBJECTS = $(am_libcernlibfuns_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -am__v_lt_1 = -libcernlibfuns_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=F77 \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(F77LD) \ - $(AM_FFLAGS) $(FFLAGS) $(libcernlibfuns_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_P = $(am__v_P_$(V)) -am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I. -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) -LTF77COMPILE = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -AM_V_F77 = $(am__v_F77_$(V)) -am__v_F77_ = $(am__v_F77_$(AM_DEFAULT_VERBOSITY)) -am__v_F77_0 = @echo " F77 " $@; -am__v_F77_1 = -F77LD = $(F77) -F77LINK = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_F77LD = $(am__v_F77LD_$(V)) -am__v_F77LD_ = $(am__v_F77LD_$(AM_DEFAULT_VERBOSITY)) -am__v_F77LD_0 = @echo " F77LD " $@; -am__v_F77LD_1 = -SOURCES = $(libcernlibfuns_la_SOURCES) -DIST_SOURCES = $(libcernlibfuns_la_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -HEADERS = $(include_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing aclocal-1.14 -AMTAR = $${TAR-tar} -AM_DEFAULT_VERBOSITY = 1 -AR = ar -AUTOCONF = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing autoconf -AUTOHEADER = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing autoheader -AUTOMAKE = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing automake-1.14 -AWK = mawk -CC = gcc -CCDEPMODE = depmode=gcc3 -CFLAGS = -g -O2 -CPP = gcc -E -CPPFLAGS = -CYGPATH_W = echo -DEFS = -DHAVE_CONFIG_H -DEPDIR = .deps -DLLTOOL = false -DSYMUTIL = -DUMPBIN = -ECHO_C = -ECHO_N = -n -ECHO_T = -EGREP = /bin/grep -E -EXEEXT = -F77 = gfortran -FFLAGS = -g -O2 -FGREP = /bin/grep -F -GREP = /bin/grep -GSL_CFLAGS = -I/usr/include -GSL_CONFIG = /usr/bin/gsl-config -GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm -INSTALL = /usr/bin/install -c -INSTALL_DATA = ${INSTALL} -m 644 -INSTALL_PROGRAM = ${INSTALL} -INSTALL_SCRIPT = ${INSTALL} -INSTALL_STRIP_PROGRAM = $(install_sh) -c -s -LD = /usr/bin/ld -m elf_x86_64 -LDFLAGS = -LIBOBJS = -LIBS = -lm -LIBTOOL = $(SHELL) $(top_builddir)/libtool -LIPO = -LN_S = ln -s -LTLIBOBJS = -MAKEINFO = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing makeinfo -MANIFEST_TOOL = : -MKDIR_P = /bin/mkdir -p -NM = /usr/bin/nm -B -NMEDIT = -OBJDUMP = objdump -OBJEXT = o -OPENMP_CFLAGS = -OPENMP_LDFLAGS = -OTOOL = -OTOOL64 = -PACKAGE = libamtrack -PACKAGE_BUGREPORT = s.g...@dk... -PACKAGE_NAME = libamtrack -PACKAGE_STRING = libamtrack 0.6.2 -PACKAGE_TARNAME = libamtrack -PACKAGE_URL = -PACKAGE_VERSION = 0.6.2 -PATH_SEPARATOR = : -POW_LIB = -RANLIB = ranlib -SED = /bin/sed -SET_MAKE = -SHELL = /bin/bash -STRIP = strip -VERSION = 0.6.2 -abs_builddir = /home/greilich/workspaces/libamtrack/regular/thirdparty/cernlib -abs_srcdir = /home/greilich/workspaces/libamtrack/regular/thirdparty/cernlib -abs_top_builddir = /home/greilich/workspaces/libamtrack/regular -abs_top_srcdir = /home/greilich/workspaces/libamtrack/regular -ac_ct_AR = ar -ac_ct_CC = gcc -ac_ct_DUMPBIN = -ac_ct_F77 = gfortran -am__include = include -am__leading_dot = . -am__quote = -am__tar = $${TAR-tar} chof - "$$tardir" -am__untar = $${TAR-tar} xf - -bindir = ${exec_prefix}/bin -build = x86_64-unknown-linux-gnu -build_alias = -build_cpu = x86_64 -build_os = linux-gnu -build_vendor = unknown -builddir = . -datadir = ${datarootdir} -datarootdir = ${prefix}/share -docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} -dvidir = ${docdir} -exec_prefix = ${prefix} -host = x86_64-unknown-linux-gnu -host_alias = -host_cpu = x86_64 -host_os = linux-gnu -host_vendor = unknown -htmldir = ${docdir} -includedir = ${prefix}/include -infodir = ${datarootdir}/info -install_sh = ${SHELL} /home/greilich/workspaces/libamtrack/regular/install-sh -libdir = ${exec_prefix}/lib -libexecdir = ${exec_prefix}/libexec -localedir = ${datarootdir}/locale -localstatedir = ${prefix}/var -mandir = ${datarootdir}/man -mkdir_p = $(MKDIR_P) -oldincludedir = /usr/include -pdfdir = ${docdir} -prefix = /usr/local -program_transform_name = s,x,x, -psdir = ${docdir} -sbindir = ${exec_prefix}/sbin -sharedstatedir = ${prefix}/com -srcdir = . -svnversioncommand = /usr/bin/svnversion -sysconfdir = ${prefix}/etc -target_alias = -top_build_prefix = ../../ -top_builddir = ../.. -top_srcdir = ../.. -lib_LTLIBRARIES = libcernlibfuns.la -libcernlibfuns_la_SOURCES = AT_CernlibFuns.c CERNLIBFUNS.f -include_HEADERS = AT_CernlibFuns.h -libcernlibfuns_la_CFLAGS = -I. -Wall -pedantic -std=c99 -fPIC -libcernlibfuns_la_LDFLAGS = -version-info 0:0:0 -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .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 thirdparty/cernlib/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu thirdparty/cernlib/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) - @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 " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ - 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)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libcernlibfuns.la: $(libcernlibfuns_la_OBJECTS) $(libcernlibfuns_la_DEPENDENCIES) $(EXTRA_libcernlibfuns_la_DEPENDENCIES) - $(AM_V_F77LD)$(libcernlibfuns_la_LINK) -rpath $(libdir) $(libcernlibfuns_la_OBJECTS) $(libcernlibfuns_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -include ./$(DEPDIR)/libcernlibfuns_la-AT_CernlibFuns.Plo - -.c.o: - $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ - $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ - $(am__mv) $$depbase.Tpo $$depbase.Po -# $(AM_V_CC)source='$<' object='$@' libtool=no \ -# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ -# $(AM_V_CC_no)$(COMPILE) -c -o $@ $< - -.c.obj: - $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ - $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ - $(am__mv) $$depbase.Tpo $$depbase.Po -# $(AM_V_CC)source='$<' object='$@' libtool=no \ -# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ -# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: - $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ - $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ - $(am__mv) $$depbase.Tpo $$depbase.Plo -# $(AM_V_CC)source='$<' object='$@' libtool=yes \ -# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ -# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $< - -libcernlibfuns_la-AT_CernlibFuns.lo: AT_CernlibFuns.c - $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcernlibfuns_la_CFLAGS) $(CFLAGS) -MT libcernlibfuns_la-AT_CernlibFuns.lo -MD -MP -MF $(DEPDIR)/libcernlibfuns_la-AT_CernlibFuns.Tpo -c -o libcernlibfuns_la-AT_CernlibFuns.lo `test -f 'AT_CernlibFuns.c' || echo '$(srcdir)/'`AT_CernlibFuns.c - $(AM_V_at)$(am__mv) $(DEPDIR)/libcernlibfuns_la-AT_CernlibFuns.Tpo $(DEPDIR)/libcernlibfuns_la-AT_CernlibFuns.Plo -# $(AM_V_CC)source='AT_CernlibFuns.c' object='libcernlibfuns_la-AT_CernlibFuns.lo' libtool=yes \ -# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ -# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcernlibfuns_la_CFLAGS) $(CFLAGS) -c -o libcernlibfuns_la-AT_CernlibFuns.lo `test -f 'AT_CernlibFuns.c' || echo '$(srcdir)/'`AT_CernlibFuns.c - -.f.o: - $(AM_V_F77)$(F77COMPILE) -c -o $@ $< - -.f.obj: - $(AM_V_F77)$(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.f.lo: - $(AM_V_F77)$(LTF77COMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-includeHEADERS: $(include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ - fi; \ - 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)$(includedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ - done - -uninstall-includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - 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-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - 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" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -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)$(includedir)"; 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: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -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-includeHEADERS - -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-includeHEADERS uninstall-libLTLIBRARIES - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ - ctags-am 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-includeHEADERS 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 tags-am uninstall uninstall-am uninstall-includeHEADERS \ - 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: Deleted: trunk/thirdparty/cernlib/Makefile.in =================================================================== --- trunk/thirdparty/cernlib/Makefile.in 2015-06-25 04:41:34 UTC (rev 1375) +++ trunk/thirdparty/cernlib/Makefile.in 2015-06-25 04:43:08 UTC (rev 1376) @@ -1,702 +0,0 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 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@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -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 = thirdparty/cernlib -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp $(include_HEADERS) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(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)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/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__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" -LTLIBRARIES = $(lib_LTLIBRARIES) -libcernlibfuns_la_LIBADD = -am_libcernlibfuns_la_OBJECTS = libcernlibfuns_la-AT_CernlibFuns.lo \ - CERNLIBFUNS.lo -libcernlibfuns_la_OBJECTS = $(am_libcernlibfuns_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libcernlibfuns_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=F77 \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(F77LD) \ - $(AM_FFLAGS) $(FFLAGS) $(libcernlibfuns_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) -LTF77COMPILE = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -AM_V_F77 = $(am__v_F77_@AM_V@) -am__v_F77_ = $(am__v_F77_@AM_DEFAULT_V@) -am__v_F77_0 = @echo " F77 " $@; -am__v_F77_1 = -F77LD = $(F77) -F77LINK = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_F77LD = $(am__v_F77LD_@AM_V@) -am__v_F77LD_ = $(am__v_F77LD_@AM_DEFAULT_V@) -am__v_F77LD_0 = @echo " F77LD " $@; -am__v_F77LD_1 = -SOURCES = $(libcernlibfuns_la_SOURCES) -DIST_SOURCES = $(libcernlibfuns_la_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -HEADERS = $(include_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -FGREP = @FGREP@ -GREP = @GREP@ -GSL_CFLAGS = @GSL_CFLAGS@ -GSL_CONFIG = @GSL_CONFIG@ -GSL_LIBS = @GSL_LIBS@ -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@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OPENMP_CFLAGS = @OPENMP_CFLAGS@ -OPENMP_LDFLAGS = @OPENMP_LDFLAGS@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -POW_LIB = @POW_LIB@ -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_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_F77 = @ac_ct_F77@ -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@ -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@ -svnversioncommand = @svnversioncommand@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -lib_LTLIBRARIES = libcernlibfuns.la -libcernlibfuns_la_SOURCES = AT_CernlibFuns.c CERNLIBFUNS.f -include_HEADERS = AT_CernlibFuns.h -libcernlibfuns_la_CFLAGS = -I. -Wall -pedantic -std=c99 -fPIC -libcernlibfuns_la_LDFLAGS = -version-info 0:0:0 -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .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 thirdparty/cernlib/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu thirdparty/cernlib/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) - @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 " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ - 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)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libcernlibfuns.la: $(libcernlibfuns_la_OBJECTS) $(libcernlibfuns_la_DEPENDENCIES) $(EXTRA_libcernlibfuns_la_DEPENDENCIES) - $(AM_V_F77LD)$(libcernlibfuns_la_LINK) -rpath $(libdir) $(libcernlibfuns_la_OBJECTS) $(libcernlibfuns_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcernlibfuns_la-AT_CernlibFuns.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -libcernlibfuns_la-AT_CernlibFuns.lo: AT_CernlibFuns.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcernlibfuns_la_CFLAGS) $(CFLAGS) -MT libcernlibfuns_la-AT_CernlibFuns.lo -MD -MP -MF $(DEPDIR)/libcernlibfuns_la-AT_CernlibFuns.Tpo -c -o libcernlibfuns_la-AT_CernlibFuns.lo `test -f 'AT_CernlibFuns.c' || echo '$(srcdir)/'`AT_CernlibFuns.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcernlibfuns_la-AT_CernlibFuns.Tpo $(DEPDIR)/libcernlibfuns_la-AT_CernlibFuns.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='AT_CernlibFuns.c' object='libcernlibfuns_la-AT_CernlibFuns.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcernlibfuns_la_CFLAGS) $(CFLAGS) -c -o libcernlibfuns_la-AT_CernlibFuns.lo `test -f 'AT_CernlibFuns.c' || echo '$(srcdir)/'`AT_CernlibFuns.c - -.f.o: - $(AM_V_F77)$(F77COMPILE) -c -o $@ $< - -.f.obj: - $(AM_V_F77)$(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.f.lo: - $(AM_V_F77)$(LTF77COMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-includeHEADERS: $(include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ - fi; \ - 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)$(includedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ - done - -uninstall-includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - 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-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - 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" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -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)$(includedir)"; 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: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -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-includeHEADERS - -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-includeHEADERS uninstall-libLTLIBRARIES - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ - ctags-am 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-includeHEADERS 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 tags-am uninstall uninstall-am uninstall-includeHEADERS \ - 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: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-25 04:41:36
|
Revision: 1375 http://sourceforge.net/p/libamtrack/code/1375 Author: sgreilich Date: 2015-06-25 04:41:34 +0000 (Thu, 25 Jun 2015) Log Message: ----------- Removed FLIBS variable Modified Paths: -------------- trunk/distributions/R/package/src/Makevars.in Modified: trunk/distributions/R/package/src/Makevars.in =================================================================== --- trunk/distributions/R/package/src/Makevars.in 2015-06-24 04:29:49 UTC (rev 1374) +++ trunk/distributions/R/package/src/Makevars.in 2015-06-25 04:41:34 UTC (rev 1375) @@ -5,7 +5,7 @@ # Combine to standard arguments for R PKG_CPPFLAGS = $(GSL_CFLAGS) -I. -DNDEBUG PKG_CFLAGS = $(GSL_CFLAGS) -I. -DNDEBUG -PKG_LIBS = $(GSL_LIBS) $(FLIBS) +PKG_LIBS = $(GSL_LIBS) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-24 04:29:52
|
Revision: 1374 http://sourceforge.net/p/libamtrack/code/1374 Author: sgreilich Date: 2015-06-24 04:29:49 +0000 (Wed, 24 Jun 2015) Log Message: ----------- Switched to release Modified Paths: -------------- trunk/configure.ac Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2015-06-23 19:01:51 UTC (rev 1373) +++ trunk/configure.ac 2015-06-24 04:29:49 UTC (rev 1374) @@ -7,7 +7,7 @@ # micro - 0: Black, 1: Blue, 2: Red, 3: Green, 4: Yellow, 5: Violet AC_DEFINE(CODE_NAME, ["Red Armadillo"], [Cryptonym to faciliate versioning for users]) # Status: "Development" or "Release" (will trigger some different actions, e.g. with R package) -AC_DEFINE(CODE_STATUS, ["Development"], [Status of the code]) +AC_DEFINE(CODE_STATUS, ["Release"], [Status of the code]) LT_INIT AM_INIT_AUTOMAKE([subdir-objects]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-23 19:01:53
|
Revision: 1373 http://sourceforge.net/p/libamtrack/code/1373 Author: sgreilich Date: 2015-06-23 19:01:51 +0000 (Tue, 23 Jun 2015) Log Message: ----------- Fixed minor warning Modified Paths: -------------- trunk/src/AT_StoppingPowerDataFromFile.c Modified: trunk/src/AT_StoppingPowerDataFromFile.c =================================================================== --- trunk/src/AT_StoppingPowerDataFromFile.c 2015-06-23 07:17:55 UTC (rev 1372) +++ trunk/src/AT_StoppingPowerDataFromFile.c 2015-06-23 19:01:51 UTC (rev 1373) @@ -57,7 +57,7 @@ /** * Get stopping power values */ - long j, k, m, n_matches; + long j, k, m, n_matches = 0; long curZ = 0, lastZ = -1; double* curE = (double*)calloc(1, sizeof(double)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-23 07:17:56
|
Revision: 1372 http://sourceforge.net/p/libamtrack/code/1372 Author: sgreilich Date: 2015-06-23 07:17:55 +0000 (Tue, 23 Jun 2015) Log Message: ----------- Updated ignore list Property Changed: ---------------- trunk/test/C/ Index: trunk/test/C =================================================================== --- trunk/test/C 2015-06-20 05:48:52 UTC (rev 1371) +++ trunk/test/C 2015-06-23 07:17:55 UTC (rev 1372) Property changes on: trunk/test/C ___________________________________________________________________ Modified: svn:ignore ## -1,4 +1,5 ## +amtrack_test .deps +testo.txt +Makefile Makefile.in -amtrack_test -testo.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-20 05:48:54
|
Revision: 1371 http://sourceforge.net/p/libamtrack/code/1371 Author: sgreilich Date: 2015-06-20 05:48:52 +0000 (Sat, 20 Jun 2015) Log Message: ----------- Cleaning up Property Changed: ---------------- trunk/ trunk/example/basic_plots/ trunk/example/demo/ trunk/test/ Index: trunk =================================================================== --- trunk 2015-06-20 05:47:55 UTC (rev 1370) +++ trunk 2015-06-20 05:48:52 UTC (rev 1371) Property changes on: trunk ___________________________________________________________________ Modified: svn:ignore ## -1,21 +1,22 ## +stamp-h1 +config.h.in +config.guess +Makefile +config.log +autom4te.cache doxygen -autom4te.cache -aclocal.m4 -compile -config.guess -config.h.in config.sub configure -depcomp +ltmain.sh +saved_svn_version.txt install-sh -ltmain.sh -Makefile.in -missing -config.h +nbproject config.status +compile libtool -stamp-h1 -saved_svn_version.txt -Makefile +config.h +missing +aclocal.m4 +Makefile.in +depcomp .settings -config.log Index: trunk/example/basic_plots =================================================================== --- trunk/example/basic_plots 2015-06-20 05:47:55 UTC (rev 1370) +++ trunk/example/basic_plots 2015-06-20 05:48:52 UTC (rev 1371) Property changes on: trunk/example/basic_plots ___________________________________________________________________ Modified: svn:ignore ## -1,3 +1,4 ## +amtrack_plot .deps +Makefile Makefile.in -amtrack_plot Index: trunk/example/demo =================================================================== --- trunk/example/demo 2015-06-20 05:47:55 UTC (rev 1370) +++ trunk/example/demo 2015-06-20 05:48:52 UTC (rev 1371) Property changes on: trunk/example/demo ___________________________________________________________________ Modified: svn:ignore ## -1,3 +1,4 ## .deps +Makefile +amtrack_demo Makefile.in -amtrack_demo Index: trunk/test =================================================================== --- trunk/test 2015-06-20 05:47:55 UTC (rev 1370) +++ trunk/test 2015-06-20 05:48:52 UTC (rev 1371) Property changes on: trunk/test ___________________________________________________________________ Modified: svn:ignore ## -1 +1,2 ## +Makefile Makefile.in This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-20 05:47:58
|
Revision: 1370 http://sourceforge.net/p/libamtrack/code/1370 Author: sgreilich Date: 2015-06-20 05:47:55 +0000 (Sat, 20 Jun 2015) Log Message: ----------- Cleaning up Removed Paths: ------------- trunk/src/StoppingPower/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-20 05:37:40
|
Revision: 1369 http://sourceforge.net/p/libamtrack/code/1369 Author: sgreilich Date: 2015-06-20 05:37:37 +0000 (Sat, 20 Jun 2015) Log Message: ----------- Added inverse distribution functions for energy loss straggling Modified Paths: -------------- trunk/distributions/R/NAMESPACE trunk/include/AT_EnergyLoss.h trunk/src/AT_EnergyLoss.c trunk/thirdparty/cernlib/AT_CernlibFuns.c trunk/thirdparty/cernlib/AT_CernlibFuns.h trunk/thirdparty/cernlib/CERNLIBFUNS.f trunk/thirdparty/cernlib/Makefile Modified: trunk/distributions/R/NAMESPACE =================================================================== --- trunk/distributions/R/NAMESPACE 2015-06-19 15:28:10 UTC (rev 1368) +++ trunk/distributions/R/NAMESPACE 2015-06-20 05:37:37 UTC (rev 1369) @@ -90,14 +90,17 @@ AT_kappa_multi AT_xi_keV AT_Landau_PDF +AT_Landau_IDF AT_lambda_landau_from_energy_loss_multi AT_energy_loss_from_lambda_landau_multi AT_lambda_max_multi AT_lambda_mean_multi AT_Vavilov_PDF +AT_Vavilov_IDF AT_lambda_vavilov_from_energy_loss_multi AT_energy_loss_from_lambda_vavilov_multi AT_Gauss_PDF +AT_Gauss_IDF AT_energy_loss_from_lambda_gauss_multi AT_translate_dose_into_DSB_distribution noR: AT_SPC_read_data_from_filename_fast Modified: trunk/include/AT_EnergyLoss.h =================================================================== --- trunk/include/AT_EnergyLoss.h 2015-06-19 15:28:10 UTC (rev 1368) +++ trunk/include/AT_EnergyLoss.h 2015-06-20 05:37:37 UTC (rev 1369) @@ -33,6 +33,7 @@ #include <assert.h> #include <gsl/gsl_randist.h> +#include <gsl/gsl_cdf.h> #include "AT_CernlibFuns.h" @@ -132,15 +133,28 @@ ///////////////////////////////////////////////////////////////////////////// /** - * Compute Landau distribution using CERNLIB (G115) + * Computes the Landau probability density function using CERNLIB (G115) * * @param[in] n array size * @param[in] lambda_landau Landau lambda (array of size n) * @param[out] density resulting density (array of size n) */ -void AT_Landau_PDF( const long n, const double lambda_landau[], double density[]); +void AT_Landau_PDF( const long n, + const double lambda_landau[], + double density[]); /** + * Computes the Landau inverse distribution function using CERNLIB (G115) + * + * @param[in] n array size + * @param[in] rnd random number from uniform distribution between 0 and 1 (array of size n) + * @param[out] lambda_landau resulting Landau lambda (array of size n) + */ +void AT_Landau_IDF( const long n, + const double rnd[], + double lambda_landau[]); + +/** * Computes the lambda parameter for the * Landau distribution acc. to CERN W5013 * @@ -297,7 +311,7 @@ ///////////////////////////////////////////////////////////////////////////// /** - * Compute Vavilov distribution using CERNLIB (G116) + * Computes the Vavilov probability density function using CERNLIB (G116) * * @param[in] n array size * @param[in] lambda_vavilov Vavilov lambda (array of size n) @@ -309,6 +323,18 @@ double density[]); /** + * Computes the Vavilov probability density function using CERNLIB (G116) + * + * @param[in] n array size + * @param[in] rnd random number from uniform distribution between 0 and 1 (array of size n) + * @param[in] kappa straggling parameter (array of size n) + * @param[in] beta relativistic speed, between 0 and 1 (array of size n) + * @param[out] lambda_vavilov resulting Vavilov lambda (array of size n) + */ +void AT_Vavilov_IDF( const long n, const double rnd[], const double kappa[], const double beta[], + double lambda_vavilov[]); + +/** * Computes the lambda parameter for the * Vavilov distribution acc. to CERN W5013 * @@ -408,7 +434,7 @@ ///////////////////////////////////////////////////////////////////////////// /** - * Compute Gauss distribution (for compatibility) + * Computes Gauss probability density function (for compatibility) * * @param[in] n array size * @param[in] lambda_gauss Gauss lambda (array of size n) @@ -419,6 +445,18 @@ double density[]); /** + * Compute Gauss inverse distribution function (for compatibility) + * + * @param[in] n array size + * @param[in] rnd random number from uniform distribution between 0 and 1 (array of size n) + * @param[out] lambda_gauss resulting Gauss lambda (array of size n) + */ +void AT_Gauss_IDF( const long n, + const double rnd[], + double lambda_gauss[]); + + +/** * Computes the energy loss from the lambda parameter of the * Gauss distribution for compatibility with CERN W5013 * Modified: trunk/src/AT_EnergyLoss.c =================================================================== --- trunk/src/AT_EnergyLoss.c 2015-06-19 15:28:10 UTC (rev 1368) +++ trunk/src/AT_EnergyLoss.c 2015-06-20 05:37:37 UTC (rev 1369) @@ -74,12 +74,22 @@ } } -void AT_Landau_PDF(const long n, const double lambda_landau[], double density[]) { +void AT_Landau_PDF( const long n, + const double lambda_landau[], + double density[] ) { for (int i = 0; i < n; i++) { density[i] = CL_denlan(lambda_landau[i]); } } +void AT_Landau_IDF( const long n, + const double rnd[], + double lambda_landau[] ) { + for (int i = 0; i < n; i++) { + lambda_landau[i] = CL_ranlan(rnd[i]); + } +} + void AT_lambda_mean_multi(const long n, const double E_MeV_u[], const long particle_no[], @@ -258,13 +268,22 @@ void AT_Vavilov_PDF(const long n, const double lambda_vavilov[], const double kappa, const double beta, double density[]) { - CL_vavset(kappa, beta * beta); + double beta2 = beta * beta; + CL_vavset(kappa, beta2); for (int i = 0; i < n; i++) { density[i] = CL_vavden(lambda_vavilov[i]); } } +void AT_Vavilov_IDF(const long n, const double rnd[], const double kappa[], const double beta[], + double lambda_vavilov[]) { + + for (int i = 0; i < n; i++) { + lambda_vavilov[i] = CL_vavran(kappa[i], beta[i]*beta[i], rnd[i]); + } +} + double AT_lambda_vavilov_from_energy_loss_single(const double energy_loss_keV, const double E_MeV_u, const long particle_no, @@ -558,10 +577,16 @@ void AT_Gauss_PDF(const long n, const double lambda_gauss[], double density[]) { for (int i = 0; i < n; i++) { - density[i] = gsl_ran_gaussian_pdf(lambda_gauss[i], 1.0); + density[i] = gsl_ran_ugaussian_pdf(lambda_gauss[i]); } } +void AT_Gauss_IDF(const long n, const double rnd[], double lambda_gauss[]) { + for (int i = 0; i < n; i++) { + lambda_gauss[i] = gsl_cdf_ugaussian_Pinv(rnd[i]); + } +} + double AT_energy_loss_from_lambda_gauss_single(const double lambda_gauss, const double E_MeV_u, const long particle_no, Modified: trunk/thirdparty/cernlib/AT_CernlibFuns.c =================================================================== --- trunk/thirdparty/cernlib/AT_CernlibFuns.c 2015-06-19 15:28:10 UTC (rev 1368) +++ trunk/thirdparty/cernlib/AT_CernlibFuns.c 2015-06-20 05:37:37 UTC (rev 1369) @@ -6,6 +6,13 @@ return((double)denlan_(&lambda_landau_f)); } +double CL_ranlan(double rnd){ + extern float ranlan_(); + float rnd_f = (float)rnd; + return((double)ranlan_(&rnd_f)); +} + + void CL_vavset(double kappa, double beta2){ float kappa_f = (float)kappa; float beta2_f = (float)beta2; @@ -21,3 +28,11 @@ return((double)vavden_(&lambda_vavilov_f)); } +double CL_vavran(double kappa, double beta2, double rnd){ + extern float vavran_(); + float kappa_f = (float)kappa; + float beta2_f = (float)beta2; + float rnd_f = (float)rnd; + return((double)vavran_(&kappa_f, &beta2_f, &rnd_f)); +} + Modified: trunk/thirdparty/cernlib/AT_CernlibFuns.h =================================================================== --- trunk/thirdparty/cernlib/AT_CernlibFuns.h 2015-06-19 15:28:10 UTC (rev 1368) +++ trunk/thirdparty/cernlib/AT_CernlibFuns.h 2015-06-20 05:37:37 UTC (rev 1369) @@ -34,8 +34,10 @@ #include <stdio.h> double CL_denlan( double lambda_landau ); +double CL_ranlan( double rnd ); void CL_vavset( double kappa, double beta2 ); double CL_vavden( double lambda_vavilov ); +double CL_vavran( double kappa, double beta2, double rnd ); #endif /* AT_CERNLIBFUNS_H_ */ Modified: trunk/thirdparty/cernlib/CERNLIBFUNS.f =================================================================== --- trunk/thirdparty/cernlib/CERNLIBFUNS.f 2015-06-19 15:28:10 UTC (rev 1368) +++ trunk/thirdparty/cernlib/CERNLIBFUNS.f 2015-06-20 05:37:37 UTC (rev 1369) @@ -187,6 +187,235 @@ * +* $Id: ranlan.F,v 1.1.1.1 1996/04/01 15:02:43 mclareni Exp $ +* +* $Log: ranlan.F,v $ +* Revision 1.1.1.1 1996/04/01 15:02:43 mclareni +* Mathlib gen +* +* +C This will be RANLAN,IF=DOUBLE and RANLAN64,IF=-DOUBLE + FUNCTION RANLAN(X) + + DIMENSION F(6:982) + + DATA (F(I),I= 6,100) + A/ -2.244733, + B -2.204365,-2.168163,-2.135219,-2.104898,-2.076740,-2.050397, + C -2.025605,-2.002150,-1.979866,-1.958612,-1.938275,-1.918760, + D -1.899984,-1.881879,-1.864385,-1.847451,-1.831030,-1.815083, + E -1.799574,-1.784473,-1.769751,-1.755383,-1.741346,-1.727620, + F -1.714187,-1.701029,-1.688130,-1.675477,-1.663057,-1.650858, + G -1.638868,-1.627078,-1.615477,-1.604058,-1.592811,-1.581729, + H -1.570806,-1.560034,-1.549407,-1.538919,-1.528565,-1.518339, + I -1.508237,-1.498254,-1.488386,-1.478628,-1.468976,-1.459428, + J -1.449979,-1.440626,-1.431365,-1.422195,-1.413111,-1.404112, + K -1.395194,-1.386356,-1.377594,-1.368906,-1.360291,-1.351746, + L -1.343269,-1.334859,-1.326512,-1.318229,-1.310006,-1.301843, + M -1.293737,-1.285688,-1.277693,-1.269752,-1.261863,-1.254024, + N -1.246235,-1.238494,-1.230800,-1.223153,-1.215550,-1.207990, + O -1.200474,-1.192999,-1.185566,-1.178172,-1.170817,-1.163500, + P -1.156220,-1.148977,-1.141770,-1.134598,-1.127459,-1.120354, + Q -1.113282,-1.106242,-1.099233,-1.092255/ + + DATA (F(I),I=101,200) + A/-1.085306,-1.078388,-1.071498,-1.064636,-1.057802,-1.050996, + B -1.044215,-1.037461,-1.030733,-1.024029,-1.017350,-1.010695, + C -1.004064, -.997456, -.990871, -.984308, -.977767, -.971247, + D -.964749, -.958271, -.951813, -.945375, -.938957, -.932558, + E -.926178, -.919816, -.913472, -.907146, -.900838, -.894547, + F -.888272, -.882014, -.875773, -.869547, -.863337, -.857142, + G -.850963, -.844798, -.838648, -.832512, -.826390, -.820282, + H -.814187, -.808106, -.802038, -.795982, -.789940, -.783909, + I -.777891, -.771884, -.765889, -.759906, -.753934, -.747973, + J -.742023, -.736084, -.730155, -.724237, -.718328, -.712429, + K -.706541, -.700661, -.694791, -.688931, -.683079, -.677236, + L -.671402, -.665576, -.659759, -.653950, -.648149, -.642356, + M -.636570, -.630793, -.625022, -.619259, -.613503, -.607754, + N -.602012, -.596276, -.590548, -.584825, -.579109, -.573399, + O -.567695, -.561997, -.556305, -.550618, -.544937, -.539262, + P -.533592, -.527926, -.522266, -.516611, -.510961, -.505315, + Q -.499674, -.494037, -.488405, -.482777/ + + DATA (F(I),I=201,300) + A/ -.477153, -.471533, -.465917, -.460305, -.454697, -.449092, + B -.443491, -.437893, -.432299, -.426707, -.421119, -.415534, + C -.409951, -.404372, -.398795, -.393221, -.387649, -.382080, + D -.376513, -.370949, -.365387, -.359826, -.354268, -.348712, + E -.343157, -.337604, -.332053, -.326503, -.320955, -.315408, + F -.309863, -.304318, -.298775, -.293233, -.287692, -.282152, + G -.276613, -.271074, -.265536, -.259999, -.254462, -.248926, + H -.243389, -.237854, -.232318, -.226783, -.221247, -.215712, + I -.210176, -.204641, -.199105, -.193568, -.188032, -.182495, + J -.176957, -.171419, -.165880, -.160341, -.154800, -.149259, + K -.143717, -.138173, -.132629, -.127083, -.121537, -.115989, + L -.110439, -.104889, -.099336, -.093782, -.088227, -.082670, + M -.077111, -.071550, -.065987, -.060423, -.054856, -.049288, + N -.043717, -.038144, -.032569, -.026991, -.021411, -.015828, + O -.010243, -.004656, .000934, .006527, .012123, .017722, + P .023323, .028928, .034535, .040146, .045759, .051376, + Q .056997, .062620, .068247, .073877/ + + DATA (F(I),I=301,400) + A/ .079511, .085149, .090790, .096435, .102083, .107736, + B .113392, .119052, .124716, .130385, .136057, .141734, + C .147414, .153100, .158789, .164483, .170181, .175884, + D .181592, .187304, .193021, .198743, .204469, .210201, + E .215937, .221678, .227425, .233177, .238933, .244696, + F .250463, .256236, .262014, .267798, .273587, .279382, + G .285183, .290989, .296801, .302619, .308443, .314273, + H .320109, .325951, .331799, .337654, .343515, .349382, + I .355255, .361135, .367022, .372915, .378815, .384721, + J .390634, .396554, .402481, .408415, .414356, .420304, + K .426260, .432222, .438192, .444169, .450153, .456145, + L .462144, .468151, .474166, .480188, .486218, .492256, + M .498302, .504356, .510418, .516488, .522566, .528653, + N .534747, .540850, .546962, .553082, .559210, .565347, + O .571493, .577648, .583811, .589983, .596164, .602355, + P .608554, .614762, .620980, .627207, .633444, .639689, + Q .645945, .652210, .658484, .664768/ + + DATA (F(I),I=401,500) + A/ .671062, .677366, .683680, .690004, .696338, .702682, + B .709036, .715400, .721775, .728160, .734556, .740963, + C .747379, .753807, .760246, .766695, .773155, .779627, + D .786109, .792603, .799107, .805624, .812151, .818690, + E .825241, .831803, .838377, .844962, .851560, .858170, + F .864791, .871425, .878071, .884729, .891399, .898082, + G .904778, .911486, .918206, .924940, .931686, .938446, + H .945218, .952003, .958802, .965614, .972439, .979278, + I .986130, .992996, .999875, 1.006769, 1.013676, 1.020597, + J 1.027533, 1.034482, 1.041446, 1.048424, 1.055417, 1.062424, + K 1.069446, 1.076482, 1.083534, 1.090600, 1.097681, 1.104778, + L 1.111889, 1.119016, 1.126159, 1.133316, 1.140490, 1.147679, + M 1.154884, 1.162105, 1.169342, 1.176595, 1.183864, 1.191149, + N 1.198451, 1.205770, 1.213105, 1.220457, 1.227826, 1.235211, + O 1.242614, 1.250034, 1.257471, 1.264926, 1.272398, 1.279888, + P 1.287395, 1.294921, 1.302464, 1.310026, 1.317605, 1.325203, + Q 1.332819, 1.340454, 1.348108, 1.355780/ + + DATA (F(I),I=501,600) + A/ 1.363472, 1.371182, 1.378912, 1.386660, 1.394429, 1.402216, + B 1.410024, 1.417851, 1.425698, 1.433565, 1.441453, 1.449360, + C 1.457288, 1.465237, 1.473206, 1.481196, 1.489208, 1.497240, + D 1.505293, 1.513368, 1.521465, 1.529583, 1.537723, 1.545885, + E 1.554068, 1.562275, 1.570503, 1.578754, 1.587028, 1.595325, + F 1.603644, 1.611987, 1.620353, 1.628743, 1.637156, 1.645593, + G 1.654053, 1.662538, 1.671047, 1.679581, 1.688139, 1.696721, + H 1.705329, 1.713961, 1.722619, 1.731303, 1.740011, 1.748746, + I 1.757506, 1.766293, 1.775106, 1.783945, 1.792810, 1.801703, + J 1.810623, 1.819569, 1.828543, 1.837545, 1.846574, 1.855631, + K 1.864717, 1.873830, 1.882972, 1.892143, 1.901343, 1.910572, + L 1.919830, 1.929117, 1.938434, 1.947781, 1.957158, 1.966566, + M 1.976004, 1.985473, 1.994972, 2.004503, 2.014065, 2.023659, + N 2.033285, 2.042943, 2.052633, 2.062355, 2.072110, 2.081899, + O 2.091720, 2.101575, 2.111464, 2.121386, 2.131343, 2.141334, + P 2.151360, 2.161421, 2.171517, 2.181648, 2.191815, 2.202018, + Q 2.212257, 2.222533, 2.232845, 2.243195/ + + DATA (F(I),I=601,700) + A/ 2.253582, 2.264006, 2.274468, 2.284968, 2.295507, 2.306084, + B 2.316701, 2.327356, 2.338051, 2.348786, 2.359562, 2.370377, + C 2.381234, 2.392131, 2.403070, 2.414051, 2.425073, 2.436138, + D 2.447246, 2.458397, 2.469591, 2.480828, 2.492110, 2.503436, + E 2.514807, 2.526222, 2.537684, 2.549190, 2.560743, 2.572343, + F 2.583989, 2.595682, 2.607423, 2.619212, 2.631050, 2.642936, + G 2.654871, 2.666855, 2.678890, 2.690975, 2.703110, 2.715297, + H 2.727535, 2.739825, 2.752168, 2.764563, 2.777012, 2.789514, + I 2.802070, 2.814681, 2.827347, 2.840069, 2.852846, 2.865680, + J 2.878570, 2.891518, 2.904524, 2.917588, 2.930712, 2.943894, + K 2.957136, 2.970439, 2.983802, 2.997227, 3.010714, 3.024263, + L 3.037875, 3.051551, 3.065290, 3.079095, 3.092965, 3.106900, + M 3.120902, 3.134971, 3.149107, 3.163312, 3.177585, 3.191928, + N 3.206340, 3.220824, 3.235378, 3.250005, 3.264704, 3.279477, + O 3.294323, 3.309244, 3.324240, 3.339312, 3.354461, 3.369687, + P 3.384992, 3.400375, 3.415838, 3.431381, 3.447005, 3.462711, + Q 3.478500, 3.494372, 3.510328, 3.526370/ + + DATA (F(I),I=701,800) + A/ 3.542497, 3.558711, 3.575012, 3.591402, 3.607881, 3.624450, + B 3.641111, 3.657863, 3.674708, 3.691646, 3.708680, 3.725809, + C 3.743034, 3.760357, 3.777779, 3.795300, 3.812921, 3.830645, + D 3.848470, 3.866400, 3.884434, 3.902574, 3.920821, 3.939176, + E 3.957640, 3.976215, 3.994901, 4.013699, 4.032612, 4.051639, + F 4.070783, 4.090045, 4.109425, 4.128925, 4.148547, 4.168292, + G 4.188160, 4.208154, 4.228275, 4.248524, 4.268903, 4.289413, + H 4.310056, 4.330832, 4.351745, 4.372794, 4.393982, 4.415310, + I 4.436781, 4.458395, 4.480154, 4.502060, 4.524114, 4.546319, + J 4.568676, 4.591187, 4.613854, 4.636678, 4.659662, 4.682807, + K 4.706116, 4.729590, 4.753231, 4.777041, 4.801024, 4.825179, + L 4.849511, 4.874020, 4.898710, 4.923582, 4.948639, 4.973883, + M 4.999316, 5.024942, 5.050761, 5.076778, 5.102993, 5.129411, + N 5.156034, 5.182864, 5.209903, 5.237156, 5.264625, 5.292312, + O 5.320220, 5.348354, 5.376714, 5.405306, 5.434131, 5.463193, + P 5.492496, 5.522042, 5.551836, 5.581880, 5.612178, 5.642734, + Q 5.673552, 5.704634, 5.735986, 5.767610/ + + DATA (F(I),I=801,900) + A/ 5.799512, 5.831694, 5.864161, 5.896918, 5.929968, 5.963316, + B 5.996967, 6.030925, 6.065194, 6.099780, 6.134687, 6.169921, + C 6.205486, 6.241387, 6.277630, 6.314220, 6.351163, 6.388465, + D 6.426130, 6.464166, 6.502578, 6.541371, 6.580553, 6.620130, + E 6.660109, 6.700495, 6.741297, 6.782520, 6.824173, 6.866262, + F 6.908795, 6.951780, 6.995225, 7.039137, 7.083525, 7.128398, + G 7.173764, 7.219632, 7.266011, 7.312910, 7.360339, 7.408308, + H 7.456827, 7.505905, 7.555554, 7.605785, 7.656608, 7.708035, + I 7.760077, 7.812747, 7.866057, 7.920019, 7.974647, 8.029953, + J 8.085952, 8.142657, 8.200083, 8.258245, 8.317158, 8.376837, + K 8.437300, 8.498562, 8.560641, 8.623554, 8.687319, 8.751955, + L 8.817481, 8.883916, 8.951282, 9.019600, 9.088889, 9.159174, + M 9.230477, 9.302822, 9.376233, 9.450735, 9.526355, 9.603118, + N 9.681054, 9.760191, 9.840558, 9.922186,10.005107,10.089353, + O 10.174959,10.261958,10.350389,10.440287,10.531693,10.624646, + P 10.719188,10.815362,10.913214,11.012789,11.114137,11.217307, + Q 11.322352,11.429325,11.538283,11.649285/ + + DATA (F(I),I=901,982) + A/11.762390,11.877664,11.995170,12.114979,12.237161,12.361791, + B 12.488946,12.618708,12.751161,12.886394,13.024498,13.165570, + C 13.309711,13.457026,13.607625,13.761625,13.919145,14.080314, + D 14.245263,14.414134,14.587072,14.764233,14.945778,15.131877, + E 15.322712,15.518470,15.719353,15.925570,16.137345,16.354912, + F 16.578520,16.808433,17.044929,17.288305,17.538873,17.796967, + G 18.062943,18.337176,18.620068,18.912049,19.213574,19.525133, + H 19.847249,20.180480,20.525429,20.882738,21.253102,21.637266, + I 22.036036,22.450278,22.880933,23.329017,23.795634,24.281981, + J 24.789364,25.319207,25.873062,26.452634,27.059789,27.696581, + K 28.365274,29.068370,29.808638,30.589157,31.413354,32.285060, + L 33.208568,34.188705,35.230920,36.341388,37.527131,38.796172, + M 40.157721,41.622399,43.202525,44.912465,46.769077,48.792279, + N 51.005773,53.437996,56.123356,59.103894/ + + U=1000*X + I=U + U=U-I + IF(I .GE. 70 .AND. I .LE. 800) THEN + RANLAN=F(I)+U*(F(I+1)-F(I)) + ELSEIF(I .GE. 7 .AND. I .LE. 980) THEN + RANLAN= + 1 F(I)+U*(F(I+1)-F(I)-0.25*(1-U)*(F(I+2)-F(I+1)-F(I)+F(I-1))) + ELSEIF(I. LT. 7) THEN + V=LOG(X) + U=1/V + RANLAN=((0.99858950+(3.45213058E1+1.70854528E1*U)*U)/ + 1 (1 +(3.41760202E1+4.01244582 *U)*U))* + 2 (-LOG(-0.91893853-V)-1) + ELSE + U=1-X + V=U**2 + IF(X .LE. 0.999) THEN + RANLAN=(1.00060006+2.63991156E2*U+4.37320068E3*V)/ + 1 ((1 +2.57368075E2*U+3.41448018E3*V)*U) + ELSE + RANLAN=(1.00001538+6.07514119E3*U+7.34266409E5*V)/ + 1 ((1 +6.06511919E3*U+6.94021044E5*V)*U) + ENDIF + ENDIF + RETURN + END + + +* * $Id: locatf.F,v 1.2 1996/05/24 10:56:52 jamie Exp $ * * $Log: locatf.F,v $ @@ -230,6 +459,334 @@ * +* $Id: vavset.F,v 1.1.1.1 1996/04/01 15:02:48 mclareni Exp $ +* +* $Log: vavset.F,v $ +* Revision 1.1.1.1 1996/04/01 15:02:48 mclareni +* Mathlib gen +* +* + SUBROUTINE VAVSET(RKAPPA,BETA2,MODE) + + COMMON /GXXXC1/ WCM(0:200),AC(0:13),HC(0:8),ITYPE,NPT + + PARAMETER + 1(BKMNX1 = 0.02, BKMNY1 = 0.05, BKMNX2 = 0.12, BKMNY2 = 0.05, + 2 BKMNX3 = 0.22, BKMNY3 = 0.05, BKMXX1 = 0.1 , BKMXY1 = 1 , + 3 BKMXX2 = 0.2 , BKMXY2 = 1 , BKMXX3 = 0.3 , BKMXY3 = 1 ) + PARAMETER + 1(FBKX1 = 2/(BKMXX1-BKMNX1), FBKX2 = 2/(BKMXX2-BKMNX2), + 2 FBKX3 = 2/(BKMXX3-BKMNX3), FBKY1 = 2/(BKMXY1-BKMNY1), + 3 FBKY2 = 2/(BKMXY2-BKMNY2), FBKY3 = 2/(BKMXY3-BKMNY3)) + + DIMENSION EDGEC(2:7),FNINV(5),DRK(5),DSIGM(5),ALFA(2:5) + DIMENSION U1(13),U2(13),U3(13),U4(12),U5(13),U6(13),U7( 8),U8(13) + DIMENSION V1(12),V2(12),V3(13),V4(12),V5(13),V6(13),V7(11),V8(11) + DIMENSION W1(13),W2(11),W3(13),W4(13),W5(13),W6(13), W8( 8) + + DATA FNINV /1, 0.5, 0.33333333, 0.25, 0.2/ + + DATA (EDGEC(J),J=2,7) + 1/ 0.16666667E+0, 0.41666667E-1, 0.83333333E-2, + 2 0.13888889E-1, 0.69444444E-2, 0.77160493E-3/ + + DATA (U1(K),K=1,13) + 1/ 0.25850868E+0, 0.32477982E-1, -0.59020496E-2, + 2 0. , 0.24880692E-1, 0.47404356E-2, + 3 -0.74445130E-3, 0.73225731E-2, 0. , + 4 0.11668284E-2, 0. , -0.15727318E-2,-0.11210142E-2/ + + DATA (U2(K),K=1,13) + 1/ 0.43142611E+0, 0.40797543E-1, -0.91490215E-2, + 2 0. , 0.42127077E-1, 0.73167928E-2, + 3 -0.14026047E-2, 0.16195241E-1, 0.24714789E-2, + 4 0.20751278E-2, 0. , -0.25141668E-2,-0.14064022E-2/ + + DATA (U3(K),K=1,13) + 1/ 0.25225955E+0, 0.64820468E-1, -0.23615759E-1, + 2 0. , 0.23834176E-1, 0.21624675E-2, + 3 -0.26865597E-2, -0.54891384E-2, 0.39800522E-2, + 4 0.48447456E-2, -0.89439554E-2, -0.62756944E-2,-0.24655436E-2/ + + DATA (U4(K),K=1,12) + 1/ 0.12593231E+1, -0.20374501E+0, 0.95055662E-1, + 2 -0.20771531E-1, -0.46865180E-1, -0.77222986E-2, + 3 0.32241039E-2, 0.89882920E-2, -0.67167236E-2, + 4 -0.13049241E-1, 0.18786468E-1, 0.14484097E-1/ + + DATA (U5(K),K=1,13) + 1/-0.24864376E-1, -0.10368495E-2, 0.14330117E-2, + 2 0.20052730E-3, 0.18751903E-2, 0.12668869E-2, + 3 0.48736023E-3, 0.34850854E-2, 0. , + 4 -0.36597173E-3, 0.19372124E-2, 0.70761825E-3, 0.46898375E-3/ + + DATA (U6(K),K=1,13) + 1/ 0.35855696E-1, -0.27542114E-1, 0.12631023E-1, + 2 -0.30188807E-2, -0.84479939E-3, 0. , + 3 0.45675843E-3, -0.69836141E-2, 0.39876546E-2, + 4 -0.36055679E-2, 0. , 0.15298434E-2, 0.19247256E-2/ + + DATA (U7(K),K=1,8) + 1/ 0.10234691E+2, -0.35619655E+1, 0.69387764E+0, + 2 -0.14047599E+0, -0.19952390E+1, -0.45679694E+0, + 3 0. , 0.50505298E+0/ + + DATA (U8(K),K=1,13) + 1/ 0.21487518E+2, -0.11825253E+2, 0.43133087E+1, + 2 -0.14500543E+1, -0.34343169E+1, -0.11063164E+1, + 3 -0.21000819E+0, 0.17891643E+1, -0.89601916E+0, + 4 0.39120793E+0, 0.73410606E+0, 0. ,-0.32454506E+0/ + + DATA (V1(K),K=1,12) + 1/ 0.27827257E+0, -0.14227603E-2, 0.24848327E-2, + 2 0. , 0.45091424E-1, 0.80559636E-2, + 3 -0.38974523E-2, 0. , -0.30634124E-2, + 4 0.75633702E-3, 0.54730726E-2, 0.19792507E-2/ + + DATA (V2(K),K=1,12) + 1/ 0.41421789E+0, -0.30061649E-1, 0.52249697E-2, + 2 0. , 0.12693873E+0, 0.22999801E-1, + 3 -0.86792801E-2, 0.31875584E-1, -0.61757928E-2, + 4 0. , 0.19716857E-1, 0.32596742E-2/ + + DATA (V3(K),K=1,13) + 1/ 0.20191056E+0, -0.46831422E-1, 0.96777473E-2, + 2 -0.17995317E-2, 0.53921588E-1, 0.35068740E-2, + 3 -0.12621494E-1, -0.54996531E-2, -0.90029985E-2, + 4 0.34958743E-2, 0.18513506E-1, 0.68332334E-2,-0.12940502E-2/ + + DATA (V4(K),K=1,12) + 1/ 0.13206081E+1, 0.10036618E+0, -0.22015201E-1, + 2 0.61667091E-2, -0.14986093E+0, -0.12720568E-1, + 3 0.24972042E-1, -0.97751962E-2, 0.26087455E-1, + 4 -0.11399062E-1, -0.48282515E-1, -0.98552378E-2/ + + DATA (V5(K),K=1,13) + 1/ 0.16435243E-1, 0.36051400E-1, 0.23036520E-2, + 2 -0.61666343E-3, -0.10775802E-1, 0.51476061E-2, + 3 0.56856517E-2, -0.13438433E-1, 0. , + 4 0. , -0.25421507E-2, 0.20169108E-2,-0.15144931E-2/ + + DATA (V6(K),K=1,13) + 1/ 0.33432405E-1, 0.60583916E-2, -0.23381379E-2, + 2 0.83846081E-3, -0.13346861E-1, -0.17402116E-2, + 3 0.21052496E-2, 0.15528195E-2, 0.21900670E-2, + 4 -0.13202847E-2, -0.45124157E-2, -0.15629454E-2, 0.22499176E-3/ + + DATA (V7(K),K=1,11) + 1/ 0.54529572E+1, -0.90906096E+0, 0.86122438E-1, + 2 0. , -0.12218009E+1, -0.32324120E+0, + 3 -0.27373591E-1, 0.12173464E+0, 0. , + 4 0. , 0.40917471E-1/ + + DATA (V8(K),K=1,11) + 1/ 0.93841352E+1, -0.16276904E+1, 0.16571423E+0, + 2 0. , -0.18160479E+1, -0.50919193E+0, + 3 -0.51384654E-1, 0.21413992E+0, 0. , + 4 0. , 0.66596366E-1/ + + DATA (W1(K),K=1,13) + 1/ 0.29712951E+0, 0.97572934E-2, 0. , + 2 -0.15291686E-2, 0.35707399E-1, 0.96221631E-2, + 3 -0.18402821E-2, -0.49821585E-2, 0.18831112E-2, + 4 0.43541673E-2, 0.20301312E-2, -0.18723311E-2,-0.73403108E-3/ + + DATA (W2(K),K=1,11) + 1/ 0.40882635E+0, 0.14474912E-1, 0.25023704E-2, + 2 -0.37707379E-2, 0.18719727E+0, 0.56954987E-1, + 3 0. , 0.23020158E-1, 0.50574313E-2, + 4 0.94550140E-2, 0.19300232E-1/ + + DATA (W3(K),K=1,13) + 1/ 0.16861629E+0, 0. , 0.36317285E-2, + 2 -0.43657818E-2, 0.30144338E-1, 0.13891826E-1, + 3 -0.58030495E-2, -0.38717547E-2, 0.85359607E-2, + 4 0.14507659E-1, 0.82387775E-2, -0.10116105E-1,-0.55135670E-2/ + + DATA (W4(K),K=1,13) + 1/ 0.13493891E+1, -0.26863185E-2, -0.35216040E-2, + 2 0.24434909E-1, -0.83447911E-1, -0.48061360E-1, + 3 0.76473951E-2, 0.24494430E-1, -0.16209200E-1, + 4 -0.37768479E-1, -0.47890063E-1, 0.17778596E-1, 0.13179324E-1/ + + DATA (W5(K),K=1,13) + 1/ 0.10264945E+0, 0.32738857E-1, 0. , + 2 0.43608779E-2, -0.43097757E-1, -0.22647176E-2, + 3 0.94531290E-2, -0.12442571E-1, -0.32283517E-2, + 4 -0.75640352E-2, -0.88293329E-2, 0.52537299E-2, 0.13340546E-2/ + + DATA (W6(K),K=1,13) + 1/ 0.29568177E-1, -0.16300060E-2, -0.21119745E-3, + 2 0.23599053E-2, -0.48515387E-2, -0.40797531E-2, + 3 0.40403265E-3, 0.18200105E-2, -0.14346306E-2, + 4 -0.39165276E-2, -0.37432073E-2, 0.19950380E-2, 0.12222675E-2/ + + DATA (W8(K),K=1,8) + 1/ 0.66184645E+1, -0.73866379E+0, 0.44693973E-1, + 2 0. , -0.14540925E+1, -0.39529833E+0, + 3 -0.44293243E-1, 0.88741049E-1/ + + ITYPE=0 + IF(RKAPPA .LT. 0.01 .OR. RKAPPA .GT. 12) RETURN + IF(RKAPPA .GE. 0.29) THEN + ITYPE=1 + NPT=100 + WK=1/SQRT(RKAPPA) + AC(0)=(-0.032227*BETA2-0.074275)*RKAPPA+ + 1 (0.24533*BETA2+0.070152)*WK+(-0.55610*BETA2-3.1579) + AC(8)=(-0.013483*BETA2-0.048801)*RKAPPA+ + 1 (-1.6921*BETA2+8.3656)*WK+(-0.73275*BETA2-3.5226) + DRK(1)=WK**2 + DSIGM(1)=SQRT(RKAPPA/(1-0.5*BETA2)) + DO 1 J = 1,4 + DRK(J+1)=DRK(1)*DRK(J) + DSIGM(J+1)=DSIGM(1)*DSIGM(J) + 1 ALFA(J+1)=(FNINV(J)-BETA2*FNINV(J+1))*DRK(J) + + HC(0)=LOG(RKAPPA)+BETA2+0.42278434 + HC(1)=DSIGM(1) + HC(2)=ALFA(3)*DSIGM(3) + HC(3)=(3*ALFA(2)**2+ALFA(4))*DSIGM(4)-3 + HC(4)=(10*ALFA(2)*ALFA(3)+ALFA(5))*DSIGM(5)-10*HC(2) + HC(5)=HC(2)**2 + HC(6)=HC(2)*HC(3) + HC(7)=HC(2)*HC(5) + DO 2 J = 2,7 + 2 HC(J)=EDGEC(J)*HC(J) + HC(8)=0.39894228*HC(1) + ELSEIF(RKAPPA .GE. 0.22) THEN + ITYPE=2 + NPT=150 + X=1+(RKAPPA-BKMXX3)*FBKX3 + Y=1+(SQRT(BETA2)-BKMXY3)*FBKY3 + XX=2*X + YY=2*Y + X2=XX*X-1 + X3=XX*X2-X + Y2=YY*Y-1 + Y3=YY*Y2-Y + XY=X*Y + P2=X2*Y + P3=X3*Y + Q2=Y2*X + Q3=Y3*X + PQ=X2*Y2 + AC(1)=W1(1)+W1(2)*X+W1(4)*X3+W1(5)*Y+W1(6)*Y2+W1(7)*Y3+ + 1 W1(8)*XY+W1(9)*P2+W1(10)*P3+W1(11)*Q2+W1(12)*Q3+W1(13)*PQ + AC(2)=W2(1)+W2(2)*X+W2(3)*X2+W2(4)*X3+W2(5)*Y+W2(6)*Y2+ + 1 W2(8)*XY+W2(9)*P2+W2(10)*P3+W2(11)*Q2 + AC(3)=W3(1)+W3(3)*X2+W3(4)*X3+W3(5)*Y+W3(6)*Y2+W3(7)*Y3+ + 1 W3(8)*XY+W3(9)*P2+W3(10)*P3+W3(11)*Q2+W3(12)*Q3+W3(13)*PQ + AC(4)=W4(1)+W4(2)*X+W4(3)*X2+W4(4)*X3+W4(5)*Y+W4(6)*Y2+W4(7)*Y3+ + 1 W4(8)*XY+W4(9)*P2+W4(10)*P3+W4(11)*Q2+W4(12)*Q3+W4(13)*PQ + AC(5)=W5(1)+W5(2)*X+W5(4)*X3+W5(5)*Y+W5(6)*Y2+W5(7)*Y3+ + 1 W5(8)*XY+W5(9)*P2+W5(10)*P3+W5(11)*Q2+W5(12)*Q3+W5(13)*PQ + AC(6)=W6(1)+W6(2)*X+W6(3)*X2+W6(4)*X3+W6(5)*Y+W6(6)*Y2+W6(7)*Y3+ + 1 W6(8)*XY+W6(9)*P2+W6(10)*P3+W6(11)*Q2+W6(12)*Q3+W6(13)*PQ + AC(8)=W8(1)+W8(2)*X+W8(3)*X2+W8(5)*Y+W8(6)*Y2+W8(7)*Y3+W8(8)*XY + AC(0)=-3.05 + ELSEIF(RKAPPA .GE. 0.12) THEN + ITYPE=3 + NPT=200 + X=1+(RKAPPA-BKMXX2)*FBKX2 + Y=1+(SQRT(BETA2)-BKMXY2)*FBKY2 + XX=2*X + YY=2*Y + X2=XX*X-1 + X3=XX*X2-X + Y2=YY*Y-1 + Y3=YY*Y2-Y + XY=X*Y + P2=X2*Y + P3=X3*Y + Q2=Y2*X + Q3=Y3*X + PQ=X2*Y2 + AC(1)=V1(1)+V1(2)*X+V1(3)*X2+V1(5)*Y+V1(6)*Y2+V1(7)*Y3+ + 1 V1(9)*P2+V1(10)*P3+V1(11)*Q2+V1(12)*Q3 + AC(2)=V2(1)+V2(2)*X+V2(3)*X2+V2(5)*Y+V2(6)*Y2+V2(7)*Y3+ + 1 V2(8)*XY+V2(9)*P2+V2(11)*Q2+V2(12)*Q3 + AC(3)=V3(1)+V3(2)*X+V3(3)*X2+V3(4)*X3+V3(5)*Y+V3(6)*Y2+V3(7)*Y3+ + 1 V3(8)*XY+V3(9)*P2+V3(10)*P3+V3(11)*Q2+V3(12)*Q3+V3(13)*PQ + AC(4)=V4(1)+V4(2)*X+V4(3)*X2+V4(4)*X3+V4(5)*Y+V4(6)*Y2+V4(7)*Y3+ + 1 V4(8)*XY+V4(9)*P2+V4(10)*P3+V4(11)*Q2+V4(12)*Q3 + AC(5)=V5(1)+V5(2)*X+V5(3)*X2+V5(4)*X3+V5(5)*Y+V5(6)*Y2+V5(7)*Y3+ + 1 V5(8)*XY+V5(11)*Q2+V5(12)*Q3+V5(13)*PQ + AC(6)=V6(1)+V6(2)*X+V6(3)*X2+V6(4)*X3+V6(5)*Y+V6(6)*Y2+V6(7)*Y3+ + 1 V6(8)*XY+V6(9)*P2+V6(10)*P3+V6(11)*Q2+V6(12)*Q3+V6(13)*PQ + AC(7)=V7(1)+V7(2)*X+V7(3)*X2+V7(5)*Y+V7(6)*Y2+V7(7)*Y3+ + 1 V7(8)*XY+V7(11)*Q2 + AC(8)=V8(1)+V8(2)*X+V8(3)*X2+V8(5)*Y+V8(6)*Y2+V8(7)*Y3+ + 1 V8(8)*XY+V8(11)*Q2 + AC(0)=-3.04 + ELSE + ITYPE=4 + IF(RKAPPA .GE. 0.02) ITYPE=3 + NPT=200 + X=1+(RKAPPA-BKMXX1)*FBKX1 + Y=1+(SQRT(BETA2)-BKMXY1)*FBKY1 + XX=2*X + YY=2*Y + X2=XX*X-1 + X3=XX*X2-X + Y2=YY*Y-1 + Y3=YY*Y2-Y + XY=X*Y + P2=X2*Y + P3=X3*Y + Q2=Y2*X + Q3=Y3*X + PQ=X2*Y2 + IF(ITYPE .EQ. 3) THEN + AC(1)=U1(1)+U1(2)*X+U1(3)*X2+U1(5)*Y+U1(6)*Y2+U1(7)*Y3+ + 1 U1(8)*XY+U1(10)*P3+U1(12)*Q3+U1(13)*PQ + AC(2)=U2(1)+U2(2)*X+U2(3)*X2+U2(5)*Y+U2(6)*Y2+U2(7)*Y3+ + 1 U2(8)*XY+U2(9)*P2+U2(10)*P3+U2(12)*Q3+U2(13)*PQ + AC(3)=U3(1)+U3(2)*X+U3(3)*X2+U3(5)*Y+U3(6)*Y2+U3(7)*Y3+ + 1 U3(8)*XY+U3(9)*P2+U3(10)*P3+U3(11)*Q2+U3(12)*Q3+U3(13)*PQ + AC(4)=U4(1)+U4(2)*X+U4(3)*X2+U4(4)*X3+U4(5)*Y+U4(6)*Y2+U4(7)*Y3+ + 1 U4(8)*XY+U4(9)*P2+U4(10)*P3+U4(11)*Q2+U4(12)*Q3 + AC(5)=U5(1)+U5(2)*X+U5(3)*X2+U5(4)*X3+U5(5)*Y+U5(6)*Y2+U5(7)*Y3+ + 1 U5(8)*XY+U5(10)*P3+U5(11)*Q2+U5(12)*Q3+U5(13)*PQ + AC(6)=U6(1)+U6(2)*X+U6(3)*X2+U6(4)*X3+U6(5)*Y+U6(7)*Y3+ + 1 U6(8)*XY+U6(9)*P2+U6(10)*P3+U6(12)*Q3+U6(13)*PQ + AC(7)=U7(1)+U7(2)*X+U7(3)*X2+U7(4)*X3+U7(5)*Y+U7(6)*Y2+U7(8)*XY + ENDIF + AC(8)=U8(1)+U8(2)*X+U8(3)*X2+U8(4)*X3+U8(5)*Y+U8(6)*Y2+U8(7)*Y3+ + 1 U8(8)*XY+U8(9)*P2+U8(10)*P3+U8(11)*Q2+U8(13)*PQ + AC(0)=-3.03 + ENDIF + AC(9)=(AC(8)-AC(0))/NPT + AC(10)=1/AC(9) + IF(ITYPE .EQ. 3) THEN + X=(AC(7)-AC(8))/(AC(7)*AC(8)) + Y=1/LOG(AC(8)/AC(7)) + P2=AC(7)**2 + AC(11)=P2*(AC(1)*EXP(-AC(2)*(AC(7)+AC(5)*P2)- + 1 AC(3)*EXP(-AC(4)*(AC(7)+AC(6)*P2)))-0.045*Y/AC(7))/ + 2 (1+X*Y*AC(7)) + AC(12)=(0.045+X*AC(11))*Y + ENDIF + IF(ITYPE .EQ. 4) AC(13)=0.995/DISLAN(AC(8)) + + IF(MODE .EQ. 0) RETURN + X=AC(0) + WCM(0)=0 + FL=VAVDEN(X) + DO 11 K = 1,NPT + X=X+AC(9) + FU=VAVDEN(X) + WCM(K)=WCM(K-1)+FL+FU + 11 FL=FU + X=0.5*AC(9) + DO 12 K = 1,NPT + 12 WCM(K)=X*WCM(K) + RETURN + END + + + +* * $Id: vavden.F,v 1.1.1.1 1996/04/01 15:02:48 mclareni Exp $ * * $Log: vavden.F,v $ @@ -302,17 +859,18 @@ END + * -* $Id: vavset.F,v 1.1.1.1 1996/04/01 15:02:48 mclareni Exp $ +* $Id: vavran.F,v 1.1.1.1 1996/04/01 15:02:48 mclareni Exp $ * -* $Log: vavset.F,v $ +* $Log: vavran.F,v $ * Revision 1.1.1.1 1996/04/01 15:02:48 mclareni * Mathlib gen * * - SUBROUTINE VAVSET(RKAPPA,BETA2,MODE) + FUNCTION VAVRAN(RKAPPA,BETA2,RAN) - COMMON /GXXXC1/ WCM(0:200),AC(0:13),HC(0:8),ITYPE,NPT + DIMENSION AC(0:13),HC(0:8),H(9) PARAMETER 1(BKMNX1 = 0.02, BKMNY1 = 0.05, BKMNX2 = 0.12, BKMNY2 = 0.05, @@ -336,7 +894,7 @@ DATA (U1(K),K=1,13) 1/ 0.25850868E+0, 0.32477982E-1, -0.59020496E-2, - 2 0. , 0.24880692E-1, 0.47404356E-2, + 2 0. , 0.24880692E-1, 0.47404356E-2, 3 -0.74445130E-3, 0.73225731E-2, 0. , 4 0.11668284E-2, 0. , -0.15727318E-2,-0.11210142E-2/ @@ -470,8 +1028,8 @@ 2 0. , -0.14540925E+1, -0.39529833E+0, 3 -0.44293243E-1, 0.88741049E-1/ - ITYPE=0 - IF(RKAPPA .LT. 0.01 .OR. RKAPPA .GT. 12) RETURN + V=0 + IF(RKAPPA .LT. 0.01 .OR. RKAPPA .GT. 12) GO TO 9 IF(RKAPPA .GE. 0.29) THEN ITYPE=1 NPT=100 @@ -601,7 +1159,6 @@ AC(0)=-3.03 ENDIF AC(9)=(AC(8)-AC(0))/NPT - AC(10)=1/AC(9) IF(ITYPE .EQ. 3) THEN X=(AC(7)-AC(8))/(AC(7)*AC(8)) Y=1/LOG(AC(8)/AC(7)) @@ -611,21 +1168,49 @@ 2 (1+X*Y*AC(7)) AC(12)=(0.045+X*AC(11))*Y ENDIF - IF(ITYPE .EQ. 4) AC(13)=0.995/DISLAN(AC(8)) + IF(ITYPE .EQ. 4) AC(10)=0.995/DISLAN(AC(8)) - IF(MODE .EQ. 0) RETURN - X=AC(0) - WCM(0)=0 - FL=VAVDEN(X) - DO 11 K = 1,NPT - X=X+AC(9) - FU=VAVDEN(X) - WCM(K)=WCM(K-1)+FL+FU - 11 FL=FU - X=0.5*AC(9) - DO 12 K = 1,NPT - 12 WCM(K)=X*WCM(K) + T=2*RAN/AC(9) + RLAM=AC(0) + FL=0 + S=0 + DO 21 N = 1,NPT + RLAM=RLAM+AC(9) + IF(ITYPE .EQ. 1) THEN + FN=1 + X=(RLAM+HC(0))*HC(1) + H(1)=X + H(2)=X**2-1 + DO 31 K = 2,8 + FN=FN+1 + 31 H(K+1)=X*H(K)-FN*H(K-1) + Y=1+HC(7)*H(9) + DO 32 K = 2,6 + 32 Y=Y+HC(K)*H(K+1) + FU=HC(8)*EXP(-0.5*X**2)*MAX(Y,0.) + ELSEIF(ITYPE .EQ. 2) THEN + X=RLAM**2 + FU=AC(1)*EXP(-AC(2)*(RLAM+AC(5)*X)- + 1 AC(3)*EXP(-AC(4)*(RLAM+AC(6)*X))) + ELSEIF(ITYPE .EQ. 3) THEN + IF(RLAM .LT. AC(7)) THEN + X=RLAM**2 + FU=AC(1)*EXP(-AC(2)*(RLAM+AC(5)*X)- + 1 AC(3)*EXP(-AC(4)*(RLAM+AC(6)*X))) + ELSE + X=1/RLAM + FU=(AC(11)*X+AC(12))*X + ENDIF + ELSE + FU=AC(10)*DENLAN(RLAM) + ENDIF + S=S+FL+FU + IF(S .GT. T) GO TO 22 + 21 FL=FU + + 22 S0=S-FL-FU + V=RLAM-AC(9) + IF(S .GT. S0) V=V+AC(9)*(T-S0)/(S-S0) + 9 VAVRAN=V RETURN END - - Modified: trunk/thirdparty/cernlib/Makefile =================================================================== --- trunk/thirdparty/cernlib/Makefile 2015-06-19 15:28:10 UTC (rev 1368) +++ trunk/thirdparty/cernlib/Makefile 2015-06-20 05:37:37 UTC (rev 1369) @@ -219,10 +219,10 @@ AUTOHEADER = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing autoheader AUTOMAKE = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing automake-1.14 AWK = mawk -CC = /usr/bin/gcc +CC = gcc CCDEPMODE = depmode=gcc3 -CFLAGS = -g3 -gdwarf-2 -CPP = /usr/bin/gcc -E +CFLAGS = -g -O2 +CPP = gcc -E CPPFLAGS = CYGPATH_W = echo DEFS = -DHAVE_CONFIG_H @@ -286,7 +286,7 @@ abs_top_builddir = /home/greilich/workspaces/libamtrack/regular abs_top_srcdir = /home/greilich/workspaces/libamtrack/regular ac_ct_AR = ar -ac_ct_CC = /usr/bin/gcc +ac_ct_CC = gcc ac_ct_DUMPBIN = ac_ct_F77 = gfortran am__include = include This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-19 15:28:12
|
Revision: 1368 http://sourceforge.net/p/libamtrack/code/1368 Author: sgreilich Date: 2015-06-19 15:28:10 +0000 (Fri, 19 Jun 2015) Log Message: ----------- Bug more fixes in energy loss straggling Modified Paths: -------------- trunk/src/AT_EnergyLoss.c Modified: trunk/src/AT_EnergyLoss.c =================================================================== --- trunk/src/AT_EnergyLoss.c 2015-06-19 15:05:23 UTC (rev 1367) +++ trunk/src/AT_EnergyLoss.c 2015-06-19 15:28:10 UTC (rev 1368) @@ -194,9 +194,9 @@ const long material_no, const double slab_thickness_um) { - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - double beta = AT_beta_from_E_single(E_MeV_u); - double xi_keV = AT_xi_keV(E_MeV_u, particle_no, material_no, slab_thickness_um); + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); + double xi_keV = AT_xi_keV(E_MeV_u, particle_no, material_no, slab_thickness_um); double mean_loss_keV = AT_mean_energy_loss_keV(E_MeV_u, particle_no, material_no, @@ -570,13 +570,13 @@ double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); double beta = AT_beta_from_E_single(E_MeV_u); - double xi = AT_xi_keV(E_MeV_u, particle_no, material_no, slab_thickness_um); - double mean_loss_MeV = AT_mean_energy_loss_keV(E_MeV_u, + double xi_keV = AT_xi_keV(E_MeV_u, particle_no, material_no, slab_thickness_um); + double mean_loss_keV = AT_mean_energy_loss_keV(E_MeV_u, particle_no, material_no, slab_thickness_um); - return (1000.0 * (lambda_gauss * sqrt(xi * xi / kappa * (1 - beta * beta / 2)) + mean_loss_MeV)); + return (lambda_gauss * sqrt(xi_keV * xi_keV / kappa * (1 - beta * beta / 2)) + mean_loss_keV); } void AT_energy_loss_from_lambda_gauss_multi(const long n, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-19 15:05:25
|
Revision: 1367 http://sourceforge.net/p/libamtrack/code/1367 Author: sgreilich Date: 2015-06-19 15:05:23 +0000 (Fri, 19 Jun 2015) Log Message: ----------- Bug fixes in energy loss straggling Modified Paths: -------------- trunk/distributions/R/NAMESPACE trunk/include/AT_EnergyLoss.h trunk/include/AT_PhysicsRoutines.h trunk/include/AT_StoppingPowerDataBethe.h trunk/src/AT_EnergyLoss.c trunk/src/AT_PhysicsRoutines.c trunk/src/AT_StoppingPowerDataBethe.c trunk/thirdparty/cernlib/.deps/libcernlibfuns_la-AT_CernlibFuns.Plo trunk/thirdparty/cernlib/Makefile Modified: trunk/distributions/R/NAMESPACE =================================================================== --- trunk/distributions/R/NAMESPACE 2015-06-17 08:28:37 UTC (rev 1366) +++ trunk/distributions/R/NAMESPACE 2015-06-19 15:05:23 UTC (rev 1367) @@ -43,6 +43,7 @@ AT_E_MeV_u_from_momentum_MeV_c_u AT_effective_charge_from_E_MeV_u AT_max_E_transfer_MeV +AT_max_E_transfer_MeV_new AT_mean_number_of_tracks_contrib AT_beta_from_E AT_E_from_beta @@ -85,8 +86,9 @@ #AT_Moliere_function_f2 #AT_scattering_angle_distribution #AT_Highland_angle -AT_Bethe_mean_energy_loss_MeV +AT_mean_energy_loss_keV AT_kappa_multi +AT_xi_keV AT_Landau_PDF AT_lambda_landau_from_energy_loss_multi AT_energy_loss_from_lambda_landau_multi Modified: trunk/include/AT_EnergyLoss.h =================================================================== --- trunk/include/AT_EnergyLoss.h 2015-06-17 08:28:37 UTC (rev 1366) +++ trunk/include/AT_EnergyLoss.h 2015-06-19 15:05:23 UTC (rev 1367) @@ -51,24 +51,7 @@ // MEAN ENERGY LOSS ///////////////////////////////////////////////////////////////////////////// -/** - * Computes leading term of the Bethe formula - * for many particles according to ICRU49, p.6, - * after Cohen and Taylor (1986) - * @param[in] E_MeV_u energies of particle per nucleon - * @param[in] particle_no particle indices - * @see AT_DataParticle.h for definition - * @param[in] material_no material index - * @see AT_DataMaterial.h for definition - * @param[in] use_effective_charge if true the effective projectile charge (using the Barkas parametrization) will be used instead of the atomic number - * @return result - */ -double AT_el_energy_loss_leading_term_MeV_cm2_g( const double E_MeV_u, - const long particle_no, - const long material_no, - const bool use_effective_charge); - /** * Computes the mean energy loss in a slab of * material using the Bethe formula @@ -83,12 +66,27 @@ * @param[in] slab_thickness_um slab thickness in um * @return result */ -double AT_Bethe_mean_energy_loss_MeV( const double E_MeV_u, +double AT_mean_energy_loss_keV( const double E_MeV_u, const long particle_no, const long material_no, const double slab_thickness_um); +/** + * Parameter xi - reduced mean energy loss + * @param[in] E_MeV_u energies of particle per nucleon + * @param[in] particle_no particle indices + * @see AT_DataParticle.h for definition + * @param[in] material_no material index + * @see AT_DataMaterial.h for definition + * @param[in] slab_thickness_um slab thickness in um + * @return xi + */ +double AT_xi_keV( const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um); + ///////////////////////////////////////////////////////////////////////////// // KAPPA PARAMETER ///////////////////////////////////////////////////////////////////////////// Modified: trunk/include/AT_PhysicsRoutines.h =================================================================== --- trunk/include/AT_PhysicsRoutines.h 2015-06-17 08:28:37 UTC (rev 1366) +++ trunk/include/AT_PhysicsRoutines.h 2015-06-19 15:05:23 UTC (rev 1367) @@ -268,7 +268,59 @@ const double Z[], double I_eV[]); - /** +/** + * Returns mass correction terms of max relativistic energy transfer for single particle + * + * @param[in] E_MeV_u energy of particle per nucleon [MeV/u] + * @param[in] A atomic mass + * @return mass_correction_terms + */ +double AT_mass_correction_terms_new( const double E_MeV_u, const long A ); + +/** + * Max relativistic energy transfer with mass correction terms for single particle + * + * @param[in] E_MeV_u energy of particle per nucleon [MeV/u] + * @param[in] A atomic mass + * @return max_rel_E_transfer_MeV + */ +double AT_max_relativistic_E_transfer_MeV_new_single( const double E_MeV_u, const long A ); + +/** +* Max classic energy transfer for single particle +* +* @param[in] E_MeV_u energy of particle per nucleon [MeV/u] +* @param[in] A atomic mass +* @return max_classic_E_transfer_MeV +*/ +double AT_max_classic_E_transfer_MeV_new_single( const double E_MeV_u, const long A ); + +/** +* Max energy transfer for single particle +* +* @param[in] E_MeV_u energy of particle per nucleon [MeV/u] +* @param[in] A atomic mass +* @return max_E_transfer_MeV +*/ +double AT_max_E_transfer_MeV_new_single( const double E_MeV_u, const long A ); + +/** +* Kinetic energy maximally transferred from an ion to an electron +* in a collision - relativistic or non-relativistic +* +* @param[in] n number of particles +* @param[in] E_MeV_u energies of particle per nucleon [MeV/u]; if positive, the computation will be relativistic; if negative, the classic formular will be used (array of size n) +* @param[in] A atomic mass (array of size n) +* @param[out] max_E_transfer_MeV maximal energies transferred (array of size n) +* @return status code +*/ +int AT_max_E_transfer_MeV_new( const long n, + const double E_MeV_u[], + const long A[], + double max_E_transfer_MeV[]); + + +/** * Returns mass correction terms of max relativistic energy transfer for single particle * * @param[in] E_MeV_u energy of particle per nucleon [MeV/u] Modified: trunk/include/AT_StoppingPowerDataBethe.h =================================================================== --- trunk/include/AT_StoppingPowerDataBethe.h 2015-06-17 08:28:37 UTC (rev 1366) +++ trunk/include/AT_StoppingPowerDataBethe.h 2015-06-19 15:05:23 UTC (rev 1367) @@ -54,6 +54,22 @@ const char info[], double mass_stopping_power_MeV_cm2_g[]); +/** + * Computes leading term of the Bethe formula + * for many particles according to ICRU49, p.6, + * after Cohen and Taylor (1986) + * @param[in] E_MeV_u energies of particle per nucleon + * @param[in] particle_no particle indices + * @see AT_DataParticle.h for definition + * @param[in] material_no material index + * @see AT_DataMaterial.h for definition + * @param[in] use_effective_charge if true the effective projectile charge (using the Barkas parametrization) will be used instead of the atomic number + * @return result + */ +double AT_el_energy_loss_leading_term_MeV_cm2_g( const double E_MeV_u, + const long particle_no, + const long material_no, + const bool use_effective_charge); /** * Computes the stopping number to be used with the Bethe formula Modified: trunk/src/AT_EnergyLoss.c =================================================================== --- trunk/src/AT_EnergyLoss.c 2015-06-17 08:28:37 UTC (rev 1366) +++ trunk/src/AT_EnergyLoss.c 2015-06-19 15:05:23 UTC (rev 1367) @@ -23,684 +23,648 @@ #include "AT_EnergyLoss.h" -double AT_el_energy_loss_leading_term_MeV_cm2_g( const double E_MeV_u, - const long particle_no, - const long material_no, - const bool use_effective_charge){ +double AT_xi_keV(const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { - const double Z = AT_average_Z_from_material_no(material_no); - const double A = AT_average_A_from_material_no(material_no); - assert( A > 0 ); + const double Z = AT_average_Z_from_material_no(material_no); + const double A = AT_average_A_from_material_no(material_no); + const double density_g_cm3 = AT_density_g_cm3_from_material_no(material_no); - const double beta2 = gsl_pow_2(AT_beta_from_E_single(E_MeV_u)); - assert( beta2 > 0); + const double beta = AT_beta_from_E_single(E_MeV_u); + double z = AT_Z_from_particle_no_single(particle_no); - double z; - if(use_effective_charge){ - z = AT_effective_charge_from_E_MeV_u_single(E_MeV_u, particle_no); - }else{ - z = AT_Z_from_particle_no_single(particle_no); - } + return (153.5 * (Z / A) * (z * z) / (beta * beta) * density_g_cm3 * (slab_thickness_um / 1e4)); - // ICRU49, p.6, after Cohen and Taylor (1986), k_MeV_cm2_g = 0.307075 - return(0.307075 * (Z / A) * (z*z) / (beta2)); - } -double AT_xi_MeV( const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ - - const double Z = AT_average_Z_from_material_no(material_no); - const double A = AT_average_A_from_material_no(material_no); - const double density_g_cm3 = AT_density_g_cm3_from_material_no(material_no); - - const double beta = AT_beta_from_E_single(E_MeV_u); - double z = AT_Z_from_particle_no_single(particle_no); - - return(0.1535 * (Z / A) * (z*z) / (beta*beta) * density_g_cm3 * (slab_thickness_um/1000)); - +double AT_mean_energy_loss_keV( const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { + + double stopping_power_keV_um = 0.0; + AT_Stopping_Power( "PSTAR", + 1, + &E_MeV_u, + &particle_no, + material_no, + &stopping_power_keV_um); + return ( stopping_power_keV_um * slab_thickness_um); } -double AT_Bethe_mean_energy_loss_MeV(const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ - return( AT_Bethe_energy_loss_MeV_cm2_g_single(E_MeV_u, - particle_no, - material_no, - -1.0, - false) * - AT_density_g_cm3_from_material_no(material_no) * - (slab_thickness_um / 1e4)); +double AT_kappa_single(const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { + return ( AT_xi_keV(E_MeV_u, particle_no, material_no, slab_thickness_um) / + (AT_max_E_transfer_MeV_single(E_MeV_u)*1000)); } - -double AT_kappa_single( const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um) -{ - return( AT_xi_MeV(E_MeV_u, particle_no, material_no, slab_thickness_um) / - AT_max_E_transfer_MeV_single(E_MeV_u)); +void AT_kappa_multi(const long n, + const double E_MeV_u[], + const long particle_no[], + const long material_no, + const double slab_thickness_um[], + double kappa[]) { + long i; + for (i = 0; i < n; i++) { + kappa[i] = AT_kappa_single(E_MeV_u[i], particle_no[i], material_no, slab_thickness_um[i]); + } } -void AT_kappa_multi( const long n, - const double E_MeV_u[], - const long particle_no[], - const long material_no, - const double slab_thickness_um[], - double kappa[]) -{ - long i; - for(i = 0; i < n; i++){ - kappa[i] = AT_kappa_single(E_MeV_u[i], particle_no[i], material_no, slab_thickness_um[i]); - } +void AT_Landau_PDF(const long n, const double lambda_landau[], double density[]) { + for (int i = 0; i < n; i++) { + density[i] = CL_denlan(lambda_landau[i]); + } } +void AT_lambda_mean_multi(const long n, + const double E_MeV_u[], + const long particle_no[], + const long material_no, + const double slab_thickness_um[], + double lambda_mean[]) { + long i; + for (i = 0; i < n; i++) { + lambda_mean[i] = AT_lambda_mean_single(E_MeV_u[i], particle_no[i], material_no, slab_thickness_um[i]); + } -void AT_Landau_PDF(const long n, const double lambda_landau[], double density[]){ - for(int i = 0; i < n; i++){ - density[i] = CL_denlan(lambda_landau[i]); - } } -void AT_lambda_mean_multi( const long n, - const double E_MeV_u[], - const long particle_no[], - const long material_no, - const double slab_thickness_um[], - double lambda_mean[]) -{ - long i; - for(i = 0; i < n; i++){ - lambda_mean[i] = AT_lambda_mean_single(E_MeV_u[i], particle_no[i], material_no, slab_thickness_um[i]); - } - +double AT_lambda_mean_single(const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); + return (-0.42278433509 - beta * beta - log(kappa)); } -double AT_lambda_mean_single( const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um) -{ - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - double beta = AT_beta_from_E_single(E_MeV_u); - return(-0.42278433509 - beta*beta - log(kappa)); +void AT_lambda_max_multi(const long n, + const double E_MeV_u[], + const long particle_no[], + const long material_no, + const double slab_thickness_um[], + double lambda_max[]) { + long i; + for (i = 0; i < n; i++) { + double lambda_mean = AT_lambda_mean_single(E_MeV_u[i], particle_no[i], material_no, slab_thickness_um[i]); + lambda_max[i] = AT_lambda_max_single(lambda_mean); + } } -void AT_lambda_max_multi( const long n, - const double E_MeV_u[], - const long particle_no[], - const long material_no, - const double slab_thickness_um[], - double lambda_max[]) -{ - long i; - for(i = 0; i < n; i++){ - double lambda_mean = AT_lambda_mean_single(E_MeV_u[i], particle_no[i], material_no, slab_thickness_um[i]); - lambda_max[i] = AT_lambda_max_single( lambda_mean); - } +double AT_lambda_max_single(double lambda_mean) { + return (0.60715 + 1.1934 * lambda_mean + (0.67794 + 0.052382 * lambda_mean) * exp(0.94753 + 0.74442 * lambda_mean)); } -double AT_lambda_max_single( double lambda_mean) -{ - return(0.60715 + 1.1934 * lambda_mean + (0.67794 + 0.052382 * lambda_mean)*exp(0.94753 + 0.74442*lambda_mean)); -} +double AT_lambda_landau_from_energy_loss_single(const double energy_loss_keV, + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); + double xi_keV = AT_xi_keV(E_MeV_u, particle_no, material_no, slab_thickness_um); + double mean_loss_keV = AT_mean_energy_loss_keV(E_MeV_u, + particle_no, + material_no, + slab_thickness_um); - -double AT_lambda_landau_from_energy_loss_single( const double energy_loss_keV, - const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ - - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - double beta = AT_beta_from_E_single(E_MeV_u); - double xi = AT_xi_MeV(E_MeV_u, particle_no, material_no, slab_thickness_um); - double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, - particle_no, - material_no, - slab_thickness_um); - - return( (energy_loss_keV / 1000.0 - mean_loss_MeV) / xi - 0.42278433509 - beta*beta - log(kappa)); + return ( (energy_loss_keV - mean_loss_keV) / xi_keV - 0.42278433509 - beta * beta - log(kappa)); } -void AT_lambda_landau_from_energy_loss_multi( const long n, - const double energy_loss_keV[], - const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um, - double lambda_landau[]){ +void AT_lambda_landau_from_energy_loss_multi(const long n, + const double energy_loss_keV[], + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um, + double lambda_landau[]) { - for(long i = 0; i < n; i++){ - lambda_landau[i] = AT_lambda_landau_from_energy_loss_single( energy_loss_keV[i], E_MeV_u, particle_no, material_no, slab_thickness_um); - } + for (long i = 0; i < n; i++) { + lambda_landau[i] = AT_lambda_landau_from_energy_loss_single(energy_loss_keV[i], E_MeV_u, particle_no, material_no, slab_thickness_um); + } - return; + return; } +double AT_energy_loss_from_lambda_landau_single(const double lambda_landau, + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { -double AT_energy_loss_from_lambda_landau_single( const double lambda_landau, - const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); + double xi_keV = AT_xi_keV(E_MeV_u, particle_no, material_no, slab_thickness_um); + double mean_loss_keV = AT_mean_energy_loss_keV(E_MeV_u, + particle_no, + material_no, + slab_thickness_um); - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - double beta = AT_beta_from_E_single(E_MeV_u); - double xi = AT_xi_MeV(E_MeV_u, particle_no, material_no, slab_thickness_um); - double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, - particle_no, - material_no, - slab_thickness_um); - - return(1000.0 * (xi * (lambda_landau + 0.42278433509 + beta*beta + log(kappa)) + mean_loss_MeV)); + return (xi_keV * (lambda_landau + 0.42278433509 + beta * beta + log(kappa)) + mean_loss_keV); } -void AT_energy_loss_from_lambda_landau_multi( const long n, - const double lambda_landau[], - const double E_MeV_u[], - const long particle_no[], - const long material_no, - const double slab_thickness_um[], - double energy_loss_keV[]){ +void AT_energy_loss_from_lambda_landau_multi(const long n, + const double lambda_landau[], + const double E_MeV_u[], + const long particle_no[], + const long material_no, + const double slab_thickness_um[], + double energy_loss_keV[]) { - for(long i = 0; i < n; i++){ - energy_loss_keV[i] = AT_energy_loss_from_lambda_landau_single( lambda_landau[i], - E_MeV_u[i], - particle_no[i], - material_no, - slab_thickness_um[i]); - } + for (long i = 0; i < n; i++) { + energy_loss_keV[i] = AT_energy_loss_from_lambda_landau_single(lambda_landau[i], + E_MeV_u[i], + particle_no[i], + material_no, + slab_thickness_um[i]); + } - return; + return; } +double AT_energy_loss_from_lambda_vavilov_single(const double lambda_vavilov, + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { -double AT_energy_loss_from_lambda_vavilov_single( const double lambda_vavilov, - const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); + double xi_keV = AT_xi_keV(E_MeV_u, particle_no, material_no, slab_thickness_um); + double mean_loss_keV = AT_mean_energy_loss_keV(E_MeV_u, + particle_no, + material_no, + slab_thickness_um); - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - double beta = AT_beta_from_E_single(E_MeV_u); - double xi = AT_xi_MeV(E_MeV_u, particle_no, material_no, slab_thickness_um); - double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, - particle_no, - material_no, - slab_thickness_um); - - return(1000.0 * (xi * (lambda_vavilov / kappa + 0.42278433509 + beta*beta) + mean_loss_MeV)); + return (xi_keV * (lambda_vavilov / kappa + 0.42278433509 + beta * beta) + mean_loss_keV); } -void AT_energy_loss_from_lambda_vavilov_multi( const long n, - const double lambda_vavilov[], - const double E_MeV_u[], - const long particle_no[], - const long material_no, - const double slab_thickness_um[], - double energy_loss_keV[]){ +void AT_energy_loss_from_lambda_vavilov_multi(const long n, + const double lambda_vavilov[], + const double E_MeV_u[], + const long particle_no[], + const long material_no, + const double slab_thickness_um[], + double energy_loss_keV[]) { - for(long i = 0; i < n; i++){ - energy_loss_keV[i] = AT_energy_loss_from_lambda_vavilov_single( lambda_vavilov[i], - E_MeV_u[i], - particle_no[i], - material_no, - slab_thickness_um[i]); - } + for (long i = 0; i < n; i++) { + energy_loss_keV[i] = AT_energy_loss_from_lambda_vavilov_single(lambda_vavilov[i], + E_MeV_u[i], + particle_no[i], + material_no, + slab_thickness_um[i]); + } - return; + return; } +void AT_Landau_energy_loss_distribution(const long n, + const double energy_loss_keV[], + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um, + double fDdD[]) { + /* + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); + double* lambda = (double*)calloc(n, sizeof(double)); -void AT_Landau_energy_loss_distribution( const long n, - const double energy_loss_keV[], - const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um, - double fDdD[]){ -/* - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); - double* lambda = (double*)calloc(n, sizeof(double)); + AT_lambda_from_energy_loss_multi( n, + energy_loss_keV, + E_MeV_u, + particle_no, + material_no, + slab_thickness_um, + lambda); - AT_lambda_from_energy_loss_multi( n, - energy_loss_keV, - E_MeV_u, - particle_no, - material_no, - slab_thickness_um, - lambda); + AT_Landau_PDF( n, + lambda, + fDdD); - AT_Landau_PDF( n, - lambda, - fDdD); - - for(int i = 0; i < n; i++){ - fDdD[i] /= xi; - } -*/ - return; + for(int i = 0; i < n; i++){ + fDdD[i] /= xi; + } + */ + return; } - void AT_Vavilov_PDF(const long n, const double lambda_vavilov[], const double kappa, const double beta, - double density[]){ - CL_vavset(kappa, beta*beta); + double density[]) { + CL_vavset(kappa, beta * beta); - for(int i = 0; i < n; i++){ - density[i] = CL_vavden(lambda_vavilov[i]); - } + for (int i = 0; i < n; i++) { + density[i] = CL_vavden(lambda_vavilov[i]); + } } +double AT_lambda_vavilov_from_energy_loss_single(const double energy_loss_keV, + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { -double AT_lambda_vavilov_from_energy_loss_single( const double energy_loss_keV, - const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); + double xi_keV = AT_xi_keV(E_MeV_u, particle_no, material_no, slab_thickness_um); + double mean_loss_keV = AT_mean_energy_loss_keV(E_MeV_u, + particle_no, + material_no, + slab_thickness_um); - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - double beta = AT_beta_from_E_single(E_MeV_u); - double xi = AT_xi_MeV(E_MeV_u, particle_no, material_no, slab_thickness_um); - double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, - particle_no, - material_no, - slab_thickness_um); - - return( kappa*((energy_loss_keV / 1000.0 - mean_loss_MeV) / xi - 0.42278433509 - beta*beta) ); + return ( kappa * ((energy_loss_keV - mean_loss_keV) / xi_keV - 0.42278433509 - beta * beta)); } -void AT_lambda_vavilov_from_energy_loss_multi( const long n, - const double energy_loss_keV[], - const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um, - double lambda_vavilov[]){ +void AT_lambda_vavilov_from_energy_loss_multi(const long n, + const double energy_loss_keV[], + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um, + double lambda_vavilov[]) { - for(long i = 0; i < n; i++){ - lambda_vavilov[i] = AT_lambda_vavilov_from_energy_loss_single( energy_loss_keV[i], - E_MeV_u, - particle_no, - material_no, - slab_thickness_um); - } + for (long i = 0; i < n; i++) { + lambda_vavilov[i] = AT_lambda_vavilov_from_energy_loss_single(energy_loss_keV[i], + E_MeV_u, + particle_no, + material_no, + slab_thickness_um); + } - return; + return; } +void AT_Vavilov_energy_loss_distribution(const long n, + const double energy_loss_keV[], + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um, + double fDdD[]) { + /* + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); + double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); + double* lambda = (double*)calloc(n, sizeof(double)); -void AT_Vavilov_energy_loss_distribution( const long n, - const double energy_loss_keV[], - const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um, - double fDdD[]){ -/* - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - double beta = AT_beta_from_E_single(E_MeV_u); - double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); - double* lambda = (double*)calloc(n, sizeof(double)); + AT_lambda_from_energy_loss( n, + energy_loss_keV, + E_MeV_u, + particle_no, + material_no, + slab_thickness_um, + lambda); - AT_lambda_from_energy_loss( n, - energy_loss_keV, - E_MeV_u, - particle_no, - material_no, - slab_thickness_um, - lambda); + AT_Vavilov_PDF( n, + lambda, + kappa, + beta, + fDdD); - AT_Vavilov_PDF( n, - lambda, - kappa, - beta, - fDdD); - - for(int i = 0; i < n; i++){ - fDdD[i] /= xi; - } -*/ - return; + for(int i = 0; i < n; i++){ + fDdD[i] /= xi; + } + */ + return; } -void AT_energy_loss_distribution( const long n, - const double energy_loss_keV[], - const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um, - double fDdD[]){ +void AT_energy_loss_distribution(const long n, + const double energy_loss_keV[], + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um, + double fDdD[]) { - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - if (kappa <= 0.01){ - AT_Landau_energy_loss_distribution( n, - energy_loss_keV, - E_MeV_u, - particle_no, - material_no, - slab_thickness_um, - fDdD); - return; - } - if (kappa < 10){ - AT_Vavilov_energy_loss_distribution( n, - energy_loss_keV, - E_MeV_u, - particle_no, - material_no, - slab_thickness_um, - fDdD); - return; - } + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + if (kappa <= 0.01) { + AT_Landau_energy_loss_distribution(n, + energy_loss_keV, + E_MeV_u, + particle_no, + material_no, + slab_thickness_um, + fDdD); + return; + } + if (kappa < 10) { + AT_Vavilov_energy_loss_distribution(n, + energy_loss_keV, + E_MeV_u, + particle_no, + material_no, + slab_thickness_um, + fDdD); + return; + } } /** * This is code from ROOT (CERN) 5.3.1 */ -double AT_lambda_Vavilov_Mode( const double kappa, const double beta){ +double AT_lambda_Vavilov_Mode(const double kappa, const double beta) { - CL_vavset(kappa, beta); - double x = -4.22784335098467134e-01 - log(kappa) - beta*beta; - if (x>-0.223172) x = -0.223172; - double eps = 0.01; - double dx; + CL_vavset(kappa, beta); + double x = -4.22784335098467134e-01 - log(kappa) - beta*beta; + if (x>-0.223172) x = -0.223172; + double eps = 0.01; + double dx; - do { - double p0 = CL_vavden(x - eps); - double p1 = CL_vavden(x); - double p2 = CL_vavden(x + eps); - double y1 = 0.5*(p2-p0)/eps; - double y2 = (p2-2*p1+p0)/(eps*eps); - if(y2!=0){ - dx = - y1/y2; - }else{ - dx = 0.0; - } - x += dx; - if (fabs(dx) < eps) eps = 0.1*fabs(dx); - } while (fabs(dx) > 1E-5); - return x; + do { + double p0 = CL_vavden(x - eps); + double p1 = CL_vavden(x); + double p2 = CL_vavden(x + eps); + double y1 = 0.5 * (p2 - p0) / eps; + double y2 = (p2 - 2 * p1 + p0) / (eps * eps); + if (y2 != 0) { + dx = -y1 / y2; + } else { + dx = 0.0; + } + x += dx; + if (fabs(dx) < eps) eps = 0.1 * fabs(dx); + } while (fabs(dx) > 1E-5); + return x; } -double AT_lambda_Vavilov_FWHM_left( const double kappa, const double beta){ +double AT_lambda_Vavilov_FWHM_left(const double kappa, const double beta) { - double x = AT_lambda_Vavilov_Mode(kappa, beta); - CL_vavset(kappa, beta); - double p = CL_vavden(x) * 0.5; + double x = AT_lambda_Vavilov_Mode(kappa, beta); + CL_vavset(kappa, beta); + double p = CL_vavden(x) * 0.5; - x -= 1.3637; - double eps = 0.01; - double dx; + x -= 1.3637; + double eps = 0.01; + double dx; - do { - double p0 = CL_vavden(x); - double p1 = CL_vavden(x - eps); - double p2 = CL_vavden(x + eps); - double y1 = p0 - p; - double y2 = 0.5*(p2-p1)/eps; - if(y2!=0){ - dx = - y1/y2; - }else{ - dx = 0.0; - } - x += dx; - if (fabs(dx) < eps) eps = 0.1*fabs(dx); - } while (fabs(dx) > 1E-5); - return x; + do { + double p0 = CL_vavden(x); + double p1 = CL_vavden(x - eps); + double p2 = CL_vavden(x + eps); + double y1 = p0 - p; + double y2 = 0.5 * (p2 - p1) / eps; + if (y2 != 0) { + dx = -y1 / y2; + } else { + dx = 0.0; + } + x += dx; + if (fabs(dx) < eps) eps = 0.1 * fabs(dx); + } while (fabs(dx) > 1E-5); + return x; } -double AT_lambda_Vavilov_FWHM_right( const double kappa, const double beta){ +double AT_lambda_Vavilov_FWHM_right(const double kappa, const double beta) { - double x = AT_lambda_Vavilov_Mode(kappa, beta); - CL_vavset(kappa, beta); - double p = CL_vavden(x) * 0.5; + double x = AT_lambda_Vavilov_Mode(kappa, beta); + CL_vavset(kappa, beta); + double p = CL_vavden(x) * 0.5; - x += 2.655; - double eps = 0.01; - double dx; + x += 2.655; + double eps = 0.01; + double dx; - do { - double p0 = CL_vavden(x); - double p1 = CL_vavden(x - eps); - double p2 = CL_vavden(x + eps); - double y1 = p0 - p; - double y2 = 0.5*(p2-p1)/eps; - if(y2!=0){ - dx = - y1/y2; - }else{ - dx = 0.0; - } - x += dx; - if (fabs(dx) < eps) eps = 0.1*fabs(dx); - } while (fabs(dx) > 1E-5); - return x; + do { + double p0 = CL_vavden(x); + double p1 = CL_vavden(x - eps); + double p2 = CL_vavden(x + eps); + double y1 = p0 - p; + double y2 = 0.5 * (p2 - p1) / eps; + if (y2 != 0) { + dx = -y1 / y2; + } else { + dx = 0.0; + } + x += dx; + if (fabs(dx) < eps) eps = 0.1 * fabs(dx); + } while (fabs(dx) > 1E-5); + return x; } -double AT_lambda_Vavilov_FWHM( const double kappa, const double beta){ - return(AT_lambda_Vavilov_FWHM_right(kappa, beta) - AT_lambda_Landau_FWHM_left(kappa, beta)); +double AT_lambda_Vavilov_FWHM(const double kappa, const double beta) { + return (AT_lambda_Vavilov_FWHM_right(kappa, beta) - AT_lambda_Landau_FWHM_left(kappa, beta)); } -double AT_energy_loss_keV_Vavilov_FWHM( const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ -/* - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - double beta = AT_beta_from_E_single(E_MeV_u); +double AT_energy_loss_keV_Vavilov_FWHM(const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { + /* + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); - return AT_energy_loss_from_lambda_single(AT_lambda_Vavilov_FWHM_right(kappa, beta), - E_MeV_u, - particle_no, - material_no, - slab_thickness_um) - - AT_energy_loss_from_lambda_single(AT_lambda_Vavilov_FWHM_left(kappa, beta), - E_MeV_u, - particle_no, - material_no, - slab_thickness_um); -*/ - return 0.0; + return AT_energy_loss_from_lambda_single(AT_lambda_Vavilov_FWHM_right(kappa, beta), + E_MeV_u, + particle_no, + material_no, + slab_thickness_um) - + AT_energy_loss_from_lambda_single(AT_lambda_Vavilov_FWHM_left(kappa, beta), + E_MeV_u, + particle_no, + material_no, + slab_thickness_um); + */ + return 0.0; } -double AT_energy_loss_keV_Vavilov_Mode( const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ -/* - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - double beta = AT_beta_from_E_single(E_MeV_u); +double AT_energy_loss_keV_Vavilov_Mode(const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { + /* + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); - return AT_energy_loss_from_lambda_single(AT_lambda_Vavilov_Mode(kappa, beta), - E_MeV_u, - particle_no, - material_no, - slab_thickness_um); -*/ - return 0.0; + return AT_energy_loss_from_lambda_single(AT_lambda_Vavilov_Mode(kappa, beta), + E_MeV_u, + particle_no, + material_no, + slab_thickness_um); + */ + return 0.0; } -double AT_lambda_Vavilov_Mean( const double kappa, const double beta) { - return -0.42278433509 -1.0 - log(kappa) - beta*beta; +double AT_lambda_Vavilov_Mean(const double kappa, const double beta) { + return -0.42278433509 - 1.0 - log(kappa) - beta*beta; } -double AT_lambda_Vavilov_Variance( const double kappa, const double beta) { - return (1.0 - 0.5*beta*beta) / kappa; +double AT_lambda_Vavilov_Variance(const double kappa, const double beta) { + return (1.0 - 0.5 * beta * beta) / kappa; } -double AT_Vavilov_FWHM(){ - return 0.0; +double AT_Vavilov_FWHM() { + return 0.0; } -double AT_lambda_Vavilov_Skewness( const double kappa, const double beta) { - return (0.5-(beta*beta)/3)/(kappa*kappa) * pow ((1-0.5*beta*beta)/kappa, -1.5); +double AT_lambda_Vavilov_Skewness(const double kappa, const double beta) { + return (0.5 - (beta * beta) / 3) / (kappa * kappa) * pow((1 - 0.5 * beta * beta) / kappa, -1.5); } -double AT_lambda_Landau_Mode(){ - return -0.2258; +double AT_lambda_Landau_Mode() { + return -0.2258; } -double AT_energy_loss_keV_Landau_Mode( const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ -/* - return AT_energy_loss_from_lambda_single(AT_lambda_Landau_Mode(), - E_MeV_u, - particle_no, - material_no, - slab_thickness_um); -*/ - return 0.0; +double AT_energy_loss_keV_Landau_Mode(const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { + /* + return AT_energy_loss_from_lambda_single(AT_lambda_Landau_Mode(), + E_MeV_u, + particle_no, + material_no, + slab_thickness_um); + */ + return 0.0; } -double AT_lambda_Landau_FWHM_left(){ - return -0.2258-1.3637; +double AT_lambda_Landau_FWHM_left() { + return -0.2258 - 1.3637; } -double AT_lambda_Landau_FWHM_right(){ - return -0.2258+2.655; +double AT_lambda_Landau_FWHM_right() { + return -0.2258 + 2.655; } -double AT_lambda_Landau_FWHM(){ - return(AT_lambda_Landau_FWHM_right() - AT_lambda_Landau_FWHM_left()); +double AT_lambda_Landau_FWHM() { + return (AT_lambda_Landau_FWHM_right() - AT_lambda_Landau_FWHM_left()); } -double AT_energy_loss_keV_Landau_FWHM( const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ -/* double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); - return(4.02 * xi * 1000); -*/ - return 0.0; +double AT_energy_loss_keV_Landau_FWHM(const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { + /* double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); + return(4.02 * xi * 1000); + */ + return 0.0; } -double AT_lambda_Landau_Mean( const double kappa, const double beta) { - return -0.42278433509 - log(kappa) - beta*beta; +double AT_lambda_Landau_Mean(const double kappa, const double beta) { + return -0.42278433509 - log(kappa) - beta*beta; } ////////////////////////////// // GAUSS ////////////////////////////// -void AT_Gauss_PDF(const long n, const double lambda_gauss[], double density[]){ - for(int i = 0; i < n; i++){ - density[i] = gsl_ran_gaussian_pdf(lambda_gauss[i], 1.0); - } + +void AT_Gauss_PDF(const long n, const double lambda_gauss[], double density[]) { + for (int i = 0; i < n; i++) { + density[i] = gsl_ran_gaussian_pdf(lambda_gauss[i], 1.0); + } } -double AT_energy_loss_from_lambda_gauss_single( const double lambda_gauss, - const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ +double AT_energy_loss_from_lambda_gauss_single(const double lambda_gauss, + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - double beta = AT_beta_from_E_single(E_MeV_u); - double xi = AT_xi_MeV(E_MeV_u, particle_no, material_no, slab_thickness_um); - double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, - particle_no, - material_no, - slab_thickness_um); + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); + double xi = AT_xi_keV(E_MeV_u, particle_no, material_no, slab_thickness_um); + double mean_loss_MeV = AT_mean_energy_loss_keV(E_MeV_u, + particle_no, + material_no, + slab_thickness_um); - return(1000.0 * (lambda_gauss*sqrt(xi*xi/kappa*(1-beta*beta/2)) + mean_loss_MeV)); + return (1000.0 * (lambda_gauss * sqrt(xi * xi / kappa * (1 - beta * beta / 2)) + mean_loss_MeV)); } -void AT_energy_loss_from_lambda_gauss_multi( const long n, - const double lambda_gauss[], - const double E_MeV_u[], - const long particle_no[], - const long material_no, - const double slab_thickness_um[], - double energy_loss_keV[]){ +void AT_energy_loss_from_lambda_gauss_multi(const long n, + const double lambda_gauss[], + const double E_MeV_u[], + const long particle_no[], + const long material_no, + const double slab_thickness_um[], + double energy_loss_keV[]) { - for(long i = 0; i < n; i++){ - energy_loss_keV[i] = AT_energy_loss_from_lambda_gauss_single( lambda_gauss[i], - E_MeV_u[i], - particle_no[i], - material_no, - slab_thickness_um[i]); - } + for (long i = 0; i < n; i++) { + energy_loss_keV[i] = AT_energy_loss_from_lambda_gauss_single(lambda_gauss[i], + E_MeV_u[i], + particle_no[i], + material_no, + slab_thickness_um[i]); + } - return; + return; } -double AT_Gauss_Mode(){ - return 0; +double AT_Gauss_Mode() { + return 0; } -double AT_Gauss_Mean(){ - return 0; +double AT_Gauss_Mean() { + return 0; } -double AT_Gauss_FWHM(){ - return 0; +double AT_Gauss_FWHM() { + return 0; } ////////////////////////////// // GENERAL ////////////////////////////// -double AT_energy_loss_mode( const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - if (kappa <= 0.01){ - return AT_energy_loss_keV_Landau_Mode(E_MeV_u, - particle_no, - material_no, - slab_thickness_um); - } - if (kappa < 10){ - return AT_energy_loss_keV_Vavilov_Mode(E_MeV_u, - particle_no, - material_no, - slab_thickness_um); - } - // kappa >= 10 - return AT_Bethe_mean_energy_loss_MeV( E_MeV_u, - particle_no, - material_no, - slab_thickness_um); +double AT_energy_loss_mode(const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { + + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + if (kappa <= 0.01) { + return AT_energy_loss_keV_Landau_Mode(E_MeV_u, + particle_no, + material_no, + slab_thickness_um); + } + if (kappa < 10) { + return AT_energy_loss_keV_Vavilov_Mode(E_MeV_u, + particle_no, + material_no, + slab_thickness_um); + } + // kappa >= 10 + return AT_mean_energy_loss_keV(E_MeV_u, + particle_no, + material_no, + slab_thickness_um); } -double AT_energy_loss_FWHM( const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um){ +double AT_energy_loss_FWHM(const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) { - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); - if (kappa <= 0.01){ - return AT_energy_loss_keV_Landau_FWHM(E_MeV_u, - particle_no, - material_no, - slab_thickness_um); - } - if (kappa < 10){ - return AT_energy_loss_keV_Vavilov_FWHM(E_MeV_u, - particle_no, - material_no, - slab_thickness_um); - } -// // kappa >= 10 -// return AT_Bethe_mean_energy_loss_MeV( E_MeV_u, -// particle_no, -// material_no, -// slab_thickness_um); - return 0.0; + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + if (kappa <= 0.01) { + return AT_energy_loss_keV_Landau_FWHM(E_MeV_u, + particle_no, + material_no, + slab_thickness_um); + } + if (kappa < 10) { + return AT_energy_loss_keV_Vavilov_FWHM(E_MeV_u, + particle_no, + material_no, + slab_thickness_um); + } + // // kappa >= 10 + // return AT_Bethe_mean_energy_loss_MeV( E_MeV_u, + // particle_no, + // material_no, + // slab_thickness_um); + return 0.0; } Modified: trunk/src/AT_PhysicsRoutines.c =================================================================== --- trunk/src/AT_PhysicsRoutines.c 2015-06-17 08:28:37 UTC (rev 1366) +++ trunk/src/AT_PhysicsRoutines.c 2015-06-19 15:05:23 UTC (rev 1367) @@ -186,21 +186,68 @@ } - double AT_mass_correction_terms( const double E_MeV_u ){ + double AT_mass_correction_terms_new( const double E_MeV_u , const long A){ double gamma = AT_gamma_from_E_single( E_MeV_u ); - double m_MeV_c2 = 1.0079 * proton_mass_MeV_c2; // TODO what does it mean MeV_c2, are units correct ? - return 1.0 + (2.0 * (electron_mass_MeV_c2 / m_MeV_c2) / gamma) + gsl_pow_2(electron_mass_MeV_c2 / m_MeV_c2); + double m_MeV_c2 = A * atomic_mass_unit_MeV_c2; // TODO what to do with mass defect + return 1.0 + (2.0 * (electron_mass_MeV_c2 / m_MeV_c2) * gamma) + gsl_pow_2(electron_mass_MeV_c2 / m_MeV_c2); } - double AT_max_relativistic_E_transfer_MeV_single( const double E_MeV_u ){ + double AT_max_relativistic_E_transfer_MeV_new_single( const double E_MeV_u , const long A){ + const double beta = AT_beta_from_E_single(E_MeV_u); + const double mass_correction_terms = AT_mass_correction_terms_new(E_MeV_u, A); + return (2.0 * electron_mass_MeV_c2 * gsl_pow_2(beta) / (1.0 - gsl_pow_2(beta))) / mass_correction_terms; + } + + + double AT_max_classic_E_transfer_MeV_new_single( const double E_MeV_u , const long A){ + assert( E_MeV_u > 0); + return 4.0 * electron_mass_MeV_c2 / atomic_mass_unit_MeV_c2 * E_MeV_u; + } + + + double AT_max_E_transfer_MeV_new_single( const double E_MeV_u, const long A){ + /** + * if E_MeV_u < 0: use non-relativistic formula + * if E_MeV_u > 0: use relativistic formula + */ + // TODO instead of using negative values of the energy switch parameter "relativistic" should be added to argument list + if(E_MeV_u >= 0){ + return AT_max_relativistic_E_transfer_MeV_new_single(E_MeV_u, A); + }else{ + return AT_max_classic_E_transfer_MeV_new_single( -1.0 * E_MeV_u, A); + } + } + + + int AT_max_E_transfer_MeV_new( const long n, + const double E_MeV_u[], + const long A[], + double max_E_transfer_MeV[]) + { + // TODO instead of using negative values of the energy switch parameter "relativistic" should be added to argument list + long i; + for (i = 0; i < n; i++){ + max_E_transfer_MeV[i] = AT_max_E_transfer_MeV_new_single(E_MeV_u[i], A[i]); + } + return 0; + } + + double AT_mass_correction_terms( const double E_MeV_u){ + double gamma = AT_gamma_from_E_single( E_MeV_u ); + double m_MeV_c2 = 1.0079 * proton_mass_MeV_c2; // TODO correct??? Or "_new" routines + return 1.0 + (2.0 * (electron_mass_MeV_c2 / m_MeV_c2) / gamma) + gsl_pow_2(electron_mass_MeV_c2 / m_MeV_c2); + } + + + double AT_max_relativistic_E_transfer_MeV_single( const double E_MeV_u){ const double beta = AT_beta_from_E_single(E_MeV_u); const double mass_correction_terms = AT_mass_correction_terms(E_MeV_u); return (2.0 * electron_mass_MeV_c2 * gsl_pow_2(beta) / (1.0 - gsl_pow_2(beta))) / mass_correction_terms; } - double AT_max_classic_E_transfer_MeV_single( const double E_MeV_u ){ + double AT_max_classic_E_transfer_MeV_single( const double E_MeV_u){ assert( E_MeV_u > 0); return 4.0 * electron_mass_MeV_c2 / proton_mass_MeV_c2 * E_MeV_u; } Modified: trunk/src/AT_StoppingPowerDataBethe.c =================================================================== --- trunk/src/AT_StoppingPowerDataBethe.c 2015-06-17 08:28:37 UTC (rev 1366) +++ trunk/src/AT_StoppingPowerDataBethe.c 2015-06-19 15:05:23 UTC (rev 1367) @@ -46,7 +46,30 @@ return AT_Success; } +double AT_el_energy_loss_leading_term_MeV_cm2_g( const double E_MeV_u, + const long particle_no, + const long material_no, + const bool use_effective_charge){ + const double Z = AT_average_Z_from_material_no(material_no); + const double A = AT_average_A_from_material_no(material_no); + assert( A > 0 ); + + const double beta2 = gsl_pow_2(AT_beta_from_E_single(E_MeV_u)); + assert( beta2 > 0); + + double z; + if(use_effective_charge){ + z = AT_effective_charge_from_E_MeV_u_single(E_MeV_u, particle_no); + }else{ + z = AT_Z_from_particle_no_single(particle_no); + } + + // ICRU49, p.6, after Cohen and Taylor (1986), k_MeV_cm2_g = 0.307075 + return(0.307075 * (Z / A) * (z*z) / (beta2)); + +} + double AT_Bethe_Stopping_Number( const double E_MeV_u, const long particle_no, const long material_no, Modified: trunk/thirdparty/cernlib/.deps/libcernlibfuns_la-AT_CernlibFuns.Plo =================================================================== --- trunk/thirdparty/cernlib/.deps/libcernlibfuns_la-AT_CernlibFuns.Plo 2015-06-17 08:28:37 UTC (rev 1366) +++ trunk/thirdparty/cernlib/.deps/libcernlibfuns_la-AT_CernlibFuns.Plo 2015-06-19 15:05:23 UTC (rev 1367) @@ -10,9 +10,7 @@ /usr/include/_G_config.h /usr/include/wchar.h \ /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stdarg.h \ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ - /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ - /usr/include/x86_64-linux-gnu/bits/stdio.h \ - /usr/include/x86_64-linux-gnu/bits/stdio2.h + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h /usr/include/stdc-predef.h: @@ -47,7 +45,3 @@ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h: /usr/include/x86_64-linux-gnu/bits/sys_errlist.h: - -/usr/include/x86_64-linux-gnu/bits/stdio.h: - -/usr/include/x86_64-linux-gnu/bits/stdio2.h: Modified: trunk/thirdparty/cernlib/Makefile =================================================================== --- trunk/thirdparty/cernlib/Makefile 2015-06-17 08:28:37 UTC (rev 1366) +++ trunk/thirdparty/cernlib/Makefile 2015-06-19 15:05:23 UTC (rev 1367) @@ -219,10 +219,10 @@ AUTOHEADER = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing autoheader AUTOMAKE = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing automake-1.14 AWK = mawk -CC = gcc +CC = /usr/bin/gcc CCDEPMODE = depmode=gcc3 -CFLAGS = -g -O2 -CPP = gcc -E +CFLAGS = -g3 -gdwarf-2 +CPP = /usr/bin/gcc -E CPPFLAGS = CYGPATH_W = echo DEFS = -DHAVE_CONFIG_H @@ -286,7 +286,7 @@ abs_top_builddir = /home/greilich/workspaces/libamtrack/regular abs_top_srcdir = /home/greilich/workspaces/libamtrack/regular ac_ct_AR = ar -ac_ct_CC = gcc +ac_ct_CC = /usr/bin/gcc ac_ct_DUMPBIN = ac_ct_F77 = gfortran am__include = include This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-17 08:28:39
|
Revision: 1366 http://sourceforge.net/p/libamtrack/code/1366 Author: sgreilich Date: 2015-06-17 08:28:37 +0000 (Wed, 17 Jun 2015) Log Message: ----------- Updated version for mixed fortran/c compilation Modified Paths: -------------- trunk/Makefile.am trunk/configure.ac Removed Paths: ------------- trunk/saved_svn_version.txt Modified: trunk/Makefile.am =================================================================== --- trunk/Makefile.am 2015-06-17 08:27:12 UTC (rev 1365) +++ trunk/Makefile.am 2015-06-17 08:28:37 UTC (rev 1366) @@ -1,5 +1,5 @@ -SUBDIRS=src test example -DIST_SUBDIRS=src test example +SUBDIRS=thirdparty/cernlib src test example +DIST_SUBDIRS=thirdparty/cernlib src test example ACLOCAL_AMFLAGS =-I m4 R-package: Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2015-06-17 08:27:12 UTC (rev 1365) +++ trunk/configure.ac 2015-06-17 08:28:37 UTC (rev 1366) @@ -14,6 +14,7 @@ AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_SRCDIR([src/AT_Algorithms_CPP.c]) AC_CONFIG_SRCDIR([test/C/AT_test.c]) +AC_CONFIG_SRCDIR([thirdparty/cernlib/AT_CernlibFuns.c]) AC_CONFIG_HEADERS([config.h]) # Checks for programs. @@ -21,7 +22,7 @@ AM_PROG_CC_C_O AC_PROG_MAKE_SET AC_PROG_LIBTOOL -AC_PROG_FC([gfortran g77]) +AC_PROG_F77([gfortran g77]) ## HOW TO GET revision in here? But not trying to get it during a configure @@ -87,26 +88,6 @@ AC_CHECK_HEADER([string.h]) -# Check if libmath (CERNLIB), gfortran and appropriate header are available -FOUND_CERNLIB=1 -AC_CHECK_HEADER([cfortran.h], [], [FOUND_CERNLIB=0]) -AC_CHECK_HEADER([gen.h], [], [FOUND_CERNLIB=0]) -AC_CHECK_LIB(mathlib, vavden_, [], [FOUND_CERNLIB=0]) - -FOUND_GNUFORTRAN=1 -if test [-z $FC] ; then - FOUND_GNUFORTRAN=0 -fi - -if test [$FOUND_CERNLIB == 0 -a $FOUND_GNUFORTRAN == 0] ; then - AC_MSG_RESULT([No mathlib CERNLIB, headers or compatible fortran compiler found, some energy loss distribution functions will not be available.]) - AC_SUBST([CERNLIB_CFLAGS]) - AC_SUBST([CERNLIB_LIBS]) -else - AC_SUBST([CERNLIB_CFLAGS], ["-DHAVE_CERNLIB -Df2cFortran"]) - AC_SUBST([CERNLIB_LIBS], ["-lmathlib"]) -fi - # Checks for header files. AC_CHECK_HEADERS([malloc.h stdint.h stdlib.h string.h]) @@ -122,5 +103,5 @@ AC_FUNC_STRTOD AC_CHECK_FUNCS([floor pow sqrt strstr strtol]) -AC_CONFIG_FILES(Makefile src/Makefile test/Makefile test/C/Makefile example/Makefile example/basic_plots/Makefile example/demo/Makefile) +AC_CONFIG_FILES(Makefile src/Makefile test/Makefile test/C/Makefile example/Makefile example/basic_plots/Makefile example/demo/Makefile thirdparty/cernlib/Makefile) AC_OUTPUT Deleted: trunk/saved_svn_version.txt =================================================================== --- trunk/saved_svn_version.txt 2015-06-17 08:27:12 UTC (rev 1365) +++ trunk/saved_svn_version.txt 2015-06-17 08:28:37 UTC (rev 1366) @@ -1 +0,0 @@ -1349:1355M \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-17 08:27:15
|
Revision: 1365 http://sourceforge.net/p/libamtrack/code/1365 Author: sgreilich Date: 2015-06-17 08:27:12 +0000 (Wed, 17 Jun 2015) Log Message: ----------- Updated ignore list Property Changed: ---------------- trunk/example/basic_plots/ trunk/example/demo/ trunk/test/ trunk/test/C/ Index: trunk/example/basic_plots =================================================================== --- trunk/example/basic_plots 2015-06-17 08:24:09 UTC (rev 1364) +++ trunk/example/basic_plots 2015-06-17 08:27:12 UTC (rev 1365) Property changes on: trunk/example/basic_plots ___________________________________________________________________ Added: svn:ignore ## -0,0 +1,3 ## +.deps +Makefile.in +amtrack_plot Index: trunk/example/demo =================================================================== --- trunk/example/demo 2015-06-17 08:24:09 UTC (rev 1364) +++ trunk/example/demo 2015-06-17 08:27:12 UTC (rev 1365) Property changes on: trunk/example/demo ___________________________________________________________________ Added: svn:ignore ## -0,0 +1,3 ## +.deps +Makefile.in +amtrack_demo Index: trunk/test =================================================================== --- trunk/test 2015-06-17 08:24:09 UTC (rev 1364) +++ trunk/test 2015-06-17 08:27:12 UTC (rev 1365) Property changes on: trunk/test ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +Makefile.in Index: trunk/test/C =================================================================== --- trunk/test/C 2015-06-17 08:24:09 UTC (rev 1364) +++ trunk/test/C 2015-06-17 08:27:12 UTC (rev 1365) Property changes on: trunk/test/C ___________________________________________________________________ Added: svn:ignore ## -0,0 +1,4 ## +.deps +Makefile.in +amtrack_test +testo.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sgr...@us...> - 2015-06-17 08:24:12
|
Revision: 1364 http://sourceforge.net/p/libamtrack/code/1364 Author: sgreilich Date: 2015-06-17 08:24:09 +0000 (Wed, 17 Jun 2015) Log Message: ----------- Cut dependence on (hard to get) cernlib by using directly the few FORTRAN sources that are actually needed. Should now also work under Windows. Modified Paths: -------------- trunk/distributions/R/NAMESPACE trunk/distributions/R/create.package.sh trunk/distributions/R/package/configure.ac trunk/distributions/R/package/src/Makevars.in trunk/example/basic_plots/Makefile.am trunk/example/demo/Makefile.am trunk/include/AT_EnergyLoss.h trunk/src/AT_EnergyLoss.c trunk/src/AT_SPC.c trunk/src/Makefile.am trunk/test/C/AT_test.c trunk/test/C/Makefile.am Added Paths: ----------- trunk/thirdparty/ trunk/thirdparty/cernlib/ trunk/thirdparty/cernlib/.deps/ trunk/thirdparty/cernlib/.deps/libcernlibfuns_la-AT_CernlibFuncs.Plo trunk/thirdparty/cernlib/.deps/libcernlibfuns_la-AT_CernlibFuns.Plo trunk/thirdparty/cernlib/AT_CernlibFuns.c trunk/thirdparty/cernlib/AT_CernlibFuns.h trunk/thirdparty/cernlib/CERNLIBFUNS.f trunk/thirdparty/cernlib/Makefile trunk/thirdparty/cernlib/Makefile.am trunk/thirdparty/cernlib/Makefile.in Modified: trunk/distributions/R/NAMESPACE =================================================================== --- trunk/distributions/R/NAMESPACE 2015-06-13 13:09:38 UTC (rev 1363) +++ trunk/distributions/R/NAMESPACE 2015-06-17 08:24:09 UTC (rev 1364) @@ -85,18 +85,18 @@ #AT_Moliere_function_f2 #AT_scattering_angle_distribution #AT_Highland_angle -AT_Bethe_mean_energy_loss_MeV [HAVE_CERNLIB] -AT_kappa_multi [HAVE_CERNLIB] -AT_Landau_PDF [HAVE_CERNLIB] -AT_lambda_landau_from_energy_loss_multi [HAVE_CERNLIB] -AT_energy_loss_from_lambda_landau_multi [HAVE_CERNLIB] -AT_lambda_max_multi [HAVE_CERNLIB] -AT_lambda_mean_multi [HAVE_CERNLIB] -AT_Vavilov_PDF [HAVE_CERNLIB] -AT_lambda_vavilov_from_energy_loss_multi [HAVE_CERNLIB] -AT_energy_loss_from_lambda_vavilov_multi [HAVE_CERNLIB] -AT_Gauss_PDF [HAVE_CERNLIB] -AT_energy_loss_from_lambda_gauss_multi [HAVE_CERNLIB] +AT_Bethe_mean_energy_loss_MeV +AT_kappa_multi +AT_Landau_PDF +AT_lambda_landau_from_energy_loss_multi +AT_energy_loss_from_lambda_landau_multi +AT_lambda_max_multi +AT_lambda_mean_multi +AT_Vavilov_PDF +AT_lambda_vavilov_from_energy_loss_multi +AT_energy_loss_from_lambda_vavilov_multi +AT_Gauss_PDF +AT_energy_loss_from_lambda_gauss_multi AT_translate_dose_into_DSB_distribution noR: AT_SPC_read_data_from_filename_fast noR: AT_SPC_read_header_from_filename_fast Modified: trunk/distributions/R/create.package.sh =================================================================== --- trunk/distributions/R/create.package.sh 2015-06-13 13:09:38 UTC (rev 1363) +++ trunk/distributions/R/create.package.sh 2015-06-17 08:24:09 UTC (rev 1364) @@ -111,6 +111,9 @@ echo "Copying libamtrack sources..." cp $ROOT_DIR/include/*.h $WORK_DIR/libamtrack/src/ cp $ROOT_DIR/src/*.c $WORK_DIR/libamtrack/src/ +cp $ROOT_DIR/thirdparty/cernlib/*.h $WORK_DIR/libamtrack/src/ +cp $ROOT_DIR/thirdparty/cernlib/*.c $WORK_DIR/libamtrack/src/ +cp $ROOT_DIR/thirdparty/cernlib/*.f $WORK_DIR/libamtrack/src/ # *** Copy sandbox files if chosen *** Modified: trunk/distributions/R/package/configure.ac =================================================================== --- trunk/distributions/R/package/configure.ac 2015-06-13 13:09:38 UTC (rev 1363) +++ trunk/distributions/R/package/configure.ac 2015-06-17 08:24:09 UTC (rev 1364) @@ -1,5 +1,24 @@ -AC_INIT([src/AT_Algorithms_CPP.c]) +AC_INIT([libamtrack], 0.6) +# Ensure that the same C compiler and compiler flags are used in +# the configure tests as when compiling R or your package +: ${R_HOME=`R RHOME`} +if test -z "${R_HOME}"; then + echo "could not determine R_HOME" + exit 1 +fi +CC=`"${R_HOME}/bin/R" CMD config CC` +CPP=`"${R_HOME}/bin/R" CMD config CPP` +CFLAGS=`"${R_HOME}/bin/R" CMD config CFLAGS` +CPPFLAGS=`"${R_HOME}/bin/R" CMD config CPPFLAGS` +AC_PROG_CC +AC_PROG_CPP + +# Fortran check +F77=`"${R_HOME}/bin/R" CMD config F77` +AC_PROG_F77 +FLIBS=`"${R_HOME}/bin/R" CMD config FLIBS` + # Following lines kindly supplied by Dirk Eddelbuettel ## Use gsl-config to find arguments for compiler and linker flags ## @@ -42,20 +61,5 @@ AC_SUBST([GSL_LIBS]) fi -# Check if libmath (CERNLIB) and appropriate header are available -FOUND_CERNLIB=1 -AC_CHECK_HEADER([cfortran.h], [], [FOUND_CERNLIB=0]) -AC_CHECK_HEADER([gen.h], [], [FOUND_CERNLIB=0]) -AC_CHECK_LIB(mathlib, vavden_, [], [FOUND_CERNLIB=0]) - -if test $FOUND_CERNLIB == 0; then - AC_MSG_RESULT([No mathlib CERNLIB or headers found, some energy loss distribution functions will not be available.]) - AC_SUBST([CERNLIB_CFLAGS]) - AC_SUBST([CERNLIB_LIBS]) -else - AC_SUBST([CERNLIB_CFLAGS], ["-DHAVE_CERNLIB -DgFortran -Df2cFortran"]) # D flags for cfortran.h are save for Linux/Apple/Win - AC_SUBST([CERNLIB_LIBS], ["-lmathlib"]) -fi - AC_OUTPUT(src/Makevars) Modified: trunk/distributions/R/package/src/Makevars.in =================================================================== --- trunk/distributions/R/package/src/Makevars.in 2015-06-13 13:09:38 UTC (rev 1363) +++ trunk/distributions/R/package/src/Makevars.in 2015-06-17 08:24:09 UTC (rev 1364) @@ -1,11 +1,11 @@ # Set by configure GSL_CFLAGS = @GSL_CFLAGS@ GSL_LIBS = @GSL_LIBS@ -CERNLIB_CFLAGS = @CERNLIB_CFLAGS@ -CERNLIB_LIBS = @CERNLIB_LIBS@ # Combine to standard arguments for R -PKG_CPPFLAGS = $(GSL_CFLAGS) $(CERNLIB_CFLAGS) -I. -DNDEBUG -PKG_LIBS = $(GSL_LIBS) $(CERNLIB_LIBS) +PKG_CPPFLAGS = $(GSL_CFLAGS) -I. -DNDEBUG +PKG_CFLAGS = $(GSL_CFLAGS) -I. -DNDEBUG +PKG_LIBS = $(GSL_LIBS) $(FLIBS) + Modified: trunk/example/basic_plots/Makefile.am =================================================================== --- trunk/example/basic_plots/Makefile.am 2015-06-13 13:09:38 UTC (rev 1363) +++ trunk/example/basic_plots/Makefile.am 2015-06-17 08:24:09 UTC (rev 1364) @@ -1,4 +1,4 @@ bin_PROGRAMS = amtrack_plot amtrack_plot_SOURCES = AT_plot.c -amtrack_plot_CFLAGS =-I../../include -Wall -std=gnu99 -fPIC $(GSL_CFLAGS) -amtrack_plot_LDADD = ../../src/libamtrack.la $(GSL_LIBS) \ No newline at end of file +amtrack_plot_CFLAGS =-I../../include -I../../thirdparty/cernlib -Wall -std=gnu99 -fPIC $(GSL_CFLAGS) +amtrack_plot_LDADD = ../../src/libamtrack.la $(GSL_LIBS) Modified: trunk/example/demo/Makefile.am =================================================================== --- trunk/example/demo/Makefile.am 2015-06-13 13:09:38 UTC (rev 1363) +++ trunk/example/demo/Makefile.am 2015-06-17 08:24:09 UTC (rev 1364) @@ -1,4 +1,4 @@ bin_PROGRAMS = amtrack_demo amtrack_demo_SOURCES = AT_demo.c -amtrack_demo_CFLAGS =-I../../include -Wall -std=gnu99 -fPIC $(GSL_CFLAGS) -amtrack_demo_LDADD = ../../src/libamtrack.la $(GSL_LIBS) \ No newline at end of file +amtrack_demo_CFLAGS =-I../../include -I../../thirdparty/cernlib -Wall -std=gnu99 -fPIC $(GSL_CFLAGS) +amtrack_demo_LDADD = ../../src/libamtrack.la $(GSL_LIBS) Modified: trunk/include/AT_EnergyLoss.h =================================================================== --- trunk/include/AT_EnergyLoss.h 2015-06-13 13:09:38 UTC (rev 1363) +++ trunk/include/AT_EnergyLoss.h 2015-06-17 08:24:09 UTC (rev 1364) @@ -34,6 +34,8 @@ #include <gsl/gsl_randist.h> +#include "AT_CernlibFuns.h" + #include "AT_Error.h" #include "AT_DataMaterial.h" #include "AT_PhysicsRoutines.h" @@ -44,7 +46,7 @@ // CERN Program Library Long Writeup W5013, GEANT, 1994. ///////////////////////////////////////////////////////////////////////////// -#ifdef HAVE_CERNLIB + ///////////////////////////////////////////////////////////////////////////// // MEAN ENERGY LOSS ///////////////////////////////////////////////////////////////////////////// @@ -512,7 +514,4 @@ - -#endif /* HAVE_CERNLIB */ - #endif /* AT_ENERGYLOSSSTRAGGLING_H_ */ Modified: trunk/src/AT_EnergyLoss.c =================================================================== --- trunk/src/AT_EnergyLoss.c 2015-06-13 13:09:38 UTC (rev 1363) +++ trunk/src/AT_EnergyLoss.c 2015-06-17 08:24:09 UTC (rev 1364) @@ -23,14 +23,6 @@ #include "AT_EnergyLoss.h" - -#ifdef HAVE_CERNLIB - -#include "cfortran.h" -#include "gen.h" - - - double AT_el_energy_loss_leading_term_MeV_cm2_g( const double E_MeV_u, const long particle_no, const long material_no, @@ -55,7 +47,22 @@ } +double AT_xi_MeV( const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um){ + const double Z = AT_average_Z_from_material_no(material_no); + const double A = AT_average_A_from_material_no(material_no); + const double density_g_cm3 = AT_density_g_cm3_from_material_no(material_no); + + const double beta = AT_beta_from_E_single(E_MeV_u); + double z = AT_Z_from_particle_no_single(particle_no); + + return(0.1535 * (Z / A) * (z*z) / (beta*beta) * density_g_cm3 * (slab_thickness_um/1000)); + +} + double AT_Bethe_mean_energy_loss_MeV(const double E_MeV_u, const long particle_no, const long material_no, @@ -75,13 +82,7 @@ const long material_no, const double slab_thickness_um) { - // Factor 1/2 results from the difference between ICRU49, where - // dE/dx = K * ... * (0.5 ln() - beta² - delta/2 - ...) and - // Seltzer & Berger where - // dE/dx = 1/2 * K * ... * (ln() - 2*beta² - delta - ...) - return( 0.5 * AT_el_energy_loss_leading_term_MeV_cm2_g(E_MeV_u, particle_no, material_no, false) * - AT_density_g_cm3_from_material_no(material_no) * - (slab_thickness_um / 1e4) / + return( AT_xi_MeV(E_MeV_u, particle_no, material_no, slab_thickness_um) / AT_max_E_transfer_MeV_single(E_MeV_u)); } @@ -101,7 +102,7 @@ void AT_Landau_PDF(const long n, const double lambda_landau[], double density[]){ for(int i = 0; i < n; i++){ - density[i] = DENLAN(lambda_landau[i]); + density[i] = CL_denlan(lambda_landau[i]); } } @@ -158,7 +159,7 @@ double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); double beta = AT_beta_from_E_single(E_MeV_u); - double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); + double xi = AT_xi_MeV(E_MeV_u, particle_no, material_no, slab_thickness_um); double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, particle_no, material_no, @@ -191,7 +192,7 @@ double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); double beta = AT_beta_from_E_single(E_MeV_u); - double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); + double xi = AT_xi_MeV(E_MeV_u, particle_no, material_no, slab_thickness_um); double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, particle_no, material_no, @@ -229,7 +230,7 @@ double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); double beta = AT_beta_from_E_single(E_MeV_u); - double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); + double xi = AT_xi_MeV(E_MeV_u, particle_no, material_no, slab_thickness_um); double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, particle_no, material_no, @@ -293,10 +294,10 @@ void AT_Vavilov_PDF(const long n, const double lambda_vavilov[], const double kappa, const double beta, double density[]){ - VAVSET(kappa, beta, 1); + CL_vavset(kappa, beta*beta); for(int i = 0; i < n; i++){ - density[i] = VAVDEN(lambda_vavilov[i]); + density[i] = CL_vavden(lambda_vavilov[i]); } } @@ -309,7 +310,7 @@ double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); double beta = AT_beta_from_E_single(E_MeV_u); - double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); + double xi = AT_xi_MeV(E_MeV_u, particle_no, material_no, slab_thickness_um); double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, particle_no, material_no, @@ -408,16 +409,16 @@ */ double AT_lambda_Vavilov_Mode( const double kappa, const double beta){ - VAVSET(kappa, beta, 1); + CL_vavset(kappa, beta); double x = -4.22784335098467134e-01 - log(kappa) - beta*beta; if (x>-0.223172) x = -0.223172; double eps = 0.01; double dx; do { - double p0 = VAVDEN(x - eps); - double p1 = VAVDEN(x); - double p2 = VAVDEN(x + eps); + double p0 = CL_vavden(x - eps); + double p1 = CL_vavden(x); + double p2 = CL_vavden(x + eps); double y1 = 0.5*(p2-p0)/eps; double y2 = (p2-2*p1+p0)/(eps*eps); if(y2!=0){ @@ -434,17 +435,17 @@ double AT_lambda_Vavilov_FWHM_left( const double kappa, const double beta){ double x = AT_lambda_Vavilov_Mode(kappa, beta); - VAVSET(kappa, beta, 1); - double p = VAVDEN(x) * 0.5; + CL_vavset(kappa, beta); + double p = CL_vavden(x) * 0.5; x -= 1.3637; double eps = 0.01; double dx; do { - double p0 = VAVDEN(x); - double p1 = VAVDEN(x - eps); - double p2 = VAVDEN(x + eps); + double p0 = CL_vavden(x); + double p1 = CL_vavden(x - eps); + double p2 = CL_vavden(x + eps); double y1 = p0 - p; double y2 = 0.5*(p2-p1)/eps; if(y2!=0){ @@ -461,17 +462,17 @@ double AT_lambda_Vavilov_FWHM_right( const double kappa, const double beta){ double x = AT_lambda_Vavilov_Mode(kappa, beta); - VAVSET(kappa, beta, 1); - double p = VAVDEN(x) * 0.5; + CL_vavset(kappa, beta); + double p = CL_vavden(x) * 0.5; x += 2.655; double eps = 0.01; double dx; do { - double p0 = VAVDEN(x); - double p1 = VAVDEN(x - eps); - double p2 = VAVDEN(x + eps); + double p0 = CL_vavden(x); + double p1 = CL_vavden(x - eps); + double p2 = CL_vavden(x + eps); double y1 = p0 - p; double y2 = 0.5*(p2-p1)/eps; if(y2!=0){ @@ -606,7 +607,7 @@ double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); double beta = AT_beta_from_E_single(E_MeV_u); - double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); + double xi = AT_xi_MeV(E_MeV_u, particle_no, material_no, slab_thickness_um); double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, particle_no, material_no, @@ -702,4 +703,4 @@ return 0.0; } -#endif /* HAVE_CERNLIB */ + Modified: trunk/src/AT_SPC.c =================================================================== --- trunk/src/AT_SPC.c 2015-06-13 13:09:38 UTC (rev 1363) +++ trunk/src/AT_SPC.c 2015-06-17 08:24:09 UTC (rev 1364) @@ -251,9 +251,9 @@ char * filetype = NULL; decomposeStructIntoString(content, filetype, &length); - bool switchEndian=false; - if (strcmp(filetype,"SPCM")==0) - switchEndian=true; +// bool switchEndian=false; +// if (strcmp(filetype,"SPCM")==0) +// switchEndian=true; free(filetype); skipStruct(&content); Modified: trunk/src/Makefile.am =================================================================== --- trunk/src/Makefile.am 2015-06-13 13:09:38 UTC (rev 1363) +++ trunk/src/Makefile.am 2015-06-17 08:24:09 UTC (rev 1364) @@ -22,8 +22,5 @@ ../include/AT_StoppingPowerData.h \ ../include/AT_StoppingPower.h -CERNLIB_CFLAGS = @CERNLIB_CFLAGS@ -CERNLIB_LIBS = @CERNLIB_LIBS@ - -libamtrack_la_CFLAGS =-I../include -Wall -pedantic -std=c99 -fPIC $(GSL_CFLAGS) $(OPENMP_CFLAGS) $(CERNLIB_CFLAGS) -libamtrack_la_LDFLAGS = -version-info 0:0:0 $(GSL_LIBS) $(CERNLIB_LIBS) +libamtrack_la_CFLAGS =-I../include -I../thirdparty/cernlib -Wall -pedantic -std=c99 -fPIC $(GSL_CFLAGS) $(OPENMP_CFLAGS) +libamtrack_la_LDFLAGS = -version-info 0:0:0 $(GSL_LIBS) ../thirdparty/cernlib/libcernlibfuns.la Modified: trunk/test/C/AT_test.c =================================================================== --- trunk/test/C/AT_test.c 2015-06-13 13:09:38 UTC (rev 1363) +++ trunk/test/C/AT_test.c 2015-06-17 08:24:09 UTC (rev 1364) @@ -46,6 +46,7 @@ #include "config.h" #include "AT_StoppingPower.h" +#include "AT_CernlibFuns.h" int main(){ @@ -88,6 +89,13 @@ test); printf("Ergebnis ICRU: %e, %e, %e\n", test[0], test[1], test[2]); + double l = 0.0, kappa = 1.0, beta = 0.5; + CL_vavset(kappa, beta*beta); + + printf("Ergebnis Landau / Vavilov: %e, %e\n", CL_denlan(l), CL_vavden(l)); + + + return EXIT_SUCCESS; }; Modified: trunk/test/C/Makefile.am =================================================================== --- trunk/test/C/Makefile.am 2015-06-13 13:09:38 UTC (rev 1363) +++ trunk/test/C/Makefile.am 2015-06-17 08:24:09 UTC (rev 1364) @@ -1,4 +1,4 @@ bin_PROGRAMS = amtrack_test amtrack_test_SOURCES = AT_test.c -amtrack_test_CFLAGS =-I../../include -Wall -std=gnu99 -fPIC $(GSL_CFLAGS) -amtrack_test_LDADD = ../../src/libamtrack.la $(GSL_LIBS) \ No newline at end of file +amtrack_test_CFLAGS =-I../../include -I../../thirdparty/cernlib -Wall -std=gnu99 -fPIC $(GSL_CFLAGS) +amtrack_test_LDADD = ../../src/libamtrack.la ../../thirdparty/cernlib/libcernlibfuns.la $(GSL_LIBS) Added: trunk/thirdparty/cernlib/.deps/libcernlibfuns_la-AT_CernlibFuncs.Plo =================================================================== --- trunk/thirdparty/cernlib/.deps/libcernlibfuns_la-AT_CernlibFuncs.Plo (rev 0) +++ trunk/thirdparty/cernlib/.deps/libcernlibfuns_la-AT_CernlibFuncs.Plo 2015-06-17 08:24:09 UTC (rev 1364) @@ -0,0 +1 @@ +# dummy Added: trunk/thirdparty/cernlib/.deps/libcernlibfuns_la-AT_CernlibFuns.Plo =================================================================== --- trunk/thirdparty/cernlib/.deps/libcernlibfuns_la-AT_CernlibFuns.Plo (rev 0) +++ trunk/thirdparty/cernlib/.deps/libcernlibfuns_la-AT_CernlibFuns.Plo 2015-06-17 08:24:09 UTC (rev 1364) @@ -0,0 +1,53 @@ +libcernlibfuns_la-AT_CernlibFuns.lo: AT_CernlibFuns.c \ + /usr/include/stdc-predef.h AT_CernlibFuns.h /usr/include/stdio.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h + +/usr/include/stdc-predef.h: + +AT_CernlibFuns.h: + +/usr/include/stdio.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: Added: trunk/thirdparty/cernlib/AT_CernlibFuns.c =================================================================== --- trunk/thirdparty/cernlib/AT_CernlibFuns.c (rev 0) +++ trunk/thirdparty/cernlib/AT_CernlibFuns.c 2015-06-17 08:24:09 UTC (rev 1364) @@ -0,0 +1,23 @@ +#include "AT_CernlibFuns.h" + +double CL_denlan(double lambda_landau){ + extern float denlan_(); + float lambda_landau_f = (float)lambda_landau; + return((double)denlan_(&lambda_landau_f)); +} + +void CL_vavset(double kappa, double beta2){ + float kappa_f = (float)kappa; + float beta2_f = (float)beta2; + extern void vavset_(); + int mode = 1; + vavset_(&kappa_f, &beta2_f, &mode); + return; +} + +double CL_vavden(double lambda_vavilov){ + extern float vavden_(); + float lambda_vavilov_f = (float)lambda_vavilov; + return((double)vavden_(&lambda_vavilov_f)); +} + Property changes on: trunk/thirdparty/cernlib/AT_CernlibFuns.c ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: trunk/thirdparty/cernlib/AT_CernlibFuns.h =================================================================== --- trunk/thirdparty/cernlib/AT_CernlibFuns.h (rev 0) +++ trunk/thirdparty/cernlib/AT_CernlibFuns.h 2015-06-17 08:24:09 UTC (rev 1364) @@ -0,0 +1,41 @@ +#ifndef AT_CERNLIBFUNS_H_ +#define AT_CERNLIBFUNS_H_ + +/** + * @brief Algorithms from CERNLIB + */ + +/* + * AT_CernlibFuns.h + * ================ + * + * Created on: 15.06.2015 + * Creator: greilich + * + * Copyright 2006, 2015 The libamtrack team + * + * This file is part of the AmTrack program (libamtrack.sourceforge.net). + * + * AmTrack 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 3 of the License, or + * (at your option) any later version. + * + * AmTrack 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 AmTrack (file: copying.txt). + * If not, see <http://www.gnu.org/licenses/> + */ + +#include <stdio.h> + +double CL_denlan( double lambda_landau ); + +void CL_vavset( double kappa, double beta2 ); +double CL_vavden( double lambda_vavilov ); + +#endif /* AT_CERNLIBFUNS_H_ */ Added: trunk/thirdparty/cernlib/CERNLIBFUNS.f =================================================================== --- trunk/thirdparty/cernlib/CERNLIBFUNS.f (rev 0) +++ trunk/thirdparty/cernlib/CERNLIBFUNS.f 2015-06-17 08:24:09 UTC (rev 1364) @@ -0,0 +1,631 @@ +* +* $Id: denlan.F,v 1.1.1.1 1996/04/01 15:02:43 mclareni Exp $ +* +* $Log: denlan.F,v $ +* Revision 1.1.1.1 1996/04/01 15:02:43 mclareni +* Mathlib gen +* +* +C This will be DENLAN,IF=DOUBLE and DENLAN64,IF=-DOUBLE + FUNCTION DENLAN(X) + + DIMENSION P1(0:4),P2(0:4),P3(0:4),P4(0:4),P5(0:4),P6(0:4) + DIMENSION Q1(0:4),Q2(0:4),Q3(0:4),Q4(0:4),Q5(0:4),Q6(0:4) + DIMENSION A1(1:3),A2(1:2) + + DATA (P1(I),I=0,4),(Q1(I),I=0,4) + 1/ 0.42598 94875E+0,-0.12497 62550E+0, 0.39842 43700E-1, + 2 -0.62982 87635E-2, 0.15111 62253E-2, + 3 1.0 ,-0.33882 60629E+0, 0.95943 93323E-1, + 4 -0.16080 42283E-1, 0.37789 42063E-2/ + + DATA (P2(I),I=0,4),(Q2(I),I=0,4) + 1/ 0.17885 41609E+0, 0.11739 57403E+0, 0.14888 50518E-1, + 2 -0.13949 89411E-2, 0.12836 17211E-3, + 3 1.0 , 0.74287 95082E+0, 0.31539 32961E+0, + 4 0.66942 19548E-1, 0.87906 09714E-2/ + + DATA (P3(I),I=0,4),(Q3(I),I=0,4) + 1/ 0.17885 44503E+0, 0.93591 61662E-1, 0.63253 87654E-2, + 2 0.66116 67319E-4,-0.20310 49101E-5, + 3 1.0 , 0.60978 09921E+0, 0.25606 16665E+0, + 4 0.47467 22384E-1, 0.69573 01675E-2/ + + DATA (P4(I),I=0,4),(Q4(I),I=0,4) + 1/ 0.98740 54407E+0, 0.11867 23273E+3, 0.84927 94360E+3, + 2 -0.74377 92444E+3, 0.42702 62186E+3, + 3 1.0 , 0.10686 15961E+3, 0.33764 96214E+3, + 4 0.20167 12389E+4, 0.15970 63511E+4/ + + DATA (P5(I),I=0,4),(Q5(I),I=0,4) + 1/ 0.10036 75074E+1, 0.16757 02434E+3, 0.47897 11289E+4, + 2 0.21217 86767E+5,-0.22324 94910E+5, + 3 1.0 , 0.15694 24537E+3, 0.37453 10488E+4, + 4 0.98346 98876E+4, 0.66924 28357E+5/ + + DATA (P6(I),I=0,4),(Q6(I),I=0,4) + 1/ 0.10008 27619E+1, 0.66491 43136E+3, 0.62972 92665E+5, + 2 0.47555 46998E+6,-0.57436 09109E+7, + 3 1.0 , 0.65141 01098E+3, 0.56974 73333E+5, + 4 0.16591 74725E+6,-0.28157 59939E+7/ + + DATA (A1(I),I=1,3) + 1/ 0.41666 66667E-1,-0.19965 27778E-1, 0.27095 38966E-1/ + + DATA (A2(I),I=1,2) + 1/-0.18455 68670E+1,-0.42846 40743E+1/ + + V=X + IF(V .LT. -5.5) THEN + U=EXP(V+1.0) + DENLAN=0.3989422803*(EXP(-1/U)/SQRT(U))* + 1 (1+(A1(1)+(A1(2)+A1(3)*U)*U)*U) + ELSEIF(V .LT. -1) THEN + U=EXP(-V-1) + DENLAN=EXP(-U)*SQRT(U)* + 1 (P1(0)+(P1(1)+(P1(2)+(P1(3)+P1(4)*V)*V)*V)*V)/ + 2 (Q1(0)+(Q1(1)+(Q1(2)+(Q1(3)+Q1(4)*V)*V)*V)*V) + ELSEIF(V .LT. 1) THEN + DENLAN=(P2(0)+(P2(1)+(P2(2)+(P2(3)+P2(4)*V)*V)*V)*V)/ + 1 (Q2(0)+(Q2(1)+(Q2(2)+(Q2(3)+Q2(4)*V)*V)*V)*V) + ELSEIF(V .LT. 5) THEN + DENLAN=(P3(0)+(P3(1)+(P3(2)+(P3(3)+P3(4)*V)*V)*V)*V)/ + 1 (Q3(0)+(Q3(1)+(Q3(2)+(Q3(3)+Q3(4)*V)*V)*V)*V) + ELSEIF(V .LT. 12) THEN + U=1/V + DENLAN=U**2*(P4(0)+(P4(1)+(P4(2)+(P4(3)+P4(4)*U)*U)*U)*U)/ + 1 (Q4(0)+(Q4(1)+(Q4(2)+(Q4(3)+Q4(4)*U)*U)*U)*U) + ELSEIF(V .LT. 50) THEN + U=1/V + DENLAN=U**2*(P5(0)+(P5(1)+(P5(2)+(P5(3)+P5(4)*U)*U)*U)*U)/ + 1 (Q5(0)+(Q5(1)+(Q5(2)+(Q5(3)+Q5(4)*U)*U)*U)*U) + ELSEIF(V .LT. 300) THEN + U=1/V + DENLAN=U**2*(P6(0)+(P6(1)+(P6(2)+(P6(3)+P6(4)*U)*U)*U)*U)/ + 1 (Q6(0)+(Q6(1)+(Q6(2)+(Q6(3)+Q6(4)*U)*U)*U)*U) + ELSE + U=1/(V-V*LOG(V)/(V+1)) + DENLAN=U**2*(1+(A2(1)+A2(2)*U)*U) + ENDIF + RETURN + END + + +* +* $Id: dislan.F,v 1.1.1.1 1996/04/01 15:02:43 mclareni Exp $ +* +* $Log: dislan.F,v $ +* Revision 1.1.1.1 1996/04/01 15:02:43 mclareni +* Mathlib gen +* +* +C This will be DISLAN,IF=DOUBLE and DISLAN64,IF=-DOUBLE + FUNCTION DISLAN(X) + + DIMENSION P1(0:4),P2(0:3),P3(0:3),P4(0:3),P5(0:3),P6(0:3) + DIMENSION Q1(0:4),Q2(0:3),Q3(0:3),Q4(0:3),Q5(0:3),Q6(0:3) + DIMENSION A1(1:3),A2(1:3) + + DATA (P1(I),I=0,4),(Q1(I),I=0,4) + 1/ 0.25140 91491E+0,-0.62505 80444E-1, 0.14583 81230E-1, + 2 -0.21088 17737E-2, 0.74112 47290E-3, + 3 1.0 ,-0.55711 75625E-2, 0.62253 10236E-1, + 4 -0.31373 78427E-2, 0.19314 96439E-2/ + + DATA (P2(I),I=0,3),(Q2(I),I=0,3) + 1/ 0.28683 28584E+0, 0.35643 63231E+0, 0.15235 18695E+0, + 2 0.22513 04883E-1, + 3 1.0 , 0.61911 36137E+0, 0.17207 21448E+0, + 4 0.22785 94771E-1/ + + DATA (P3(I),I=0,3),(Q3(I),I=0,3) + 1/ 0.28683 29066E+0, 0.30038 28436E+0, 0.99509 51941E-1, + 2 0.87338 27185E-2, + 3 1.0 , 0.42371 90502E+0, 0.10956 31512E+0, + 4 0.86938 51567E-2/ + + DATA (P4(I),I=0,3),(Q4(I),I=0,3) + 1/ 0.10003 51630E+1, 0.45035 92498E+1, 0.10858 83880E+2, + 2 0.75360 52269E+1, + 3 1.0 , 0.55399 69678E+1, 0.19335 81111E+2, + 4 0.27213 21508E+2/ + + DATA (P5(I),I=0,3),(Q5(I),I=0,3) + 1/ 0.10000 06517E+1, 0.49094 14111E+2, 0.85055 44753E+2, + 2 0.15321 53455E+3, + 3 1.0 , 0.50099 28881E+2, 0.13998 19104E+3, + 4 0.42000 02909E+3/ + + DATA (P6(I),I=0,3),(Q6(I),I=0,3) + 1/ 0.10000 00983E+1, 0.13298 68456E+3, 0.91621 49244E+3, + 2 -0.96050 54274E+3, + 3 1.0 , 0.13398 87843E+3, 0.10559 90413E+4, + 4 0.55322 24619E+3/ + + DATA (A1(I),I=1,3) + 1/-0.45833 33333E+0, 0.66753 47222E+0,-0.16417 41416E+1/ + + DATA (A2(I),I=1,3) + 1/ 1.0 ,-0.42278 43351E+0,-0.20434 03138E+1/ + + ENTRY DSTLAN(X) + + V=X + IF(V .LT. -5.5) THEN + U=EXP(V+1) + DISLAN=0.3989422803*EXP(-1/U)*SQRT(U)* + 1 (1+(A1(1)+(A1(2)+A1(3)*U)*U)*U) + ELSEIF(V .LT. -1) THEN + U=EXP(-V-1) + DISLAN=(EXP(-U)/SQRT(U))* + 1 (P1(0)+(P1(1)+(P1(2)+(P1(3)+P1(4)*V)*V)*V)*V)/ + 2 (Q1(0)+(Q1(1)+(Q1(2)+(Q1(3)+Q1(4)*V)*V)*V)*V) + ELSEIF(V .LT. 1) THEN + DISLAN=(P2(0)+(P2(1)+(P2(2)+P2(3)*V)*V)*V)/ + 1 (Q2(0)+(Q2(1)+(Q2(2)+Q2(3)*V)*V)*V) + ELSEIF(V .LT. 4) THEN + DISLAN=(P3(0)+(P3(1)+(P3(2)+P3(3)*V)*V)*V)/ + 1 (Q3(0)+(Q3(1)+(Q3(2)+Q3(3)*V)*V)*V) + ELSEIF(V .LT. 12) THEN + U=1/V + DISLAN=(P4(0)+(P4(1)+(P4(2)+P4(3)*U)*U)*U)/ + 1 (Q4(0)+(Q4(1)+(Q4(2)+Q4(3)*U)*U)*U) + ELSEIF(V .LT. 50) THEN + U=1/V + DISLAN=(P5(0)+(P5(1)+(P5(2)+P5(3)*U)*U)*U)/ + 1 (Q5(0)+(Q5(1)+(Q5(2)+Q5(3)*U)*U)*U) + ELSEIF(V .LT. 300) THEN + U=1/V + DISLAN=(P6(0)+(P6(1)+(P6(2)+P6(3)*U)*U)*U)/ + 1 (Q6(0)+(Q6(1)+(Q6(2)+Q6(3)*U)*U)*U) + ELSE + U=1/(V-V*LOG(V)/(V+1)) + DISLAN=1-(A2(1)+(A2(2)+A2(3)*U)*U)*U + ENDIF + RETURN + END + + +* +* $Id: locatf.F,v 1.2 1996/05/24 10:56:52 jamie Exp $ +* +* $Log: locatf.F,v $ +* Revision 1.2 1996/05/24 10:56:52 jamie +* add locatr entry for consistency with wrup +* +* Revision 1.1.1.1 1996/02/15 17:48:49 mclareni +* Kernlib +* +* +* +* Name change (consistancy) +* + FUNCTION LOCATR(ARRAY,LENGTH,OBJECT) + DIMENSION ARRAY(*) + LOCATR=LOCATF(ARRAY,LENGTH,OBJECT) + END + + FUNCTION LOCATF(ARRAY,LENGTH,OBJECT) +C BINARY SEARCH THRU 'ARRAY' TO FIND 'OBJECT' +C 'ARRAY' IS ASSUMED TO BE SORTED PRIOR TO CALL +C IF MATCH IS FOUND, FUNCTION RETURNS POSITION OF ELEMENT +C IF NO MATCH FOUND, FUNCTION GIVES NEGATIVE OF NEAREST ELEMENT +C SMALLER THAN OBJECT +C F. JAMES , SEPT.,1974 + DIMENSION ARRAY(2) + NABOVE = LENGTH + 1 + NBELOW = 0 + 10 IF (NABOVE-NBELOW .LE. 1) GO TO 200 + MIDDLE = (NABOVE+NBELOW) / 2 + IF (OBJECT - ARRAY(MIDDLE)) 100, 180, 140 + 100 NABOVE = MIDDLE + GO TO 10 + 140 NBELOW = MIDDLE + GO TO 10 + 180 LOCATF = MIDDLE + GO TO 300 + 200 LOCATF = -NBELOW + 300 RETURN + END + + +* +* $Id: vavden.F,v 1.1.1.1 1996/04/01 15:02:48 mclareni Exp $ +* +* $Log: vavden.F,v $ +* Revision 1.1.1.1 1996/04/01 15:02:48 mclareni +* Mathlib gen +* +* + FUNCTION VAVDEN(RLAM) + + COMMON /GXXXC1/ WCM(0:200),AC(0:13),HC(0:8),ITYPE,NPT + + DIMENSION H(9) + + V=0 + IF(RLAM .LT. AC(0) .OR. RLAM .GT. AC(8)) GO TO 9 + + IF(ITYPE .EQ. 1) THEN + FN=1 + X=(RLAM+HC(0))*HC(1) + H(1)=X + H(2)=X**2-1 + DO 1 K = 2,8 + FN=FN+1 + 1 H(K+1)=X*H(K)-FN*H(K-1) + S=1+HC(7)*H(9) + DO 2 K = 2,6 + 2 S=S+HC(K)*H(K+1) + V=HC(8)*EXP(-0.5*X**2)*MAX(S,0.) + ELSEIF(ITYPE .EQ. 2) THEN + X=RLAM**2 + V=AC(1)*EXP(-AC(2)*(RLAM+AC(5)*X)- + 1 AC(3)*EXP(-AC(4)*(RLAM+AC(6)*X))) + ELSEIF(ITYPE .EQ. 3) THEN + IF(RLAM .LT. AC(7)) THEN + X=RLAM**2 + V=AC(1)*EXP(-AC(2)*(RLAM+AC(5)*X)- + 1 AC(3)*EXP(-AC(4)*(RLAM+AC(6)*X))) + ELSE + X=1/RLAM + V=(AC(11)*X+AC(12))*X + ENDIF + ELSEIF(ITYPE .EQ. 4) THEN + V=AC(13)*DENLAN(RLAM) + ENDIF + 9 VAVDEN=V + RETURN + + ENTRY VAVDIS(RLAM) + + IF(RLAM .LE. AC(0)) THEN + V=0 + ELSEIF(RLAM .GE. AC(8)) THEN + V=1 + ELSE + X=RLAM-AC(0) + K=X*AC(10) + V=MIN(WCM(K)+(X-K*AC(9))*(WCM(K+1)-WCM(K))*AC(10),1.) + ENDIF + VAVDIS=V + RETURN + + ENTRY VAVRND(RAN) + + K=MAX(MIN(ABS(LOCATF(WCM(0),NPT+1,RAN)),NPT)-1,0) + X=WCM(K+1)-WCM(K) + V=AC(0)+K*AC(9) + IF(X .GT. 0) V=V+(RAN-WCM(K))*AC(9)/X + VAVRND=V + RETURN + END + + +* +* $Id: vavset.F,v 1.1.1.1 1996/04/01 15:02:48 mclareni Exp $ +* +* $Log: vavset.F,v $ +* Revision 1.1.1.1 1996/04/01 15:02:48 mclareni +* Mathlib gen +* +* + SUBROUTINE VAVSET(RKAPPA,BETA2,MODE) + + COMMON /GXXXC1/ WCM(0:200),AC(0:13),HC(0:8),ITYPE,NPT + + PARAMETER + 1(BKMNX1 = 0.02, BKMNY1 = 0.05, BKMNX2 = 0.12, BKMNY2 = 0.05, + 2 BKMNX3 = 0.22, BKMNY3 = 0.05, BKMXX1 = 0.1 , BKMXY1 = 1 , + 3 BKMXX2 = 0.2 , BKMXY2 = 1 , BKMXX3 = 0.3 , BKMXY3 = 1 ) + PARAMETER + 1(FBKX1 = 2/(BKMXX1-BKMNX1), FBKX2 = 2/(BKMXX2-BKMNX2), + 2 FBKX3 = 2/(BKMXX3-BKMNX3), FBKY1 = 2/(BKMXY1-BKMNY1), + 3 FBKY2 = 2/(BKMXY2-BKMNY2), FBKY3 = 2/(BKMXY3-BKMNY3)) + + DIMENSION EDGEC(2:7),FNINV(5),DRK(5),DSIGM(5),ALFA(2:5) + DIMENSION U1(13),U2(13),U3(13),U4(12),U5(13),U6(13),U7( 8),U8(13) + DIMENSION V1(12),V2(12),V3(13),V4(12),V5(13),V6(13),V7(11),V8(11) + DIMENSION W1(13),W2(11),W3(13),W4(13),W5(13),W6(13), W8( 8) + + DATA FNINV /1, 0.5, 0.33333333, 0.25, 0.2/ + + DATA (EDGEC(J),J=2,7) + 1/ 0.16666667E+0, 0.41666667E-1, 0.83333333E-2, + 2 0.13888889E-1, 0.69444444E-2, 0.77160493E-3/ + + DATA (U1(K),K=1,13) + 1/ 0.25850868E+0, 0.32477982E-1, -0.59020496E-2, + 2 0. , 0.24880692E-1, 0.47404356E-2, + 3 -0.74445130E-3, 0.73225731E-2, 0. , + 4 0.11668284E-2, 0. , -0.15727318E-2,-0.11210142E-2/ + + DATA (U2(K),K=1,13) + 1/ 0.43142611E+0, 0.40797543E-1, -0.91490215E-2, + 2 0. , 0.42127077E-1, 0.73167928E-2, + 3 -0.14026047E-2, 0.16195241E-1, 0.24714789E-2, + 4 0.20751278E-2, 0. , -0.25141668E-2,-0.14064022E-2/ + + DATA (U3(K),K=1,13) + 1/ 0.25225955E+0, 0.64820468E-1, -0.23615759E-1, + 2 0. , 0.23834176E-1, 0.21624675E-2, + 3 -0.26865597E-2, -0.54891384E-2, 0.39800522E-2, + 4 0.48447456E-2, -0.89439554E-2, -0.62756944E-2,-0.24655436E-2/ + + DATA (U4(K),K=1,12) + 1/ 0.12593231E+1, -0.20374501E+0, 0.95055662E-1, + 2 -0.20771531E-1, -0.46865180E-1, -0.77222986E-2, + 3 0.32241039E-2, 0.89882920E-2, -0.67167236E-2, + 4 -0.13049241E-1, 0.18786468E-1, 0.14484097E-1/ + + DATA (U5(K),K=1,13) + 1/-0.24864376E-1, -0.10368495E-2, 0.14330117E-2, + 2 0.20052730E-3, 0.18751903E-2, 0.12668869E-2, + 3 0.48736023E-3, 0.34850854E-2, 0. , + 4 -0.36597173E-3, 0.19372124E-2, 0.70761825E-3, 0.46898375E-3/ + + DATA (U6(K),K=1,13) + 1/ 0.35855696E-1, -0.27542114E-1, 0.12631023E-1, + 2 -0.30188807E-2, -0.84479939E-3, 0. , + 3 0.45675843E-3, -0.69836141E-2, 0.39876546E-2, + 4 -0.36055679E-2, 0. , 0.15298434E-2, 0.19247256E-2/ + + DATA (U7(K),K=1,8) + 1/ 0.10234691E+2, -0.35619655E+1, 0.69387764E+0, + 2 -0.14047599E+0, -0.19952390E+1, -0.45679694E+0, + 3 0. , 0.50505298E+0/ + + DATA (U8(K),K=1,13) + 1/ 0.21487518E+2, -0.11825253E+2, 0.43133087E+1, + 2 -0.14500543E+1, -0.34343169E+1, -0.11063164E+1, + 3 -0.21000819E+0, 0.17891643E+1, -0.89601916E+0, + 4 0.39120793E+0, 0.73410606E+0, 0. ,-0.32454506E+0/ + + DATA (V1(K),K=1,12) + 1/ 0.27827257E+0, -0.14227603E-2, 0.24848327E-2, + 2 0. , 0.45091424E-1, 0.80559636E-2, + 3 -0.38974523E-2, 0. , -0.30634124E-2, + 4 0.75633702E-3, 0.54730726E-2, 0.19792507E-2/ + + DATA (V2(K),K=1,12) + 1/ 0.41421789E+0, -0.30061649E-1, 0.52249697E-2, + 2 0. , 0.12693873E+0, 0.22999801E-1, + 3 -0.86792801E-2, 0.31875584E-1, -0.61757928E-2, + 4 0. , 0.19716857E-1, 0.32596742E-2/ + + DATA (V3(K),K=1,13) + 1/ 0.20191056E+0, -0.46831422E-1, 0.96777473E-2, + 2 -0.17995317E-2, 0.53921588E-1, 0.35068740E-2, + 3 -0.12621494E-1, -0.54996531E-2, -0.90029985E-2, + 4 0.34958743E-2, 0.18513506E-1, 0.68332334E-2,-0.12940502E-2/ + + DATA (V4(K),K=1,12) + 1/ 0.13206081E+1, 0.10036618E+0, -0.22015201E-1, + 2 0.61667091E-2, -0.14986093E+0, -0.12720568E-1, + 3 0.24972042E-1, -0.97751962E-2, 0.26087455E-1, + 4 -0.11399062E-1, -0.48282515E-1, -0.98552378E-2/ + + DATA (V5(K),K=1,13) + 1/ 0.16435243E-1, 0.36051400E-1, 0.23036520E-2, + 2 -0.61666343E-3, -0.10775802E-1, 0.51476061E-2, + 3 0.56856517E-2, -0.13438433E-1, 0. , + 4 0. , -0.25421507E-2, 0.20169108E-2,-0.15144931E-2/ + + DATA (V6(K),K=1,13) + 1/ 0.33432405E-1, 0.60583916E-2, -0.23381379E-2, + 2 0.83846081E-3, -0.13346861E-1, -0.17402116E-2, + 3 0.21052496E-2, 0.15528195E-2, 0.21900670E-2, + 4 -0.13202847E-2, -0.45124157E-2, -0.15629454E-2, 0.22499176E-3/ + + DATA (V7(K),K=1,11) + 1/ 0.54529572E+1, -0.90906096E+0, 0.86122438E-1, + 2 0. , -0.12218009E+1, -0.32324120E+0, + 3 -0.27373591E-1, 0.12173464E+0, 0. , + 4 0. , 0.40917471E-1/ + + DATA (V8(K),K=1,11) + 1/ 0.93841352E+1, -0.16276904E+1, 0.16571423E+0, + 2 0. , -0.18160479E+1, -0.50919193E+0, + 3 -0.51384654E-1, 0.21413992E+0, 0. , + 4 0. , 0.66596366E-1/ + + DATA (W1(K),K=1,13) + 1/ 0.29712951E+0, 0.97572934E-2, 0. , + 2 -0.15291686E-2, 0.35707399E-1, 0.96221631E-2, + 3 -0.18402821E-2, -0.49821585E-2, 0.18831112E-2, + 4 0.43541673E-2, 0.20301312E-2, -0.18723311E-2,-0.73403108E-3/ + + DATA (W2(K),K=1,11) + 1/ 0.40882635E+0, 0.14474912E-1, 0.25023704E-2, + 2 -0.37707379E-2, 0.18719727E+0, 0.56954987E-1, + 3 0. , 0.23020158E-1, 0.50574313E-2, + 4 0.94550140E-2, 0.19300232E-1/ + + DATA (W3(K),K=1,13) + 1/ 0.16861629E+0, 0. , 0.36317285E-2, + 2 -0.43657818E-2, 0.30144338E-1, 0.13891826E-1, + 3 -0.58030495E-2, -0.38717547E-2, 0.85359607E-2, + 4 0.14507659E-1, 0.82387775E-2, -0.10116105E-1,-0.55135670E-2/ + + DATA (W4(K),K=1,13) + 1/ 0.13493891E+1, -0.26863185E-2, -0.35216040E-2, + 2 0.24434909E-1, -0.83447911E-1, -0.48061360E-1, + 3 0.76473951E-2, 0.24494430E-1, -0.16209200E-1, + 4 -0.37768479E-1, -0.47890063E-1, 0.17778596E-1, 0.13179324E-1/ + + DATA (W5(K),K=1,13) + 1/ 0.10264945E+0, 0.32738857E-1, 0. , + 2 0.43608779E-2, -0.43097757E-1, -0.22647176E-2, + 3 0.94531290E-2, -0.12442571E-1, -0.32283517E-2, + 4 -0.75640352E-2, -0.88293329E-2, 0.52537299E-2, 0.13340546E-2/ + + DATA (W6(K),K=1,13) + 1/ 0.29568177E-1, -0.16300060E-2, -0.21119745E-3, + 2 0.23599053E-2, -0.48515387E-2, -0.40797531E-2, + 3 0.40403265E-3, 0.18200105E-2, -0.14346306E-2, + 4 -0.39165276E-2, -0.37432073E-2, 0.19950380E-2, 0.12222675E-2/ + + DATA (W8(K),K=1,8) + 1/ 0.66184645E+1, -0.73866379E+0, 0.44693973E-1, + 2 0. , -0.14540925E+1, -0.39529833E+0, + 3 -0.44293243E-1, 0.88741049E-1/ + + ITYPE=0 + IF(RKAPPA .LT. 0.01 .OR. RKAPPA .GT. 12) RETURN + IF(RKAPPA .GE. 0.29) THEN + ITYPE=1 + NPT=100 + WK=1/SQRT(RKAPPA) + AC(0)=(-0.032227*BETA2-0.074275)*RKAPPA+ + 1 (0.24533*BETA2+0.070152)*WK+(-0.55610*BETA2-3.1579) + AC(8)=(-0.013483*BETA2-0.048801)*RKAPPA+ + 1 (-1.6921*BETA2+8.3656)*WK+(-0.73275*BETA2-3.5226) + DRK(1)=WK**2 + DSIGM(1)=SQRT(RKAPPA/(1-0.5*BETA2)) + DO 1 J = 1,4 + DRK(J+1)=DRK(1)*DRK(J) + DSIGM(J+1)=DSIGM(1)*DSIGM(J) + 1 ALFA(J+1)=(FNINV(J)-BETA2*FNINV(J+1))*DRK(J) + + HC(0)=LOG(RKAPPA)+BETA2+0.42278434 + HC(1)=DSIGM(1) + HC(2)=ALFA(3)*DSIGM(3) + HC(3)=(3*ALFA(2)**2+ALFA(4))*DSIGM(4)-3 + HC(4)=(10*ALFA(2)*ALFA(3)+ALFA(5))*DSIGM(5)-10*HC(2) + HC(5)=HC(2)**2 + HC(6)=HC(2)*HC(3) + HC(7)=HC(2)*HC(5) + DO 2 J = 2,7 + 2 HC(J)=EDGEC(J)*HC(J) + HC(8)=0.39894228*HC(1) + ELSEIF(RKAPPA .GE. 0.22) THEN + ITYPE=2 + NPT=150 + X=1+(RKAPPA-BKMXX3)*FBKX3 + Y=1+(SQRT(BETA2)-BKMXY3)*FBKY3 + XX=2*X + YY=2*Y + X2=XX*X-1 + X3=XX*X2-X + Y2=YY*Y-1 + Y3=YY*Y2-Y + XY=X*Y + P2=X2*Y + P3=X3*Y + Q2=Y2*X + Q3=Y3*X + PQ=X2*Y2 + AC(1)=W1(1)+W1(2)*X+W1(4)*X3+W1(5)*Y+W1(6)*Y2+W1(7)*Y3+ + 1 W1(8)*XY+W1(9)*P2+W1(10)*P3+W1(11)*Q2+W1(12)*Q3+W1(13)*PQ + AC(2)=W2(1)+W2(2)*X+W2(3)*X2+W2(4)*X3+W2(5)*Y+W2(6)*Y2+ + 1 W2(8)*XY+W2(9)*P2+W2(10)*P3+W2(11)*Q2 + AC(3)=W3(1)+W3(3)*X2+W3(4)*X3+W3(5)*Y+W3(6)*Y2+W3(7)*Y3+ + 1 W3(8)*XY+W3(9)*P2+W3(10)*P3+W3(11)*Q2+W3(12)*Q3+W3(13)*PQ + AC(4)=W4(1)+W4(2)*X+W4(3)*X2+W4(4)*X3+W4(5)*Y+W4(6)*Y2+W4(7)*Y3+ + 1 W4(8)*XY+W4(9)*P2+W4(10)*P3+W4(11)*Q2+W4(12)*Q3+W4(13)*PQ + AC(5)=W5(1)+W5(2)*X+W5(4)*X3+W5(5)*Y+W5(6)*Y2+W5(7)*Y3+ + 1 W5(8)*XY+W5(9)*P2+W5(10)*P3+W5(11)*Q2+W5(12)*Q3+W5(13)*PQ + AC(6)=W6(1)+W6(2)*X+W6(3)*X2+W6(4)*X3+W6(5)*Y+W6(6)*Y2+W6(7)*Y3+ + 1 W6(8)*XY+W6(9)*P2+W6(10)*P3+W6(11)*Q2+W6(12)*Q3+W6(13)*PQ + AC(8)=W8(1)+W8(2)*X+W8(3)*X2+W8(5)*Y+W8(6)*Y2+W8(7)*Y3+W8(8)*XY + AC(0)=-3.05 + ELSEIF(RKAPPA .GE. 0.12) THEN + ITYPE=3 + NPT=200 + X=1+(RKAPPA-BKMXX2)*FBKX2 + Y=1+(SQRT(BETA2)-BKMXY2)*FBKY2 + XX=2*X + YY=2*Y + X2=XX*X-1 + X3=XX*X2-X + Y2=YY*Y-1 + Y3=YY*Y2-Y + XY=X*Y + P2=X2*Y + P3=X3*Y + Q2=Y2*X + Q3=Y3*X + PQ=X2*Y2 + AC(1)=V1(1)+V1(2)*X+V1(3)*X2+V1(5)*Y+V1(6)*Y2+V1(7)*Y3+ + 1 V1(9)*P2+V1(10)*P3+V1(11)*Q2+V1(12)*Q3 + AC(2)=V2(1)+V2(2)*X+V2(3)*X2+V2(5)*Y+V2(6)*Y2+V2(7)*Y3+ + 1 V2(8)*XY+V2(9)*P2+V2(11)*Q2+V2(12)*Q3 + AC(3)=V3(1)+V3(2)*X+V3(3)*X2+V3(4)*X3+V3(5)*Y+V3(6)*Y2+V3(7)*Y3+ + 1 V3(8)*XY+V3(9)*P2+V3(10)*P3+V3(11)*Q2+V3(12)*Q3+V3(13)*PQ + AC(4)=V4(1)+V4(2)*X+V4(3)*X2+V4(4)*X3+V4(5)*Y+V4(6)*Y2+V4(7)*Y3+ + 1 V4(8)*XY+V4(9)*P2+V4(10)*P3+V4(11)*Q2+V4(12)*Q3 + AC(5)=V5(1)+V5(2)*X+V5(3)*X2+V5(4)*X3+V5(5)*Y+V5(6)*Y2+V5(7)*Y3+ + 1 V5(8)*XY+V5(11)*Q2+V5(12)*Q3+V5(13)*PQ + AC(6)=V6(1)+V6(2)*X+V6(3)*X2+V6(4)*X3+V6(5)*Y+V6(6)*Y2+V6(7)*Y3+ + 1 V6(8)*XY+V6(9)*P2+V6(10)*P3+V6(11)*Q2+V6(12)*Q3+V6(13)*PQ + AC(7)=V7(1)+V7(2)*X+V7(3)*X2+V7(5)*Y+V7(6)*Y2+V7(7)*Y3+ + 1 V7(8)*XY+V7(11)*Q2 + AC(8)=V8(1)+V8(2)*X+V8(3)*X2+V8(5)*Y+V8(6)*Y2+V8(7)*Y3+ + 1 V8(8)*XY+V8(11)*Q2 + AC(0)=-3.04 + ELSE + ITYPE=4 + IF(RKAPPA .GE. 0.02) ITYPE=3 + NPT=200 + X=1+(RKAPPA-BKMXX1)*FBKX1 + Y=1+(SQRT(BETA2)-BKMXY1)*FBKY1 + XX=2*X + YY=2*Y + X2=XX*X-1 + X3=XX*X2-X + Y2=YY*Y-1 + Y3=YY*Y2-Y + XY=X*Y + P2=X2*Y + P3=X3*Y + Q2=Y2*X + Q3=Y3*X + PQ=X2*Y2 + IF(ITYPE .EQ. 3) THEN + AC(1)=U1(1)+U1(2)*X+U1(3)*X2+U1(5)*Y+U1(6)*Y2+U1(7)*Y3+ + 1 U1(8)*XY+U1(10)*P3+U1(12)*Q3+U1(13)*PQ + AC(2)=U2(1)+U2(2)*X+U2(3)*X2+U2(5)*Y+U2(6)*Y2+U2(7)*Y3+ + 1 U2(8)*XY+U2(9)*P2+U2(10)*P3+U2(12)*Q3+U2(13)*PQ + AC(3)=U3(1)+U3(2)*X+U3(3)*X2+U3(5)*Y+U3(6)*Y2+U3(7)*Y3+ + 1 U3(8)*XY+U3(9)*P2+U3(10)*P3+U3(11)*Q2+U3(12)*Q3+U3(13)*PQ + AC(4)=U4(1)+U4(2)*X+U4(3)*X2+U4(4)*X3+U4(5)*Y+U4(6)*Y2+U4(7)*Y3+ + 1 U4(8)*XY+U4(9)*P2+U4(10)*P3+U4(11)*Q2+U4(12)*Q3 + AC(5)=U5(1)+U5(2)*X+U5(3)*X2+U5(4)*X3+U5(5)*Y+U5(6)*Y2+U5(7)*Y3+ + 1 U5(8)*XY+U5(10)*P3+U5(11)*Q2+U5(12)*Q3+U5(13)*PQ + AC(6)=U6(1)+U6(2)*X+U6(3)*X2+U6(4)*X3+U6(5)*Y+U6(7)*Y3+ + 1 U6(8)*XY+U6(9)*P2+U6(10)*P3+U6(12)*Q3+U6(13)*PQ + AC(7)=U7(1)+U7(2)*X+U7(3)*X2+U7(4)*X3+U7(5)*Y+U7(6)*Y2+U7(8)*XY + ENDIF + AC(8)=U8(1)+U8(2)*X+U8(3)*X2+U8(4)*X3+U8(5)*Y+U8(6)*Y2+U8(7)*Y3+ + 1 U8(8)*XY+U8(9)*P2+U8(10)*P3+U8(11)*Q2+U8(13)*PQ + AC(0)=-3.03 + ENDIF + AC(9)=(AC(8)-AC(0))/NPT + AC(10)=1/AC(9) + IF(ITYPE .EQ. 3) THEN + X=(AC(7)-AC(8))/(AC(7)*AC(8)) + Y=1/LOG(AC(8)/AC(7)) + P2=AC(7)**2 + AC(11)=P2*(AC(1)*EXP(-AC(2)*(AC(7)+AC(5)*P2)- + 1 AC(3)*EXP(-AC(4)*(AC(7)+AC(6)*P2)))-0.045*Y/AC(7))/ + 2 (1+X*Y*AC(7)) + AC(12)=(0.045+X*AC(11))*Y + ENDIF + IF(ITYPE .EQ. 4) AC(13)=0.995/DISLAN(AC(8)) + + IF(MODE .EQ. 0) RETURN + X=AC(0) + WCM(0)=0 + FL=VAVDEN(X) + DO 11 K = 1,NPT + X=X+AC(9) + FU=VAVDEN(X) + WCM(K)=WCM(K-1)+FL+FU + 11 FL=FU + X=0.5*AC(9) + DO 12 K = 1,NPT + 12 WCM(K)=X*WCM(K) + RETURN + END + + Added: trunk/thirdparty/cernlib/Makefile =================================================================== --- trunk/thirdparty/cernlib/Makefile (rev 0) +++ trunk/thirdparty/cernlib/Makefile 2015-06-17 08:24:09 UTC (rev 1364) @@ -0,0 +1,702 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# thirdparty/cernlib/Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994-2013 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. + + + + + +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/libamtrack +pkgincludedir = $(includedir)/libamtrack +pkglibdir = $(libdir)/libamtrack +pkglibexecdir = $(libexecdir)/libamtrack +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 = x86_64-unknown-linux-gnu +host_triplet = x86_64-unknown-linux-gnu +subdir = thirdparty/cernlib +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp $(include_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(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)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/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__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libcernlibfuns_la_LIBADD = +am_libcernlibfuns_la_OBJECTS = libcernlibfuns_la-AT_CernlibFuns.lo \ + CERNLIBFUNS.lo +libcernlibfuns_la_OBJECTS = $(am_libcernlibfuns_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +am__v_lt_1 = +libcernlibfuns_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=F77 \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(F77LD) \ + $(AM_FFLAGS) $(FFLAGS) $(libcernlibfuns_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_P = $(am__v_P_$(V)) +am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I. -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) +LTF77COMPILE = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) +AM_V_F77 = $(am__v_F77_$(V)) +am__v_F77_ = $(am__v_F77_$(AM_DEFAULT_VERBOSITY)) +am__v_F77_0 = @echo " F77 " $@; +am__v_F77_1 = +F77LD = $(F77) +F77LINK = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_F77LD = $(am__v_F77LD_$(V)) +am__v_F77LD_ = $(am__v_F77LD_$(AM_DEFAULT_VERBOSITY)) +am__v_F77LD_0 = @echo " F77LD " $@; +am__v_F77LD_1 = +SOURCES = $(libcernlibfuns_la_SOURCES) +DIST_SOURCES = $(libcernlibfuns_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(include_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing aclocal-1.14 +AMTAR = $${TAR-tar} +AM_DEFAULT_VERBOSITY = 1 +AR = ar +AUTOCONF = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing autoconf +AUTOHEADER = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing autoheader +AUTOMAKE = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing automake-1.14 +AWK = mawk +CC = gcc +CCDEPMODE = depmode=gcc3 +CFLAGS = -g -O2 +CPP = gcc -E +CPPFLAGS = +CYGPATH_W = echo +DEFS = -DHAVE_CONFIG_H +DEPDIR = .deps +DLLTOOL = false +DSYMUTIL = +DUMPBIN = +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = /bin/grep -E +EXEEXT = +F77 = gfortran +FFLAGS = -g -O2 +FGREP = /bin/grep -F +GREP = /bin/grep +GSL_CFLAGS = -I/usr/include +GSL_CONFIG = /usr/bin/gsl-config +GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +LD = /usr/bin/ld -m elf_x86_64 +LDFLAGS = +LIBOBJS = +LIBS = -lm +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIPO = +LN_S = ln -s +LTLIBOBJS = +MAKEINFO = ${SHELL} /home/greilich/workspaces/libamtrack/regular/missing makeinfo +MANIFEST_TOOL = : +MKDIR_P = /bin/mkdir -p +NM = /usr/bin/nm -B +NMEDIT = +OBJDUMP = objdump +OBJEXT = o +OPENMP_CFLAGS = +OPENMP_LDFLAGS = +OTOOL = +OTOOL64 = +PACKAGE = libamtrack +PACKAGE_BUGREPORT = s.g...@dk... +PACKAGE_NAME = libamtrack +PACKAGE_STRING = libamtrack 0.6.2 +PACKAGE_TARNAME = libamtrack +PACKAGE_URL = +PACKAGE_VERSION = 0.6.2 +PATH_SEPARATOR = : +POW_LIB = +RANLIB = ranlib +SED = /bin/sed +SET_MAKE = +SHELL = /bin/bash +STRIP = strip +VERSION = 0.6.2 +abs_builddir = /home/greilich/workspaces/libamtrack/regular/thirdparty/cernlib +abs_srcdir = /home/greilich/workspaces/libamtrack/regular/thirdparty/cernlib +abs_top_builddir = /home/greilich/workspaces/libamtrack/regular +abs_top_srcdir = /home/greilich/workspaces/libamtrack/regular +ac_ct_AR = ar +ac_ct_CC = gcc +ac_ct_DUMPBIN = +ac_ct_F77 = gfortran +am__include = include +am__leading_dot = . +am__quote = +am__tar = $${TAR-tar} chof - "$$tardir" +am__untar = $${TAR-tar} xf - +bindir = ${exec_prefix}/bin +build = x86_64-unknown-linux-gnu +build_alias = +build_cpu = x86_64 +build_os = linux-gnu +build_vendor = unknown +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = x86_64-unknown-linux-gnu +host_alias = +host_cpu = x86_64 +host_os = linux-gnu +host_vendor = unknown +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /home/greilich/workspaces/libamtrack/regular/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = $(MKDIR_P) +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +svnversioncommand = /usr/bin/svnversion +sysconfdir = ${prefix}/etc +target_alias = +top_build_prefix = ../../ +top_builddir = ../.. +top_srcdir = ../.. +lib_LTLIBRARIES = libcernlibfuns.la +libcernlibfuns_la_SOURCES = AT_CernlibFuns.c CERNLIBFUNS.f +include_HEADERS = AT_CernlibFuns.h +libcernlibfuns_la_CFLAGS = -I. -Wall -pedantic -std=c99 -fPIC +libcernlibfuns_la_LDFLAGS = -version-info 0:0:0 +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .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 thirdparty/cernlib/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu thirdparty/cernlib/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) + @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 " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + 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)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libcernlibfuns.la: $(libcernlibfuns_la_OBJECTS) $(libcernlibfuns_la_DEPENDENCIES) $(EXTRA_libcernlibfuns_la_DEPENDENCIES) + $(AM_V_F77LD)$(libcernlibfuns_la_LINK) -rpath $(libdir) $(libcernlibfuns_la_OBJECTS) $(libcernlibfuns_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +include ./$(DEPDIR)/libcernlibfuns_la-AT_CernlibFuns.Plo + +.c.o: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ + $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ $< + +.c.obj: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ + $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ + $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Plo +# $(AM_V_CC)source='$<' object='$@' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $< + +libcernlibfuns_la-AT_CernlibFuns.lo: AT_CernlibFuns.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCL... [truncated message content] |
From: <sgr...@us...> - 2015-06-13 13:09:41
|
Revision: 1363 http://sourceforge.net/p/libamtrack/code/1363 Author: sgreilich Date: 2015-06-13 13:09:38 +0000 (Sat, 13 Jun 2015) Log Message: ----------- Add Gauss energy loss (straggling) function to have complete set Modified Paths: -------------- trunk/distributions/R/NAMESPACE trunk/include/AT_EnergyLoss.h trunk/src/AT_EnergyLoss.c Modified: trunk/distributions/R/NAMESPACE =================================================================== --- trunk/distributions/R/NAMESPACE 2015-06-13 11:40:49 UTC (rev 1362) +++ trunk/distributions/R/NAMESPACE 2015-06-13 13:09:38 UTC (rev 1363) @@ -85,23 +85,18 @@ #AT_Moliere_function_f2 #AT_scattering_angle_distribution #AT_Highland_angle +AT_Bethe_mean_energy_loss_MeV [HAVE_CERNLIB] +AT_kappa_multi [HAVE_CERNLIB] +AT_Landau_PDF [HAVE_CERNLIB] +AT_lambda_landau_from_energy_loss_multi [HAVE_CERNLIB] +AT_energy_loss_from_lambda_landau_multi [HAVE_CERNLIB] +AT_lambda_max_multi [HAVE_CERNLIB] +AT_lambda_mean_multi [HAVE_CERNLIB] AT_Vavilov_PDF [HAVE_CERNLIB] -AT_Landau_PDF [HAVE_CERNLIB] -#AT_Bethe_Stopping_Number -#AT_Bethe_energy_loss_MeV_cm2_g -#AT_el_energy_loss_leading_term_MeV_cm2_g -AT_Bethe_mean_energy_loss_MeV -AT_kappa_multi -AT_lambda_max_multi -AT_lambda_mean_multi -AT_Vavilov_lambda_from_energy_loss [HAVE_CERNLIB] -AT_Vavilov_energy_loss_from_lambda [HAVE_CERNLIB] -AT_Vavilov_energy_loss_distribution [HAVE_CERNLIB] -AT_energy_loss_distribution [HAVE_CERNLIB] -AT_energy_loss_mode [HAVE_CERNLIB] -AT_energy_loss_FWHM [HAVE_CERNLIB] -AT_lambda_from_energy_loss [HAVE_CERNLIB] -AT_energy_loss_from_lambda_multi [HAVE_CERNLIB] +AT_lambda_vavilov_from_energy_loss_multi [HAVE_CERNLIB] +AT_energy_loss_from_lambda_vavilov_multi [HAVE_CERNLIB] +AT_Gauss_PDF [HAVE_CERNLIB] +AT_energy_loss_from_lambda_gauss_multi [HAVE_CERNLIB] AT_translate_dose_into_DSB_distribution noR: AT_SPC_read_data_from_filename_fast noR: AT_SPC_read_header_from_filename_fast Modified: trunk/include/AT_EnergyLoss.h =================================================================== --- trunk/include/AT_EnergyLoss.h 2015-06-13 11:40:49 UTC (rev 1362) +++ trunk/include/AT_EnergyLoss.h 2015-06-13 13:09:38 UTC (rev 1363) @@ -32,6 +32,8 @@ #include <stdio.h> #include <assert.h> +#include <gsl/gsl_randist.h> + #include "AT_Error.h" #include "AT_DataMaterial.h" #include "AT_PhysicsRoutines.h" @@ -132,11 +134,11 @@ /** * Compute Landau distribution using CERNLIB (G115) * - * @param[in] n array size - * @param[in] lambda lambda (array of size n) - * @param[out] density resulting density (array of size n) + * @param[in] n array size + * @param[in] lambda_landau Landau lambda (array of size n) + * @param[out] density resulting density (array of size n) */ -void AT_Landau_PDF( const long n, const double lambda[], double density[]); +void AT_Landau_PDF( const long n, const double lambda_landau[], double density[]); /** * Computes the lambda parameter for the @@ -220,10 +222,26 @@ double AT_lambda_max_single( double lambda_mean ); +double AT_lambda_Landau_Mode(); +double AT_lambda_Landau_Mean(const double kappa, const double beta ); +double AT_lambda_Landau_FWHM_left(); +double AT_lambda_Landau_FWHM_right(); +double AT_lambda_Landau_FWHM(); + +double AT_energy_loss_keV_Landau_FWHM(const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um); +double AT_energy_loss_keV_Landau_Mode(const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um); + + /** - * Computes the energy loss from the lambda parameter of the - * Landau distribution acc. to CERN W5013 + * Computes the energy loss from the lambda parameter + * of the Landau distribution acc. to CERN W5013 * * No effective projectile charge is considered! * @param[in] n number of energy loss data @@ -244,20 +262,36 @@ const double slab_thickness_um[], double energy_loss_keV[]); - -double AT_lambda_Landau_Mode(); -double AT_lambda_Landau_Mean(const double kappa, const double beta ); -double AT_lambda_Landau_FWHM_left(); -double AT_lambda_Landau_FWHM_right(); -double AT_lambda_Landau_FWHM(); -double AT_energy_loss_keV_Landau_FWHM(const double E_MeV_u, +double AT_energy_loss_from_lambda_landau_single( const double lambda_landau, + const double E_MeV_u, const long particle_no, const long material_no, const double slab_thickness_um); -double AT_energy_loss_keV_Landau_Mode(const double E_MeV_u, + +/** + * Computes the energy loss + * Landau distribution acc. to CERN W5013 + * + * No effective projectile charge is considered! + * @param[in] n number of energy loss data + * @param[in] energy_loss_keV energy loss (array of size n) + * @param[in] E_MeV_u energy of particle per nucleon + * @param[in] particle_no particle index + * @see AT_DataParticle.h for definition + * @param[in] material_no material index + * @see AT_DataMaterial.h for definition + * @param[in] slab_thickness_um slab thickness in um + * @param[out] fDdD (array of size n) + */ +void AT_Landau_energy_loss_distribution( const long n, + const double energy_loss_keV[], + const double E_MeV_u, const long particle_no, const long material_no, - const double slab_thickness_um); + const double slab_thickness_um, + double fDdD[]); + + ///////////////////////////////////////////////////////////////////////////// // ENERGY LOSS STRAGGLING: VAVILOV THEORY ///////////////////////////////////////////////////////////////////////////// @@ -265,13 +299,13 @@ /** * Compute Vavilov distribution using CERNLIB (G116) * - * @param[in] n array size - * @param[in] lambda_V lambda (array of size n) - * @param[in] kappa straggling parameter - * @param[in] beta relativistic speed, between 0 and 1 - * @param[out] density resulting density (array of size n) + * @param[in] n array size + * @param[in] lambda_vavilov Vavilov lambda (array of size n) + * @param[in] kappa straggling parameter + * @param[in] beta relativistic speed, between 0 and 1 + * @param[out] density resulting density (array of size n) */ -void AT_Vavilov_PDF( const long n, const double lambda_V[], const double kappa, const double beta, +void AT_Vavilov_PDF( const long n, const double lambda_vavilov[], const double kappa, const double beta, double density[]); /** @@ -308,8 +342,42 @@ const double slab_thickness_um); +double AT_lambda_Vavilov_Mode(const double kappa, const double beta ); +double AT_lambda_Vavilov_Mean(const double kappa, const double beta ); +double AT_lambda_Vavilov_Variance(const double kappa, const double beta ); +double AT_lambda_Vavilov_Skewness(const double kappa, const double beta ); +double AT_lambda_Vavilov_FWHM_left(const double kappa, const double beta ); +double AT_lambda_Vavilov_FWHM_right(const double kappa, const double beta ); +double AT_lambda_Vavilov_FWHM(const double kappa, const double beta ); +double AT_energy_loss_keV_Vavilov_FWHM(const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um); /** + * Computes the energy loss from the lambda parameter of the + * Vavilov distribution acc. to CERN W5013 + * + * No effective projectile charge is considered! + * @param[in] n number of energy loss data + * @param[in] lambda_vavilov Vavilov lambda (array of size n) + * @param[in] E_MeV_u energy of particle per nucleon (array of size n) + * @param[in] particle_no particle index (array of size n) + * @see AT_DataParticle.h for definition + * @param[in] material_no material index + * @see AT_DataMaterial.h for definition + * @param[in] slab_thickness_um slab thickness in um (array of size n) + * @param[out] energy_loss_keV (array of size n) + */ +void AT_energy_loss_from_lambda_vavilov_multi( const long n, + const double lambda_vavilov[], + const double E_MeV_u[], + const long particle_no[], + const long material_no, + const double slab_thickness_um[], + double energy_loss_keV[]); + +/** * Computes the energy loss * Vavilov distribution acc. to CERN W5013 * @@ -333,23 +401,47 @@ double fDdD[]); -double AT_lambda_Vavilov_Mode(const double kappa, const double beta ); -double AT_lambda_Vavilov_Mean(const double kappa, const double beta ); -double AT_lambda_Vavilov_Variance(const double kappa, const double beta ); -double AT_lambda_Vavilov_Skewness(const double kappa, const double beta ); -double AT_lambda_Vavilov_FWHM_left(const double kappa, const double beta ); -double AT_lambda_Vavilov_FWHM_right(const double kappa, const double beta ); -double AT_lambda_Vavilov_FWHM(const double kappa, const double beta ); -double AT_energy_loss_keV_Vavilov_FWHM(const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um); ///////////////////////////////////////////////////////////////////////////// // ENERGY LOSS STRAGGLING: GAUSS THEORY ///////////////////////////////////////////////////////////////////////////// +/** + * Compute Gauss distribution (for compatibility) + * + * @param[in] n array size + * @param[in] lambda_gauss Gauss lambda (array of size n) + * @param[out] density resulting density (array of size n) + */ +void AT_Gauss_PDF( const long n, + const double lambda_gauss[], + double density[]); + +/** + * Computes the energy loss from the lambda parameter of the + * Gauss distribution for compatibility with CERN W5013 + * + * No effective projectile charge is considered! + * @param[in] n number of energy loss data + * @param[in] lambda_gauss Gauss lambda (array of size n) + * @param[in] E_MeV_u energy of particle per nucleon (array of size n) + * @param[in] particle_no particle index (array of size n) + * @see AT_DataParticle.h for definition + * @param[in] material_no material index + * @see AT_DataMaterial.h for definition + * @param[in] slab_thickness_um slab thickness in um (array of size n) + * @param[out] energy_loss_keV (array of size n) + */ +void AT_energy_loss_from_lambda_gauss_multi( const long n, + const double lambda_gauss[], + const double E_MeV_u[], + const long particle_no[], + const long material_no, + const double slab_thickness_um[], + double energy_loss_keV[]); + + double AT_Gauss_Mode(); double AT_Gauss_Mean(); double AT_Gauss_FWHM(); Modified: trunk/src/AT_EnergyLoss.c =================================================================== --- trunk/src/AT_EnergyLoss.c 2015-06-13 11:40:49 UTC (rev 1362) +++ trunk/src/AT_EnergyLoss.c 2015-06-13 13:09:38 UTC (rev 1363) @@ -29,22 +29,8 @@ #include "cfortran.h" #include "gen.h" -void AT_Vavilov_PDF(const long n, const double lambda_V[], const double kappa, const double beta, - double density[]){ - VAVSET(kappa, beta, 1); - for(int i = 0; i < n; i++){ - density[i] = VAVDEN(lambda_V[i]); - } -} -void AT_Landau_PDF(const long n, const double lambda[], double density[]){ - for(int i = 0; i < n; i++){ - density[i] = DENLAN(lambda[i]); - } -} - - double AT_el_energy_loss_leading_term_MeV_cm2_g( const double E_MeV_u, const long particle_no, const long material_no, @@ -84,6 +70,21 @@ } +double AT_kappa_single( const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um) +{ + // Factor 1/2 results from the difference between ICRU49, where + // dE/dx = K * ... * (0.5 ln() - beta² - delta/2 - ...) and + // Seltzer & Berger where + // dE/dx = 1/2 * K * ... * (ln() - 2*beta² - delta - ...) + return( 0.5 * AT_el_energy_loss_leading_term_MeV_cm2_g(E_MeV_u, particle_no, material_no, false) * + AT_density_g_cm3_from_material_no(material_no) * + (slab_thickness_um / 1e4) / + AT_max_E_transfer_MeV_single(E_MeV_u)); +} + void AT_kappa_multi( const long n, const double E_MeV_u[], const long particle_no[], @@ -98,6 +99,12 @@ } +void AT_Landau_PDF(const long n, const double lambda_landau[], double density[]){ + for(int i = 0; i < n; i++){ + density[i] = DENLAN(lambda_landau[i]); + } +} + void AT_lambda_mean_multi( const long n, const double E_MeV_u[], const long particle_no[], @@ -142,22 +149,7 @@ } -double AT_kappa_single( const double E_MeV_u, - const long particle_no, - const long material_no, - const double slab_thickness_um) -{ - // Factor 1/2 results from the difference between ICRU49, where - // dE/dx = K * ... * (0.5 ln() - beta² - delta/2 - ...) and - // Seltzer & Berger where - // dE/dx = 1/2 * K * ... * (ln() - 2*beta² - delta - ...) - return( 0.5 * AT_el_energy_loss_leading_term_MeV_cm2_g(E_MeV_u, particle_no, material_no, false) * - AT_density_g_cm3_from_material_no(material_no) * - (slab_thickness_um / 1e4) / - AT_max_E_transfer_MeV_single(E_MeV_u)); -} - double AT_lambda_landau_from_energy_loss_single( const double energy_loss_keV, const double E_MeV_u, const long particle_no, @@ -191,7 +183,7 @@ } -double AT_lambda_vavilov_from_energy_loss_single( const double energy_loss_keV, +double AT_energy_loss_from_lambda_landau_single( const double lambda_landau, const double E_MeV_u, const long particle_no, const long material_no, @@ -205,23 +197,62 @@ material_no, slab_thickness_um); - return( kappa*((energy_loss_keV / 1000.0 - mean_loss_MeV) / xi - 0.42278433509 - beta*beta) ); + return(1000.0 * (xi * (lambda_landau + 0.42278433509 + beta*beta + log(kappa)) + mean_loss_MeV)); } -void AT_lambda_vavilov_from_energy_loss_multi( const long n, - const double energy_loss_keV[], +void AT_energy_loss_from_lambda_landau_multi( const long n, + const double lambda_landau[], + const double E_MeV_u[], + const long particle_no[], + const long material_no, + const double slab_thickness_um[], + double energy_loss_keV[]){ + + + for(long i = 0; i < n; i++){ + energy_loss_keV[i] = AT_energy_loss_from_lambda_landau_single( lambda_landau[i], + E_MeV_u[i], + particle_no[i], + material_no, + slab_thickness_um[i]); + } + + return; +} + + +double AT_energy_loss_from_lambda_vavilov_single( const double lambda_vavilov, const double E_MeV_u, const long particle_no, const long material_no, - const double slab_thickness_um, - double lambda_vavilov[]){ + const double slab_thickness_um){ + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); + double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); + double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, + particle_no, + material_no, + slab_thickness_um); + + return(1000.0 * (xi * (lambda_vavilov / kappa + 0.42278433509 + beta*beta) + mean_loss_MeV)); +} + +void AT_energy_loss_from_lambda_vavilov_multi( const long n, + const double lambda_vavilov[], + const double E_MeV_u[], + const long particle_no[], + const long material_no, + const double slab_thickness_um[], + double energy_loss_keV[]){ + + for(long i = 0; i < n; i++){ - lambda_vavilov[i] = AT_lambda_vavilov_from_energy_loss_single( energy_loss_keV[i], - E_MeV_u, - particle_no, + energy_loss_keV[i] = AT_energy_loss_from_lambda_vavilov_single( lambda_vavilov[i], + E_MeV_u[i], + particle_no[i], material_no, - slab_thickness_um); + slab_thickness_um[i]); } return; @@ -235,12 +266,12 @@ const long material_no, const double slab_thickness_um, double fDdD[]){ - +/* double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); double* lambda = (double*)calloc(n, sizeof(double)); - AT_lambda_from_energy_loss( n, + AT_lambda_from_energy_loss_multi( n, energy_loss_keV, E_MeV_u, particle_no, @@ -255,10 +286,58 @@ for(int i = 0; i < n; i++){ fDdD[i] /= xi; } +*/ + return; +} + +void AT_Vavilov_PDF(const long n, const double lambda_vavilov[], const double kappa, const double beta, + double density[]){ + VAVSET(kappa, beta, 1); + + for(int i = 0; i < n; i++){ + density[i] = VAVDEN(lambda_vavilov[i]); + } +} + + +double AT_lambda_vavilov_from_energy_loss_single( const double energy_loss_keV, + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um){ + + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); + double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); + double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, + particle_no, + material_no, + slab_thickness_um); + + return( kappa*((energy_loss_keV / 1000.0 - mean_loss_MeV) / xi - 0.42278433509 - beta*beta) ); +} + +void AT_lambda_vavilov_from_energy_loss_multi( const long n, + const double energy_loss_keV[], + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um, + double lambda_vavilov[]){ + + for(long i = 0; i < n; i++){ + lambda_vavilov[i] = AT_lambda_vavilov_from_energy_loss_single( energy_loss_keV[i], + E_MeV_u, + particle_no, + material_no, + slab_thickness_um); + } + return; } + void AT_Vavilov_energy_loss_distribution( const long n, const double energy_loss_keV[], const double E_MeV_u, @@ -266,7 +345,7 @@ const long material_no, const double slab_thickness_um, double fDdD[]){ - +/* double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); double beta = AT_beta_from_E_single(E_MeV_u); double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); @@ -289,7 +368,7 @@ for(int i = 0; i < n; i++){ fDdD[i] /= xi; } - +*/ return; } @@ -414,7 +493,7 @@ const long particle_no, const long material_no, const double slab_thickness_um){ - +/* double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); double beta = AT_beta_from_E_single(E_MeV_u); @@ -428,13 +507,15 @@ particle_no, material_no, slab_thickness_um); +*/ + return 0.0; } double AT_energy_loss_keV_Vavilov_Mode( const double E_MeV_u, const long particle_no, const long material_no, const double slab_thickness_um){ - +/* double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); double beta = AT_beta_from_E_single(E_MeV_u); @@ -443,6 +524,8 @@ particle_no, material_no, slab_thickness_um); +*/ + return 0.0; } double AT_lambda_Vavilov_Mean( const double kappa, const double beta) { @@ -469,11 +552,14 @@ const long particle_no, const long material_no, const double slab_thickness_um){ +/* return AT_energy_loss_from_lambda_single(AT_lambda_Landau_Mode(), E_MeV_u, particle_no, material_no, slab_thickness_um); +*/ + return 0.0; } double AT_lambda_Landau_FWHM_left(){ @@ -492,17 +578,63 @@ const long particle_no, const long material_no, const double slab_thickness_um){ - double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); +/* double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); return(4.02 * xi * 1000); +*/ + return 0.0; } double AT_lambda_Landau_Mean( const double kappa, const double beta) { return -0.42278433509 - log(kappa) - beta*beta; } +////////////////////////////// +// GAUSS +////////////////////////////// +void AT_Gauss_PDF(const long n, const double lambda_gauss[], double density[]){ + for(int i = 0; i < n; i++){ + density[i] = gsl_ran_gaussian_pdf(lambda_gauss[i], 1.0); + } +} +double AT_energy_loss_from_lambda_gauss_single( const double lambda_gauss, + const double E_MeV_u, + const long particle_no, + const long material_no, + const double slab_thickness_um){ + double kappa = AT_kappa_single(E_MeV_u, particle_no, material_no, slab_thickness_um); + double beta = AT_beta_from_E_single(E_MeV_u); + double xi = kappa * AT_max_E_transfer_MeV_single(E_MeV_u); + double mean_loss_MeV = AT_Bethe_mean_energy_loss_MeV( E_MeV_u, + particle_no, + material_no, + slab_thickness_um); + + return(1000.0 * (lambda_gauss*sqrt(xi*xi/kappa*(1-beta*beta/2)) + mean_loss_MeV)); +} + +void AT_energy_loss_from_lambda_gauss_multi( const long n, + const double lambda_gauss[], + const double E_MeV_u[], + const long particle_no[], + const long material_no, + const double slab_thickness_um[], + double energy_loss_keV[]){ + + + for(long i = 0; i < n; i++){ + energy_loss_keV[i] = AT_energy_loss_from_lambda_gauss_single( lambda_gauss[i], + E_MeV_u[i], + particle_no[i], + material_no, + slab_thickness_um[i]); + } + + return; +} + double AT_Gauss_Mode(){ return 0; } @@ -515,6 +647,10 @@ return 0; } + +////////////////////////////// +// GENERAL +////////////////////////////// double AT_energy_loss_mode( const double E_MeV_u, const long particle_no, const long material_no, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |