Version 3.1.0 Tom Schoonjans - Database of commonly used radionuclides for X-ray sources added (new API: GetRadioNuclideDataByName, GetRadioNuclideDataByIndex, GetRadioNuclideDataList and FreeRadioNuclideData) - numpy Python bindings added, generated with Cython. Performance basically the same as the core C library. (suggested by Matt Newville) - docstring support added to Python bindings (suggested by Matt Newville) - Windows SDKs now have support for Python 3.4. - Windows 64-bit SDK now comes with IDL bindings - Confirmed support for LabView (thanks to Dariush Hampai!) - Universal intel 32/64 bit Framework built for Mac OS X - Perl support for Debian/Ubuntu - Several bugfixes: thanks to those that reported them! Version 3.0.0 Tom Schoonjans - Moved all floats to doubles - Added support for Python3 (CLI) - NIST compound data included (new API: GetCompoundDataNISTByIndex, GetCompoundDataNISTByName, GetCompoundDataNISTList and FreeCompoundDataNIST) - All _CP functions now also support the NIST compound names. - Element density function added, using values from NIST (new API: ElementDensity) - Bindings for new languages: Ruby and PHP - Fluorescence yields and CK transition probabilities updated according to J.L. Campbell's Atomic Data and Nuclear Data Tables 95 (2009) 115–124 - Auger non-radiative rates extended. Consists now of almost 1000 macros. (new API: AugerYield) - Cascade effects improvements - Mass-energy absorption cross sections added from NIST. (new API: CS_Energy and CS_Energy_CP) (requested by Piernicola Oliva) - CompoundParser prototype changed!!! (new API: FreeCompoundData) - strict ANSI-C compliance for core library, thanks to Oleg Shirokobrod for providing the necessary patches! - Complex datatype changed to xrlComplex!!! - Refractive_Index_* functions now use double instead of floats (thanks to Manuel Sanchez del Rio for pointing out the problem). (new API: Refractive_Index, returns xrlComplex) - Fortran: changes to CompoundParser and Crystal_GetCrystal. All functions now use Fortran strings instead of C-style strings - CompoundParser now accepts real numbers as coefficients (requested by Olivier Tache) - Greatly enhanced documentation at http://github.com/tschoonj/xraylib.wiki - Windows 64 bit SDK - Many bugfixes and under-the-hood improvements Version 2.16.0 Tom Schoonjans -Crystal diffraction functions added (David Sagan): -Bragg angle -Q scattering amplitude -Atomic factors -Crystal F_H structure factor -Unit cell volume -d spacing -Perl and Python bindings updated to provide support for non-trivial arguments and return values -Lua bindings added -Codebase restructured: separate directory for each binding Version 2.15.0 Tom Schoonjans -Auger probabilities (AugerRate) and its macros -Revised interpolation scheme of the Kissel PE cross-sections -M-shell Coster-Kronig transition probabilities -XRF CS with cascade effects!! -Atomic level widths Version 2.14.1 Tom Schoonjans Bugfixes. See the following links for more information: http://github.com/tschoonj/xraylib/issues/closed/#issue/2 http://github.com/tschoonj/xraylib/issues/closed/#issue/3 http://github.com/tschoonj/xraylib/issues/closed/#issue/4 http://github.com/tschoonj/xraylib/issues/closed/#issue/5 http://github.com/tschoonj/xraylib/issues/closed/#issue/6 Version 2.14.0 Tom Schoonjans -Added Biggs Compton profiles (both total and partial) -Fixed Siegbahn macros for LineEnergy, CS_FluorLine and RadRate -Added Siegbahn macros for single lines -Added IDL and Python bindings for Windows -Created xraylib.exe for Windows -Added support for .NET on Windows -Several bugfixes and minor improvements API additions: ComptonProfile, ComptonProfile_Partial and ElectronConfig More info can be found in the commit messages Version 2.13.1 Tom Schoonjans -Corrected radrate database: 2.13.0 was using scofield for K and campbell for L instead of Krause data -"make clean" now works properly -Changed the way the RadRate of Kbeta lines are being calculated, now RadRate(KB_LINE) = 1.0 - RadRate(KA_LINE). Anyway, the way the RadRates are being calculated should be reviewed in the version. Siegbahn macros should be added for more lines. -Added NSIS script to produce a Windows installer: this installs the required files for development on Windows, including headers, dll, static libs with exported functions and some documentation. The Windows SDK has been verified to work with Microsoft Visual C++, Borland 5.5 and Intel C/C++ 11.1 Also: the Windows dll works with LabView... Version 2.13.0 Tom Schoonjans -Expanded the radrate database (150 linetypes available now, including M lines) -More line energies: the new database was calculated using the edge energy database and contains every theoretical possible transition. 381 linetypes are available -Kissel database fixes: since the Kissel edge energies do not correspond to the ones found in the edge energy database this could lead to unpredictable behaviour near the edges. This has been fixed by using the Kissel calculated edge energies. -Compound parser: we have added a parser for compounds which will determine information such as number of different elements, number of atoms per element and weight fractions. This parser has been coupled with several cross section functions. -Refractive indices: we added two functions that calculate the real and imaginary parts of the refractive index of a given compound. -Numerous bugfixes: an important one would be the restoration of IDL support on Mac OS X Snow Leopard -Creation of IDL bindings rpm -Added Java bindings (requires Sun JAVA compiler): works on Linux and Mac Os X -Verified support on FreeBSD 8.0 64-bit Version 2.12.1 Tom Schoonjans Fixed bug in installation scripts that caused the perl and IDL bindings compilation phase to fail under certain circumstances Version 2.12 Tom Schoonjans Build system has changed completely: the new system is based on autoconf, automake and libtool. Tests were conducted on different systems using different compilers. An overview: C-library: linux (Fedora 10 (gcc 4.3.2) and 11 (gcc 4.4.0), both 64-bit), Mac OS X (Leopard (gcc 4.0.1 and gcc 4.4.0) Intel 32-bit), Solaris 10 (Sun C 5.10 32-bit) Fortran bindings: linux (Fedora 10 (gfortran 4.3.2) and 11 (gfortran 4.4.0), both 64-bit), Mac OS X (Leopard (gfortran 4.4.0, g95 and ifort) Intel 32-bit), Solaris 10 (Sun Fortran 95 8.4 32-bit) Perl bindings: linux (Fedora 10 (perl 5.10.0) and 11 (perl 5.10.0), both 64-bit), Mac OS X (Leopard (perl 5.8.9) Intel 32-bit), Solaris 10 (perl 5.8.4 32-bit) Python bindings and xraylib executable: linux (Fedora 10 (python 2.5) and 11 (python 2.6), both 64-bit), Mac OS X (Leopard (python 2.5) Intel 32-bit) IDL bindings: linux (Fedora 10 (idl 7.1) 64-bit), Mac OS X (Leopard idl 7.0 Intel 32-bit) A spec file and pkg-config files were added as well. RPM packages were created for Fedora 10 and 11 x86_64 systems. Version 2.11 Tom Schoonjans Complete rewrite of the IDL bindings, using the DLM approach. Definition of the COMMON block XRAYLIB containing all the xraylib macros. This has the advantage that these convenient variables can now be used inside functions and procedures. An example is provided in xrlexample5.pro. In order for IDL to find the XRayLib DLM at runtime it is necessary that the user makes sure that the IDL_DLM_PATH environment variable points to the idl subdirectory of the xraylib installation folder! Version 2.10 Tom Schoonjans Minor changes: adjusted the placing of xraylib.mod into lib for the gfortran compiler Definition of two macros in xraylib.h: XRL_VERSION_MAJOR and XRL_VERSION_MINOR Recalculation (smoothing) of second derivatives of kissel cross section data. This was done to avoid erratic behaviour of interpolation near absorption edges. Support for IDL bindings on Mac (Tested on an Intel Mac running Mac OS X 10.4 and IDL 7.0) Minor changes to install.sh: Python bindings disabled when running on Mac etc... Version 2.9 Tom Schoonjans Introduction of partial photoelectric cross sections (data of L. Kissel) -> kissel_pe.dat New functions were added based on these partial PE CS: // Kissel Photoelectric cross sections float CS_Photo_Total(int Z, float E); float CSb_Photo_Total(int Z, float E); float CS_Photo_Partial(int Z, int shell, float E); float CSb_Photo_Partial(int Z, int shell, float E); // XRF cross sections using Kissel partial photoelectric cross sections float CS_FluorLine_Kissel(int Z, int line, float E); float CSb_FluorLine_Kissel(int Z, int line, float E); // Total cross sections (photoionization+Rayleigh+Compton) using Kissel Total // photoelectric cross sections float CS_Total_Kissel(int Z, float E); float CSb_Total_Kissel(int Z, float E); The user is now given the opportunity to choose at installation time between hardcoding the data or calling the data at run time with XRayInit. TODO: rewrite the IDL bindings completely in favor of the DLM approach, recommended by IDL Version 2.8 Tom Schoonjans All the physical data is now hardcoded during the compilation phase, making the initialization at run time redundant. (Thanks to Teemu Ikonen for contributing the code) Added bindings for Perl and Fortran 2003. For use of the Fortran 2003, a recent compiler like Intel Fortran 10.0, G95 or GFortran 4.3.0 is needed. The installation scripts are now gone and have been replaced by a Makefile Partial support for Mac OS X -> C, C++ dynamic libraries compile and run, as well as the Fortran and Perl bindings. The Python bindings do not work. The IDL bindings have not been tested yet. Examples for C shared libraries, Perl and Fortran bindings were added. SWIG is now a requirement for using the Perl and Python bindings. Version 2.7 - Added anomalous scattering factor Fii (fii.c, fii.dat) Version 2.6 Fixed installation of dynamic library for c++ (libxrl++.so) Version 2.5 Major updates from previous version (2.4): - Added anomalous scattering factor Fi (fi.c, fi.dat) Fixed bugs and updates from previous version (2.4): - Fixed bugs on installation scripts - Fixed problems with swig and python new releases Version 2.4 Fixed bugs and updates from previous version (2.3): - Fixed bugs on installation scripts Version 2.3 Major updates from previous version (2.2): - All partial lines added to CS_FluorLine in cs_line.c Fixed bugs and updates from previous version (2.2): - Version 2.2 Major updates from previous version (2.1): - Partial lines included Fixed bugs and updates from previous version (2.1): - ShellName expanded in xrayglob.c, SHELLNUM increased to 28 in xrayglob.h - Shell names #define placed in file shells.h - LineName expanded in xrayglob.c, LINENUM increased to 50 in xrayglob.h - Line names #define placed in file lines.h - fluor_lines.dat updated by file with partial lines - radrate.dat updated by file with partial lines - Fluorescence Energy converted from eV to KeV (/1000) - xraylib.i modified - KA_LINE, KB_LINE, LA_LINE and LB_LINE are now calculated in terms of partial lines in fluor_lines.c and radrates.c - shells.pro and lines.pro defines the lines and shells names for IDL - documentation updated - Only 4 lines in CS_FluorLine (file cs_line.dat) KA, KB, LA, LB - Example of use with C program added To be done: - Add more lines in CS_FluorLine (file cs_line.dat) - Write documentation in a more organized way - Improve example Version 2.1 Fixed bugs and updates from previous version (2.0): - Python and IDL exited after an error/warning message - Added flags ExitStatus, HardExit - Added Functions SetHardExit, GetExitStatus, SetExitStatus - Warning messages added for non-available lines, transitions, etc. - Banner text moved in doc directory - In fluor_lines.dat unexistent fluorescent lines reproduced previous line Unexistent lines removed - edges.dat and corresponding documentation in xraydoc.txt updated - include/xraylib.h defined as symbolic link to src/include.h - made install.sh script - output precision changed to %.5g in script To be done: - fluorescent line LB corresponds to LB1 - fluorescent line LA corresponds to LA1 ?? - in radrate.dat fluorescent line LA does not correspond to anything