Units Package Details - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Science and Engineering : Units : Details : Units Package Details

Units Package Details


This document describes Maple's unit conversions and environments. The package is compliant with the IEEE standard up to described differences. It describes the following topics.


Dimensions, Units, and Systems of Units




Regional Unit Names


Unit Representation


Unit Environments


Formatting Output


Unit, Dimension, and System Conversions




Dimensions, Units, and Systems of Units


Regional Unit Names

Unit Representation

Unit Environments

Formatting Output

Unit, Dimension, and System Conversions

Dimensions, Units, and Systems of Units


There exist measurable quantities, called base dimensions, that are considered to be fundamental and independent. In Maple, the list of base dimensions includes length, mass, time, electric current, thermodynamic temperature, amount of substance, luminous intensity, information, and currency.


A base unit corresponding to a base dimension quantifies measurements. For example, a meter is a base unit corresponding to the base dimension length. Composite, or complex, units are products of powers of base units. Named complex units are called derived units. To simplify references, some products of powers of base dimensions, complex dimensions, have been named. These named complex dimensions include force, representing length mass per time squared, and energy, representing mass length squared per time squared. A derived unit of force is the newton, which is defined as a kilogram meter per second squared. A derived unit of energy is the joule, which is defined as a kilogram meter squared per second squared. For a list of dimensional quantities, see Index.


For most dimensions, there is a large number of corresponding units. For example length can be measured in meters, feet, angstroms, or many other units. Units can be organized into systems of units. For more information, see Systems. Some units exist in more than one unit system, or to measure different dimensions. For example, there is a unit of mass named the ounce in the avoirdupois and troy systems, and a unit of volume named the ounce in the US and UK systems. To distinguish among these units in Maple, each unit has a context. For example, the ounce[avoirdupois] and ounce[troy] are units of mass.



The Units package accepts approximately 300 distinct unit names (for example, meters and grams), and over 550 units with various contexts (for example, standard miles and US survey miles.)


Over 500 units are defined using exact conversions. For example, 1 International Table Btu is defined as 52752792631/50000000 joules.


For units specified as accepting either SI or IEC prefixes, both the unit names and the unit symbols are accepted with their prefixes. For example, pm/ms is interpreted as 1e-9 meter per second.


The user can extend the set of: base dimensions and units, complex dimensions, complex units, and systems of units.  For more information, see AddBaseUnit, AddDimension, AddUnit, and AddSystem, respectively.

Regional Unit Names


The SI unit of length is called the meter in the United States, the metre in Canada and Western Europe, and other variations in other regions.  As well, the plural forms, for example, meters and metres, are used.


The Units package accepts many common spelling variations (including pluralization) of units, and includes tools that allow the user to expand this set.

convert(['m'^3, 'L', 'gal'], 'conversion_table', 'output'='grid',

To:m3LgalUnit NameSymbolcubic metersm3 1.1000.264.2litersL 0.0011.0.2642gallonsgal 0.0037853.7851.


Units:-AddUnit('meter', 'spelling'='metre', 'plural'='metres'):

Units:-AddUnit('liter', 'spelling'='litre', 'plural'='litres'):

convert(['m'^3, 'L', 'gal'], 'conversion_table', 'output'='columns',

Units From:Units To:Conversion Factor:cubic metresL1000.gal264.2litresm^30.001gal0.2642gallonsm^30.003785L3.785


In the case that units are specific to a country, the context is prefixed by the appropriate ISO 1866 country code (for example, US, CA, UK, and DE, for the United States, Canada, the United Kingdom, and Germany, respectively).

Unit Representation


A unit is identified by a unit name and a context.  The unit name may have various spellings, but the context is fixed.  A context is used to distinguish two units with the same name but different values.  For example, the units poundavoirdupois and poundtroy refer to the unit pound with contexts avoirdupois and troy, respectively.


Each unit has a default context that can be changed. A unit name without a context refers to the default context.  The unit meter refers to the SI meter and the pound refers to the avoirdupois pound. To determine the default context for a unit, use the GetUnit(unit) calling sequence.


One or more unit symbols can be associated with a unit name.  For example, m and lb are symbols for the meter and pound, respectively. The symbol is valid for any context of the unit. In contrast, an abbreviation is a short form for a specific unit-context pair. For example, at refers to only the technical context of the atmosphere unit.


Some units take either SI or IEC prefixes to identify power of 10 or power of 2 multiples, respectively, of the unit.  In both cases, unit names take prefixes different from those of unit symbols (for example, centimeter and cm have different prefixes).  Unit names with symbol prefixes, for example, cmetre, and unit symbols with name prefixes, for example, centim, are not accepted.


A unit can be raised to a rational power, or multiplied by a constant (see type/constant) or by other units.  For example, cm32g32s is a valid CGS system unit (see CGS). However, ft + yd, which is equal to four feet, is not a valid unit of length.


An expression with a unit such as 5m or x+yV is represented in Maple as a product of the expression with a function call, which can be obtained by calling the procedure Unit.


As a consequence, the expression 0 (zero) with a unit cannot be represented in Maple: it would be represented as, for example, 0·ⅆⅇgC, or internally, 0·UnitdegC, but 0 multiplied by any function call immediately simplifies to 0. This particularly comes up with temperatures sometimes, when dealing with empirical temperatures rather than with temperature differences. This can be a reason to use Temperature objects instead of regular unit expressions.

Unit Environments


In the Units package, there are four environments: default, Standard, Simple, and Natural.


In the default environment, units are ignored unless you explicitly instruct Maple to take them into account. For example, conversions between units can be performed by using the convert routines, which are available in all environments. For more information, see Units/default.


In the Simple Units environment, some Maple functions are modified to accept input with units.  Using the Unit routine, units can be included in expressions. Unassigned variables are not assumed to represent unit-free quantities. For more information, see Units[Simple].


In the Standard Units environment, some Maple functions are modified to accept input with units. Using the Unit routine, units can be included in expressions. Unassigned variables are assumed to represent unit-free quantities. For more information, see Units[Standard].


In the Natural Units environment, some Maple functions are modified to accept input with units. Using the Unit routine or the natural notation (*unit_name), units can be included in expressions.  Unassigned variables are assumed to represent unit-free quantities. For more information, see Units[Natural].


Although the lists of functions available for unit calculations in the Natural, Simple, and Standard environments are the same, the functions are not identical. The Standard and Simple environment functions do not accept the natural notation for units. The Standard and Natural environment functions assume that unassigned variables are unit-free.


The default environment is active by default. You can activate the other environments by loading the Units[Standard], Units[Simple], or Units[Natural] packages; if you load the Units package, then by default, that loads the Units[Simple] package, too.

Formatting Output


In all Units environments, the units of an expression are generally displayed next to the expression.


Note: Prior to Maple 2015, units were displayed surrounded by double brackets.


253.0 * x^2 * Unit('m'/'s');



If all unit names in a result have associated symbols or abbreviations, the result is displayed using unit symbols and abbreviations. Otherwise, it is displayed using only unit names.

253.0 * x^2 * Unit('m'/'s');



convert((4), 'units', 'km'/'fortnight');



The context of a unit is displayed in output only if it is not the default context. For example, mile refers to the (milestandard), the default context for the mile.

spd := 253.0 * x^2 * Unit('m'/'s');



convert(spd, 'units', 'mi'/'h');



convert(spd, 'units', 'mi[standard]'/'h');



convert(spd, 'units', 'mi[US_survey]'/'h');



convert(spd, 'units', 'mi'/'fortnight');



convert(spd, 'units', 'mi[standard]'/'fortnight');



convert(spd, 'units', 'mi[US_survey]'/'fortnight');



Some complex units, for example, radians, are defined in terms of units with attachments. In this case, upon combining units, the units with attachments are replaced by complex units in output.  However, unit attachments or modifiers are, in general, displayed.

43.0 * Unit('feet(radius)'/'yard');



combine(43.0 * Unit('feet(radius)'/'yard'), 'units');



combine(43.0 * Unit('feet'/'feet(radius)'), 'units');



combine(43.0 * Unit('J'/'m'/'W(mech)'/'h(mech)'*'cm(mech)'), 'units');



43.0 * Unit('J(mech)'/'m(mech)'/'W(mech)'/'h(mech)'*'cm(mech)');



combine((17), 'units');



combine(43.0 * Unit('J(chemical)'/'m(chemical)'/'W(mech)'/'h(mech)'*'cm(mech)'), 'units');



Unit, Dimension, and System Conversions


The unit conversion operation is key to the Units package. The convert function converts between units or temperature scales, a unit and its dimension, or a unit and the corresponding unit in a specified system of units. The Units Converter, which can be launched from the Tools > Assistants menu, facilitates easy unit conversion. For more information, see Units Converter.


To convert a measurement between units with the same dimension, except absolute temperatures, use the convert/units function. The energy option allows energy conversions, which convert between energy units with different dimensions. Since convert/units converts only temperature intervals, use the convert/temperature function to convert absolute temperatures between temperature scales.


To determine the dimension, base or complex, associated with a unit, use the convert/dimensions function.


The convert/system function converts a measurement in one unit to the default unit of the same dimension in a specified system of units.

See Also



Units Package References