this can be generated via ```julia @broutine G = [U11 U12;U21 U22] ``` then forward other methods to it. Needs some benchmarks to finish up this, then we can remove the manual implemented ones.