Loading...
Searching...
No Matches
casacore::UnitDim Class Reference
casa package (libcasa_casa) » Quanta_module

More...

`#include <UnitDim.h>`

## Public Types

enum | Dim { Dm , Dkg , Ds , DA , DK , Dcd , Dmol , Drad , Dsr , Dnon , Dnumber }
| Enumeration of the order and number of the defining SI units. More...

## Public Member Functions

| ~UnitDim ()
| Destructor.

## Protected Member Functions

void | init ()
void | init (Int pos)

## Private Member Functions

| UnitDim ()
| Construct a unit with zero dimension in all SI units.
| UnitDim (const UnitDim &other)
| Copy constructor.
| UnitDim (Int pos)
| Construct a unit dimension with a one in the indicated position (as Dim enumerator) and zeroes in all other units.
UnitDim & | operator= (const UnitDim &other)
| Assignment (copy semantics).
UnitDim & | operator*= (const UnitDim &other)
| Operators to combine unit dimensions .
UnitDim | operator* (const UnitDim &other) const
UnitDim & | operator/= (const UnitDim &other)
| Division subtracts the unit dimensions of all SI units.
UnitDim | operator/ (const UnitDim &other) const
Bool | operator== (const UnitDim &other) const
| Compare dimension of units .
Bool | operator!= (const UnitDim &other) const
| Compare for unequal dimensions.
UnitDim | pow (Int p)
| Raise all SI defining units to an integer power.

## Static Private Member Functions

static const String & | dimName (uInt which)
| Get the tag for specified dimension.
static const String & | dimFull (uInt which)
| Get the full name for the specified dimension.

## Private Attributes

Long | unitLong [UNITDIM_DLNUMBER]
| 1-byte vector to contain the dimensions of the defining SI units (using same storage as Long vector for speed reasons)
signed char * | unitDim

## Friends

class | UnitVal
class | UnitMap
ostream & | operator<< (ostream &os, const UnitDim &du)
| Output the SI dimensions (e.g.

## Detailed Description

describes a unit in basic SI unit dimensions

### Intended use:

Internal

### Review Status

Reviewed By:
  UNKNOWN
Date Reviewed:
  before2004/08/25
Test programs:
  tUnit

### Prerequisite

- Unit

### Etymology

Based on Unit and the Dimension of a unit in SI defining units

### Synopsis

Physical units are strings consisting of one or more names of known basic units, separated by '.' or ' ' (for multiplication) or '/' (for division). Each name can optionally be preceded by a standard decimal prefix, and/or followed by an (optionally signed) exponent. Example: km/s/(Mpc.s)2 is identical to km.s-1.Mpc-2.s-2

See the Unit for more details.

The UnitDim class is a private class for use by the Unit classes. It contains the dimensions in the 9 basic defining SI units of a unit.

### Example

### Motivation

The UnitDim class has been separated to keep the interface between a complex unit description string and the basic SI units clean.

### To Do

- Some inlining (did not work first go)

Definition at line 85 of file UnitDim.h.

## Member Enumeration Documentation

## Dim

enum casacore::UnitDim::Dim

Enumeration of the order and number of the defining SI units.

If order or contents changed, change also in dimName() and dimFull().

Enumerator
Dm |
Dkg |
Ds |
DA |
DK |
Dcd |
Dmol |
Drad |
Dsr |
Dnon |
Dnumber |

Definition at line 97 of file UnitDim.h.

## Constructor & Destructor Documentation

## ~UnitDim()

casacore::UnitDim::~UnitDim | ( |  | ) |

Destructor.

## UnitDim() [1/3]

casacore::UnitDim::UnitDim | ( |  | ) |

inline private

Construct a unit with zero dimension in all SI units.

Definition at line 111 of file UnitDim.h.

References init().

Referenced by operator!=(), operator*(), operator*=(), operator/(), operator/=(), operator<<, operator=(), operator==(), pow(), and UnitDim().

## UnitDim() [2/3]

casacore::UnitDim::UnitDim | ( | const UnitDim & | other | ) |

private

Copy constructor.

References UnitDim().

## UnitDim() [3/3]

casacore::UnitDim::UnitDim | ( | Int | pos | ) |

inline private

Construct a unit dimension with a one in the indicated position (as Dim enumerator) and zeroes in all other units.

Definition at line 118 of file UnitDim.h.

References init().

## Member Function Documentation

## dimFull()

const String & casacore::UnitDim::dimFull | ( | uInt | which | ) |

static private

Get the full name for the specified dimension.

## dimName()

const String & casacore::UnitDim::dimName | ( | uInt | which | ) |

static private

Get the tag for specified dimension.

## init() [1/2]

void casacore::UnitDim::init | ( |  | ) |

protected

Referenced by UnitDim(), and UnitDim().

## init() [2/2]

void casacore::UnitDim::init | ( | Int | pos | ) |

protected

## operator!=()

Bool casacore::UnitDim::operator!= | ( | const UnitDim & | other | ) | const

private

Compare for unequal dimensions.

References UnitDim().

## operator*()

UnitDim casacore::UnitDim::operator* | ( | const UnitDim & | other | ) | const

private

References UnitDim().

## operator*=()

UnitDim & casacore::UnitDim::operator*= | ( | const UnitDim & | other | ) |

private

Operators to combine unit dimensions .

Multiplication adds the unit dimensions of all SI units

References UnitDim().

## operator/()

UnitDim casacore::UnitDim::operator/ | ( | const UnitDim & | other | ) | const

private

References UnitDim().

## operator/=()

UnitDim & casacore::UnitDim::operator/= | ( | const UnitDim & | other | ) |

private

Division subtracts the unit dimensions of all SI units.

References UnitDim().

## operator=()

UnitDim & casacore::UnitDim::operator= | ( | const UnitDim & | other | ) |

private

Assignment (copy semantics).

References UnitDim().

## operator==()

Bool casacore::UnitDim::operator== | ( | const UnitDim & | other | ) | const

private

Compare dimension of units .

Compare for equal dimensions

References UnitDim().

## pow()

UnitDim casacore::UnitDim::pow | ( | Int | p | ) |

private

Raise all SI defining units to an integer power.

References UnitDim().

## Friends And Related Symbol Documentation

## operator<<

ostream & operator<< | ( | ostream & | os,
|  | const UnitDim & | du )

friend

Output the SI dimensions (e.g.

'km/s/g' as 'm kg-1 s-1')

References UnitDim().

## UnitMap

friend class UnitMap

friend

Definition at line 89 of file UnitDim.h.

References UnitMap.

Referenced by UnitMap.

## UnitVal

friend class UnitVal

friend

Definition at line 88 of file UnitDim.h.

References UnitVal.

Referenced by UnitVal.

## Member Data Documentation

## unitDim

signed char* casacore::UnitDim::unitDim

private

Definition at line 155 of file UnitDim.h.

## unitLong

Long casacore::UnitDim::unitLong[UNITDIM_DLNUMBER]

private

1-byte vector to contain the dimensions of the defining SI units (using same storage as Long vector for speed reasons)

Definition at line 154 of file UnitDim.h.

The documentation for this class was generated from the following file:

- casa/Quanta/UnitDim.h