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