Skip to content

Commit 5dcdcda

Browse files
committed
Precompile all primitively installed operations of CategoryOfColumns(AsOppositeOfCategoryOfRows)
1 parent 469cffc commit 5dcdcda

File tree

7 files changed

+1056
-187
lines changed

7 files changed

+1056
-187
lines changed

CompilerForCAP/examples/PrecompileCategoryOfColumnsOfField.g

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,7 @@ category_constructor :=
1414
given_arguments := [ QQ ];;
1515
compiled_category_name := "CategoryOfColumnsOfFieldPrecompiled";;
1616
package_name := "FreydCategoriesForCAP";;
17-
operations := Intersection(
18-
ListPrimitivelyInstalledOperationsOfCategory( CategoryOfColumns( QQ ) ),
19-
CAP_JIT_INTERNAL_SAFE_OPERATIONS
20-
);;
21-
operations := Filtered(
22-
operations,
23-
o -> PositionSublist( o, "HomomorphismStructure" ) = fail
24-
);;
17+
operations := "primitive";;
2518

2619
CapJitPrecompileCategoryAndCompareResult(
2720
category_constructor,

CompilerForCAP/examples/PrecompileOppositeOfCategoryOfRowsOfField.g

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,7 @@ category_constructor :=
1414
given_arguments := [ QQ ];;
1515
compiled_category_name := "OppositeOfCategoryOfRowsOfFieldPrecompiled";;
1616
package_name := "FreydCategoriesForCAP";;
17-
operations := Intersection(
18-
ListPrimitivelyInstalledOperationsOfCategory( CategoryOfColumns( QQ ) ),
19-
CAP_JIT_INTERNAL_SAFE_OPERATIONS
20-
);;
21-
operations := Filtered(
22-
operations,
23-
o -> PositionSublist( o, "HomomorphismStructure" ) = fail
24-
);;
17+
operations := "primitive";;
2518

2619
CapJitPrecompileCategoryAndCompareResult(
2720
category_constructor,

FreydCategoriesForCAP/gap/CategoryOfColumns.gi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -832,7 +832,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS,
832832
return CategoryOfColumnsMorphism( cat,
833833
DistinguishedObjectOfHomomorphismStructure( cat ),
834834
underlying_matrix,
835-
HomomorphismStructureOnObjects( Source( alpha ), Range( alpha ) )
835+
HomomorphismStructureOnObjects( cat, Source( alpha ), Range( alpha ) )
836836
);
837837

838838
end );
@@ -931,7 +931,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS,
931931

932932
if rank = 0 then
933933

934-
return ZeroMorphism( tensor_object, unit );
934+
return ZeroMorphism( cat, tensor_object, unit );
935935

936936
fi;
937937

@@ -953,7 +953,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS,
953953

954954
if rank = 0 then
955955

956-
return ZeroMorphism( unit, tensor_object );
956+
return ZeroMorphism( cat, unit, tensor_object );
957957

958958
fi;
959959

@@ -966,7 +966,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS,
966966
end );
967967

968968
##
969-
AddMorphismToBidualWithGivenBidual( category, { cat, obj, dual } -> IdentityMorphism( obj ) );
969+
AddMorphismToBidualWithGivenBidual( category, { cat, obj, dual } -> IdentityMorphism( cat, obj ) );
970970

971971
fi; ## commutative case
972972

FreydCategoriesForCAP/gap/CategoryOfColumnsAsOppositeOfCategoryOfRows.gi

Lines changed: 6 additions & 161 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ InstallMethod( CategoryOfColumnsAsOppositeOfCategoryOfRows,
1919

2020
category_of_rows := CategoryOfRows( homalg_ring : FinalizeCategory := true );
2121

22-
op := Opposite( category_of_rows, Concatenation( "Columns( ", RingName( homalg_ring )," )" ) : FinalizeCategory := false );
22+
op := Opposite( category_of_rows, Concatenation( "Columns( ", RingName( homalg_ring )," )" ) : only_primitive_operations := true, FinalizeCategory := false );
2323

2424
##
2525
AddObjectConstructor( op, function( cat, underlying_object )
@@ -66,6 +66,7 @@ InstallMethod( CategoryOfColumnsAsOppositeOfCategoryOfRows,
6666
op!.compiler_hints := rec(
6767
category_attribute_names := [
6868
"UnderlyingRing",
69+
"Opposite",
6970
],
7071
source_and_range_attributes_from_morphism_attribute := rec(
7172
object_attribute_name := "RankOfObject",
@@ -145,14 +146,6 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS_AS_OPPOSITE_OF_
145146

146147
if HasIsCommutative( ring ) and IsCommutative( ring ) then
147148

148-
##
149-
AddMultiplyWithElementOfCommutativeRingForMorphisms( category,
150-
function( cat, r, alpha )
151-
152-
return CategoryOfColumnsMorphism( cat, Source( alpha ), r * UnderlyingMatrix( alpha ), Range( alpha ) );
153-
154-
end );
155-
156149
## Operations related to homomorphism structure
157150

158151
SetRangeCategoryOfHomomorphismStructure( category, category );
@@ -195,7 +188,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS_AS_OPPOSITE_OF_
195188
return CategoryOfColumnsMorphism( cat,
196189
DistinguishedObjectOfHomomorphismStructure( cat ),
197190
underlying_matrix,
198-
HomomorphismStructureOnObjects( Source( alpha ), Range( alpha ) )
191+
HomomorphismStructureOnObjects( cat, Source( alpha ), Range( alpha ) )
199192
);
200193

201194
end );
@@ -294,7 +287,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS_AS_OPPOSITE_OF_
294287

295288
if rank = 0 then
296289

297-
return ZeroMorphism( tensor_object, unit );
290+
return ZeroMorphism( cat, tensor_object, unit );
298291

299292
fi;
300293

@@ -316,7 +309,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS_AS_OPPOSITE_OF_
316309

317310
if rank = 0 then
318311

319-
return ZeroMorphism( unit, tensor_object );
312+
return ZeroMorphism( cat, unit, tensor_object );
320313

321314
fi;
322315

@@ -329,158 +322,10 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS_AS_OPPOSITE_OF_
329322
end );
330323

331324
##
332-
AddMorphismToBidualWithGivenBidual( category, { cat, obj, dual } -> IdentityMorphism( obj ) );
325+
AddMorphismToBidualWithGivenBidual( category, { cat, obj, dual } -> IdentityMorphism( cat, obj ) );
333326

334327
fi; ## commutative case
335328

336-
## Simplifications
337-
338-
## Source and Range
339-
##
340-
AddSimplifySourceAndRange( category,
341-
function( cat, alpha, i )
342-
343-
return
344-
CategoryOfColumnsMorphism( cat,
345-
Source( alpha ),
346-
CATEGORY_OF_COLUMNS_SimplificationSourceAndRangeTuple( alpha )[1],
347-
Range( alpha )
348-
);
349-
350-
end );
351-
352-
##
353-
AddSimplifySourceAndRange_IsoToInputRange( category,
354-
function( cat, alpha, i )
355-
356-
return
357-
CategoryOfColumnsMorphism( cat,
358-
Range( alpha ),
359-
CATEGORY_OF_COLUMNS_SimplificationSourceAndRangeTuple( alpha )[4],
360-
Range( alpha )
361-
);
362-
363-
end );
364-
365-
##
366-
AddSimplifySourceAndRange_IsoFromInputRange( category,
367-
function( cat, alpha, i )
368-
369-
return
370-
CategoryOfColumnsMorphism( cat,
371-
Range( alpha ),
372-
CATEGORY_OF_COLUMNS_SimplificationSourceAndRangeTuple( alpha )[2],
373-
Range( alpha )
374-
);
375-
376-
end );
377-
378-
##
379-
AddSimplifySourceAndRange_IsoToInputSource( category,
380-
function( cat, alpha, i )
381-
382-
return
383-
CategoryOfColumnsMorphism( cat,
384-
Source( alpha ),
385-
CATEGORY_OF_COLUMNS_SimplificationSourceAndRangeTuple( alpha )[3],
386-
Source( alpha )
387-
);
388-
389-
end );
390-
391-
##
392-
AddSimplifySourceAndRange_IsoFromInputSource( category,
393-
function( cat, alpha, i )
394-
395-
return
396-
CategoryOfColumnsMorphism( cat,
397-
Source( alpha ),
398-
CATEGORY_OF_COLUMNS_SimplificationSourceAndRangeTuple( alpha )[5],
399-
Source( alpha )
400-
);
401-
402-
end );
403-
404-
## only Source
405-
##
406-
AddSimplifySource( category,
407-
function( cat, alpha, i )
408-
409-
return
410-
CategoryOfColumnsMorphism( cat,
411-
Source( alpha ),
412-
CATEGORY_OF_COLUMNS_SimplificationSourceTuple( alpha )[1],
413-
Range( alpha )
414-
);
415-
416-
end );
417-
418-
##
419-
AddSimplifySource_IsoToInputObject( category,
420-
function( cat, alpha, i )
421-
422-
return
423-
CategoryOfColumnsMorphism( cat,
424-
Source( alpha ),
425-
CATEGORY_OF_COLUMNS_SimplificationSourceTuple( alpha )[2],
426-
Source( alpha )
427-
);
428-
429-
end );
430-
431-
##
432-
AddSimplifySource_IsoFromInputObject( category,
433-
function( cat, alpha, i )
434-
435-
return
436-
CategoryOfColumnsMorphism( cat,
437-
Source( alpha ),
438-
CATEGORY_OF_COLUMNS_SimplificationSourceTuple( alpha )[3],
439-
Source( alpha )
440-
);
441-
442-
end );
443-
444-
## only Range
445-
##
446-
AddSimplifyRange( category,
447-
function( cat, alpha, i )
448-
449-
return
450-
CategoryOfColumnsMorphism( cat,
451-
Source( alpha ),
452-
CATEGORY_OF_COLUMNS_SimplificationRangeTuple( alpha )[1],
453-
Range( alpha )
454-
);
455-
456-
end );
457-
458-
##
459-
AddSimplifyRange_IsoToInputObject( category,
460-
function( cat, alpha, i )
461-
462-
return
463-
CategoryOfColumnsMorphism( cat,
464-
Range( alpha ),
465-
CATEGORY_OF_COLUMNS_SimplificationRangeTuple( alpha )[3],
466-
Range( alpha )
467-
);
468-
469-
end );
470-
471-
##
472-
AddSimplifyRange_IsoFromInputObject( category,
473-
function( cat, alpha, i )
474-
475-
return
476-
CategoryOfColumnsMorphism( cat,
477-
Range( alpha ),
478-
CATEGORY_OF_COLUMNS_SimplificationRangeTuple( alpha )[2],
479-
Range( alpha )
480-
);
481-
482-
end );
483-
484329
##
485330
AddSomeReductionBySplitEpiSummand( category,
486331
function( cat, alpha )

FreydCategoriesForCAP/gap/CategoryOfRows.gi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -822,7 +822,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_ROWS,
822822
return CategoryOfRowsMorphism( cat,
823823
DistinguishedObjectOfHomomorphismStructure( cat ),
824824
underlying_matrix,
825-
HomomorphismStructureOnObjects( Source( alpha ), Range( alpha ) )
825+
HomomorphismStructureOnObjects( cat, Source( alpha ), Range( alpha ) )
826826
);
827827

828828
end );
@@ -920,7 +920,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_ROWS,
920920

921921
if rank = 0 then
922922

923-
return ZeroMorphism( tensor_object, unit );
923+
return ZeroMorphism( cat, tensor_object, unit );
924924

925925
fi;
926926

@@ -942,7 +942,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_ROWS,
942942

943943
if rank = 0 then
944944

945-
return ZeroMorphism( unit, tensor_object );
945+
return ZeroMorphism( cat, unit, tensor_object );
946946

947947
fi;
948948

@@ -955,7 +955,7 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_CATEGORY_OF_ROWS,
955955
end );
956956

957957
##
958-
AddMorphismToBidualWithGivenBidual( category, { cat, obj, dual } -> IdentityMorphism( obj ) );
958+
AddMorphismToBidualWithGivenBidual( category, { cat, obj, dual } -> IdentityMorphism( cat, obj ) );
959959

960960
fi; ## commutative case
961961

0 commit comments

Comments
 (0)