RP_specific :=
rec( ## Can optionally be provided by the RingPackage ## (homalg functions check if these functions are defined or not) ## (homalgTable gives no default value)
## Must be defined if other functions are not defined
ReducedRowEchelonForm := function( arg )
local M, R, nargs, N, U;
M := arg[1];
R := HomalgRing( M );
nargs := Length( arg );
N := HomalgVoidMatrix( NumberRows( M ), NumberColumns( M ), R );
if nargs > 1 and IsHomalgMatrix( arg[2] ) then## not ReducedRowEchelonForm( M, "" ) # assign U:
U := arg[2];
SetNumberRows( U, NumberRows( M ) );
SetNumberColumns( U, NumberRows( M ) );
SetIsInvertibleMatrix( U, true );
## compute N and U:
homalgSendBlocking( [ N, " := ", R, "[-1][ReducedEchelonForm](", M, R, "[1],", U, ")" ], "need_command", "ReducedEchelonFormC" ); else ## compute N only:
homalgSendBlocking( [ N, " := ", R, "[-1][ReducedEchelonForm](", M, R, "[1])" ], "need_command", "ReducedEchelonForm" ); fi;
SetIsUpperStairCaseMatrix( N, true );
return N;
end
);
for component in NamesOfComponents( RP_General ) do
RP.(component) := RP_General.(component);
od;
for component in NamesOfComponents( RP_Basic ) do
RP.(component) := RP_Basic.(component);
od;
for component in NamesOfComponents( RP_BestBasis ) do if component = "BestBasis"then
RP.BestBasis := function( arg )
local S;
S := CallFuncList( RP_BestBasis.BestBasis, arg );
SetIsDiagonalMatrix( S, true );
return S; end; else
RP.(component) := RP_BestBasis.(component); fi;
od;
for component in NamesOfComponents( RP_specific ) do
RP.(component) := RP_specific.(component);
od;
Objectify( TheTypeHomalgTable, RP );
return RP;
end );
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.19 Sekunden
(vorverarbeitet am 2026-10-12)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.