rotateNodes is a simple wrapper for rotate which rotates a set of nodes or all nodes.
The function rotate.multi finds all possible rotations around a multifurcating node, given by node. This will be an object of class "multiPhylo", assuming that the node specified is indeed a multifurcation.
The function allRotations computes all possible rotated trees for a given input phylogeny. For a binary tree, this is generally two raised to the power of the number of internal nodes (so a very large number, if N is even modest in size).
rotateNodes(tree, nodes, polytom=c(1,2), ...)
rotate.multi(tree, node)
allRotations(tree)"phylo"."all".rotate).rotate.multi)."phylo" (i.e., a phylogenetic tree), in the case of rotateNodes, or an object of class "multiPhylo" for rotate.multi or allRotations.
rotate can be non-compliant with the implicit "phylo" standard because the tip numbers in tree$edge are not in numerical order 1:n for n tips.