# isQCartier -- whether m times a divisor is Cartier for any m from 1 to a fixed positive integer n1.

## Synopsis

• Usage:
isQCartier(n1, D1 )
isQCartier(n1, D2 )
• Inputs:
• Optional inputs:
• IsGraded => , default value false, specify that we should do this computation on a projective algebraic variety
• Outputs:
• b, ,

## Description

Check whether $m$ times a Weil or Q-divisor $D$ is Cartier for each $m$ from 1 to a fixed positive integer n1 (if the divisor is a QWeilDivisor, it can search slightly higher than n1). If m * D1 is Cartier, it returns m. If it fails to find an m, it returns 0.

 i1 : R = QQ[x, y, z] / ideal(x * y - z^2 ); i2 : D1 = divisor({1, 2}, {ideal(x, z), ideal(y, z)}) o2 = 2*Div(y, z) + Div(x, z) o2 : WeilDivisor on R i3 : D2 = divisor({1/2, 3/4}, {ideal(y, z), ideal(x, z)}, CoefficientType => QQ) o3 = 1/2*Div(y, z) + 3/4*Div(x, z) o3 : QWeilDivisor on R i4 : isQCartier(10, D1) o4 = 2 i5 : isQCartier(10, D2) o5 = 8
 i6 : R = QQ[x, y, u, v] / ideal(x * y - u * v); i7 : D1 = divisor({1, 2}, {ideal(x, u), ideal(y, v)}) o7 = Div(x, u) + 2*Div(y, v) o7 : WeilDivisor on R i8 : D2 = divisor({1/2, -3/4}, {ideal(y, u), ideal(x, v)}, CoefficientType => QQ) o8 = 1/2*Div(y, u) + -3/4*Div(x, v) o8 : QWeilDivisor on R i9 : isQCartier(10, D1) o9 = 0 i10 : isQCartier(10, D2) o10 = 0

If the option IsGraded is set to true (by default it is false), then it treats the divisor as a divisor on the $Proj$ of their ambient ring.

 i11 : R = QQ[x, y, z] / ideal(x * y - z^2 ); i12 : D1 = divisor({1, 2}, {ideal(x, z), ideal(y, z)}) o12 = 2*Div(y, z) + Div(x, z) o12 : WeilDivisor on R i13 : D2 = divisor({1/2, 3/4}, {ideal(y, z), ideal(x, z)}, CoefficientType => QQ) o13 = 1/2*Div(y, z) + 3/4*Div(x, z) o13 : QWeilDivisor on R i14 : isQCartier(10, D1, IsGraded => true) o14 = 1 i15 : isQCartier(10, D2, IsGraded => true) o15 = 4

The output value of this function is stored in the divisor's cache with the value of the last IsGraded option. If you change the IsGraded option, the value will be recomputed.