next up previous contents
Next: Rohn simplification procedure Up: Regularity of parametric interval Previous: Regularity of parametric interval   Contents

Implementation

 
int Matrix_Is_Regular(int dimA,
      INTERVAL_VECTOR (* Func)(int l1, int l2,INTERVAL_VECTOR & v_IS),
      int (* A_Cond)(int dimA,INTERVAL_VECTOR (* Func)(int l1, int l2,INTERVAL_VECTOR & v_IS),INTERVAL_VECTOR & v_IS,INTERVAL_MATRIX &K),
      INTERVAL_MATRIX (* A_Cond_Left)(INTERVAL_VECTOR & v_IS_Left),
      INTERVAL_MATRIX (* A_Cond_Right)(INTERVAL_VECTOR & v_IS_Right),
      INTERVAL Determinant_Matrix(INTERVAL_MATRIX &A,INTERVAL_VECTOR &X),
      INTERVAL Determinant_A_Cond_Left(INTERVAL_MATRIX &A,INTERVAL_VECTOR &X),
      INTERVAL Determinant_A_Cond_Right(INTERVAL_MATRIX &A,INTERVAL_VECTOR &X),
      int Type_Cond,
        INTEGER_VECTOR &Type_Determinant,
      int Iteration,
      INTERVAL_VECTOR &X,
      int (* Simp)(int dimA,INTERVAL_MATRIX & Acond,INTERVAL_VECTOR
& v_IS))
where This procedure returns 1 if all matrices are regular, -1 if a singular matrix has been found, -2 if the algorithm has failed and -3 if the regularity cannot be ascertained as for a scalar input X the sign of the determinant cannot be ascertained.

The flag Simp_In_Cond may be used to design the simplification procedure. It is set to 0 when the simplification procedure is used to check the initial matrix $A$, to -1 or -2 when testing the regularity of the conditioning matrix, to 1 when testing the regularity of AK and to 2 for KA.

This procedure may also be used with the following syntaxes:

 
int Matrix_Is_Regular(int dimA,
    INTERVAL_VECTOR (* Func)(int l1, int l2,INTERVAL_VECTOR & v_IS),
    int (* A_Cond)(int dimA,INTERVAL_VECTOR (* Func)(int l1, int l2,INTERVAL_VECTOR & v_IS),INTERVAL_VECTOR & v_IS,INTERVAL_MATRIX &A),
    INTERVAL_MATRIX (* A_Cond_Left)(INTERVAL_VECTOR & v_IS_Left),
    INTERVAL_MATRIX (* A_Cond_Right)(INTERVAL_VECTOR & v_IS_Right),
    INTERVAL Determinant_Matrix(INTERVAL_MATRIX &A,INTERVAL_VECTOR &X),
    INTERVAL Determinant_A_Cond_Left(INTERVAL_MATRIX &A,INTERVAL_VECTOR &X),
    INTERVAL Determinant_A_Cond_Right(INTERVAL_MATRIX &A,INTERVAL_VECTOR &X),
    int Type_Cond,
        INTEGER_VECTOR &Type_Determinant,
    int Iteration,
    INTERVAL_VECTOR &Domain)

int Matrix_Is_Regular(int dimA,
    INTERVAL_VECTOR (* Func)(int l1, int l2,INTERVAL_VECTOR & v_IS),
    int (* A_Cond)(int dimA,INTERVAL_VECTOR (* Func)(int l1, int l2,INTERVAL_VECTOR & v_IS),INTERVAL_VECTOR & v_IS,INTERVAL_MATRIX &A),
    INTERVAL_MATRIX (* A_Cond_Left)(INTERVAL_VECTOR & v_IS_Left),
    INTERVAL_MATRIX (* A_Cond_Right)(INTERVAL_VECTOR & v_IS_Right),
    int Type_Cond,
        INTEGER_VECTOR &Type_Determinant,
    int Iteration,
    INTERVAL_VECTOR &Domain,
    int (* Simp)(int dimA,INTERVAL_MATRIX & Acond,INTERVAL_VECTOR
& v_IS))

int Matrix_Is_Regular(int dimA,
    INTERVAL_VECTOR (* Func)(int l1, int l2,INTERVAL_VECTOR & v_IS),
        int Type_Determinant,
    int Iteration,
    INTERVAL_VECTOR &Domain)

int Matrix_Is_Regular(int dimA,
    INTERVAL_VECTOR (* Func)(int l1, int l2,INTERVAL_VECTOR & v_IS),
        int Type_Determinant,
    int Iteration,
    INTERVAL_VECTOR &Domain,
    int (* Simp)(int dimA,INTERVAL_MATRIX & Acond,INTERVAL_VECTOR
&v_IS))

int Matrix_Is_Regular(int dimA,
    INTERVAL_VECTOR (* Func)(int l1, int l2,INTERVAL_VECTOR & v_IS),
    int (* A_Cond)(int dimA,INTERVAL_VECTOR (* Func)(int l1, int l2,INTERVAL_VECTOR & v_IS),INTERVAL_VECTOR & v_IS,INTERVAL_MATRIX &A),
    INTERVAL_MATRIX (* A_Cond_Left)(INTERVAL_VECTOR & v_IS_Left),
    INTERVAL_MATRIX (* A_Cond_Right)(INTERVAL_VECTOR & v_IS_Right),
    int Type_Cond,
        INTEGER_VECTOR &Type_Determinant,
    int Iteration,
    INTERVAL_VECTOR &Domain)

int Matrix_Is_Regular(int dimA,
    INTERVAL_VECTOR (* Func)(int l1, int l2,INTERVAL_VECTOR & v_IS),
    INTERVAL_MATRIX (* A_Cond_Left)(INTERVAL_VECTOR & v_IS_Left),
    INTERVAL_MATRIX (* A_Cond_Right)(INTERVAL_VECTOR & v_IS_Right),
    int Type_Cond,
        INTEGER_VECTOR &Type_Determinant,
    int Iteration,
    INTERVAL_VECTOR &Domain)

int Matrix_Is_Regular(int dimA,
    INTERVAL_VECTOR (* Func)(int l1, int l2,INTERVAL_VECTOR & v_IS),
    INTERVAL_MATRIX (* A_Cond_Left)(INTERVAL_VECTOR & v_IS_Left),
    INTERVAL_MATRIX (* A_Cond_Right)(INTERVAL_VECTOR & v_IS_Right),
    int Type_Cond,
        INTEGER_VECTOR &Type_Determinant,
    int Iteration,
    INTERVAL_VECTOR &Domain,
    int (* Simp)(int dimA,INTERVAL_MATRIX & Acond,INTERVAL_VECTOR
&v_IS))
Note that the 3B method is implemented as a built-in procedure called ALIAS_3B_Regular_Matrix, but is usually not very efficient.


next up previous contents
Next: Rohn simplification procedure Up: Regularity of parametric interval Previous: Regularity of parametric interval   Contents
Jean-Pierre Merlet 2012-12-20