Using the text inputs enter the coordinates of two points given on the Squad map. This calculator will output the Distance, Milliradians, and Bearing. You can input the values in many different formats. For instance, you can input the same values given on the Squad map (ex: A1-KP1-1), or you can omit the dashes and the KP (ex: A111). If the grid's number has two digits (ex: A11-KP1-1) then you must put a space, a K or KP, or a dash in between the grid and the keypad values so the parser can figure this out: given A11-KP1-1 input A11 11 or A11K11 or A11-11.
To minimize the error enter all of the data given in the Squad map. You can estimate further 'keypad subdivisions' to minimize the error. For example, given the Squad coordinates C2-KP3-6, if the target is in keypad 5 of that grid, then you should enter C2365 which will have less error than C236. You can subdivide the grid as many times as you want this way. I have heard this referred to as 'infinite subsetting'
The min/max values are calculated from the error. The error is based on the number of keypad values you input. If you input all of the data given in the Squad map then the maximum error will be a distance of 47.1 meters in the worst case, which will affect the millradian and bearing min/max values. If you add your own estimated keypad values then the error can go down to within a couple of meters.
The error is a 'worst case' approximation. To minimize error, center your mouse so that it is at the center of a keypad (in other words, don't put your mouse on the gridlines as this will increase the error if you accidentally cross over into another grid).
Case insensitive: A5-KP2-3 is the same as a5-kp2-3.
With the min/max values for bearing, the min value is the 'left-most possible bearing', and the max value is the 'right-most possible bearing'. Again, the error affects this. These values might look a little off, but it takes into account the maximum error given that you or the target can be anywhere within a grid. The min and max values for bearing might not be 'symmetrical', believe me though it should be correct (spent a lot of time thinking about this problem).
The distance, milliradians, and bearing values are calculated by using the center of the two grids. For example, if you input that your mortars are in B2-KP6 (blue grid), and you input that the target is in A1 (orange grid), then the distance, milliradian, and bearing value is determined from the center of these two grids:
The min/max values for distance and milliradians are the minimum and maximum possible distance / milliradian values (green is minimum, red is maximum)
The min/max values for bearing are the left-most and right-most possible bearings (green is minimum, red is maximum):
The distance/milliradian now uses the center of the grid. The min/max values are now the minimum / maximum distance possible given the grids (before it was an approximation).
Updated with helpful text and images to explain how the min/max values are calculated.
The input format was changed so that you can pretty much put in anything.
The calculator will now show you which points it is computing the distance for.
Fixed a bug where only 1-9 could be inputted for the grid's Y position. Now you can enter a grid like A11-KP2-1.
Added 'infinite subsetting', ie, the ability to infinitely subdivide the grid. For example, if the Squad map reads C4-KP1-3, you can add to this, for example by entering C4-KP1-3-5-2-1. The normal format rules apply.
Added min/max values to the bearing.
The millirad function has been changed to a linear interpolating function instead of a 7th order polynomial.
Short Format 1 now allows an even shorter input string, A1-KP1-1 can now be inputed as A111.