Geant4  10.02.p01
ptwXY_unitaryOperators.cc
Go to the documentation of this file.
1 /*
2 # <<BEGIN-copyright>>
3 # <<END-copyright>>
4 */
5 
6 #include <cmath>
7 #include <float.h>
8 
9 #include "ptwXY.h"
10 
11 #if defined __cplusplus
12 namespace GIDI {
13 using namespace GIDI;
14 #endif
15 
16 /*
17 ************************************************************
18 */
19 nfu_status ptwXY_abs( ptwXYPoints *ptwXY ) {
20 
21  int64_t i, nonOverflowLength = ptwXY_getNonOverflowLength( ptwXY );
22  ptwXYPoint *p;
23  ptwXYOverflowPoint *o, *overflowHeader = &(ptwXY->overflowHeader);
24 
25  if( ptwXY->status != nfu_Okay ) return( ptwXY->status );
26 
27  for( i = 0, p = ptwXY->points; i < nonOverflowLength; i++, p++ ) p->y = std::fabs( p->y );
28  for( o = overflowHeader->next; o != overflowHeader; o = o->next ) o->point.y = std::fabs( o->point.y );
29  return( ptwXY->status );
30 }
31 /*
32 ************************************************************
33 */
34 nfu_status ptwXY_neg( ptwXYPoints *ptwXY ) {
35 
36  int64_t i, nonOverflowLength = ptwXY_getNonOverflowLength( ptwXY );
37  ptwXYPoint *p;
38  ptwXYOverflowPoint *o, *overflowHeader = &(ptwXY->overflowHeader);
39 
40  if( ptwXY->status != nfu_Okay ) return( ptwXY->status );
41 
42  for( i = 0, p = ptwXY->points; i < nonOverflowLength; i++, p++ ) p->y = -p->y;
43  for( o = overflowHeader->next; o != overflowHeader; o = o->next ) o->point.y = -o->point.y;
44  return( ptwXY->status );
45 }
46 
47 #if defined __cplusplus
48 }
49 #endif
nfu_status ptwXY_neg(ptwXYPoints *ptwXY)
int64_t ptwXY_getNonOverflowLength(ptwXYPoints const *ptwXY)
Definition: ptwXY_core.cc:590
nfu_status ptwXY_abs(ptwXYPoints *ptwXY)