Next: , Previous: , Up: Genrep   [Contents][Index]


5.1 Genrep Functions

The u.func.func member of struct calib_genrep must be a genrep having op that is one of the following:

The CALIB builtin functions are as follows:

	exp	log	abs	sqrt
	sin	cos	tan	cot	sec	csc
	asin	acos	atan	acot	asec	acsc
	sinh	cosh	tanh	coth	sech	csch
	asinh	acosh	atanh	acoth	asech	acsch
	atan2	integrate

For each function foo in this list, calib provides a corresponding #define for the function index of the form CALIB_GENREP_FUNC_FOO, and a corresponding function calib_genrep_foo(x) that returns a genrep representing foo(x). (This function takes one, two or more arguments as appropriate for the particular function. For example calib_genrep_atan2 (y, x) takes two args.)

CALIB does not currently guarantee these builtin function indices to have permanent and stable values with respect to the CALIB ABI. It is therefore recommended that the functions be used; using the #define symbols may require recompilation with new CALIB releases.

CALIB provides two functions for translating between builtin function names and their indices:

calib_genrep_builtin_func_name_to_index:

	calib_si_t
		calib_genrep_builtin_func_name_to_index (const char * fname);

Return the “builtin function index” corresponding to the given fname, or -1 if no such builtin function exists.

calib_genrep_builtin_func_index_to_name:

	const char *
		calib_genrep_builtin_func_index_to_name (calib_si_t	fidx);

Return the name of the builtin function having “builtin function index” fidx, or NULL if the given fidx is invalid.

CALIB provides the following additional functions for manipulating CALIB_GENREP_OP_FUNC genrep nodes:

calib_genrep_func:

	struct calib_genrep *
		calib_genrep_func (struct calib_genrep *	f,
				   struct calib_genrep_list *	args);

Return a dynamically-allocated CALIB_GENREP_OP_FUNC node having function f and arguments args.

calib_genrep_func_si_1:

	struct calib_genrep *
		calib_genrep_func_si_1 (calib_si_t		fidx,
					struct calib_genrep *	op);

Return a dynamically-allocated CALIB_GENREP_OP_FUNC node having builtin function index fidx and argument op.

calib_genrep_func_si_2:

	struct calib_genrep *
		calib_genrep_func_si_2 (calib_si_t		fidx,
					struct calib_genrep *	arg1,
					struct calib_genrep *	arg2);

Return a dynamically-allocated CALIB_GENREP_OP_FUNC node having builtin function index fidx and two argument: arg1 and arg2.

calib_genrep_func_str:

	struct calib_genrep *
		calib_genrep_func_str (const char *			fname,
				       struct calib_genrep_list *	args);

Return a new dynamically-allocated CALIB_GENREP_OP_FUNC node having function named fname and arguments args.


Next: , Previous: , Up: Genrep   [Contents][Index]