Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  SetsOfGenerators.gi   Sprache: unbekannt

 
# SPDX-License-Identifier: GPL-2.0-or-later
# Modules: A homalg based package for the Abelian category of finitely presented modules over computable rings
#
# Implementations
#

##  Declaration stuff for sets of generators.

####################################
#
# representations:
#
####################################

# a new representation for the GAP-category IsSetsOfGenerators:
DeclareRepresentation( "IsSetsOfGeneratorsRep",
        IsSetsOfGenerators,
        [ "ListOfPositionsOfKnownSetsOfGenerators" ] );

####################################
#
# families and types:
#
####################################

# a new family:
BindGlobal( "TheFamilyOfHomalgSetsOfGenerators",
        NewFamily( "TheFamilyOfHomalgSetsOfGenerators" ) );

# a new type:
BindGlobal( "TheTypeHomalgSetsOfGenerators",
        NewType( TheFamilyOfHomalgSetsOfGenerators,
                IsSetsOfGeneratorsRep ) );

####################################
#
# methods for operations:
#
####################################

InstallMethod( PositionOfLastStoredSetOfGenerators,
        "for sets of generators",
        [ IsSetsOfGeneratorsRep ],
        
  function( gens )
    
    return Length( gens!.ListOfPositionsOfKnownSetsOfGenerators );
    
end );


####################################
#
# constructor functions and methods:
#
####################################

InstallGlobalFunction( CreateSetsOfGeneratorsForLeftModule,
  function( arg )
    local nargs, generators;
    
    nargs := Length( arg );
    
    generators := rec( ListOfPositionsOfKnownSetsOfGenerators := [ 1 ] );
    
    if IsGeneratorsOfFinitelyGeneratedModuleRep( arg[1] )
       and IsHomalgGeneratorsOfLeftModule( arg[1] ) then
        generators.1 := arg[1];
    elif IsString( arg[1] ) and Length( arg[1] ) > 2 and LowercaseString( arg[1]{[1..3]} ) = "unk" then
        generators.1 := "unknown generators";
    else
        generators.1 := CallFuncList( HomalgGeneratorsForLeftModule, arg );
    fi;
    
    ## Objectify:
    Objectify( TheTypeHomalgSetsOfGenerators, generators );
    
    return generators;
    
end );
  
InstallGlobalFunction( CreateSetsOfGeneratorsForRightModule,
  function( arg )
    local generators;
    
    generators := rec( ListOfPositionsOfKnownSetsOfGenerators := [ 1 ] );
    
    if IsGeneratorsOfFinitelyGeneratedModuleRep( arg[1] )
       and IsHomalgGeneratorsOfRightModule( arg[1] ) then
        generators.1 := arg[1];
    elif IsString( arg[1] ) and Length( arg[1] ) > 2 and LowercaseString( arg[1]{[1..3]} ) = "unk" then
        generators.1 := "unknown generators";
    else
        generators.1 := CallFuncList( HomalgGeneratorsForRightModule, arg );
    fi;
    
    ## Objectify:
    Objectify( TheTypeHomalgSetsOfGenerators, generators );
    
    return generators;
    
end );
  
####################################
#
# View, Print, and Display methods:
#
####################################

InstallMethod( ViewObj,
        "for sets of generators",
        [ IsSetsOfGeneratorsRep ],
        
  function( o )
    local l;
    
    l := Length( o!.ListOfPositionsOfKnownSetsOfGenerators );
    
    Print( "<A set containing " );
    
    if l = 1 then
        Print( "a single set " );
    else
        Print( l, " sets " );
    fi;
    
    Print( "of generators of a homalg module>" );
    
end );


[ Dauer der Verarbeitung: 0.26 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge