#### D.11.2.8 rightInverse

Procedure from library `control.lib` (see control_lib).

Usage:
  rightInverse(M); M a module

Return:
  module

Purpose:
  computes such a matrix L, that ML = Id

Note:
  exists only in the case when M is free submodule

Example:

    LIB "control.lib";
    // a trivial example:
    ring r = 0,(x,z),dp;
    matrix M[1][2] = 1,x2+z;
    print(M);
    ==> 1,x2+z
    print( rightInverse(M) );
    ==> 1,
    ==> 0
    kill r;
    // derived from the TwoPendula example:
    ring r=(0,m1,m2,M,g,L1,L2),Dt,dp;
    matrix U[1][3];
    U[1,1]=(-L2)*Dt^4+(g)*Dt^2;
    U[1,2]=(-L1)*Dt^4+(g)*Dt^2;
    U[1,3]=(L1*L2)*Dt^4+(-g*L1-g*L2)*Dt^2+(g^2);
    module M = module(U);
    module L = rightInverse(M);
    print(L);
    ==> (L1^2)/(g^2*L1-g^2*L2),
    ==> (-L2^2)/(g^2*L1-g^2*L2),
    ==> 1/(g^2)
    // check
    print(M*L);
    ==> 1

User manual for Singular version 4-0-3, 2016, generated by texi2html.