#### D.8.8.7 ivmatGaussian

Procedure from library `rootisolation.lib` (see rootisolation_lib).

Usage:
  `ivmatGaussian(A)`; `A ivmat`

Return:
  0, if `A` not invertible, `(1, Ainv)` if `A` invertible where `Ainv` is the inverse matrix

Purpose:
  Inverts an interval matrix using Gaussian elimination in the setting of interval arithmetic. Pivoting is handled as a special case as `I/I != [1,1]` and `I-I != [0,0]` in general.

Example:

    LIB "rootisolation.lib";
    ring R = 0,(x,y),dp;
    ideal I = 2x2-xy+2y2-2,2x2-3xy+3y2-2;
    box B = list(bounds(7/8, 9/8), bounds(-1/10, 1/20));
    ivmat J = evalJacobianAtBox (I, B); J;
    ==> [69/20, 23/5],[-61/40, -27/40]
    ==> [67/20, 24/5],[-159/40, -93/40]
    ==>
    list result = ivmatGaussian(J);
    ivmat Jinv = result[2];
    Jinv;
    ==> [1060/4273, 620/187],[-1220/561, -180/4273]
    ==> [2680/12819, 1280/187],[-920/187, -3680/12819]
    ==>
    Jinv * J;
    ==> [-7657037/799051, 12073835/799051],[-3961862/799051, 6773506/799051]
    ==> [-18293234/799051, 73172936/2397153],[-7807572/799051, 15513600/799051]
    ==>

User manual for Singular version 4.4.1, 2025, generated by texi2html.