Skip to content

si::normative_unit

kwikius edited this page Jul 13, 2021 · 13 revisions

| Home | SI System|

Description

A normative si unit is an official si_unit, as opposed to an si unit_conversion. The exponent of the conversion factor of a normative si unit is always an integer. The multiplier of the conversion_factor is always 1. 1

An important advantage of quantities with normative si units is that it is possible to raise them to arbitrary rationals powers and roots. This is often not possible with units where the multiplier of the exponent is not 1.

Signature

si::normative_unit<dimension,exponent10>

Header

#include <pqs/systems/si/unit.hpp>

Notation

typename model of notes
D dimension
E exponent10
typename type notes
Un si::normative_unit< D, E >

Provides

concept result
unit< Un > true
inline constant result
si::is_normative_unit< Un > true
si::is_prefixable< D , E > true if {D,E} supports the standard si prefixes
get_measurement_system< Un > si_measurement_system

Example

#include <pqs/systems/si/force.hpp>

using namespace pqs;

#include <iostream>

int main()
{
   si::force::kgf<> q1{1};
   si::force::mN<> q2 = q1;

   std::cout << q1 << " is a normative S.I. quantity = " 
      << std::boolalpha << si::is_normative_quantity(q1) << '\n';
   std::cout << q2 << " is a normative S.I. quantity = " 
      << std::boolalpha << si::is_normative_quantity(q2) << '\n';
}

example output:
1 kgf is a normative S.I. quantity = false
9806.65 mN is a normative S.I quantity = true

Notes

[1] The fact that the multiplier is 1 does not of itself guarantee that a unit is a normative si unit though.

Clone this wiki locally