@@ -1127,6 +1127,90 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_ADDITIVE_CLOSURE,
11271127
11281128 fi ;
11291129
1130+ if ForAll( [ " BasisOfExternalHom" ,
1131+ " CoefficientsOfMorphismWithGivenBasisOfExternalHom" ,
1132+ " ZeroMorphism" ] , op -> CanCompute( underlying_category, op ) ) then
1133+
1134+ # #
1135+ AddBasisOfExternalHom( category,
1136+ function ( cat, object_1, object_2 )
1137+ local size_i, size_j, listlist, L;
1138+
1139+ size_i := Size( ObjectList( object_1 ) );
1140+ size_j := Size( ObjectList( object_2 ) );
1141+
1142+ listlist := List( [ 1 .. size_i ] , i ->
1143+ List( [ 1 .. size_j ] , j ->
1144+ ZeroMorphism( object_1[ i] , object_2[ j] )
1145+ )
1146+ );
1147+
1148+ return
1149+ Concatenation(
1150+ List( [ 1 .. size_i ] , i ->
1151+ Concatenation(
1152+ List( [ 1 .. size_j ] ,
1153+ function ( j )
1154+ local current_basis;
1155+
1156+ current_basis := BasisOfExternalHom( object_1[ i ] , object_2[ j ] );
1157+
1158+ return List( current_basis,
1159+ function ( m )
1160+ local z;
1161+ z := listlist[ i, j ] ;
1162+ listlist[ i, j ] := m;
1163+ m := AdditiveClosureMorphismListList( object_1, listlist, object_2 );
1164+ listlist[ i, j ] := z;
1165+ return m;
1166+ end
1167+ );
1168+
1169+ end
1170+ )
1171+ )
1172+ )
1173+ );
1174+ end );
1175+
1176+ # #
1177+ InstallMethod( CoefficientsOfMorphism,
1178+ [ IsAdditiveClosureMorphism and MorphismFilter( category ) ] ,
1179+
1180+ function ( morphism )
1181+ local object_1, object_2, nr_rows, nr_cols;
1182+
1183+ object_1 := Source( morphism );
1184+
1185+ object_2 := Range( morphism );
1186+
1187+ nr_rows := NumberRows( morphism );
1188+
1189+ nr_cols := NumberColumns( morphism );
1190+
1191+ return
1192+ Concatenation(
1193+ List( [ 1 .. nr_rows ] ,
1194+ i -> Concatenation(
1195+ List( [ 1 .. nr_cols ] ,
1196+ j -> CoefficientsOfMorphismWithGivenBasisOfExternalHom(
1197+ morphism[ i, j ] ,
1198+ BasisOfExternalHom( object_1[ i ] , object_2[ j ] )
1199+ )
1200+ )
1201+ )
1202+ )
1203+ );
1204+
1205+ end );
1206+
1207+ # #
1208+ AddCoefficientsOfMorphismWithGivenBasisOfExternalHom( category,
1209+ { cat, morphism, B} -> CoefficientsOfMorphism( morphism )
1210+ );
1211+
1212+ fi ;
1213+
11301214end );
11311215
11321216# ###################################
0 commit comments