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)
56 lines
3.3 KiB
Groff
56 lines
3.3 KiB
Groff
.TH "src/include/serif/dimensions/partial.hpp" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
src/include/serif/dimensions/partial.hpp \- Compile time tools to represent a partial derivative of one quantity wrt\&. another quantity\&. Note that this system is not responsible for computing partials or in fact derivatives of any kind\&. Rather, it is responsible for forcing the developer --- or compiler at least --- to ask for a specific, explicit, partial and have to spell out what that is\&. That in turn gives the compiler enough information to do a lot of downstream things\&. A motivating example would be automatic verification of the provided EOS against all partials that might be needed to ensure they are all exported by the EOS\&.
|
|
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
\fR#include 'serif/dimensions/quantities\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/utils/misc/concepts/numeric\&.hpp'\fP
|
|
.br
|
|
|
|
.SS "Classes"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "struct \fBserif::dimensions::WithRespectTo< Quantity >\fP"
|
|
.br
|
|
.RI "A type that is empty at runtime but allows for the developer to specify to the compiler what quantity the partial is with respect to\&. "
|
|
.ti -1c
|
|
.RI "class \fBserif::dimensions::SecondPartialDerivative< OutputQuantity, FirstInput, SecondInput >\fP"
|
|
.br
|
|
.RI "A second EOS partial retains both differentiation quantities in its type\&. "
|
|
.ti -1c
|
|
.RI "class \fBserif::dimensions::PartialDerivative< OutputQuantity, InputQuantity >\fP"
|
|
.br
|
|
.RI "Class to represent a compile time derivative relation between two quantities\&. Note that this class does not, in fact cannot, compute any derivatives itself\&. Rather, this is a way for the compiler to understand higher level mathematical relations\&. Unless you are really in the weeds of the development team you will likely not need to interact with this directly\&. Further note that this class does include (unlike the more basic dimension system) some basic dimensional analysis\&. Specifically, there are some overloaded operators that allow for certain specializations of \fBPartialDerivative\fP to operate on one and other conditioned on what their input and output types are\&. This does not do any thing like convert area to length^2\&. However, it will do more basic things like ensure that you can only add two partials which agree on their dimensions exactly\&. Or that while you can multiple a partial by any scalar, you cannot multiply arbitrary partials\&. "
|
|
.in -1c
|
|
.SS "Namespaces"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "namespace \fBserif\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "namespace \fBserif::dimensions\fP"
|
|
.br
|
|
.in -1c
|
|
.SH "Detailed Description"
|
|
.PP
|
|
Compile time tools to represent a partial derivative of one quantity wrt\&. another quantity\&. Note that this system is not responsible for computing partials or in fact derivatives of any kind\&. Rather, it is responsible for forcing the developer --- or compiler at least --- to ask for a specific, explicit, partial and have to spell out what that is\&. That in turn gives the compiler enough information to do a lot of downstream things\&. A motivating example would be automatic verification of the provided EOS against all partials that might be needed to ensure they are all exported by the EOS\&.
|
|
|
|
|
|
.PP
|
|
\fBAuthor\fP
|
|
.RS 4
|
|
Emily M\&. Boudreaux
|
|
.RE
|
|
.PP
|
|
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for SERiF from the source code\&.
|