|
D.15.4.3 CompInt
Procedure from library cimonom.lib (see cimonom_lib).
- Usage:
- CompInt(d); d intvec.
- Return:
- 1 if the toric ideal I(d) is a complete intersection or 0 otherwise.
- Assume:
- d is a vector of positive integers.
- Note:
- If printlevel > 0, additional info is displayed in case
I(d) is a complete intersection:
if printlevel >= 1, it displays a minimal set of generators of the toric
ideal formed by quasihomogeneous binomials. Moreover, if printlevel >= 2
and gcd(d) = 1, it also shows the Frobenius number of the semigroup
generated by the elements in d.
Example:
| LIB "cimonom.lib";
printlevel = 0;
intvec d = 14,15,10,21;
CompInt(d);
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> return(b[1]/\
gcd(a,b[1]));<<
==> // ** int division with `/`: use `div` instead in line >> return(b[1]/\
gcd(a,b[1]));<<
==> 1
printlevel = 3;
d = 36,54,125,150,225;
CompInt(d);
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> return(b[1]/\
gcd(a,b[1]));<<
==> // ** int division with `/`: use `div` instead in line >> return(b[1]/\
gcd(a,b[1]));<<
==> // Toric ideal:
==> id[1]=-x(1)^3+x(2)^2
==> id[2]=-x(4)^3+x(5)^2
==> id[3]=-x(3)^3+x(4)*x(5)
==> id[4]=-x(1)^11*x(2)+x(4)^3
==> // Frobenius number of the numerical semigroup:
==> 793
==> 1
d = 45,70,75,98,147;
CompInt(d);
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new1 = d\
[j]/new;<<
==> // ** int division with `/`: use `div` instead in line >> new2 = d\
[i]/new;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[n+i] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> \
new = d[l] / divide;<<
==> // ** int division with `/`: use `div` instead in line >> return(b[1]/\
gcd(a,b[1]));<<
==> // ** int division with `/`: use `div` instead in line >> return(b[1]/\
gcd(a,b[1]));<<
==> 0
|
|