Quaternion.negate() vs Quaternion.opposite()

Well they all kinda seem to make sense in that they return the opposite but they all do it in different ways.

.negate() multiplies by -1
.opposite() adds 180 degrees
.inverse() uses a direction and negates it.

They all do the same thing but in a different way. I’d be interested for my own education if anything as to what each use-case is warranted.