template<class LHS, class RHS>
Rodin::Variational::Mult class

Represents the multiplication operation.

Template parameters
LHS Type of left hand side operand
RHS Type of right hand side operand

Represents the following mathematical expression:

\[ \text{LHS} * \text{RHS} \]

Range Deduction Rules

The rules for deducing the range of a Mult object, denoted $ \texttt{Range}[\text{LHS} * \text{RHS}]$ , are the following:

  • $ \vdash \texttt{Range}[\text{LHS}] : \texttt{Real} $
    1. \[ \dfrac {\vdash \texttt{Range}[\text{RHS}] : \texttt{Real}} {\vdash \texttt{Range}[\text{LHS} * \text{RHS}] : \texttt{Real}} \]
    2. \[ \dfrac {\vdash \texttt{Range}[\text{RHS}] : \texttt{Vector}} {\vdash \texttt{Range}[\text{LHS} * \text{RHS}] : \texttt{Vector}} \]
    3. \[ \dfrac {\vdash \texttt{Range}[\text{RHS}] : \texttt{Matrix}} {\vdash \texttt{Range}[\text{LHS} * \text{RHS}] : \texttt{Matrix}} \]
  • $ \vdash \texttt{Range}[\text{LHS}] : \texttt{Vector} $
    1. \[ \dfrac {\vdash \texttt{Range}[\text{RHS}] : \texttt{Real}} {\vdash \texttt{Range}[\text{LHS} * \text{RHS}] : \texttt{Vector}}\\ \]
    2. \[ \dfrac {\vdash \texttt{Range}[\text{RHS}] : \texttt{Vector}} {\vdash \texttt{Range}[\text{LHS} * \text{RHS}] : \texttt{Matrix}} \]
    3. \[ \dfrac {\vdash \texttt{Range}[\text{RHS}] : \texttt{Matrix}} {\vdash \texttt{Range}[\text{LHS} * \text{RHS}] : \texttt{Matrix}} \]
  • $ \vdash \texttt{Range}[\text{LHS}] : \texttt{Matrix} $
    1. \[ \dfrac {\vdash \texttt{Range}[\text{RHS}] : \texttt{Real}} {\vdash \texttt{Range}[\text{LHS} * \text{RHS}] : \texttt{Matrix}}\\ \]
    2. \[ \dfrac {\vdash \texttt{Range}[\text{RHS}] : \texttt{Vector}} {\vdash \texttt{Range}[\text{LHS} * \text{RHS}] : \texttt{Matrix}}\\ \]
    3. \[ \dfrac {\vdash \texttt{Range}[\text{RHS}] : \texttt{Matrix}} {\vdash \texttt{Range}[\text{LHS} * \text{RHS}] : \texttt{Matrix}} \]