Functions
HKL_DEPRECATED_FOR()
# define HKL_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead")))
HKL_ARG_NONNULL()
# define HKL_ARG_NONNULL(...) __attribute__ ((__nonnull__(__VA_ARGS__)))
HKL_GEOMETRY_LIST_FOREACH()
#define HKL_GEOMETRY_LIST_FOREACH(item, list)
HKL_SAMPLE_REFLECTIONS_FOREACH()
#define HKL_SAMPLE_REFLECTIONS_FOREACH(_item, _list)
Types and Values
HKL_DEPRECATED
# define HKL_DEPRECATED __attribute__((__deprecated__))
HKL_TINY
#define HKL_TINY 1e-7
HKL_EPSILON
#define HKL_EPSILON 1e-6
HKL_DEGTORAD
#define HKL_DEGTORAD (M_PI/180.)
HKL_RADTODEG
#define HKL_RADTODEG (180./M_PI)
HKL_TAU
#define HKL_TAU (2. * M_PI)
HKLAPI
# define HKLAPI __attribute__ ((visibility("default")))
HKL_WARN_UNUSED_RESULT
# define HKL_WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__))
struct HklVector
struct HklVector {
double data[3];
};
struct HklQuaternion
struct HklQuaternion {
double data[4];
};
darray_string
typedef darray(const char *) darray_string;
darray_engine
typedef darray(HklEngine *) darray_engine;
enum HklEngineCapabilities
enum HklEngineAxisNamesGet
enum HklEngineDependencies
HklDetector
typedef struct {
size_t idx;
HklHolder const *holder;
} HklDetector;
HklEngine
typedef struct {
const HklEngineInfo *info;
const HklEngineOperations *ops;
HklGeometry *geometry;
HklDetector *detector;
HklSample *sample;
HklMode *mode; /* not owned */
HklEngineList *engines; /* not owned */
darray_parameter axes;
darray_parameter pseudo_axes;
darray_string pseudo_axis_names;
darray_mode modes;
darray_string mode_names;
} HklEngine;
HklEngineList
typedef struct {
_darray(HklEngine *);
HklGeometryList *geometries;
HklGeometry *geometry;
HklDetector *detector;
HklSample *sample;
darray_parameter pseudo_axes;
} HklEngineList;
HklFactory
typedef struct {
const char *name;
const char *description;
const darray_string axes;
HklFactoryGeometryFunction create_new_geometry;
HklFactoryEngineListFunction create_new_engine_list;
} HklFactory;
HklGeometry
typedef struct {
const HklFactory *factory;
HklSource source;
darray_parameter axes;
darray_holder holders;
} HklGeometry;
HklGeometryList
typedef struct {
HklGeometryListMultiplyFunction multiply;
struct list_head items;
size_t n_items;
} HklGeometryList;
HklGeometryListItem
typedef struct {
struct list_node list;
HklGeometry *geometry;
} HklGeometryListItem;
HklLattice
typedef struct {
HklParameter *a;
HklParameter *b;
HklParameter *c;
HklParameter *alpha;
HklParameter *beta;
HklParameter *gamma;
HklParameter *volume;
} HklLattice;
HklMatrix
typedef struct {
double data[3][3];
} HklMatrix;
HklParameter
typedef struct {
const char *name;
const char *description;
HklInterval range;
double _value;
const HklUnit *unit;
const HklUnit *punit;
int fit;
int changed;
const HklParameterOperations *ops;
} HklParameter;
HklSample
typedef struct {
char *name;
HklLattice *lattice;
HklMatrix U;
HklMatrix UB;
HklParameter *ux;
HklParameter *uy;
HklParameter *uz;
struct list_head reflections;
size_t n_reflections;
} HklSample;
HklSampleReflection
typedef struct {
HklGeometry *geometry;
HklDetector *detector;
HklVector hkl;
HklVector _hkl;
int flag;
struct list_node list;
} HklSampleReflection;