R stands for "Region" and C stands for "Correction." The vast majority of the time, B = 1 so you can pretend the correction doesn't exist. Essentially, bank address is a MAC + mod operation and bank offset is a mix of divisions, multiplications, and additions. Bank offset basically divides the logical memory into neighborhoods with dimensions P, then numbers them and figures out which "neighborhood" your address lives in. For B = 1, each neighborhood has one element from each bank, so they can all have the same bank offset. There are all kinds of tricks that the compiler plays to avoid expensive multiply, divide, and mod operations. For example, when N, a, P, and B are powers of 2, the arithmetic can be done with bitwise ops.
For the multi-dimensional banking case, just treat each dimension as its own 1-dimensional access pattern and use the equations above to get a BA per-dimension, and a scalar value for BO.
The report should also give you read/write histograms, which are useful for understanding how resource-intensive schemes are for the patterns you have in your app. For a lot of cases, after your app is fully unrolled, certain readers/writers to the memory can only "see" certain banks based on the equations above (i.e. alpha = 2, N = 4, B = 1, no matter what x is, this access will only ever see banks 0 or 2). The histogram gives you a sense of how big the crossbars have to be to serve all of the accesses, where each access knows how many banks it can "see"
I'm skipping all the details about how to actually choose N, B, a, and P but I can talk about that if you want to dig deeper into this.
I think the best way to understand what these equations really mean is to sit for a minute with a simple example of banking parameters and just write out the BA and BO starting from the origin. It is much simpler than it may seem at first. For example:
N = 4, B = 1, alpha = <1,2>, P = <2,2> for a 4x4 memory
Banks:
0..2..0..2
1..3..1..3
2..0..2..0
3..1..3..1
0..0..1..1
0..0..1..1
2..2..3..3
2..2..3..3
Foreach(4 by 1, 4 by 1 par 2){(i,j) => x(i,j) = ...}x..x..-..--..-..-..--..-..-..--..-..-..-
Foreach(4 by 1 par 4, 4 by 1){(i,j) => ... = x(i,j)}x..-..-..-x..-..-..-x..-..-..-x..-..-..-