Suppose you have an arbitrary quaternion - call it A - how do you rotate it by 180 degrees?
Is there a way to do this without convert to angle-axis representation, i.e., keep it within the quaternion algebra?
I don't know what you mean with rotate a quaternion (which actually represents a rotation). But I guess you mean concatenate two quternions with one being a 180 degree rotation about some axis. In this case you can just use the quternion multipication for concatenating two rotations (There is rarely a case where you need to convert them to axis-angle representation). The quaternion for a 180 degree rotation about axis (x,y,z) is just (0,x,y,z).