irafhy
Interval arithmetic based Reachability Analysis Framework for Hybrid Automaton
irafhy Namespace Reference

Classes

class  Analyser
 
class  BinaryItem
 
class  Condition
 
class  Constant
 
class  Constraint
 
class  Constraints
 
class  ConstraintsVisitor
 
struct  convexConstraints
 
class  ConvexHull
 
class  CSPSolver
 
class  DefinitionVisitor
 
struct  entityVisitor
 
class  Evaluation
 
class  Formula
 
struct  geoEntityVisitor
 
class  Geometry
 
class  GLPKWrapper
 
class  HalfSpace
 
class  HybridAutomaton
 
class  HybridAutomatonParser
 
class  HybridAutomatonVisitor
 
class  IntervalHull
 
struct  IntervalHullStruct
 
class  Item
 
class  ItemVisitor
 
class  Jump
 
class  Locations
 
class  LocationsVisitor
 
class  Model
 
class  ODESolver
 
class  Plotter
 
class  Point
 
class  Polytope
 
class  Printer
 
class  Settings
 
class  SettingsParser
 
class  SettingsVisitor
 
class  State
 
class  System
 
class  SystemVisitor
 
struct  Time
 struct used to hold the duration information More...
 
class  Transitions
 
class  TransitionsVisitor
 
class  UnaryItem
 
class  UpdateFunction
 
class  Variable
 
class  Verifier
 
class  viewer
 

Typedefs

using GeoEntity = boost::variant< IntervalHull, Polytope >
 geometry entity which used for represent the interval hull or polytope and any other objects shall be supported in the future. More...
 
using Entity = boost::variant< Constant, Variable, UnaryItem, BinaryItem >
 

Enumerations

enum  VIEW_TYPE { POINT, LINE, PLANE }
 style of viewing geometry objects More...
 
enum  UNARY {
  OPPOSITE, SIN, ASIN, COS,
  ACOS, TAN, ATAN, COT,
  ACOT, LN, LOG, NEXP,
  SINH, ASINH, COSH, ACOSH,
  TANH, ATANH, COTH, ACOTH,
  SQR, SQRT
}
 supported unary math functions More...
 
enum  BINARY {
  PLUS, MINUS, MULTIPLY, DIVIDE,
  POWER
}
 supported binary math functions More...
 
enum  ITEM_T { CONSTANT_T, VARIABLE_T, UNARY_T, BINARY_T }
 type of the item assembling a formula More...
 
enum  ANALYSIS { FORWARD, BACKWARD }
 direction of the integration respect to the direction of vector filed More...
 
enum  GEOMETRY { INTERVAL_HULL, POLYTOPE }
 supported geometry object More...
 
enum  LINEPROG_DIRECTION { MAX, MIN }
 optimization direction of the linear programming More...
 
enum  LINEPROG_SOLUTION {
  UNDEFINED, FEASIBLE, INFEASIBLE, NO_FEASIBLE,
  OPTIMAL, UNBOUNDED
}
 status of the solution return by glpk More...
 
enum  RELATION {
  LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL_TO, UNEQUAL_TO,
  GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
}
 relation between two expressions More...
 
enum  CONSTRAINTS_SOLUTION { ALL_SATISFIED, PARTIAL_SATISFIED, ALL_UNSATISFIED }
 flag which indicates the statue of the constraints system More...
 

Functions

std::ostream & operator<< (std::ostream &out, const Condition &rhs)
 output the right hand side condition to the standard out stream More...
 
std::ostream & operator<< (std::ostream &out, const Constraint &rhs)
 
std::ostream & operator<< (std::ostream &out, const Constraints &rhs)
 
std::ostream & operator<< (std::ostream &out, const BinaryItem &rhs)
 
std::ostream & operator<< (std::ostream &out, const Constant &rhs)
 
std::ostream & operator<< (std::ostream &out, const UnaryItem &rhs)
 
std::ostream & operator<< (std::ostream &out, const Variable &rhs)
 
std::ostream & operator<< (std::ostream &out, const Formula &rhs)
 
std::ostream & operator<< (std::ostream &out, const Item &rhs)
 
std::ostream & operator<< (std::ostream &out, const System &rhs)
 
std::ostream & operator<< (std::ostream &out, const UpdateFunction &rhs)
 out the right hand side update function to standard stream More...
 
std::ostream & operator<< (std::ostream &out, const HalfSpace &halfSpace)
 out the right hand side half space to standard out stream More...
 
std::ostream & operator<< (std::ostream &out, const Point &point)
 out the right hand side point to standard out stream More...
 
const Point operator+ (const Point &lhs, const Point &rhs)
 binary addition operator More...
 
const Point operator+ (const Point &lhs, const Eigen::VectorXd &rhs)
 binary addition operator More...
 
const Point operator+ (const Eigen::VectorXd &lhs, const Point &rhs)
 binary addition operator More...
 
const Point operator- (const Point &lhs, const Point &rhs)
 binary subtraction operator More...
 
const Point operator- (const Point &lhs, const Eigen::VectorXd &rhs)
 binary subtraction operator More...
 
const Point operator- (const Eigen::VectorXd &lhs, const Point &rhs)
 binary subtraction operator More...
 
const Point operator/ (const Point &lhs, double divisor)
 binary division operator More...
 
const Point operator* (const Point &lhs, double factor)
 binary multiplication operator More...
 
const Point operator* (double factor, const Point &rhs)
 binary multiplication operator More...
 
std::ostream & operator<< (std::ostream &out, const IntervalHull &rhs)
 out the right hand side interval hull to standard out stream More...
 
std::ostream & operator<< (std::ostream &out, const Polytope &rhs)
 out the right hand side polytope to standard out stream More...
 
std::ostream & operator<< (std::ostream &out, const Settings &rhs)
 
template<typename Analyser , typename Verifier >
std::ostream & operator<< (std::ostream &out, const HybridAutomaton< Analyser, Verifier > &rhs)
 out the given hybrid automaton to standard out stream More...
 
template<typename Analyser >
std::ostream & operator<< (std::ostream &out, const Locations< Analyser > &rhs)
 out the right hand side locations object to standard stream More...
 
template<typename Analyser >
std::ostream & operator<< (std::ostream &out, const Model< Analyser > &rhs)
 out the right hand side mode to standard out stream More...
 
template<typename Analyser >
std::ostream & operator<< (std::ostream &out, const Jump< Analyser > &rhs)
 out the right hand side Jump object to standard out stream More...
 
template<typename Analyser >
std::ostream & operator<< (std::ostream &out, const Transitions< Analyser > &rhs)
 out the right hand side transitions object to standard out stream More...
 
const HalfSpace operator- (const HalfSpace &halfSpace)
 get a half space which has opposite normal More...
 

Typedef Documentation

◆ Entity

using irafhy::Entity = typedef boost::variant<Constant, Variable, UnaryItem, BinaryItem>

◆ GeoEntity

using irafhy::GeoEntity = typedef boost::variant<IntervalHull, Polytope>

geometry entity which used for represent the interval hull or polytope and any other objects shall be supported in the future.

Enumeration Type Documentation

◆ ANALYSIS

direction of the integration respect to the direction of vector filed

Enumerator
FORWARD 
BACKWARD 

◆ BINARY

supported binary math functions

Enumerator
PLUS 
MINUS 
MULTIPLY 
DIVIDE 
POWER 

◆ CONSTRAINTS_SOLUTION

flag which indicates the statue of the constraints system

Enumerator
ALL_SATISFIED 
PARTIAL_SATISFIED 
ALL_UNSATISFIED 

◆ GEOMETRY

supported geometry object

Enumerator
INTERVAL_HULL 
POLYTOPE 

◆ ITEM_T

type of the item assembling a formula

Enumerator
CONSTANT_T 
VARIABLE_T 
UNARY_T 
BINARY_T 

◆ LINEPROG_DIRECTION

optimization direction of the linear programming

Enumerator
MAX 
MIN 

◆ LINEPROG_SOLUTION

status of the solution return by glpk

Enumerator
UNDEFINED 
FEASIBLE 
INFEASIBLE 
NO_FEASIBLE 
OPTIMAL 
UNBOUNDED 

◆ RELATION

relation between two expressions

Enumerator
LESS_THAN 
LESS_THAN_OR_EQUAL_TO 
EQUAL_TO 
UNEQUAL_TO 
GREATER_THAN_OR_EQUAL_TO 
GREATER_THAN 

◆ UNARY

supported unary math functions

Enumerator
OPPOSITE 
SIN 
ASIN 
COS 
ACOS 
TAN 
ATAN 
COT 
ACOT 
LN 
LOG 
NEXP 
SINH 
ASINH 
COSH 
ACOSH 
TANH 
ATANH 
COTH 
ACOTH 
SQR 
SQRT 

◆ VIEW_TYPE

style of viewing geometry objects

Enumerator
POINT 
LINE 
PLANE 

Function Documentation

◆ operator*() [1/2]

const Point irafhy::operator* ( const Point lhs,
double  factor 
)

binary multiplication operator

Parameters
lhsleft hand side of the operator
factorright hand side of the operator as the factor
Returns
resulting point whose coordinate is the product of given point's coordinate and the factor

References irafhy::Point::coordinate(), and irafhy::Point::Point().

Here is the call graph for this function:

◆ operator*() [2/2]

const Point irafhy::operator* ( double  factor,
const Point rhs 
)

binary multiplication operator

Parameters
factorleft hand side of the operator as the factor
rhsright hand side of the operator
Returns
resulting point whose coordinate is the product of given factor and given point's coordinate

References irafhy::Point::coordinate(), and irafhy::Point::Point().

Here is the call graph for this function:

◆ operator+() [1/3]

const Point irafhy::operator+ ( const Point lhs,
const Point rhs 
)

binary addition operator

Parameters
lhsleft hand side of the operator
rhsright hand side of the operator
Returns
resulting point whose coordinate is the summation of two given points' coordinates

References irafhy::Point::coordinate(), irafhy::Point::dimension(), and irafhy::Point::Point().

Here is the call graph for this function:

◆ operator+() [2/3]

const Point irafhy::operator+ ( const Point lhs,
const Eigen::VectorXd &  rhs 
)

binary addition operator

Parameters
lhsleft hand side of the operator
rhsright hand side of the operator
Returns
resulting point whose coordinate is the summation of given point's coordinate and the given coordinate

References irafhy::Point::coordinate(), irafhy::Point::dimension(), and irafhy::Point::Point().

Here is the call graph for this function:

◆ operator+() [3/3]

const Point irafhy::operator+ ( const Eigen::VectorXd &  lhs,
const Point rhs 
)

binary addition operator

Parameters
lhsleft hand side of the operator
rhsright hand side of the operator
Returns
resulting point whose coordinate is the summation of given coordinate and the given point's coordinate

References irafhy::Point::coordinate(), irafhy::Point::dimension(), and irafhy::Point::Point().

Here is the call graph for this function:

◆ operator-() [1/4]

const HalfSpace irafhy::operator- ( const HalfSpace halfSpace)

get a half space which has opposite normal

Parameters
halfSpacegiven half space
Returns
resulting half space

◆ operator-() [2/4]

const Point irafhy::operator- ( const Point lhs,
const Point rhs 
)

binary subtraction operator

Parameters
lhsleft hand side of the operator
rhsright hand side of the operator
Returns
resulting point whose coordinate is the subtraction of given two points's coordinates

References irafhy::Point::coordinate(), irafhy::Point::dimension(), and irafhy::Point::Point().

Here is the call graph for this function:

◆ operator-() [3/4]

const Point irafhy::operator- ( const Point lhs,
const Eigen::VectorXd &  rhs 
)

binary subtraction operator

Parameters
lhsleft hand side of the operator
rhsright hand side of the operator
Returns
resulting point whose coordinate is the subtraction of the given point's coordinate and the given coordinate

References irafhy::Point::coordinate(), irafhy::Point::dimension(), and irafhy::Point::Point().

Here is the call graph for this function:

◆ operator-() [4/4]

const Point irafhy::operator- ( const Eigen::VectorXd &  lhs,
const Point rhs 
)

binary subtraction operator

Parameters
lhsleft hand side of the operator
rhsright hand side of the operator
Returns
resulting point whose coordinate is the subtraction of the given coordinate and the given point's coordinate

References irafhy::Point::coordinate(), irafhy::Point::dimension(), and irafhy::Point::Point().

Here is the call graph for this function:

◆ operator/()

const Point irafhy::operator/ ( const Point lhs,
double  divisor 
)

binary division operator

Parameters
lhsleft hand side of the operator as dividend
divisorright hand side of the operator as divisor
Returns
resulting point whose coordinate is the quotient of the given point's coordinate and the divisor

References irafhy::Point::coordinate(), and irafhy::Point::Point().

Here is the call graph for this function:

◆ operator<<() [1/21]

std::ostream& irafhy::operator<< ( std::ostream &  out,
const Constant rhs 
)
Parameters
outgiven out stream
rhsgiven constant
Returns
resulting out stream

References irafhy::Constant::value_.

◆ operator<<() [2/21]

std::ostream & irafhy::operator<< ( std::ostream &  out,
const UpdateFunction rhs 
)

out the right hand side update function to standard stream

Parameters
outgiven out stream
rhsgiven update function
Returns
resulting out stream

References irafhy::UpdateFunction::formula(), and irafhy::UpdateFunction::index().

Here is the call graph for this function:

◆ operator<<() [3/21]

std::ostream& irafhy::operator<< ( std::ostream &  out,
const Constraints rhs 
)
Parameters
outgiven out stream
rhsgiven right hand side constraints
Returns
resulting out stream

References irafhy::Constraints::inequalities_.

◆ operator<<() [4/21]

std::ostream& irafhy::operator<< ( std::ostream &  out,
const Variable rhs 
)
Parameters
outgiven out stream
rhsgiven variable
Returns
resulting out stream

References irafhy::Variable::index_.

◆ operator<<() [5/21]

std::ostream& irafhy::operator<< ( std::ostream &  out,
const Formula rhs 
)
Parameters
outgiven out stream
rhsgiven formula
Returns
resulting out stream

References irafhy::Formula::expression_, and irafhy::Formula::isReversed_.

◆ operator<<() [6/21]

std::ostream& irafhy::operator<< ( std::ostream &  out,
const Constraint rhs 
)

◆ operator<<() [7/21]

std::ostream& irafhy::operator<< ( std::ostream &  out,
const Item rhs 
)
Parameters
outgiven out stream
rhsgiven item
Returns
resulting out stream

References BINARY_T, CONSTANT_T, irafhy::Item::entity_, UNARY_T, and VARIABLE_T.

◆ operator<<() [8/21]

template<typename Analyser >
std::ostream& irafhy::operator<< ( std::ostream &  out,
const Locations< Analyser > &  rhs 
)

out the right hand side locations object to standard stream

Template Parameters
Analysermodule which specify the analyser of the hybrid automaton
Parameters
outthe out stream
rhsgiven out stream
Returns
resulting out stream

◆ operator<<() [9/21]

template<typename Analyser >
std::ostream& irafhy::operator<< ( std::ostream &  out,
const Transitions< Analyser > &  rhs 
)

out the right hand side transitions object to standard out stream

Template Parameters
Analysermodule which specify the analyser of the hybrid automaton
Parameters
outgiven out stream
rhsright hand side transitions object
Returns
resulting out stream

◆ operator<<() [10/21]

std::ostream& irafhy::operator<< ( std::ostream &  out,
const System rhs 
)
Parameters
outgiven out stream
rhsgiven system
Returns
the resulting out stream

References irafhy::System::formulas_.

◆ operator<<() [11/21]

std::ostream & irafhy::operator<< ( std::ostream &  out,
const HalfSpace halfSpace 
)

out the right hand side half space to standard out stream

Parameters
outgiven out stream
halfSpaceright hand side half space
Returns
resulting out stream

References irafhy::HalfSpace::dimension(), irafhy::HalfSpace::normal(), and irafhy::HalfSpace::offset().

Here is the call graph for this function:

◆ operator<<() [12/21]

std::ostream& irafhy::operator<< ( std::ostream &  out,
const BinaryItem rhs 
)
Parameters
outgiven out stream
rhsgiven binary item
Returns
resulting out stream

References DIVIDE, irafhy::BinaryItem::lhsOperand_, MINUS, MULTIPLY, irafhy::BinaryItem::operator_, PLUS, POWER, and irafhy::BinaryItem::rhsOperand_.

◆ operator<<() [13/21]

std::ostream& irafhy::operator<< ( std::ostream &  out,
const Settings rhs 
)

◆ operator<<() [14/21]

template<typename Analyser >
std::ostream& irafhy::operator<< ( std::ostream &  out,
const Model< Analyser > &  rhs 
)

out the right hand side mode to standard out stream

Template Parameters
Analysermodule which specify the analyser of the mode
Parameters
outgiven out stream
rhsright hand side mode
Returns
resulting out stream

◆ operator<<() [15/21]

template<typename Analyser >
std::ostream& irafhy::operator<< ( std::ostream &  out,
const Jump< Analyser > &  rhs 
)

out the right hand side Jump object to standard out stream

Template Parameters
Analysermodule which specify the analyser of the hybrid automaton
Parameters
outgiven out stream
rhsright hand side Jump object
Returns
resulting out stream

◆ operator<<() [16/21]

std::ostream & irafhy::operator<< ( std::ostream &  out,
const Point point 
)

out the right hand side point to standard out stream

Parameters
outgiven out stream
pointright hand side point
Returns
resulting out stream

References irafhy::Point::coordinate().

Here is the call graph for this function:

◆ operator<<() [17/21]

template<typename Analyser , typename Verifier >
std::ostream& irafhy::operator<< ( std::ostream &  out,
const HybridAutomaton< Analyser, Verifier > &  rhs 
)

out the given hybrid automaton to standard out stream

Template Parameters
Analysermodule which specify the analyser of the given hybrid automaton
Verifiermodule which specify the verifier of the given hybrid automaton
Parameters
outgiven out stream
rhsright hand side hybrid automaton
Returns
resulting out stream

◆ operator<<() [18/21]

std::ostream & irafhy::operator<< ( std::ostream &  out,
const Condition rhs 
)

output the right hand side condition to the standard out stream

Parameters
outthe given out stream
rhsthe given right hand side condition
Returns
the resulting out stream

References irafhy::Condition::entity(), INTERVAL_HULL, and POLYTOPE.

Here is the call graph for this function:

◆ operator<<() [19/21]

std::ostream & irafhy::operator<< ( std::ostream &  out,
const IntervalHull rhs 
)

out the right hand side interval hull to standard out stream

Parameters
outgiven out stream
rhsright hand side interval hull
Returns
resulting out stream

References irafhy::IntervalHull::constraints(), and irafhy::IntervalHull::dimension().

Here is the call graph for this function:

◆ operator<<() [20/21]

std::ostream& irafhy::operator<< ( std::ostream &  out,
const UnaryItem rhs 
)
Parameters
outgiven out stream
rhsgiven unary item
Returns
resulting out stream

References ACOS, ACOSH, ACOT, ACOTH, ASIN, ASINH, ATAN, ATANH, COS, COSH, COT, COTH, LN, LOG, NEXP, irafhy::UnaryItem::operand_, irafhy::UnaryItem::operator_, OPPOSITE, SIN, SINH, SQR, SQRT, TAN, and TANH.

◆ operator<<() [21/21]

std::ostream & irafhy::operator<< ( std::ostream &  out,
const Polytope rhs 
)

out the right hand side polytope to standard out stream

Parameters
outgiven out stream
rhsright hand side polytope
Returns
resulting out stream

References irafhy::Polytope::dimension(), irafhy::Polytope::halfSpaceConstraints(), irafhy::Polytope::pointConstraints(), and irafhy::Polytope::volume().

Here is the call graph for this function: