# Singular

#### D.15.2.25 chHom

Procedure from library `chern.lib` (see chern_lib).

Usage:
chHom(r, c, R, C [, N]); r, R polynomials (integers); c, C lists of polynomials, N integer

Return:
list of polynomials

Purpose:
computes [up to degree N] the list of Chern classe of the vector bundle Hom(E, F) in terms of the ranks and the Chern clases of E and F

Note:

Example:
 ```LIB "chern.lib"; ring H = 0, ( r, R, c(1..3), C(1..2) ), dp; list l=c(1..3); list L=C(1..2); // the Chern classes of Hom(E, F) for a vector bundle E of rank 3 // with Chern classes c(1), c(2), c(3) // and a vector bundle F of rank 2 with Chern classes C(1) and C(2): print( chHom(3, l, 2, L) ); ==> [1]: ==> -2*c(1)+3*C(1) ==> [2]: ==> c(1)^2-5*c(1)*C(1)+3*C(1)^2+2*c(2)+3*C(2) ==> [3]: ==> 2*c(1)^2*C(1)-4*c(1)*C(1)^2+C(1)^3-2*c(1)*c(2)+4*c(2)*C(1)-4*c(1)*C(2)\ +6*C(1)*C(2)-2*c(3) ==> [4]: ==> c(1)^2*C(1)^2-c(1)*C(1)^3-3*c(1)*c(2)*C(1)+3*c(2)*C(1)^2+2*c(1)^2*C(2)\ -6*c(1)*C(1)*C(2)+3*C(1)^2*C(2)+c(2)^2+2*c(1)*c(3)-3*c(3)*C(1)+3*C(2)^2 ==> [5]: ==> -c(1)*c(2)*C(1)^2+c(2)*C(1)^3+2*c(1)^2*C(1)*C(2)-2*c(1)*C(1)^2*C(2)+c(\ 2)^2*C(1)+2*c(1)*c(3)*C(1)-3*c(3)*C(1)^2-2*c(1)*c(2)*C(2)-2*c(1)*C(2)^2+3\ *C(1)*C(2)^2-2*c(2)*c(3)+6*c(3)*C(2) ==> [6]: ==> c(1)*c(3)*C(1)^2-c(3)*C(1)^3-c(1)*c(2)*C(1)*C(2)+c(2)*C(1)^2*C(2)+c(1)\ ^2*C(2)^2-c(1)*C(1)*C(2)^2-c(2)*c(3)*C(1)+c(2)^2*C(2)-2*c(1)*c(3)*C(2)+3*\ c(3)*C(1)*C(2)-2*c(2)*C(2)^2+C(2)^3+c(3)^2 // the first two Chern classes of Hom(E, F) for a vector bundle E of rank r // with Chern classes c(1) and c(2) // and a vector bundle G of rank R with Chern classes C(1) and C(2) // this gives the Chern classes of a tensor product on a complex surface l=c(1..2); L=C(1..2); print( chHom(r, l, R, L, 2 ) ); ==> [1]: ==> -R*c(1)+r*C(1) ==> [2]: ==> 1/2*R^2*c(1)^2-r*R*c(1)*C(1)+1/2*r^2*C(1)^2-1/2*R*c(1)^2-1/2*r*C(1)^2+\ R*c(2)+c(1)*C(1)+r*C(2) ```