-
-
Notifications
You must be signed in to change notification settings - Fork 56
/
Changelog
425 lines (303 loc) · 15.9 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
Version 4.1.5 Tom Schoonjans
- Python: add support for Numpy 2 (contributed by Thomas Vincent)
- Python: publish packages to PyPI from GHA workflow
- meson: remove `python` option, and add various improvements
- deprecate GNU Autotools based build system
Version 4.1.4 Tom Schoonjans
- Bug fix: return 0.0 early in `PM3_auger_cascade_kissel` and `PM4_auger_cascade_kissel` (reported and fixed by Chris Ninham)
- Bug fix: ensure that meson will error out when `python-numpy-bindings` is set to `enabled`, but `cython` is not found.
- Remove Google Analytics support as they have discontinued Universal Analytics
Version 4.1.3 Tom Schoonjans
- Fix bug in python meson build, resulting in numpy integers not being accepted by SWIG generated python bindings (reported by Christian Koernig)
Version 4.1.2 Tom Schoonjans
- Fix edge case in CS_Photo_Partial, where Kissel edge energies don't actually
correspond to the first energy in the list of energies (reported by Ulla
Vainio, and fixed by Oleg Shirokobrod)
- Fix memory leak in SWIG generated Python bindings (reported by David Vine)
Version 4.1.1 Tom Schoonjans
- Do not use distutils in autoconf macros, as it will not be available in
python 3.10
- Drop the `cython` option for the meson buildscript, as it became a reserved
option in meson 0.59.0
Version 4.1.0 Tom Schoonjans
- Add meson as alternative buildsystem
- Add API to calculate XRF cross sections for whole shells, instead of
individual lines (suggested by Oleg Shirokobrod)
- Lightweight C++ wrappers through a header-only library (contributed by Marius Schollmeier and myself)
- Add Google Analytics tracking to Python bindings and Java implementation
- Update L values of CosKronTransProb and FluorYield for W, Re, Sn and Sb,
using work from Ayri, Kaur, Kumar, Czyzycki, Karydas and Puri
Version 4.0.0 Tom Schoonjans
Major changes:
- Drop xraylib command-line executable
- Add proper, thread-safe error handling support through an extra argument in
the C API, which is transformed into an exception in the other bindings.
The old error handling functions have been deprecated. New API added to xraylib-error.h
- Add unittests, lots of them, for all supported languages.
- Deprecate IDL bindings: they work for now, but do not support the new error
handling mechanism, and will no longer be actively developed.
- Rewrite Java bindings, produce sources and javadoc jars, and publish to
Maven and JFrog.
Minor changes:
- CompoundParser: do not allow lower case characters after digits (bugfix)
- SymbolToAtomicNumber: deal gracefully with NULL (bugfix)
- PHP bindings: create RPM package
- SWIG: parse xrf_cross_sections_aux.h
- Symbol visibility has been reduced.
- CosKronTransProb: remove old _TRANS macros
- AugerYield and CS_FluorLine_Kissel: introduce FLP13_TRANS correction
- PM5_full_cascade_kissel: fix bug
- xrf_cross_sections_aux: improve performance
- Do not allow extrapolation with splint
Version 3.3.0 Tom Schoonjans
- Anomalous scattering factors: switch to EPDL97 (thanks to Chris Jacobsen and Ming Du for reporting spikes in RTAB data)
- Windows installer: remove python and IDL bindings
- RPM packages: remove IDL bindings
- Support Anaconda Windows build
- Support PHP7
- Add __version__ to Python modules (requested by Jonas Adler)
- Support numpy scalars in SWIG generated Python bindings (requested by David Larsson)
- Python example style improvements (contributed by Jonas Adler)
- CompoundParser: compoundData now also contains nAtoms and molarMass
- Cython generated Python bindings: use OpenMP
Version 3.2.0 Tom Schoonjans
- Python3 support in Fedora RPM packages
- Pascal/Delphi bindings added (thanks to Matthew Wormington for his
contributions)
- pure Java implementation of xraylib: jar created with OSGI support
- SymbolToAtomicNumber: char* changed to const char*
- New API: Crystal_GetCrystalsList
- K-shell fluorescence yields revised (thanks to Alex Simionovici for
reporting this)
- Cython bindings added to Windows installers
- Several bugfixes: thanks to those that reported them!
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