gap-system / gap
Showing 2 of 2 files from the diff.

@@ -570,8 +570,10 @@
Loading
570 570
##
571 571
InstallMethod(IsomorphismPermGroup,"via niceomorphisms",true,
572 572
  [IsGroup and IsFinite and IsHandledByNiceMonomorphism],
573 -
  # this is intended to be better than the generic ``action on element''
574 -
  # method. However for example for matrix groups there are better methods
573 +
  # This is intended to be better than the generic ``action on element''
574 +
  # method. However for example for matrix groups there are better methods.
575 +
  # The downranking is compatible with that for the method for finite
576 +
  # matrix groups in 'lib/grpmat.gi'.
575 577
  -NICE_FLAGS+5,
576 578
function(g)
577 579
local mon,iso;

@@ -527,19 +527,23 @@
Loading
527 527
##
528 528
##  If <mat-grp> does not know whether it is finite,
529 529
##  there is currently no concurrent method,
530 -
##  thus no rank shift is necessary in the first method installation.
530 +
##  thus no rank shift is necessary for the method installation.
531 531
##
532 532
##  If <mat-grp> knows to be finite, we want our method to beat the one for
533 -
##  'IsGroup and IsFinite and IsHandledByNiceMonomorphism',
534 -
##  so we install it with the same rank shift as that method.
535 -
##  (Note that 'IsHandledByNiceMonomorphism' is implied by
536 -
##  'IsMatrixGroup and IsFinite'.)
537 -
##
538 -
##  Installing just one method (with requirement 'IsMatrixGroup') would be
539 -
##  difficult since we do not know the rank of 'IsGroup and IsFinite'.
540 -
##
541 -
InstallMethod( IsomorphismPermGroup,"matrix group",
542 -
  [ IsMatrixGroup ],
533 +
##  'IsGroup and IsFinite and IsHandledByNiceMonomorphism'.
534 +
##
535 +
##  Installing just *one* method (with requirement 'IsMatrixGroup') would be
536 +
##  possible via (dynamic) upranking,
537 +
##  but here we install our method twice, with the different requirements
538 +
##  'IsMatrixGroup' and 'IsMatrixGroup and IsFinite'.
539 +
##  (Note that 'IsHandledByNiceMonomorphism' is implied by the latter,
540 +
##  and that we apply the same downranking in the second installation
541 +
##  that happens in the installation of the method for
542 +
##  'IsGroup and IsFinite and IsHandledByNiceMonomorphism';
543 +
##  we could get rid of the two downrankings, but this might affect code
544 +
##  that is not distributed with GAP.)
545 +
##
546 +
BindGlobal( "IsomorphismPermGroupForMatrixGroup",
543 547
function(G)
544 548
local map;
545 549
  if HasNiceMonomorphism(G) and IsPermGroup(Range(NiceMonomorphism(G))) then
@@ -559,25 +563,19 @@
Loading
559 563
  fi;
560 564
end);
561 565
566 +
InstallMethod( IsomorphismPermGroup,
567 +
    "matrix group",
568 +
    [ IsMatrixGroup ],
569 +
    IsomorphismPermGroupForMatrixGroup );
570 +
562 571
InstallMethod( IsomorphismPermGroup,
563 572
    "finite matrix group",
564 -
    [ IsMatrixGroup and IsFinite ], 5-NICE_FLAGS,
565 -
    function( G )
566 -
    local map;
567 -
568 -
    if HasNiceMonomorphism( G ) and
569 -
       IsPermGroup( Range( NiceMonomorphism( G ) ) ) then
570 -
      map:= NiceMonomorphism( G );
571 -
      if IsIdenticalObj( Source( map ), G ) then
572 -
        return map;
573 -
      fi;
574 -
      return GeneralRestrictedMapping( map, G, Image( map, G ) );
575 -
    else
576 -
      map:= NicomorphismOfGeneralMatrixGroup( G, false, false );
577 -
      SetNiceMonomorphism( G, map );
578 -
      return map;
579 -
    fi;
580 -
end );
573 +
    [ IsMatrixGroup and IsFinite and IsHandledByNiceMonomorphism ],
574 +
    # The downranking is compatible with that for the method for
575 +
    # 'IsGroup and IsFinite and IsHandledByNiceMonomorphism'
576 +
    # (see 'lib/grpnice.gi').
577 +
    5-NICE_FLAGS,
578 +
    IsomorphismPermGroupForMatrixGroup );
581 579
582 580
583 581
#############################################################################
Files Coverage
grp 93.44%
hpcgap 75.55%
lib 81.13%
src 84.87%
Project Totals (686 files) 81.93%
1
coverage:
2
  precision: 2
3
  round: down
4
  range: "70...100"
5

6
  status:
7
    project:
8
      default:
9
        informational: true
10
    patch:
11
      default:
12
        informational: true
13
    changes:
14
      default:
15
        informational: true
16

17
comment: false
18

19
ignore:
20
 - "extern"
21
 - "hpcgap/extern"
22
 - "tst"
23
 - "pkg"
24
 - "grp/*.grp"
Sunburst
The inner-most circle is the entire project, moving away from the center are folders then, finally, a single file. The size and color of each slice is representing the number of statements and the coverage, respectively.
Icicle
The top section represents the entire project. Proceeding with folders and finally individual files. The size and color of each slice is representing the number of statements and the coverage, respectively.
Grid
Each block represents a single file in the project. The size and color of each block is represented by the number of statements and the coverage, respectively.
Loading