14.2.29 Class Param

mosek::fusion::Param

The class defines a set of static methods for manipulating parameters.

Static members:

Param.hstack – Stack a list of parameters horizontally (i.e. along the second dimension).

Param.repeat – Repeat a parameter a number of times in the given dimension.

Param.stack – Stack a list of parameters in an arbitrary dimension.

Param.vstack – Stack a list of parameters vertically (i.e. along the first dimension).

Param.hstack
Parameter::t Param::hstack(shared_ptr<ndarray<Parameter::t,1>> p)
Parameter::t Param::hstack(Parameter::t p1, Parameter::t p2)
Parameter::t Param::hstack(Parameter::t p1, Parameter::t p2, Parameter::t p3)

Stack a list of parameters horizontally (i.e. along the second dimension). The parameters must have the same shape, except for the second dimension.

For example, if \(p^1,p^2,p^3\) are three parameters of shape (n,1) then their horizontal stack is the two-dimensional parameter

\[\begin{split}\left[ \begin{array}{ccc} | & | & | \\ p^1 & p^2 & p^3 \\ | & | & | \end{array}\right]\end{split}\]

of shape (n,3).

Parameters:
Return:

(Parameter)

Param.repeat
Parameter::t Param::repeat(Parameter::t p, int n, int dim)

Repeat a parameter a number of times in the given dimension. This is equivalent to stacking n copies of the parameter in dimension dim; see Param.stack.

Parameters:
  • p (Parameter) – The parameter to repeat.

  • n (int) – Number of times to repeat. Must be strictly positive.

  • dim (int) – The dimension in which to repeat. Must define a valid dimension index.

Return:

(Parameter)

Param.stack
Parameter::t Param::stack(shared_ptr<ndarray<Parameter::t,2>> p)
Parameter::t Param::stack(int dim, shared_ptr<ndarray<Parameter::t,1>> p)
Parameter::t Param::stack(int dim, Parameter::t p1, Parameter::t p2)
Parameter::t Param::stack(int dim, Parameter::t p1, Parameter::t p2, Parameter::t p3)

Stack a list of parameters along an arbitrary dimension. All parameters must have the same shape, except for dimension dim.

For example, suppose \(P,Q\) are two \(n\times m\) parameters. Then stacking them in the first dimension produces a parameter of shape (2n,m):

\[\begin{split}\left[\begin{array}{c}P\\ Q\end{array}\right],\end{split}\]

stacking them in the second dimension produces a parameter of shape (n,2m):

\[\left[\begin{array}{cc}P & Q\end{array}\right],\]

and stacking them in the third dimension produces a three-dimensional parameter of shape (n,m,2).

The version which takes a two-dimensional array of parameters constructs a block matrix parameter with the given parameters as blocks. The dimensions of the blocks must be suitably compatible.

Parameters:
  • p (Parameter[][]) – Parameters to stack.

  • p (Parameter[]) – Parameters to stack.

  • dim (int) – The dimension in which to stack.

  • p1 (Parameter) – First parameter to stack.

  • p2 (Parameter) – Second parameter to stack.

  • p3 (Parameter) – Third parameter to stack.

Return:

(Parameter)

Param.vstack
Parameter::t Param::vstack(shared_ptr<ndarray<Parameter::t,1>> p)
Parameter::t Param::vstack(Parameter::t p1, Parameter::t p2)
Parameter::t Param::vstack(Parameter::t p1, Parameter::t p2, Parameter::t p3)

Stack a list of parameters vertically (i.e. along the first dimension). The parameters must have the same shape, except for the first dimension.

For example, if \(p^1,p^2,p^3\) are three parameters of shape (1,n) then their vertical stack is the two-dimensional parameter

\[\begin{split}\left[ \begin{array}{c}- p^1 - \\ - p^2 - \\ - p^3 - \end{array}\right]\end{split}\]

of shape (3,n).

Parameters:
Return:

(Parameter)