| Top |  |  |  |  | 
| return | g_quark_from_static_string () | 
| else | fprintf () | 
| HklParameter * | hkl_parameter_new () | 
| int | hkl_parameter_init_copy () | 
| int | hkl_parameter_is_permutable () | 
| double | hkl_parameter_value_get_closest () | 
| void | hkl_parameter_value_set_smallest_in_range () | 
| int | hkl_parameter_is_valid () | 
| int | hkl_parameter_is_valid_range () | 
| void | hkl_parameter_fprintf () | 
| int | hkl_parameter_transformation_cmp () | 
| HklVector | hkl_parameter_transformation_apply () | 
| double | hkl_parameter_orthodromic_distance_get () | 
| HklParameter | |
| #define | HKL_PARAMETER_DEFAULTS | 
| #define | HKL_PARAMETER_DEFAULTS_LENGTH | 
| #define | HKL_PARAMETER_DEFAULTS_ANGLE | 
| #define | HKL_PARAMETER_ERROR | 
| enum | HklParameterError | 
| struct | HklParameterOperations | 
| #define | HKL_PARAMETER_OPERATIONS_DEFAULTS | 
| HklParameter * | dup | 
| double | alea | 
| double | factor | 
| typedef | darray_parameter | 
| typedef | darray_const_parameter | 
HklParameter * hkl_parameter_new (const char *name,const char *description,double min,double value,double max,int fit,int changed,const HklUnit *unit,const HklUnit *punit);
create a new HklParameter
[skip]
int hkl_parameter_init_copy (HklParameter *self,const HklParameter *src,GError **error);
[skip]
int
hkl_parameter_is_permutable (const HklParameter *self);
check if the HklParameter can be use to perform permutation exemple axis rotation can avec equivalent position at different values
[skip]
double hkl_parameter_value_get_closest (const HklParameter *self,const HklParameter *ref);
void
hkl_parameter_value_set_smallest_in_range
                               (HklParameter *self);
[skip]
int
hkl_parameter_is_valid (const HklParameter *self);
check if the value of the HklParameter is in the min,max range
[skip]
int
hkl_parameter_is_valid_range (const HklParameter *self);
check if the value of the HklParameter is in the min,max range strictly (min < value < max).
[skip]
void hkl_parameter_fprintf (FILE *f,const HklParameter *self);
print into the FILE f an HklParameter
[skip]
int hkl_parameter_transformation_cmp (const HklParameter *self,const HklParameter *p2);
[skip]
HklVector hkl_parameter_transformation_apply (const HklParameter *self,const HklVector *v);
[skip]
double hkl_parameter_orthodromic_distance_get (const HklParameter *self,double value);
[skip]
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;
#define HKL_PARAMETER_DEFAULTS .name="dummy", .description="no description", .range={.min=-DBL_MAX, .max=DBL_MAX}, ._value=0, .unit=NULL, .punit=NULL, .fit=TRUE, .changed=TRUE, .ops = &hkl_parameter_operations_defaults
#define HKL_PARAMETER_DEFAULTS_LENGTH HKL_PARAMETER_DEFAULTS, .unit = &hkl_unit_length_meter, .punit = &hkl_unit_length_meter
#define HKL_PARAMETER_DEFAULTS_ANGLE HKL_PARAMETER_DEFAULTS, .range={.min=-M_PI, .max=M_PI}, .unit = &hkl_unit_angle_rad, .punit = &hkl_unit_angle_deg
struct HklParameterOperations {
	HklParameter *        (*copy)(const HklParameter *self);
	void                  (*free)(HklParameter *self);
	int                   (*init_copy)(HklParameter *self, const HklParameter *src,
					   GError **error);
	double                (*get_value_closest)(const HklParameter *self,
						   const HklParameter *other);
	int                   (*set_value)(HklParameter *self, double value,
					   HklUnitEnum unit_type, GError **error);
	void                  (*set_value_smallest_in_range)(HklParameter *self);
	void                  (*randomize)(HklParameter *self);
        int                   (*is_permutable)(const HklParameter *self);
	int                   (*is_valid)(const HklParameter *self);
	int                   (*is_valid_range)(const HklParameter *self);
	void                  (*fprintf)(FILE *f, const HklParameter *self);
	const HklVector *     (*axis_v_get)(const HklParameter *self);
	const HklQuaternion * (*quaternion_get)(const HklParameter *self);
	int                   (*transformation_cmp)(const HklParameter *self, const HklParameter *p2);
	HklVector             (*transformation_apply)(const HklParameter *self, const HklVector *v);
        double                (*orthodromic_distance_get)(const HklParameter *self, double v);
};