Geant4  10.03
xDataTOM_polynomial.cc
Go to the documentation of this file.
1 /*
2 # <<BEGIN-copyright>>
3 # <<END-copyright>>
4 */
5 #include <string.h>
6 
7 #include "xDataTOM_private.h"
8 
9 #if defined __cplusplus
10 namespace GIDI {
11 using namespace GIDI;
12 #endif
13 
14 char const *xDataTOM_polynomial_ID = "polynomial";
15 
16 /*
17 ************************************************************
18 */
19 int xDataTOM_polynomial_initialize( statusMessageReporting *smr, xDataTOM_polynomial *polynomial, int length, xDataTOM_axes *axes ) {
20 
21  polynomial->length = length;
22  if( ( polynomial->coefficients = (double *) smr_malloc2( smr, length * sizeof( double ), 1, "polynomial->coefficients" ) ) == NULL ) return( 1 );
23  if( xDataTOM_subAxes_initialize( smr, &(polynomial->subAxes), xDataTOM_subAxesType_proxy, 0, axes, NULL ) != 0 ) {
24  smr_freeMemory( (void **) &(polynomial->coefficients) );
25  return( 1 );
26  }
27 
28  return( 0 );
29 }
30 /*
31 ************************************************************
32 */
33 int xDataTOM_polynomial_free( xDataTOM_xDataInfo *xDI ) {
34 
35  if( xDI == NULL ) return( 0 );
36  if( strcmp( xDataTOM_polynomial_ID, xDI->ID ) != 0 ) return( 1 );
37  xDataTOM_polynomial_release( (xDataTOM_polynomial *) xDI->data );
38  smr_freeMemory( (void **) &(xDI->data) );
39  return( 0 );
40 }
41 /*
42 ************************************************************
43 */
44 int xDataTOM_polynomial_release( xDataTOM_polynomial *polynomial ) {
45 
46  xDataTOM_subAxes_release( &(polynomial->subAxes) );
47  polynomial->length = 0;
48  smr_freeMemory( (void **) &(polynomial->coefficients) );
49 
50  return( 0 );
51 }
52 /*
53 ************************************************************
54 */
55 int xDataTOM_polynomial_getData( xDataTOM_polynomial *polynomial, double **data ) {
56 
57  *data = polynomial->coefficients;
58  return( polynomial->length );
59 }
60 /*
61 ************************************************************
62 */
63 int xDataTOM_polynomial_getDataFromXDataInfo( xDataTOM_xDataInfo *xDI, double **data ) {
64 
65  return( xDataTOM_polynomial_getData( (xDataTOM_polynomial *) xDI->data, data ) );
66 }
67 
68 #if defined __cplusplus
69 }
70 #endif
int xDataTOM_polynomial_free(xDataTOM_xDataInfo *xDI)
int xDataTOM_subAxes_initialize(statusMessageReporting *smr, xDataTOM_subAxes *subAxes, enum xDataTOM_subAxesType type, int offset, xDataTOM_axes *axes, xDataTOM_interpolation *interpolation)
int xDataTOM_subAxes_release(xDataTOM_subAxes *subAxes)
char const * xDataTOM_polynomial_ID
void * smr_freeMemory(void **p)
int xDataTOM_polynomial_release(xDataTOM_polynomial *polynomial)
int xDataTOM_polynomial_initialize(statusMessageReporting *smr, xDataTOM_polynomial *polynomial, int length, xDataTOM_axes *axes)
int xDataTOM_polynomial_getDataFromXDataInfo(xDataTOM_xDataInfo *xDI, double **data)
int xDataTOM_polynomial_getData(xDataTOM_polynomial *polynomial, double **data)