Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Further questions about left/right-multiply in issue #14 #15

Closed
longlongman opened this issue Jan 31, 2023 · 4 comments
Closed

Further questions about left/right-multiply in issue #14 #15

longlongman opened this issue Jan 31, 2023 · 4 comments

Comments

@longlongman
Copy link

Thanks for your quick reply #14 (comment).

It is still confusing to me. I also take the column vectors as the base vectors. In this case, $RE$ is more intuitive to me (we first get $E$ around $I$ and transform it with $R$).

Moreover, $ER = (ERE^{-1})E \sim \mathcal{IG}_{SO(3)}(ERE^{-1}, \sigma^2)$, it seems that $RE$ and $ER$ do different things, because $ERE^{-1} = R$ is not always true.

@luost26
Copy link
Owner

luost26 commented Jan 31, 2023

$ER = (ERE^{-1})E \sim \mathcal{IG}_{SO(3)}(ERE^{-1}, \sigma^2)$ is not correct.

Let's assume left-multiply applies. $ER \sim IG(R, \sigma^2)$ is a shorthand for another random variable $Y \sim IG(R, \sigma^2)$, where $Y = ER$ and $E \sim IG(I, \sigma^2)$.

Given $E \sim IG(I, \sigma^2)$, the distribution of $Z = ERE^{-1}E = ER$ is still $IG(R, \sigma^2)$.

@longlongman
Copy link
Author

Because $ER \not = RE \not = (RE)^{T}$, I am not sure whether it is safe to say $Z = ER \sim \mathcal{IG}(R, \sigma^2)$ when we only know $Y = RE \sim \mathcal{IG}(R, \sigma^2)$.

Moreover, if $Z = ER = ERE^{-1}E \sim \mathcal{IG}(R, \sigma^2)$ holds, then how can we sample a random value from $\mathcal{IG}(ERE^{-1}, \sigma^2)$.

@luost26
Copy link
Owner

luost26 commented Jan 31, 2023

Thank you for your time. I've checked the code and found $R$ is a column-vector rotation matrix (so $RE$ applies instead of $ER$ where $R$ is row-vector rot. mat.). I think $RE$ is correct and it is a mistake in the code.
Though numerically this leads to minor biases, I do think fixing it might improve the performance.

@longlongman
Copy link
Author

Thank you for the great open-source project. I have learned a lot from your code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants