Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/modisom/gap/tables/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 23.8.2024 mit Größe 2 kB image not shown  

Quelle  sparse.gi   Sprache: unbekannt

 
Spracherkennung für: .gi vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]


BindGlobal( "SparseZeroVec", function( d, F )
    return [];
end );

BindGlobal( "SparseNullMat", function(d,n,F) 
    return List([1..d], x -> []); 
end );

BindGlobal( "SparseVecMatMult", function( w, mat, n, z )
    local v, i, e, j;
    v := [];
    for i in [1..n] do
        e := z;
        for j in [1..n] do
            if IsBound(w[j]) and IsBound(mat[i][j]) then 
                e := e+w[j]*mat[i][j];
            fi;
        od;
        if e <> z then v[i] := e; fi;
    od;
    return v;
end );

BindGlobal( "SparseAddVec", function( v, w, e, n, z )
    local i;
    if e = z then return; fi;
    for i in [1..n] do
        if IsBound(v[i]) and IsBound(w[i]) then 
            v[i] := v[i]+e*w[i];
            if v[i] = z then Unbind(v[i]); fi;
        elif IsBound(w[i]) then 
            v[i] := e*w[i];
        fi;
    od;
end );

BindGlobal( "SparseDepthVec", function( v, n )
    local i;
    for i in [1..n] do
        if IsBound(v[i]) then return i; fi;
    od;
    return n+1;
end );

BindGlobal( "SparseCutVec", function( v, l, r )
    local w, i;
    w := [];
    for i in [l..r] do
        if IsBound(v[i]) then 
            w[i] := v[i];
        fi;
    od;
    return w;
end );

BindGlobal( "SparseLimit", function( v, r )
    local w, i;
    w := [];
    for i in [1..Length(r)] do
        if IsBound(v[r[i]]) then 
            w[i] := v[r[i]];
        fi;
    od;
    return w;
end );

BindGlobal( "SparseInsert", function( v, w, r )
    local i;
    for i in [1..Length(r)] do
        if IsBound(w[i]) then 
            v[r[i]] := w[i];
        fi;
    od;
end );

BindGlobal( "SparseConcat", function( v, w, r, z )
    local i;
    for i in [1..Length(w)] do
        if w[i] <> z then
            v[r+i] := w[i];
        fi;
    od;
    return v;
end );

BindGlobal( "VecToSparseVec", function( v, n, z )
    local w, i;
    w := [];
    for i in [1..n] do
        if v[i] <> z then 
            w[i] := v[i];
        fi;
    od;
    return w;
end );

BindGlobal( "SparseVecToVec", function( w, n, z )
    local v, i;
    v := List([1..n], x -> z);
    for i in [1..n] do
        if IsBound(w[i]) then 
            v[i] := w[i];
        fi;
    od;
    return v;
end );
 


[ Dauer der Verarbeitung: 0.31 Sekunden  ]