\doxysection{src/include/serif/dimensions/quantities.hpp File Reference} \hypertarget{quantities_8hpp}{}\label{quantities_8hpp}\index{src/include/serif/dimensions/quantities.hpp@{src/include/serif/dimensions/quantities.hpp}} This file contains the code to associate numeric data to a dimension. We call this a Quantity and a Quantity\+Value. {\ttfamily \#include $<$type\+\_\+traits$>$}\newline {\ttfamily \#include $<$compare$>$}\newline {\ttfamily \#include $<$concepts$>$}\newline {\ttfamily \#include $<$tuple$>$}\newline {\ttfamily \#include "{}serif/utils/misc/std\+\_\+helper/cleaning.\+hpp"{}}\newline {\ttfamily \#include "{}serif/utils/misc/concepts/numeric.\+hpp"{}}\newline Include dependency graph for quantities.\+hpp\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{quantities_8hpp__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{quantities_8hpp__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structserif_1_1dimensions_1_1_physical_quantity}{serif\+::dimensions\+::\+Physical\+Quantity}} \item struct \mbox{\hyperlink{structserif_1_1dimensions_1_1_thermodynamic_quantity}{serif\+::dimensions\+::\+Thermodynamic\+Quantity}} \item class \mbox{\hyperlink{classserif_1_1dimensions_1_1_quantity_value}{serif\+::dimensions\+::\+Quantity\+Value$<$ Quantity $>$}} \begin{DoxyCompactList}\small\item\em This is the non derivative equivalent to \doxylink{classserif_1_1dimensions_1_1_partial_derivative}{Partial\+Derivative}. This associates a dimension with a value and, if that value can be determined at compile time, can be decomposed to a transparent double through .\doxylink{classserif_1_1dimensions_1_1_quantity_value_a901278a0b1d317587dbad496b1527fb5}{value()} \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1dimensions_1_1_is_quantity_value}{serif\+::dimensions\+::\+Is\+Quantity\+Value$<$ Candidate $>$}} \item struct \mbox{\hyperlink{structserif_1_1dimensions_1_1_is_quantity_value_3_01_quantity_value_3_01_quantity_01_4_01_4}{serif\+::dimensions\+::\+Is\+Quantity\+Value$<$ Quantity\+Value$<$ Quantity $>$ $>$}} \item struct \mbox{\hyperlink{structserif_1_1dimensions_1_1_quantity_of_3_01_quantity_value_3_01_quantity_01_4_01_4}{serif\+::dimensions\+::\+Quantity\+Of$<$ Quantity\+Value$<$ Quantity $>$ $>$}} \item struct \mbox{\hyperlink{structserif_1_1dimensions_1_1_quantity_list}{serif\+::dimensions\+::\+Quantity\+List$<$ Quantities $>$}} \item struct \mbox{\hyperlink{structserif_1_1dimensions_1_1_quantity_at_3_01_index_00_01_quantity_list_3_01_quantities_8_8_8_01_4_01_4}{serif\+::dimensions\+::\+Quantity\+At$<$ Index, Quantity\+List$<$ Quantities... $>$ $>$}} \end{DoxyCompactItemize} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif}{serif}} \item namespace \mbox{\hyperlink{namespaceserif_1_1dimensions}{serif\+::dimensions}} \end{DoxyCompactItemize} \doxysubsubsection*{Concepts} \begin{DoxyCompactItemize} \item concept \mbox{\hyperlink{conceptserif_1_1dimensions_1_1_physical_quantity_type}{serif\+::dimensions\+::\+Physical\+Quantity\+Type}} \begin{DoxyCompactList}\small\item\em Is compile-\/time true of the Quantity\+Candidate can have any const / volatile stripped and if its derived from Physical\+Quantity. Note all Thermodynamic\+Quantities will also satisfy this concept. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1dimensions_1_1_thermodynamic_quantity_type}{serif\+::dimensions\+::\+Thermodynamic\+Quantity\+Type}} \begin{DoxyCompactList}\small\item\em Is compile-\/time true of the Quantity\+Candidate can have any const / volatile stripped and if its derived from Physical\+Quantity (both enforced through checking Physical\+Quantity\+Type) and then that is is also derived from Thermodynamic\+Quantity. Note not all physical quanties will satisfy this. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1dimensions_1_1_quantity_value_type}{serif\+::dimensions\+::\+Quantity\+Value\+Type}} \begin{DoxyCompactList}\small\item\em Turn those compile time structs into a concept that can be used to constrain a template parameter. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1dimensions_1_1_thermodynamic_quantity_value_type}{serif\+::dimensions\+::\+Thermodynamic\+Quantity\+Value\+Type}} \end{DoxyCompactItemize} \doxysubsubsection*{Typedefs} \begin{DoxyCompactItemize} \item {\footnotesize template$<$Quantity\+Value\+Type Value$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1dimensions_a726ea17ab3c500d045d2605915ecfcd6}{serif\+::dimensions\+::\+Quantity\+OfT}} = typename \mbox{\hyperlink{structserif_1_1dimensions_1_1_quantity_of}{Quantity\+Of}}$<$\mbox{\hyperlink{namespaceserif_1_1utils_1_1misc_1_1std__helper_a1a18295f7407fe00ade70a9a850788c8}{Neither\+Const\+Nor\+Volatile\+Reference}}$<$Value$>$$>$\+::\+Type \item {\footnotesize template$<$class T$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1dimensions_acf1a7ad8f60290ead71c5b1509481e3a}{serif\+::dimensions\+::\+Neither\+Const\+Nor\+Volatile}} \item {\footnotesize template$<$class T$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1dimensions_a1a18295f7407fe00ade70a9a850788c8}{serif\+::dimensions\+::\+Neither\+Const\+Nor\+Volatile\+Reference}} \end{DoxyCompactItemize} \doxysubsection{Detailed Description} This file contains the code to associate numeric data to a dimension. We call this a Quantity and a Quantity\+Value. \begin{DoxyAuthor}{Author} Emily M. Boudreaux \end{DoxyAuthor}