# Singular

#### D.16.2.8 gorensteinVector

`Syntax:`
`Polymake::gorensteinVector(` polytope p `)`
`Assume:`
p is Gorenstein, i.e. n*p+v is reflexive for some dilatation n and translation v.
`Type:`
intvec
`Purpose:`
returns a vector v such that n*p+v is reflexive for some dilatation v.
`Note:`
you can check whether p is Gorenstein by Polymake::isGorenstein(p); the dilatation n can be computed via Polymake::gorensteinIndex(p).
`Example:`
 ``` LIB"polymake.lib"; ==> Welcome to polymake ==> Copyright (c) 1997-2012 ==> Ewgenij Gawrilow, Michael Joswig (TU Darmstadt) ==> http://www.polymake.org intmat M[4][3]=1,1,0, 1,0,1, 1,0,0, 1,1,1; polytope p = polytopeViaPoints(M); Polymake::gorensteinVector(p); ==> polymake: used package cddlib ==> Implementation of the double description method of Motzkin et al. ==> Copyright by Komei Fukuda. ==> http://www.ifor.math.ethz.ch/~fukuda/cdd_home/cdd.html ==> ==> polymake: used package lrslib ==> Implementation of the reverse search algorithm of Avis and Fukuda. ==> Copyright by David Avis. ==> http://cgm.cs.mcgill.ca/~avis/lrs.html ==> ==> 1,1,1 intmat N[3][3]=1,2,0, 1,0,2, 1,-2,-2; polytope q = polytopeViaPoints(N); Polymake::gorensteinVector(q); ==> ? gorensteinVector: input polytope not gorenstein ==> ? error occurred in or before ./examples/gorensteinVector.sing line 7:\ ` Polymake::gorensteinVector(q);` ```