Let $(W,S)$ be a Coxeter system and $\beta$ a positive root in it. Is there a good way to compute a reduced expression for the reflection across the hyperplane with normal $\beta$? References please.



Reduced expressions for reflections in a Coxeter group
Depending on what you mean by a "good way", maybe there is and maybe there isn't. If you want to do this all in terms of the combinatorics of reduced words, probably the following is the best you can do:


Since $\beta$ is a root, there is an element $w\in W$ and a simple root $\alpha$ such that $\beta=w\alpha$. If $s\_\alpha$ is the simple reflection for $\alpha$ and $s\_1\cdots s\_k$ is a word for $w$, then $s\_1\cdots s\_k s\_\alpha s\_k\cdots s\_1$ is a word for the reflection for $\beta$. (Call this reflection $t$.) Now, of course you would start with a reduced word for $w$, but even so, there is no guarantee that $s\_1\cdots s\_k s\_\alpha s\_k\cdots s\_1$ is reduced. You have to just reduce it using some standard technique for reducing words. You do have one nice fact, and that is that you can reduce it while maintaining the palindromic property (i.e. you can do symmetric pairs of braid moves and nil moves).


If you're willing to leave the combinatorics of reduced words and use geometry, then there is a good way to do this computationally. You need to have constructed the usual geometric realization of $(W,S)$ by reflections. 


Start with a vector $v$ in the interior of the fundamental chamber and compute the vector $v'=t(v)$. For each simple root $\alpha$, you can check which side of the hyperplane $\alpha^\perp$ the vector $v'$ sits on by pairing $\alpha$ and $v'$ using the symmetric bilinear form that defines your reflection representation, and seeing if you get a positive or negative result. If $v'$ is on the side of $\alpha^\perp$ opposite the fundamental chamber, then apply $s\_\alpha$ to $v'$. Repeat with the new vector and continue until the vector is on the same side of $\alpha^\perp$ as the fundamental chamber for all simple roots $\alpha$. If you keep track of the sequence of simple reflections you did, that is a reduced word.


This is very efficient to do computationally (or at least, I suspect it is optimally efficient for the problem). It's super-easy to implement in finite type using Stembridge's coxeter/weyl Maple packages, because he already has the reflection representations for all finite-type Coxeter groups and already has a function "vec2fc" that computes the word as explained in the previous paragraph.


