Mult

Represents the multiplication operation.

template <
  class LHS,
  class RHS>
class Mult;

Specializations

SpecializationDescription
FunctionBase<LHSDerived>, FunctionBase<RHSDerived>
Full specialization
template <
  class LHSDerived,
  class RHSDerived>
class Mult<
  FunctionBase< LHSDerived >,
  FunctionBase< RHSDerived >> final;
Multiplication of two FunctionBase instances.
FunctionBase<LHSDerived>, ShapeFunctionBase<RHSDerived, …>
Full specialization
template <
  class LHSDerived,
  class RHSDerived,
  class FES,
  ShapeFunctionSpaceType Space>
class Mult<
  FunctionBase< LHSDerived >,
  ShapeFunctionBase< RHSDerived, FES, Space >> final;
Left Multiplication of a ShapeFunctionBase by a FunctionBase.
LHS, LinearFormIntegratorBase<RHSNumber>
Full specialization
template <
  class LHS,
  class RHSNumber>
class Mult<
  LHS,
  LinearFormIntegratorBase< RHSNumber >>;
Product expression.
LHS, LocalBilinearFormIntegratorBase<…>
Full specialization
template <
  class LHS,
  class RHSNumber>
class Mult<
  LHS,
  LocalBilinearFormIntegratorBase< RHSNumber >>;
Product expression.
ShapeFunctionBase<LHSDerived, …>, FunctionBase<RHSDerived>
Full specialization
template <
  class LHSDerived,
  class RHSDerived,
  class FES,
  ShapeFunctionSpaceType Space>
class Mult<
  ShapeFunctionBase< LHSDerived, FES, Space >,
  FunctionBase< RHSDerived >> final;
Right multiplication of a ShapeFunctionBase by a FunctionBase.
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}} \]