all but ysl work with arbitrary axes