#### D.5.1.1 RiemannRochBN

Procedure from library `brillnoether.lib` (see brillnoether_lib).

Usage:
  RiemannRochBN(C,I,J); ideal C, ideal I, ideal J

Assume:
  C is a homogeneous ideal defining a projective curve. If C is a non-planar curve, then C is assumed to be
  nonsingular. This assumption is not checked.
  The ideals I and J represent a
  a divisor D on C.

Return:
  A vector space basis of the Riemann-Roch space of D,
  stored in a list RRBasis. The list RRBasis contains a list IH and a form F. The vector space basis of L(D)
  consists of all rational functions G/F, where G is an element of IH.

Example:

    LIB "brillnoether.lib";
    ring R = 0,(x,y,z),dp;
    poly f = y^2+x^2-1;
    f = homog(f,z);
    ideal C = f;
    ideal P1 = x,y-z;
    ideal P2 = x^2+y^2,z;
    ideal I = intersect(P1^3,P2^2);
    ideal P3 = x+z,y;
    ideal J = P3^2;
    RiemannRochBN(C,I,J);
    ==> [1]:
    ==>    _[1]=65y2z2-81xz3-81z4
    ==>    _[2]=65xyz2+63xz3+65yz3+63z4
    ==>    _[3]=65y3z-81xyz2-81yz3
    ==>    _[4]=65xy2z-81x2z2-81xz3
    ==>    _[5]=65y4-81xy2z-81y2z2
    ==>    _[6]=65xy3-81x2yz-81xyz2
    ==> [2]:
    ==>    8xyz2-y2z2-8xz3+2yz3-z4

User manual for Singular version 4.4.1, 2025, generated by texi2html.