#ifndef PyGSL_TYPEMAPS_PROFILE_H
#define PyGSL_TYPEMAPS_PROFILE_H
/* -*- C -*- */
/**
* author: Pierre Schnizer
* created: January 2003
*
* Variables indicating expensive operations performed by
* the wrappers.
*/
#include <pygsl/utils.h>
#include <pygsl/intern.h>
#define PYGSL_PROFILE_INPUT 1
#ifdef PYGSL_PROFILE_INPUT
#if 0
/*
One dimensional Python array can be directly passed to
vectors. If not a function will be invoked. If it has
to work on the array it will increase this counter via
PyGSL_INCREASE_vector_transform_counter
*/
extern int pygsl_profile_vector_transform_counter;
/*
* Two dimensional Python array can be directly passed to
* matrices, if they are contingous. (Currently not performed )
* If not a function will be invoked. If it has
* to work on the array it will increase this counter via
* INCREASE_matrix_transform_counter
*/
extern int pygsl_profile_matrix_transform_counter;
/*
* From a mathematical point of view 0 is also a legal
* complex number. (YMMV;-) Complex objects are
* transferred directly to the underlying function,
* whereas other numeric objects have to be converted.
* In that case this counter is increased. via
*
*/
extern int pygsl_profile_complex_transform_counter;
/*
* From a mathematical point of view 0 is also a legal
* float. Float objects are
* transferred directly to the underlying function,
* whereas other numeric objects have to be converted.
* In that case this counter is increased. via
*
*/
extern int pygsl_profile_float_transform_counter;
#endif
#define PyGSL_INCREASE_vector_transform_counter() \
pygsl_profile_vector_transform_counter++
#define PyGSL_INCREASE_matrix_transform_counter() \
pygsl_profile_matrix_transform_counter++
#define PyGSL_INCREASE_complex_transform_counter() \
pygsl_profile_complex_transform_counter++
#define PyGSL_INCREASE_float_transform_counter() \
pygsl_profile_float_transform_counter++
#else /* PYGSL_PROFILE_INPUT */
#define PyGSL_INCREASE_vector_transform_counter()
#define PyGSL_INCREASE_matrix_transform_counter()
#define PyGSL_INCREASE_complex_transform_counter()
#define PyGSL_INCREASE_float_transform_counter()
#endif /* PYGSL_PROFILE_INPUT */
#endif /* PyGSL_TYPEMAPS_PROFILE_H */
syntax highlighted by Code2HTML, v. 0.9.1