Home |

The library |

Generating the library |

C++ |

Download |

The names of the types follow the following convention. They are composed
by four parts, one for each dimension. Each part, in turn, is composed
of two subparts, a distinctive letter and a representation
of the exponent for this dimension, as follows.

*m_2k0s1a0* represents dimension
*L*^{-2}T.

Some types have more conventional names. The current such list is shown in the sidebar. Note that only those types that are inside the bounds set when the library was generated will be found in it. The standard download offers types that exist between the following bounds:

- m
*exponent for length* - k
*exponent for mass* - s
*exponent for time* - a
*exponent for electric charge*

Some types have more conventional names. The current such list is shown in the sidebar. Note that only those types that are inside the bounds set when the library was generated will be found in it. The standard download offers types that exist between the following bounds:

- length between -2 and 2, inclusive
- mass between -1 and 1, inclusive
- time between -2 and 1, inclusive
- electric charge between -1 and 1, inclusive

Operations that are implemented are:
*m·kg·s*^{-2}, one will see
*N* (Newton). The current such list is shown in the sidebar.

- multiplication by numbers (doubles)
- addition and subtraction of same types
- multiplication and division where the other type and the resulting type both exist in the library

Types implement interface *DimensionedValue*. Its precise
definition of it is bound to change, but currently it offers the following operations:

- retrieve value as double
- retrieve exponent of any dimension
- retrieve units as a string
- find out if the units is a derived unit (see sidebar)

The library for C# corresponds to an assembly containing all the types.
The types themselves are *structs* that define operator overloads
for arithmetic operations and conversions to *double*. All types
are in namespace **Dimenso**.

The library for Java corresponds to a JAR containing all the types.
The types themselves are *classes* that define operations as methods,
with the same names as the corresponding operations of *BigDecimal*.
All types are in package **org.dimenso**.

expected | actual |
---|---|

m1k0s0a0 | length |

m2k0s0a0 | area |

m3k0s0a0 | volume |

m1k0s_1a0 | velocity |

m1k0s_2a0 | acceleration |

m0k1s0a0 | mass |

m0k0s0a0 | time |

m1k1s_1a0 | momentum |

m2k1s_1a0 | angular _momentum |

m0k0s_1a0 | frequency |

m1k1s_2a0 | force |

m_1k1s_2a0 | pressure |

m_1k1s_1a0 | viscosity |

m2k1s_2a0 | energy |

m2k1s_3a0 | power |

m0k0s1a1 | charge |

m2k1s_3a_1 | potential |

m_2k_1s4a2 | capacitance |

m2k1s_3a_2 | resistance |

m_2k_1s3a2 | conductance |

m2k1s_2a_1 | magnetic_flux |

m0k1s_2a_1 | magnetic_flux _density |

m2k1s_2a_2 | inductance |

Not all types exist in the standard download, because the bounds it was built with exclude some of them.

expected | derived |
---|---|

s^{-1} | Hz |

m·kg·s^{-2} | N |

m^{-1}·kg·s^{-2} | Pa |

m^{-1}·kg·s^{-1} | Pa·s (Poiseuille) |

m^{2}·kg·s^{-2} | J |

m^{2}·kg·s^{-3} | W |

s·A | C |

m^{2}·kg·s^{-3}·A^{-1} | V |

m^{-2}·kg^{-1}·s^{4}·A^{2} | F |

m^{2}·kg·s^{-3}·A^{-2} | Ohm |

m^{-2}·kg^{-1}·s^{3}·A^{2} | S |

m^{2}·kg·s^{-2}·A^{-1} | Wb |

kg·s^{-2}·A^{-1} | T |

m^{2}·kg·s^{-2}·A^{-2} | H |

Not all cases exist in the standard download, because the bounds it was built with exclude some of the types.