Solve the problem of stochastic reachability of a target tube (a lower bound
  on the maximal reach probability and an open-loop controller synthesis) using
  convex chance-constrained optimization
  =============================================================================
 
  SReachPointCcO implements a chance-constrained convex underapproximation to
  the stochastic reachability of a target tube problem. The original problem was
  formulated (for the simpler problem of terminal hitting-time stochastic
  reach-avoid problem) in
 
  K. Lesser, M. Oishi, and R. Erwin, "Stochastic reachability for control of
  spacecraft relative motion," in IEEE Conference on Decision and Control (CDC),
  2013.
 
  This function implements a convex solver-friendly using piecewise-affine
  overapproximations of the convex constraints, as discussed in
 
  A. Vinod and M. Oishi. Affine controller synthesis for stochastic reachability
  via difference of convex programming. In Proc. Conf. Dec. & Ctrl., 2019.
  (submitted). https://hscl.unm.edu/affinecontrollersynthesis/
 
     High-level desc.   : Use Boole's inequality, Gaussian random vector, and
                          piecewise linear approximation of the inverse of the
                          standard normal cumulative density function to create
                          a linear program-based approximation to the original
                          optimization
     Approximation      : Guaranteed underapproximation
     Controller type    : Open-loop controller that satisfies the hard
                          input bounds 
     Optimality         : Optimal open-loop controller for the
                          underapproximation problem due to convexity guarantees
 
  =============================================================================
 
  [lb_stoch_reach, opt_input_vec, risk_alloc_state, varargout] = ...
     SReachPointCcO(sys, initial_state, safety_tube, options)
 
  Inputs:
  -------
    sys          - System description (LtvSystem/LtiSystem object)
    initial_state- Initial state for which the maximal reach probability must be
                   evaluated (A numeric vector of dimension sys.state_dim)
    safety_tube  - Collection of (potentially time-varying) safe sets that
                   define the safe states (Tube object)
    options      - Collection of user-specified options for 'chance-open'
                   (Matlab struct created using SReachPointOptions)
 
  Outputs:
  --------
    lb_stoch_reach 
                - Lower bound on the stochastic reachability of a target tube
                  problem computed using convex chance constraints and
                  piecewise affine approximation. While it is expected to lie in
                  [0,1], it is set to -1 in cases where the CVX optimization
                  fails (cvx_status \neq Solved).
    opt_input_vec
                - Open-loop controller: column vector of dimension
                  (sys.input_dim*N) x 1
    risk_alloc_state 
                - Risk allocation for the state constraints
    extra_info  - [Optional] Useful information to construct the
                    reachability problem | Used by 'genzps-open' to avoid 
                    unnecessary recomputation
                  Matlab struct with members --- concat_safety_tube_A,
                    concat_safety_tube_b, concat_input_space_A,
                    concat_input_space_b, H, mean_X_sans_input,
                    cov_X_sans_input;
 
  See also SReachPoint.
 
  Notes:
  * We recommend using this function through SReachPoint.
  * This function requires CVX to work.
  * See @LtiSystem/getConcatMats for more information about the notation used.
  
  ============================================================================
  
  This function is part of the Stochastic Reachability Toolbox.
  License for the use of this function is given in
       https://sreachtools.github.io/license/