Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
ptwXY_unitaryOperators.cc File Reference
#include <cmath>
#include <float.h>
#include "ptwXY.h"

Go to the source code of this file.

Functions

nfu_status ptwXY_abs (ptwXYPoints *ptwXY)
 
nfu_status ptwXY_neg (ptwXYPoints *ptwXY)
 

Function Documentation

◆ ptwXY_abs()

nfu_status ptwXY_abs ( ptwXYPoints * ptwXY)

Definition at line 19 of file ptwXY_unitaryOperators.cc.

19 {
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}
@ nfu_Okay
int64_t ptwXY_getNonOverflowLength(ptwXYPoints const *ptwXY)
struct ptwXYOverflowPoint_s * next
Definition ptwXY.h:78
ptwXYPoint point
Definition ptwXY.h:80
double y
Definition ptwXY.h:62
ptwXYOverflowPoint overflowHeader
Definition ptwXY.h:98
ptwXYPoint * points
Definition ptwXY.h:99
nfu_status status
Definition ptwXY.h:85

◆ ptwXY_neg()

nfu_status ptwXY_neg ( ptwXYPoints * ptwXY)

Definition at line 34 of file ptwXY_unitaryOperators.cc.

34 {
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}

Referenced by ptwXY_sub_ptwXY().