bridge/class-master/depend/pari/src/basemath/mftrace.c
/* Simplified form of mfclean, after a QabM_indexrank: M a ZabM with full
 * column rank and z = indexrank(M) is known */
Simplified form of mfclean, after a QabM_indexrank: M a ZabM with full
column rank and z = indexrank(M) is known
Simplified form of mfclean after a QabM_indexrank : M a ZabM with full column rank and z = indexrank ( M ) is known
static GEN
mfclean2(GEN M, GEN z, GEN P, long n)
{
  GEN d, Minv, y = gel(z,1), W = rowpermute(M, y);
  W = P? ZabM_inv(liftpol_shallow(W), P, n, &d): ZM_inv(W, &d);
  M = rowslice(M, 1, y[lg(y)-1]);
  Minv = mkMinv(W, NULL, d, P);
  return mkvec3(y, Minv, M);
}
static GEN mfclean2 ( GEN M , GEN z , GEN P , long n ) { GEN d , Minv , y = gel ( z , 1 ) , W = rowpermute ( M , y ) ; W = P ? ZabM_inv ( liftpol_shallow ( W ) , P , n , & d ) : ZM_inv ( W , & d ) ; M = rowslice ( M , 1 , y [ lg ( y ) - 1 ] ) ; Minv = mkMinv ( W , NULL , d , P ) ; return mkvec3 ( y , Minv , M ) ; }
Simplified form of mfclean, after a QabM_indexrank: M a ZabM with full
 column rank and z = indexrank(M) is known
Simplified form of mfclean after a QabM_indexrank : M a ZabM with full column rank and z = indexrank ( M ) is known