/usr/include/hkl/hkl-sample.h is in libhkl-dev 4.0.3-4ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | /* This file is part of the hkl library.
*
* The hkl library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The hkl library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the hkl library. If not, see <http://www.gnu.org/licenses/>.
*
* Copyright (C) 2003-2010 Synchrotron SOLEIL
* L'Orme des Merisiers Saint-Aubin
* BP 48 91192 GIF-sur-YVETTE CEDEX
*
* Authors: Picca Frédéric-Emmanuel <picca@synchrotron-soleil.fr>
*/
#ifndef __HKL_SAMPLE_H__
#define __HKL_SAMPLE_H__
#include <hkl/hkl-lattice.h>
#include <hkl/hkl-geometry.h>
#include <hkl/hkl-detector.h>
#include <hkl/hkl-list.h>
HKL_BEGIN_DECLS
typedef struct _HklSample HklSample;
typedef struct _HklSampleReflection HklSampleReflection;
typedef struct _HklSampleList HklSampleList;
enum _HklSampleType {
HKL_SAMPLE_TYPE_MONOCRYSTAL
};
typedef enum _HklSampleType HklSampleType;
struct _HklSample {
char *name;
HklSampleType type;
HklLattice *lattice;
HklMatrix U;
HklMatrix UB;
HklParameter *ux;
HklParameter *uy;
HklParameter *uz;
HKL_LIST(HklSampleReflection *, reflections);
};
struct _HklSampleReflection {
HklGeometry *geometry;
HklDetector detector;
HklVector hkl;
HklVector _hkl;
int flag;
};
struct _HklSampleList {
HKL_LIST(HklSample *, samples);
HklSample *current;
};
/*************/
/* HklSample */
/*************/
extern HklSample *hkl_sample_new(char const *name, HklSampleType type);
extern HklSample *hkl_sample_new_copy(HklSample const *self);
extern void hkl_sample_free(HklSample *self);
extern void hkl_sample_set_name(HklSample *self, char const *name);
extern int hkl_sample_set_lattice(HklSample *self,
double a, double b, double c,
double alpha, double beta, double gamma);
extern int hkl_sample_set_U_from_euler(HklSample *self,
double x, double y, double z);
extern void hkl_sample_get_UB(HklSample *self, HklMatrix *UB);
extern double hkl_sample_set_UB(HklSample *self, const HklMatrix *UB);
extern HklSampleReflection *hkl_sample_add_reflection(HklSample *self,
HklGeometry *geometry,
HklDetector const *detector,
double h, double k, double l);
extern HklSampleReflection *hkl_sample_get_ith_reflection(HklSample const *self,
size_t idx);
extern int hkl_sample_del_reflection(HklSample *self, size_t idx);
extern int hkl_sample_compute_UB_busing_levy(HklSample *self,
size_t idx1, size_t idx2);
extern double hkl_sample_affine(HklSample *sample);
extern double hkl_sample_get_reflection_mesured_angle(HklSample const *self,
size_t idx1, size_t idx2);
extern double hkl_sample_get_reflection_theoretical_angle(HklSample const *self,
size_t idx1, size_t idx2);
extern void hkl_sample_fprintf(FILE *f, HklSample const *self);
/***********************/
/* hklSampleReflection */
/***********************/
void hkl_sample_reflection_set_hkl(HklSampleReflection *self, double h, double k, double l);
void hkl_sample_reflection_set_flag(HklSampleReflection *self, int flag);
void hkl_sample_reflection_set_geometry(HklSampleReflection *self, HklGeometry *geometry);
/*****************/
/* HklSampleList */
/*****************/
extern HklSampleList *hkl_sample_list_new(void);
extern void hkl_sample_list_free(HklSampleList *self);
extern HklSample *hkl_sample_list_append(HklSampleList *self,
HklSample *sample);
extern void hkl_sample_list_clear(HklSampleList *self);
extern void hkl_sample_list_del(HklSampleList *self, HklSample *sample);
extern size_t hkl_sample_list_len(HklSampleList const *self);
extern HklSample *hkl_sample_list_get_ith(HklSampleList *self, size_t idx);
extern HklSample *hkl_sample_list_get_by_name(HklSampleList *self,
char const *name);
extern size_t hkl_sample_list_get_idx_from_name(HklSampleList *self,
char const *name);
extern int hkl_sample_list_select_current(HklSampleList *self, char const *name);
extern void hkl_sample_list_fprintf(FILE *f, HklSampleList const *self);
HKL_END_DECLS
#endif
|