SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
partial.hpp File Reference

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. More...

Include dependency graph for partial.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::dimensions::WithRespectTo< Quantity >
 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. More...
 
class  serif::dimensions::SecondPartialDerivative< OutputQuantity, FirstInput, SecondInput >
 A second EOS partial retains both differentiation quantities in its type. More...
 
class  serif::dimensions::PartialDerivative< OutputQuantity, InputQuantity >
 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 PartialDerivative 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. More...
 

Namespaces

namespace  serif
 
namespace  serif::dimensions
 

Detailed Description

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.

Author
Emily M. Boudreaux