# Singular

#### D.16.2.20 isSmooth

`Syntax:`
`Polymake::isSmooth(` cone c `)`
`Polymake::isSmooth(` fan f `)`
`Polymake::isSmooth(` polytope p `)`
`Type:`
int
`Purpose:`
1 if c, f or p is smooth, 0 otherwise.
`Example:`
 ``` LIB"polymake.lib"; ==> Welcome to polymake ==> Copyright (c) 1997-2012 ==> Ewgenij Gawrilow, Michael Joswig (TU Darmstadt) ==> http://www.polymake.org intmat M[2][2]=1,0, 0,1; cone c1 = coneViaPoints(M); Polymake::isSmooth(c1); ==> 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 ==> ==> 1 intmat N[3][3]=1,0, 1,2; cone c2 = coneViaPoints(N); Polymake::isSmooth(c2); ==> 1 intmat M[2][2]=1,0, 0,1; ==> // ** redefining M ** cone c = coneViaPoints(M); fan F1 = emptyFan(2); insertCone(F1,c); Polymake::isSmooth(F1); ==> 1 intmat N[3][3]=1,-2,-3, 1,1,0, 1,0,1; ==> // ** redefining N ** polytope q = polytopeViaPoints(N); fan F2 = Polymake::normalFan(q); Polymake::isSmooth(F2); ==> 0 intmat M[4][3]=1,2,0, 1,0,1, 1,2,1, 1,0,0; ==> // ** redefining M ** polytope p = polytopeViaPoints(M); Polymake::isSmooth(p); ==> 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 intmat N[3][3]=1,-2,-3, 1,1,0, 1,0,1; ==> // ** redefining N ** polytope q = polytopeViaPoints(N); ==> // ** redefining q ** Polymake::isSmooth(q); ==> 0 ```