The asserted cell multiplication isn't quite right as it stands. First, GL(n) does not have "strict" BN-pair structure, but SL(n) does. An obvious extra element needs to be added for GL(n).

Second, for the strict BN-pair situation of SL(n,F) and SL(n,o), the cell multiplication rules are all generated by two cases of $BwB\cdot B\sigma B$ for general element $w$ and *generating reflection* $\sigma$, namely: this is $Bw\sigma B$ when $\ell(w\sigma)>\ell(w)$, and is $Bw\sigma B\cup BwB$ for $\ell(w\sigma)<\ell(\sigma)$. These are "axioms" for a BN-pair, but are *provable* from the action of SL(n) on the affine building of homothety classes of $o$-lattices.

Edit: @pm, a genuinely implementable algorithm to produce the Bruhat decomposition $bwb'$ of given $g\in G$ (say, in a strict BN-pair) may be non-trivial (and I do not have any truly usefu idea about this off-hand), since, in any case, there is ambiguity in the $b,b'$ in the Iwahori, especially in the affine case. The arguments I know for cell multiplication only refer to double cosets $BwB$, and their "geometric" interpretation in terms of the building, not individuals.