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
|
"""
CrystFEL
Julia bindings for CrystFEL data structures and routines
## Quick start
```julia
using CrystFEL
...
```
"""
module CrystFEL
libcrystfel = "libcrystfel.so"
# Configure libcrystfel to use Julia's memory management. This is needed so
# that the Julia GC knows about the memory we allocate via libcrystfel
# routines. Otherwise, potentially very large objects will be kept hanging
# around in memory because Julia thinks it's using a very small amount of
# memory, and rarely runs the GC. In the case of image structures, the
# difference between apparent and true memory use can be a factor of a million!
function __init__()
@ccall libcrystfel.set_mm_funcs(cglobal(:jl_malloc)::Ptr{Cvoid},
cglobal(:jl_free)::Ptr{Cvoid},
cglobal(:jl_calloc)::Ptr{Cvoid},
cglobal(:jl_realloc)::Ptr{Cvoid})::Cint
end
include("cell.jl")
using .UnitCells
export UnitCell, LatticeType, CenteringType, UniqueAxis
export TriclinicLattice, MonoclinicLattice, OrthorhombicLattice
export TetragonalLattice, HexagonalLattice, RhombohedralLattice, CubicLattice
export PrimitiveCell, ACenteredCell, BCenteredCell, CCenteredCell
export BodyCenteredCell, FaceCenteredCell, RhombohedralCell, RhombohedralCellOnHexagonalAxes
export NoUniqueAxis, UnknownUniqueAxis, UniqueAxisA, UniqueAxisB, UniqueAxisC
export rotatecell, compare_reindexed_cell_parameters
include("detgeom.jl")
using .DetGeoms
export Panel, DetGeom, DetGeomPanel, DetGeomGroup, findgroup
include("symmetry.jl")
using .Symmetry
export SymOpList, asymmetricindices
include("datatemplates.jl")
using .DataTemplates
export DataTemplate, loaddatatemplate, wavelength, cameralength
export translategroup!, rotategroup!
include("peaklist.jl")
using .PeakLists
export PeakList
include("reflists.jl")
using .RefLists
export RefList, loadreflist, savereflist!
export Reflection, MergedReflection, UnmergedReflection
include("crystal.jl")
using .Crystals
export Crystal, InternalCrystal
include("image.jl")
using .Images
export Image, setreflections!
include("diffcalc.jl")
using .DiffractionCalculations
export predictreflections, calculatepartialities!
export PartialityModel, UnityModel, XSphereModel, OffsetModel, RandomModel, GeneralGaussianModel
include("indexing.jl")
using .Indexing
export Indexer, index
include("streams.jl")
using .Streams
export Stream, chunkwrite, chunkread, allcrystals
include("millepede.jl")
using .Millepede
export Mille
include("peaksearch.jl")
using .PeakSearch
export zaefpeaks, peakfinder8, peakfinder9
include("mergeutils.jl")
using .MergeUtils
export @addmeasurement, cstddev, mergereflections
end # of module
|