As I understand slerp interpolates between two quaternions and returns an unit quaternion. So if I want to average 3 quaternions could I do(Assuming they all are close to each other):
Eigen::Quaterniond t4;
Eigen::Quaterniond u4;
Eigen::Quaterniond v4;
Eigen::Quaterniond average1 = t4.slerp(0.5, u4);
Eigen::Quaterniond average2 = average1.slerp(0.5, v4);
Intuitively it makes sense to me, but then again its quaternions we're talking about.