|   | 1 |  initial version  | 
Sage doesn't have a direct 'print out the h* vector' command. It's not too difficult to manipulate the Ehrhart polynomial to get it, though I'm not sure my way could be cleanly implemented into Sage proper.
Let's say P is your polytope, of dimension n=P.dimension(), with Ehrhart polynomial p=P.ehrhart_polynomial() . Also, let t=p.parent().gen() . We need a polynomial ring to work over, and this let's us work over the same polynomial ring as p. Now, compute the first n+2 terms of the Ehrhart series (or more, if you want to be safe) X=0 for i in range(0,n+10): X+=p(i)*t^i print(X)
Now, look at X(1-t)^(n+1) . If X were the entire infinite Ehrhart series, we would get exactly the h vector. But since we took sufficiently many terms of the Ehrhart series, we'll get lower order terms corresponding to the h* vector, and higher order error terms that can be discarded.
|   | 2 |  No.2 Revision  | 
Sage doesn't have a direct 'print out the h* vector' command. It's not too difficult to manipulate the Ehrhart polynomial to get it, though I'm not sure my way could be cleanly implemented into Sage proper.
Let's say P P is your polytope, of dimension n=P.dimension(), n=P.dimension(), with Ehrhart polynomial p=P.ehrhart_polynomial() p=P.ehrhart_polynomial() . Also, let t=p.parent().gen() t=p.parent().gen() . We need a polynomial ring to work over, and this let's us work over the same polynomial ring as p. Now, compute the first n+2 terms of the Ehrhart series (or more, if you want to be safe)
safe)
X=0
for i in range(0,n+10):
    X+=p(i)*t^i
print(X)print(X)
Now, look at X(1-t)^(n+1) X*(1-t)^(n+1) . If X were the entire infinite Ehrhart series, we would get exactly the h h* vector. But since we took sufficiently many terms of the Ehrhart series, we'll get lower order terms corresponding to the h* vector, and higher order error terms that can be discarded.
 Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.
 
                
                Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.