.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\&.