Back to Forum | View unanswered posts | View active topics
Topic review - Riemann-Roch computations in Brill-Noether routines |
Author |
Message |
|
|
Post subject: |
Re: Riemann-Roch computations in Brill-Noether routines |
|
|
Dear colleague, > > In the computation of a basis for the Riemann-Roch space > L(G), and for coding purposes, you can take a divisor G > supported on any closed point of degree d, not only > a rational point over the base field. > It is true though that the sake of generality produces > a little of confusion in the notation, but I will try to > explain how to get what you want from the library. > > The ring from your example > > def R=C[1][5]; > contains the "rational points" to evaluate functions, > once you have extended the base field if necessary, > so that there you do not have all the possible > "points" to build the divisor G. > > The list of "closed points" C[3] is constructed in the following way: > each point contains a couple of integers, namely the degree of the > point and the index of such point in the corresponding "local ring", > where you can find the coordinates. > > I will show you how to pass from C[3] to coordinates an vice versa, > in your example ... > > > C[3]; > > > > [1]: > > 6,1 > > [2]: > > 1,1 > > [3]: > > 1,2 > > [4]: > > 1,3 > > [5]: > > 1,4 > > [6]: > > 1,5 > > [7]: > > 1,6 > > For example the point (place) in position [4] = 1,3 > is a point of degree d=1, so that I have to look at the > local ring C[5][d][1]=C[5][1][1], and there you have a > list called POINTS where the point in position 3 > POINTS[3] is the point you look for, i.e. (0,-1,1) > > In the opposite way (precisely your question): > you know the coordinates P=(-1,0,1) and you look > for the "place" in C[3]. Then you have to look > the position of such point in the list POINTS > in C[5][1][1], since it is rational over the prime field > (in this case, the position in this ring is equal to that > in C[1][5] as long as you do not extend the base field > looking for more rational points to evaluate), > that is position 6. > Thus, you are considering the sixth point of degree 1, > which corresponds in the list of places C[3] to the > place number [7] = 1,6 > This means the divisor you want is > G=0,0,0,0,0,0,10; > (10 times the point/place P). > Now you have to be careful not to evaluate at the > rational point POINTS[6] in the ring C[1][5], > which is the same point ! > Note now that the divisor D consists of just rational > points with coefficient 1, so that you have just to choose > such points, and the syntax now is different: > > intvec D=1,2,3,4,5; > meaning that you choose the rational points number 1 to 5, > but not the 6th ! > > I am aware that the notation is confusing, but we did in > this way for the sake of generality. > > I hope I have helped you a little bit. > > Best regards, > J. Ignacio Farran.
Dear colleague, > > In the computation of a basis for the Riemann-Roch space > L(G), and for coding purposes, you can take a divisor G > supported on any closed point of degree d, not only > a rational point over the base field. > It is true though that the sake of generality produces > a little of confusion in the notation, but I will try to > explain how to get what you want from the library. > > The ring from your example > > def R=C[1][5]; > contains the "rational points" to evaluate functions, > once you have extended the base field if necessary, > so that there you do not have all the possible > "points" to build the divisor G. > > The list of "closed points" C[3] is constructed in the following way: > each point contains a couple of integers, namely the degree of the > point and the index of such point in the corresponding "local ring", > where you can find the coordinates. > > I will show you how to pass from C[3] to coordinates an vice versa, > in your example ... > > > C[3]; > > > > [1]: > > 6,1 > > [2]: > > 1,1 > > [3]: > > 1,2 > > [4]: > > 1,3 > > [5]: > > 1,4 > > [6]: > > 1,5 > > [7]: > > 1,6 > > For example the point (place) in position [4] = 1,3 > is a point of degree d=1, so that I have to look at the > local ring C[5][d][1]=C[5][1][1], and there you have a > list called POINTS where the point in position 3 > POINTS[3] is the point you look for, i.e. (0,-1,1) > > In the opposite way (precisely your question): > you know the coordinates P=(-1,0,1) and you look > for the "place" in C[3]. Then you have to look > the position of such point in the list POINTS > in C[5][1][1], since it is rational over the prime field > (in this case, the position in this ring is equal to that > in C[1][5] as long as you do not extend the base field > looking for more rational points to evaluate), > that is position 6. > Thus, you are considering the sixth point of degree 1, > which corresponds in the list of places C[3] to the > place number [7] = 1,6 > This means the divisor you want is > G=0,0,0,0,0,0,10; > (10 times the point/place P). > Now you have to be careful not to evaluate at the > rational point POINTS[6] in the ring C[1][5], > which is the same point ! > Note now that the divisor D consists of just rational > points with coefficient 1, so that you have just to choose > such points, and the syntax now is different: > > intvec D=1,2,3,4,5; > meaning that you choose the rational points number 1 to 5, > but not the 6th ! > > I am aware that the notation is confusing, but we did in > this way for the sake of generality. > > I hope I have helped you a little bit. > > Best regards, > J. Ignacio Farran.
|
|
|
|
Posted: Thu Nov 12, 2009 1:36 pm |
|
|
|
|
|
Post subject: |
Riemann-Roch computations in Brill-Noether routines |
|
|
Riemann-Roch computations in Brill-Noether routines (brnoeth.lib)
As this may be of interest for more SINGULAR users, I post this here. (The answer follows below the request.)
Frank
Hello, > > I am interested in computing dimensions of RR spaces with Singular > (and subsequently Sage). The main problem is how to define divisors on > a curve when we know the points with certain coordinates. In magma it > is done by P=C![x,y,z];D=Divisor(P); (where x,y,z are the particular > coordinates) and from there on everything works easy. > > In Singular seems that the way of doing this is using the vector G (as > in intvec G=(10,-1,0,0,9,0,0,0,0,0,0,0,0,0);). If I understand > correctly each position in G corresponds to one of the places from the > output C[3]. I think part of the confusion was that G is NOT > corresponding to the output of C[1][5]->POINTS. > > Here is an example: > LIB "brnoeth.lib"; > ring s=5,(x,y,z),lp; > list C = Adj_div(x7+y7+z7); > C = NSplaces(1,C); > C = extcurve(1,C); > C[3]; > > [1]: > 6,1 > [2]: > 1,1 > [3]: > 1,2 > [4]: > 1,3 > [5]: > 1,4 > [6]: > 1,5 > [7]: > 1,6 > > intvec G=(10,-1,0,0,0,3); > def R = C[1][2]; > setring R; > list LG = BrillNoether(G,C); > size(LG); > 48 > > This can only make sense if G[0] was the multiplicity of the divisor > at the place of degree 6. However, > > def R=C[1][5]; > setring R; > print(POINTS); > [1]: > [1]: > -1 > [2]: > 1 > [3]: > 0 > [2]: > [1]: > -2 > [2]: > -2 > [3]: > 1 > [3]: > [1]: > 0 > [2]: > -1 > [3]: > 1 > [4]: > [1]: > 2 > [2]: > 1 > [3]: > 1 > [5]: > [1]: > 1 > [2]: > 2 > [3]: > 1 > [6]: > [1]: > -1 > [2]: > 0 > [3]: > 1 > Which are only the 6 places of the degree 1. So G cannot be mapping to > the output of C[1][5]->Points. > > Here is my question. Say I want to know the dimension(or basis) for > the divisor D=10*P where P=(-1,0,1) (on the curve from the example > above). How should I setup my G to compute that (i.e. what position > should 10 be at in the intvec)?
============================================ ============= ANSWER ======================== ============================================
Dear colleague, > > In the computation of a basis for the Riemann-Roch space > L(G), and for coding purposes, you can take a divisor G > supported on any closed point of degree d, not only > a rational point over the base field. > It is true though that the sake of generality produces > a little of confusion in the notation, but I will try to > explain how to get what you want from the library. > > The ring from your example > > def R=C[1][5]; > contains the "rational points" to evaluate functions, > once you have extended the base field if necessary, > so that there you do not have all the possible > "points" to build the divisor G. > > The list of "closed points" C[3] is constructed in the following way: > each point contains a couple of integers, namely the degree of the > point and the index of such point in the corresponding "local ring", > where you can find the coordinates. > > I will show you how to pass from C[3] to coordinates an vice versa, > in your example ... > > > C[3]; > > > > [1]: > > 6,1 > > [2]: > > 1,1 > > [3]: > > 1,2 > > [4]: > > 1,3 > > [5]: > > 1,4 > > [6]: > > 1,5 > > [7]: > > 1,6 > > For example the point (place) in position [4] = 1,3 > is a point of degree d=1, so that I have to look at the > local ring C[5][d][1]=C[5][1][1], and there you have a > list called POINTS where the point in position 3 > POINTS[3] is the point you look for, i.e. (0,-1,1) > > In the opposite way (precisely your question): > you know the coordinates P=(-1,0,1) and you look > for the "place" in C[3]. Then you have to look > the position of such point in the list POINTS > in C[5][1][1], since it is rational over the prime field > (in this case, the position in this ring is equal to that > in C[1][5] as long as you do not extend the base field > looking for more rational points to evaluate), > that is position 6. > Thus, you are considering the sixth point of degree 1, > which corresponds in the list of places C[3] to the > place number [7] = 1,6 > This means the divisor you want is > G=0,0,0,0,0,0,10; > (10 times the point/place P). > Now you have to be careful not to evaluate at the > rational point POINTS[6] in the ring C[1][5], > which is the same point ! > Note now that the divisor D consists of just rational > points with coefficient 1, so that you have just to choose > such points, and the syntax now is different: > > intvec D=1,2,3,4,5; > meaning that you choose the rational points number 1 to 5, > but not the 6th ! > > I am aware that the notation is confusing, but we did in > this way for the sake of generality. > > I hope I have helped you a little bit. > > Best regards, > J. Ignacio Farran.
Riemann-Roch computations in Brill-Noether routines (brnoeth.lib)
As this may be of interest for more SINGULAR users, I post this here. (The answer follows below the request.)
Frank
Hello, > > I am interested in computing dimensions of RR spaces with Singular > (and subsequently Sage). The main problem is how to define divisors on > a curve when we know the points with certain coordinates. In magma it > is done by P=C![x,y,z];D=Divisor(P); (where x,y,z are the particular > coordinates) and from there on everything works easy. > > In Singular seems that the way of doing this is using the vector G (as > in intvec G=(10,-1,0,0,9,0,0,0,0,0,0,0,0,0);). If I understand > correctly each position in G corresponds to one of the places from the > output C[3]. I think part of the confusion was that G is NOT > corresponding to the output of C[1][5]->POINTS. > > Here is an example: > LIB "brnoeth.lib"; > ring s=5,(x,y,z),lp; > list C = Adj_div(x7+y7+z7); > C = NSplaces(1,C); > C = extcurve(1,C); > C[3]; > > [1]: > 6,1 > [2]: > 1,1 > [3]: > 1,2 > [4]: > 1,3 > [5]: > 1,4 > [6]: > 1,5 > [7]: > 1,6 > > intvec G=(10,-1,0,0,0,3); > def R = C[1][2]; > setring R; > list LG = BrillNoether(G,C); > size(LG); > 48 > > This can only make sense if G[0] was the multiplicity of the divisor > at the place of degree 6. However, > > def R=C[1][5]; > setring R; > print(POINTS); > [1]: > [1]: > -1 > [2]: > 1 > [3]: > 0 > [2]: > [1]: > -2 > [2]: > -2 > [3]: > 1 > [3]: > [1]: > 0 > [2]: > -1 > [3]: > 1 > [4]: > [1]: > 2 > [2]: > 1 > [3]: > 1 > [5]: > [1]: > 1 > [2]: > 2 > [3]: > 1 > [6]: > [1]: > -1 > [2]: > 0 > [3]: > 1 > Which are only the 6 places of the degree 1. So G cannot be mapping to > the output of C[1][5]->Points. > > Here is my question. Say I want to know the dimension(or basis) for > the divisor D=10*P where P=(-1,0,1) (on the curve from the example > above). How should I setup my G to compute that (i.e. what position > should 10 be at in the intvec)?
============================================ ============= ANSWER ======================== ============================================
Dear colleague, > > In the computation of a basis for the Riemann-Roch space > L(G), and for coding purposes, you can take a divisor G > supported on any closed point of degree d, not only > a rational point over the base field. > It is true though that the sake of generality produces > a little of confusion in the notation, but I will try to > explain how to get what you want from the library. > > The ring from your example > > def R=C[1][5]; > contains the "rational points" to evaluate functions, > once you have extended the base field if necessary, > so that there you do not have all the possible > "points" to build the divisor G. > > The list of "closed points" C[3] is constructed in the following way: > each point contains a couple of integers, namely the degree of the > point and the index of such point in the corresponding "local ring", > where you can find the coordinates. > > I will show you how to pass from C[3] to coordinates an vice versa, > in your example ... > > > C[3]; > > > > [1]: > > 6,1 > > [2]: > > 1,1 > > [3]: > > 1,2 > > [4]: > > 1,3 > > [5]: > > 1,4 > > [6]: > > 1,5 > > [7]: > > 1,6 > > For example the point (place) in position [4] = 1,3 > is a point of degree d=1, so that I have to look at the > local ring C[5][d][1]=C[5][1][1], and there you have a > list called POINTS where the point in position 3 > POINTS[3] is the point you look for, i.e. (0,-1,1) > > In the opposite way (precisely your question): > you know the coordinates P=(-1,0,1) and you look > for the "place" in C[3]. Then you have to look > the position of such point in the list POINTS > in C[5][1][1], since it is rational over the prime field > (in this case, the position in this ring is equal to that > in C[1][5] as long as you do not extend the base field > looking for more rational points to evaluate), > that is position 6. > Thus, you are considering the sixth point of degree 1, > which corresponds in the list of places C[3] to the > place number [7] = 1,6 > This means the divisor you want is > G=0,0,0,0,0,0,10; > (10 times the point/place P). > Now you have to be careful not to evaluate at the > rational point POINTS[6] in the ring C[1][5], > which is the same point ! > Note now that the divisor D consists of just rational > points with coefficient 1, so that you have just to choose > such points, and the syntax now is different: > > intvec D=1,2,3,4,5; > meaning that you choose the rational points number 1 to 5, > but not the 6th ! > > I am aware that the notation is confusing, but we did in > this way for the sake of generality. > > I hope I have helped you a little bit. > > Best regards, > J. Ignacio Farran.
|
|
|
|
Posted: Fri Nov 06, 2009 11:00 am |
|
|
|
|
|
It is currently Fri May 13, 2022 11:06 am
|
|