@@ -1081,6 +1081,84 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_ADDITIVE_CLOSURE,
1081
1081
1082
1082
fi ;
1083
1083
1084
+ if ForAll( [ " BasisOfExternalHom" ,
1085
+ " CoefficientsOfMorphismWithGivenBasisOfExternalHom" ,
1086
+ " ZeroMorphism" ] ,
1087
+ f -> CanCompute( underlying_category, f ) ) then
1088
+
1089
+ # #
1090
+ AddBasisOfExternalHom( category,
1091
+ function ( object_1, object_2 )
1092
+ local size_i, size_j, listlist, L;
1093
+
1094
+ size_i := Size( ObjectList( object_1 ) );
1095
+ size_j := Size( ObjectList( object_2 ) );
1096
+
1097
+ listlist := List( [ 1 .. size_i ] , i ->
1098
+ List( [ 1 .. size_j ] , j ->
1099
+ ZeroMorphism( object_1[ i] , object_2[ j] )
1100
+ )
1101
+ );
1102
+
1103
+ return
1104
+ Concatenation(
1105
+ List( [ 1 .. size_i ] , i ->
1106
+ Concatenation(
1107
+ List( [ 1 .. size_j ] ,
1108
+ function ( j )
1109
+ local current_basis;
1110
+
1111
+ current_basis := BasisOfExternalHom( object_1[ i ] , object_2[ j ] );
1112
+
1113
+ return List( current_basis,
1114
+ function ( m )
1115
+ local z;
1116
+ z := listlist[ i, j ] ;
1117
+ listlist[ i, j ] := m;
1118
+ m := AdditiveClosureMorphismListList( object_1, listlist, object_2 );
1119
+ listlist[ i, j ] := z;
1120
+ return m;
1121
+ end
1122
+ );
1123
+
1124
+ end
1125
+ )
1126
+ )
1127
+ )
1128
+ );
1129
+ end );
1130
+
1131
+ # #
1132
+ AddCoefficientsOfMorphismWithGivenBasisOfExternalHom( category,
1133
+ function ( morphism, basis )
1134
+ local object_1, object_2, nr_rows, nr_cols;
1135
+
1136
+ object_1 := Source( morphism );
1137
+
1138
+ object_2 := Range( morphism );
1139
+
1140
+ nr_rows := NumberRows( morphism );
1141
+
1142
+ nr_cols := NumberColumns( morphism );
1143
+
1144
+ return
1145
+ Concatenation(
1146
+ List( [ 1 .. nr_rows ] ,
1147
+ i -> Concatenation(
1148
+ List( [ 1 .. nr_cols ] ,
1149
+ j -> CoefficientsOfMorphismWithGivenBasisOfExternalHom(
1150
+ morphism[ i, j ] ,
1151
+ BasisOfExternalHom( object_1[ i ] , object_2[ j ] )
1152
+ )
1153
+ )
1154
+ )
1155
+ )
1156
+ );
1157
+
1158
+ end );
1159
+
1160
+ fi ;
1161
+
1084
1162
end );
1085
1163
1086
1164
# ###################################
0 commit comments