<?xml version="1.0" encoding="utf-8" ?> <!-- for emacs: -*- coding: utf-8 -*- --> <!-- Apache may like this line in the file .htaccess: AddCharset utf-8 .html --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head><title>examples of specifying alternate monomial orders</title> <link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/> </head> <body> <table class="buttons"> <tr> <td><div><a href="_monomial_sporders_spfor_spfree_spmodules.html">next</a> | <a href="_monomial_sporderings.html">previous</a> | <a href="_monomial_sporders_spfor_spfree_spmodules.html">forward</a> | backward | <a href="_monomial_sporderings.html">up</a> | <a href="index.html">top</a> | <a href="master.html">index</a> | <a href="toc.html">toc</a> | <a href="http://www.math.uiuc.edu/Macaulay2/">Macaulay2 web site</a></div> </td> </tr> </table> <div><a href="index.html" title="">Macaulay2Doc</a> > <a href="_rings.html" title="">rings</a> > <a href="_monomial_sporderings.html" title="">monomial orderings</a> > <a href="_examples_spof_spspecifying_spalternate_spmonomial_sporders.html" title="">examples of specifying alternate monomial orders</a></div> <hr/> <div><h1>examples of specifying alternate monomial orders</h1> <div>For definitions of these monomial orders, see <a href="___G__Rev__Lex.html" title="graded reverse lexicographical monomial order.">GRevLex</a>, <a href="___Lex.html" title="lexicographical monomial order.">Lex</a>, <a href="___Weights.html" title="assigning weights to the variables">Weights</a>, <a href="___Eliminate.html" title="elimination order">Eliminate</a>, <a href="___Group__Lex.html" title="defines a ring where some variables are inverted">GroupLex</a>, <a href="___Group__Rev__Lex.html" title="">GroupRevLex</a>, <a href="___Rev__Lex.html" title="reverse lexicographic ordering">RevLex</a>, and <a href="___N__C__Lex.html" title="Non-commutative lexicographical order.">NCLex</a>.<h2>Graded reverse lexicographic order</h2> <table class="examples"><tr><td><pre>i1 : R = ZZ[a..d];</pre> </td></tr> <tr><td><pre>i2 : a+b^100+c*d 100 o2 = b + c*d + a o2 : R</pre> </td></tr> </table> <h2>Lexicographic order</h2> <table class="examples"><tr><td><pre>i3 : R = ZZ[a..d, MonomialOrder=>Lex];</pre> </td></tr> <tr><td><pre>i4 : a+b^100+c*d 100 o4 = a + b + c*d o4 : R</pre> </td></tr> </table> <h2>Weight order</h2> <table class="examples"><tr><td><pre>i5 : R = ZZ[a..d, MonomialOrder => Weights => {201,2}];</pre> </td></tr> <tr><td><pre>i6 : a+b^100+c*d 100 o6 = a + b + c*d o6 : R</pre> </td></tr> </table> <h2>Graded lexicographic order</h2> <table class="examples"><tr><td><pre>i7 : R = ZZ[a..d, MonomialOrder=>{Weights=>4:1,Lex}];</pre> </td></tr> <tr><td><pre>i8 : a+b^100+c*d 100 o8 = b + c*d + a o8 : R</pre> </td></tr> </table> <h2>Elimination order</h2> To use an elimination order, which eliminates the first 2 variables, use<table class="examples"><tr><td><pre>i9 : R = ZZ[a..f, MonomialOrder=>Eliminate 2];</pre> </td></tr> <tr><td><pre>i10 : a+b^100+c*d 100 o10 = b + a + c*d o10 : R</pre> </td></tr> </table> Alternatively, use a weight vector<table class="examples"><tr><td><pre>i11 : R = ZZ[a..f, MonomialOrder=>Weights=>2:1];</pre> </td></tr> <tr><td><pre>i12 : a+b^100+c*d 100 o12 = b + a + c*d o12 : R</pre> </td></tr> </table> <h2>Product (block) order</h2> To make a product order where each block has the GRevLex order:<table class="examples"><tr><td><pre>i13 : R = ZZ[a..f, MonomialOrder=>{2,4}];</pre> </td></tr> <tr><td><pre>i14 : a^2*(c+d) + b*(c^100+d^100)*(c + e + f) 2 2 101 100 100 100 100 100 o14 = a c + a d + b*c + b*c*d + b*c e + b*d e + b*c f + b*d f o14 : R</pre> </td></tr> </table> The orders in each block can be other orders as well.<table class="examples"><tr><td><pre>i15 : R = ZZ[a..f, MonomialOrder=>{Weights=>2:1,Lex}] o15 = R o15 : PolynomialRing</pre> </td></tr> <tr><td><pre>i16 : a^2*(c+d) + b*(c^100+d^100)*(c + e + f) 2 2 101 100 100 100 100 100 o16 = a c + a d + b*c + b*c e + b*c f + b*c*d + b*d e + b*d f o16 : R</pre> </td></tr> </table> <h2>GroupLex</h2> This order is useful for making degree rings, and allows some variables to appear with negative exponent.<table class="examples"><tr><td><pre>i17 : R = ZZ[a..f, MonomialOrder => GroupLex => 3];</pre> </td></tr> <tr><td><pre>i18 : a^-2*(c+d) + b*(c^100+d^100)*(c + e + f) 101 100 100 100 100 100 -2 -2 o18 = b*c + b*c e + b*c f + b*c*d + b*d e + b*d f + a c + a d o18 : R</pre> </td></tr> </table> <h2>GroupRevLex</h2> This order is useful for making degree rings, and allows some variables to appear with negative exponent. Not implemented yet.<h2>RevLex</h2> Warning: this is a local ordering, not a global ordering.<table class="examples"><tr><td><pre>i19 : R = ZZ[a..f, MonomialOrder=>RevLex, Global=>false];</pre> </td></tr> <tr><td><pre>i20 : a^2*(c+d) + b*(c^100+d^100)*(c + e + f) 100 100 100 100 100 101 2 2 o20 = b*d f + b*d e + b*c*d + b*c f + b*c e + b*c + a d + a c o20 : R</pre> </td></tr> </table> <h2>NCLex</h2> For non-commutative Gröbner bases. Not implemented yet.</div> <div class="single"><h2>See also</h2> <ul><li><span><a href="___Singular_sp__Book_sp1.2.13.html" title="monomial orderings">Singular Book 1.2.13</a> -- monomial orderings</span></li> </ul> </div> </div> </body> </html>