Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
83 lines
5.6 KiB
TeX
83 lines
5.6 KiB
TeX
\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}
|