Geant4-11
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
10namespace GIDI {
11using namespace GIDI;
12#endif
13
14char const *xDataTOM_polynomial_ID = "polynomial";
15
16/*
17************************************************************
18*/
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*/
34
35 if( xDI == NULL ) return( 0 );
36 if( strcmp( xDataTOM_polynomial_ID, xDI->ID ) != 0 ) return( 1 );
38 smr_freeMemory( (void **) &(xDI->data) );
39 return( 0 );
40}
41/*
42************************************************************
43*/
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*/
55int xDataTOM_polynomial_getData( xDataTOM_polynomial *polynomial, double **data ) {
56
57 *data = polynomial->coefficients;
58 return( polynomial->length );
59}
60/*
61************************************************************
62*/
64
65 return( xDataTOM_polynomial_getData( (xDataTOM_polynomial *) xDI->data, data ) );
66}
67
68#if defined __cplusplus
69}
70#endif
void * smr_freeMemory(void **p)
#define smr_malloc2(smr, size, zero, forItem)
xDataTOM_subAxes subAxes
Definition: xDataTOM.h:146
double * coefficients
Definition: xDataTOM.h:147
const char * ID
Definition: xDataTOM.h:151
int xDataTOM_subAxes_release(xDataTOM_subAxes *subAxes)
@ xDataTOM_subAxesType_proxy
Definition: xDataTOM.h:24
int xDataTOM_subAxes_initialize(statusMessageReporting *smr, xDataTOM_subAxes *subAxes, enum xDataTOM_subAxesType type, int offset, xDataTOM_axes *axes, xDataTOM_interpolation *interpolation)
int xDataTOM_polynomial_initialize(statusMessageReporting *smr, xDataTOM_polynomial *polynomial, int length, xDataTOM_axes *axes)
int xDataTOM_polynomial_getData(xDataTOM_polynomial *polynomial, double **data)
int xDataTOM_polynomial_release(xDataTOM_polynomial *polynomial)
char const * xDataTOM_polynomial_ID
int xDataTOM_polynomial_getDataFromXDataInfo(xDataTOM_xDataInfo *xDI, double **data)
int xDataTOM_polynomial_free(xDataTOM_xDataInfo *xDI)