Geant4 Cross Reference |
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 71