Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-05-13 | Julia: Add basic wrapper for compare_reindexed_cell_parameters | Thomas White | |
2024-04-24 | Julia: Add 'setreflections!' to add a RefList for a Crystal in an image | Thomas White | |
2024-04-24 | Julia: Avoid making a list of Nothing | Thomas White | |
The type of the list needs to be correct, otherwise we can't push to it later. | |||
2024-02-27 | Julia: Do polarisation correction via CrystFEL function | Thomas White | |
The Julia-native correction was 50% slower. | |||
2024-02-27 | Julia: Move merging utils to separate module | Thomas White | |
2024-02-26 | Julia: RefList: Return indices as vectors, not tuples | Thomas White | |
We're going to be doing a lot of linear algebra with these numbers, so this makes more sense. | |||
2024-02-26 | Julia: UnitCell: Add accessors for cell parameters and basis vectors | Thomas White | |
2024-02-21 | Julia: Set finalizers for RefList and Crystal when taken from image | Thomas White | |
2024-02-21 | Julia: chunkread: Expose option for reconstructing image data arrays/detgeom | Thomas White | |
It makes a big performance difference to avoid creating these arrays. We will just need to deal with the fact that an Image might not have a DetGeom or data arrays. This commit also sets sensible chunkread options for allcrystals(). | |||
2024-02-21 | Julia: RefList: Return nothing if no reflections in list | Thomas White | |
2024-02-19 | Julia: Add Base.get!(::Reflist, indices) | Thomas White | |
2024-02-07 | Julia: Add allcrystals() | Thomas White | |
2024-02-07 | Julia: Add push!(::RefList, hkl) | Thomas White | |
2024-02-07 | Julia: RefList: index using tuple | Thomas White | |
I realised that separate h k l parameters leads to a profusion of argument splatting. | |||
2024-02-06 | Julia: Add "savereflist!" | Thomas White | |
2024-02-06 | Julia: Constructor for RefList{MergedReflection} | Thomas White | |
2024-02-06 | Julia: Fix docs | Thomas White | |
2024-02-06 | Julia: Add 'rotategroup!' | Thomas White | |
2024-02-06 | Julia: Add chunkread() | Thomas White | |
2024-02-06 | Julia: Add peak search algorithms | Thomas White | |
2024-02-06 | Julia: Add asymmetricindices() | Thomas White | |
2024-02-06 | Julia: Add Reflection setters | Thomas White | |
2024-02-06 | Julia: Expose partiality modelling | Thomas White | |
2024-02-06 | Julia: Add push!(image, crystal, reflections) | Thomas White | |
New method needed following "Crystals shouldn't own RefLists" patch series. | |||
2024-02-06 | Julia: push!(image, crystal): Mark crystal as not to be freed | Thomas White | |
The crystal must also be added to the image's list, so that it doesn't get GCed while the image is still around. | |||
2024-02-06 | Julia: Use cfstrdup (not strdup) | Thomas White | |
2024-02-06 | Julia: Get rid of crystal.reflections | Thomas White | |
2024-02-06 | Julia: Crystal: Improve show method, add accessors | Thomas White | |
I'm not sure about these field names, yet. | |||
2024-02-06 | Julia: Fix image.peaklist memory management | Thomas White | |
2024-02-06 | Julia: predictreflections: add types | Thomas White | |
This is to stop me from putting the image and crystal the wrong way round. | |||
2024-02-06 | Julia: Add show method for Image | Thomas White | |
2024-02-06 | Julia: translategroup: Add an exclamation point | Thomas White | |
2024-02-06 | Julia: UnitCell: Fix spurious precision | Thomas White | |
2024-02-06 | Julia: Remove leftover crystal.in_image | Thomas White | |
2024-02-06 | Julia: Crystal: Complain when requesting unrecognised field | Thomas White | |
2024-02-06 | Julia: Fix stack overflow with image.peaklist | Thomas White | |
2024-02-06 | Julia: add translategroup() (and use it) | Thomas White | |
2024-02-06 | Ownership for Crystal.Cell | Thomas White | |
2024-02-06 | Julia: MM semantics for Image.crystals | Thomas White | |
2024-02-06 | Julia: Expose crystals and reflection lists from image | Thomas White | |
The memory management isn't quite right here yet. | |||
2024-02-06 | Julia: Use jl_malloc etc for memory management | Thomas White | |
2024-02-06 | Julia: Forbid non-deep copying of a PeakList | Thomas White | |
We cannot have two PeakList objects pointing at the same underlying ImageFeatureList. | |||
2024-02-06 | Julia: Image/PeakList memory semantics (again) | Thomas White | |
Previous commit a6462e1f0 was still not right. If the image gets freed, the PeakList can be left with a dangling reference. If the peak list gets replaced at the C level (e.g. by running a new peak search), Julia will have no way of knowing about it. Instead of having the PeakList know if it's associated with an image, it's better to have the Image know (at the C level) if it's responsible for freeing the ImageFeatureList. As soon as the ImageFeatureList is exposed to the Julia GC via a PeakList object, it becomes Julia's responsibility to free it. The Julia Image structure contains a reference to the Julia PeakList, to prevent this from happening until either the image is freed or a new PeakList is substituted. The two references (Julia image.peaklist and C image->features) have to be kept in sync, and we check image->features every time the peaklist is requested. | |||
2024-02-06 | Julia: Make a copy of the cell when creating a Crystal | Thomas White | |
We could do some more reference tracking stuff here, but it seems a little excessive. | |||
2024-02-06 | Julia: fix Image/PeakList memory semantics | Thomas White | |
The previous commit 3bb46f49 was a mistake. We can't just free the old peak list, because there might still be a PeakList object around that refers to it. This new version keeps a record of the PeakList object itself, setting in_image=false if a new list is added, so that it can be freed by the GC. I made an attempt at making this thread-safe, but I think it's impossible to get it completely correct. One should simply avoid setting any Image fields in the same structure from different threads. | |||
2024-02-06 | Julia: Free old peak list on re-assignment | Thomas White | |
2024-02-06 | Julia: set filename and event ID for image | Thomas White | |
2024-02-06 | Julia: Write the DataTemplate to the stream | Thomas White | |
2024-02-06 | Julia: Add catch-all setproperty for image | Thomas White | |
This allows e.g. image.serial to be set. | |||
2024-02-06 | Julia: Implement setting of cr.reflections | Thomas White | |