add isTriangular*