Class NormalConeNSL#
Defined in Program listing for file kernel/src/modelingTools/NormalConeNSL.hpp
-
class NormalConeNSL : public NonSmoothLaw#
NormalCone NonSmoothLaw.
This class formalizes a nonsmooth law in the form of a normal cone inclusion i.e.
\[ 0 \in y + \mathcal{N}_{P}(\lambda), \]where \( P \) is a polyhedral set. This is a generalization of the RelayNSL law, where the set \( P \) is a scaled box. Note that there exists an inverse of the previous relation in the form
\[ \lambda \in \partial \sigma_{P} (-y), \]with \( \sigma_{P} \) the support function of \( P \) and \( \partial \sigma_{P} \) the subdifferential of this support function.
Note that the polyhedral set \( P \) is described as \( \{\lambda\mid H \lambda \geq K\} \), where \( H \) is a matrix and \( K \) a vector.
Public Functions
-
NormalConeNSL(unsigned size, SP::SimpleMatrix H, SP::SiconosVector K)#
Constructor with the polyhedral representation of P as Hx >= K.
- Parameters:
size – size of the NonSmoothLaw
H – matrix in the (H-K)-representation of the polytope P
K – vector in the (H-K)-representation of the polytope P
-
inline SimpleMatrix &H()#
get H
- Returns:
a reference to the H matrix
-
inline SiconosVector &K()#
get K
- Returns:
a reference to the K vector
-
virtual bool isVerified() const override#
check the ns law to see if it is verified
- Returns:
true if the NS Law is verified, false otherwise
-
virtual void display() const override#
print the data to the screen
-
NormalConeNSL(unsigned size, SP::SimpleMatrix H, SP::SiconosVector K)#