/*****************************************************************************
 *                                                                           *
 * FOX Controller Library, Version 1.3.3.                                    *
 *                                                                           *
 * Copyright (C) 1998,1999,2000 Russell Smith (rl.smith@auckland.ac.nz)      *
 *                                                                           *
 * The FOX Controller Library is free software; you can redistribute it      *
 * and/or modify it under the terms of the GNU Library General Public        *
 * License as published by the Free Software Foundation; either version      *
 * 2 of the License, or (at your option) any later version.                  *
 *                                                                           *
 * The FOX Controller Library is distributed in the hope that it will be     *
 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of    *
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *
 * Library General Public License for more details.                          *
 *                                                                           *
 * You should have received a copy of the GNU Library General Public         *
 * License along with the Fox Controller Library; see the file COPYING.LIB.  *
 * If not, write to the Free Software Foundation, Inc., 59 Temple Place -    *
 * Suite 330, Boston, MA 02111-1307, USA.                                    *
 *                                                                           *
 *****************************************************************************/
/*

Albus's simple binary CMAC offsets the n'th association unit (or "overlay")
by n grid units along each input axis. This spacing of overlays along the
diagonal can result in large diagonal areas of the output space being
"locally additive". A better distribution of the overlays can result in
a smoother approximation.

These tables record some "good" overlay offsets for n=2..15 inputs and
p=1..100 association units (overlays). They were computed by Parks and
Militzer --- see:
  "Neurofuzzy Adaptive Modelling and Control",
  Martin Brown and Chris Harris,
  1994, Prentice Hall International.
  Appendix B, pages 462--493.

For 'n' and 'p', the i'th component (1..n) of the j'th n-dimensional overlay
displacement vector (1..p) is computed from a vector prototype by:

  offset = 0                                                    if j=1
  offset = (overlay_displacement_n[p-1][i-1] * (j-1)) % p       if j>1

For each vector prototype (each {...} line below) two statistics are given:
  * D is the minimum hamming distance between any two overlay displacement
    vectors.
  * D/Dc is a "goodness" factor which is computed from:
      D/Dc = sqrt(D) / (p ^((n-1)/n))
    If D>1, these overlay displacement are "good" (well spaced).

Particularly good overlay displacements are achieved when p is prime and
equal to 2*n+1, and bad overlay displacements are achieved when it is
divisible by 6.

NOTE! These numbers are stored as char to save space, you should type-cast
them to int.

*/

//***************************************************************************

// input dimension = 1 ... this is a trivial case

static char overlay_displacement_1[1] = {1};


// input dimension = 2

static char overlay_displacement_2 [100][2] = {
  {1,1},	// p= 1
  {1,1},	// p= 2: D=   2 D/Dc=1.000
  {1,1},	// p= 3: D=   2 D/Dc=0.816
  {1,1},	// p= 4: D=   2 D/Dc=0.707
  {1,2},	// p= 5: D=   5 D/Dc=1.000
  {1,1},	// p= 6: D=   2 D/Dc=0.577
  {1,2},	// p= 7: D=   5 D/Dc=0.845
  {1,3},	// p= 8: D=   8 D/Dc=1.000
  {1,2},	// p= 9: D=   5 D/Dc=0.745
  {1,3},	// p=10: D=  10 D/Dc=1.000
  {1,3},	// p=11: D=  10 D/Dc=0.953
  {1,5},	// p=12: D=   8 D/Dc=0.816
  {1,5},	// p=13: D=  13 D/Dc=1.000
  {1,3},	// p=14: D=  10 D/Dc=0.845
  {1,4},	// p=15: D=  17 D/Dc=1.065
  {1,3},	// p=16: D=  10 D/Dc=0.791
  {1,4},	// p=17: D=  17 D/Dc=1.000
  {1,5},	// p=18: D=  18 D/Dc=1.000
  {1,4},	// p=19: D=  17 D/Dc=0.946
  {1,3},	// p=20: D=  10 D/Dc=0.707
  {1,8},	// p=21: D=  18 D/Dc=0.926
  {1,5},	// p=22: D=  20 D/Dc=0.953
  {1,5},	// p=23: D=  25 D/Dc=1.043
  {1,5},	// p=24: D=  26 D/Dc=1.041
  {1,7},	// p=25: D=  25 D/Dc=1.000
  {1,5},	// p=26: D=  26 D/Dc=1.000
  {1,5},	// p=27: D=  26 D/Dc=0.981
  {1,5},	// p=28: D=  26 D/Dc=0.964
  {1,12},	// p=29: D=  29 D/Dc=1.000
  {1,7},	// p=30: D=  20 D/Dc=0.816
  {1,12},	// p=31: D=  29 D/Dc=0.967
  {1,7},	// p=32: D=  32 D/Dc=1.000
  {1,7},	// p=33: D=  29 D/Dc=0.937
  {1,13},	// p=34: D=  34 D/Dc=1.000
  {1,6},	// p=35: D=  37 D/Dc=1.028
  {1,5},	// p=36: D=  26 D/Dc=0.850
  {1,6},	// p=37: D=  37 D/Dc=1.000
  {1,7},	// p=38: D=  34 D/Dc=0.946
  {1,7},	// p=39: D=  41 D/Dc=1.025
  {1,7},	// p=40: D=  40 D/Dc=1.000
  {1,9},	// p=41: D=  41 D/Dc=1.000
  {1,5},	// p=42: D=  26 D/Dc=0.787
  {1,12},	// p=43: D=  41 D/Dc=0.976
  {1,7},	// p=44: D=  40 D/Dc=0.953
  {1,19},	// p=45: D=  50 D/Dc=1.054
  {1,7},	// p=46: D=  50 D/Dc=1.043
  {1,7},	// p=47: D=  50 D/Dc=1.031
  {1,7},	// p=48: D=  50 D/Dc=1.021
  {1,9},	// p=49: D=  41 D/Dc=0.915
  {1,19},	// p=50: D=  50 D/Dc=1.000
  {1,7},	// p=51: D=  50 D/Dc=0.990
  {1,7},	// p=52: D=  50 D/Dc=0.981
  {1,8},	// p=53: D=  58 D/Dc=1.046
  {1,7},	// p=54: D=  50 D/Dc=0.962
  {1,16},	// p=55: D=  53 D/Dc=0.982
  {1,9},	// p=56: D=  40 D/Dc=0.845
  {1,16},	// p=57: D=  53 D/Dc=0.964
  {1,17},	// p=58: D=  58 D/Dc=1.000
  {1,9},	// p=59: D=  61 D/Dc=1.017
  {1,13},	// p=60: D=  50 D/Dc=0.913
  {1,8},	// p=61: D=  65 D/Dc=1.032
  {1,23},	// p=62: D=  58 D/Dc=0.967
  {1,8},	// p=63: D=  65 D/Dc=1.016
  {1,19},	// p=64: D=  58 D/Dc=0.952
  {1,8},	// p=65: D=  65 D/Dc=1.000
  {1,25},	// p=66: D=  68 D/Dc=1.015
  {1,9},	// p=67: D=  65 D/Dc=0.985
  {1,9},	// p=68: D=  74 D/Dc=1.043
  {1,8},	// p=69: D=  65 D/Dc=0.971
  {1,9},	// p=70: D=  68 D/Dc=0.986
  {1,21},	// p=71: D=  73 D/Dc=1.014
  {1,11},	// p=72: D=  72 D/Dc=1.000
  {1,16},	// p=73: D=  74 D/Dc=1.007
  {1,31},	// p=74: D=  74 D/Dc=1.000
  {1,8},	// p=75: D=  65 D/Dc=0.931
  {1,9},	// p=76: D=  80 D/Dc=1.026
  {1,34},	// p=77: D=  85 D/Dc=1.051
  {1,17},	// p=78: D=  74 D/Dc=0.974
  {1,9},	// p=79: D=  82 D/Dc=1.019
  {1,9},	// p=80: D=  82 D/Dc=1.012
  {1,31},	// p=81: D=  74 D/Dc=0.956
  {1,9},	// p=82: D=  82 D/Dc=1.000
  {1,11},	// p=83: D=  85 D/Dc=1.012
  {1,25},	// p=84: D=  90 D/Dc=1.035
  {1,38},	// p=85: D=  85 D/Dc=1.000
  {1,9},	// p=86: D=  82 D/Dc=0.976
  {1,10},	// p=87: D=  90 D/Dc=1.017
  {1,9},	// p=88: D=  82 D/Dc=0.965
  {1,34},	// p=89: D=  89 D/Dc=1.000
  {1,11},	// p=90: D=  68 D/Dc=0.869
  {1,27},	// p=91: D=  98 D/Dc=1.038
  {1,9},	// p=92: D=  82 D/Dc=0.944
  {1,34},	// p=93: D=  90 D/Dc=0.984
  {1,11},	// p=94: D= 100 D/Dc=1.031
  {1,11},	// p=95: D=  97 D/Dc=1.010
  {1,11},	// p=96: D=  90 D/Dc=0.968
  {1,10},	// p=97: D= 101 D/Dc=1.020
  {1,27},	// p=98: D=  98 D/Dc=1.000
  {1,10},	// p=99: D= 101 D/Dc=1.010
  {1,9}};	// p=100:D=  82 D/Dc=0.906


// input dimension = 3

static char overlay_displacement_3 [100][3] = {
  {1,1,1},	// p= 1
  {1,1,1},	// p= 2: D=   3 D/Dc=1.091
  {1,1,1},	// p= 3: D=   3 D/Dc=0.833
  {1,1,1},	// p= 4: D=   3 D/Dc=0.687
  {1,1,2},	// p= 5: D=   6 D/Dc=0.838
  {1,1,1},	// p= 6: D=   3 D/Dc=0.525
  {1,2,3},	// p= 7: D=  14 D/Dc=1.023
  {1,1,3},	// p= 8: D=  11 D/Dc=0.829
  {1,2,4},	// p= 9: D=  21 D/Dc=1.059
  {1,1,3},	// p=10: D=  11 D/Dc=0.715
  {1,2,4},	// p=11: D=  21 D/Dc=0.927
  {1,1,5},	// p=12: D=  12 D/Dc=0.661
  {1,2,5},	// p=13: D=  29 D/Dc=0.974
  {1,3,5},	// p=14: D=  35 D/Dc=1.018
  {1,2,4},	// p=15: D=  21 D/Dc=0.753
  {1,3,5},	// p=16: D=  35 D/Dc=0.932
  {1,2,6},	// p=17: D=  41 D/Dc=0.968
  {1,5,7},	// p=18: D=  27 D/Dc=0.757
  {1,3,7},	// p=19: D=  50 D/Dc=0.993
  {1,3,7},	// p=20: D=  44 D/Dc=0.900
  {1,2,8},	// p=21: D=  45 D/Dc=0.881
  {1,3,7},	// p=22: D=  56 D/Dc=0.953
  {1,3,8},	// p=23: D=  65 D/Dc=0.997
  {1,5,7},	// p=24: D=  48 D/Dc=0.833
  {1,3,8},	// p=25: D=  74 D/Dc=1.006
  {1,3,9},	// p=26: D=  91 D/Dc=1.087
  {1,4,10},	// p=27: D=  81 D/Dc=1.000
  {1,3,9},	// p=28: D=  91 D/Dc=1.035
  {1,3,9},	// p=29: D=  91 D/Dc=1.011
  {1,7,11},	// p=30: D=  75 D/Dc=0.897
  {1,3,11},	// p=31: D=  94 D/Dc=0.982
  {1,3,9},	// p=32: D=  91 D/Dc=0.946
  {1,4,10},	// p=33: D=  90 D/Dc=0.922
  {1,3,13},	// p=34: D= 104 D/Dc=0.972
  {1,11,16},	// p=35: D= 133 D/Dc=1.078
  {1,5,17},	// p=36: D= 108 D/Dc=0.953
  {1,7,17},	// p=37: D= 133 D/Dc=1.039
  {1,7,11},	// p=38: D= 152 D/Dc=1.091
  {1,4,14},	// p=39: D= 138 D/Dc=1.021
  {1,3,11},	// p=40: D= 131 D/Dc=0.979
  {1,4,13},	// p=41: D= 142 D/Dc=1.002
  {1,5,13},	// p=42: D= 147 D/Dc=1.003
  {1,4,15},	// p=43: D= 157 D/Dc=1.021
  {1,3,17},	// p=44: D= 139 D/Dc=0.946
  {1,4,17},	// p=45: D= 171 D/Dc=1.034
  {1,5,13},	// p=46: D= 171 D/Dc=1.019
  {1,4,18},	// p=47: D= 189 D/Dc=1.056
  {1,5,17},	// p=48: D= 171 D/Dc=0.990
  {1,4,19},	// p=49: D= 182 D/Dc=1.007
  {1,7,11},	// p=50: D= 171 D/Dc=0.963
  {1,4,19},	// p=51: D= 189 D/Dc=1.000
  {1,9,23},	// p=52: D= 195 D/Dc=1.002
  {1,4,14},	// p=53: D= 213 D/Dc=1.034
  {1,7,25},	// p=54: D= 216 D/Dc=1.029
  {1,6,23},	// p=55: D= 225 D/Dc=1.037
  {1,5,13},	// p=56: D= 195 D/Dc=0.954
  {1,4,14},	// p=57: D= 213 D/Dc=0.985
  {1,7,27},	// p=58: D= 216 D/Dc=0.981
  {1,4,15},	// p=59: D= 242 D/Dc=1.026
  {1,7,19},	// p=60: D= 171 D/Dc=0.853
  {1,4,17},	// p=61: D= 253 D/Dc=1.026
  {1,5,25},	// p=62: D= 248 D/Dc=1.005
  {1,4,16},	// p=63: D= 273 D/Dc=1.044
  {1,5,19},	// p=64: D= 251 D/Dc=0.990
  {1,4,17},	// p=65: D= 275 D/Dc=1.026
  {1,17,29},	// p=66: D= 243 D/Dc=0.954
  {1,4,18},	// p=67: D= 278 D/Dc=1.011
  {1,5,25},	// p=68: D= 283 D/Dc=1.010
  {1,4,19},	// p=69: D= 297 D/Dc=1.024
  {1,9,33},	// p=70: D= 275 D/Dc=0.976
  {1,7,30},	// p=71: D= 321 D/Dc=1.045
  {1,5,19},	// p=72: D= 243 D/Dc=0.901
  {1,8,20},	// p=73: D= 341 D/Dc=1.057
  {1,5,19},	// p=74: D= 347 D/Dc=1.057
  {1,4,17},	// p=75: D= 306 D/Dc=0.984
  {1,5,21},	// p=76: D= 332 D/Dc=1.016
  {1,5,30},	// p=77: D= 338 D/Dc=1.016
  {1,5,19},	// p=78: D= 324 D/Dc=0.986
  {1,5,19},	// p=79: D= 374 D/Dc=1.050
  {1,7,19},	// p=80: D= 304 D/Dc=0.939
  {1,4,32},	// p=81: D= 357 D/Dc=1.009
  {1,5,23},	// p=82: D= 376 D/Dc=1.027
  {1,5,32},	// p=83: D= 398 D/Dc=1.048
  {1,5,19},	// p=84: D= 387 D/Dc=1.026
  {1,22,26},	// p=85: D= 386 D/Dc=1.016
  {1,5,33},	// p=86: D= 403 D/Dc=1.030
  {1,4,19},	// p=87: D= 378 D/Dc=0.990
  {1,5,23},	// p=88: D= 419 D/Dc=1.035
  {1,12,20},	// p=89: D= 437 D/Dc=1.049
  {1,7,17},	// p=90: D= 339 D/Dc=0.917
  {1,22,29},	// p=91: D= 481 D/Dc=1.084
  {1,9,39},	// p=92: D= 464 D/Dc=1.057
  {1,8,20},	// p=93: D= 465 D/Dc=1.051
  {1,5,23},	// p=94: D= 420 D/Dc=0.991
  {1,23,33},	// p=95: D= 481 D/Dc=1.053
  {1,7,31},	// p=96: D= 432 D/Dc=0.991
  {1,6,22},	// p=97: D= 509 D/Dc=1.069
  {1,9,23},	// p=98: D= 491 D/Dc=1.042
  {1,8,29},	// p=99: D= 465 D/Dc=1.008
  {1,13,21}};	// p=100:D= 475 D/Dc=1.012


// input dimension = 4

static char overlay_displacement_4 [100][4] = {
  {1,1,1,1},	// p= 1
  {1,1,1,1},	// p= 2: D=   4 D/Dc=1.189
  {1,1,1,1},	// p= 3: D=   4 D/Dc=0.877
  {1,1,1,1},	// p= 4: D=   4 D/Dc=0.707
  {1,1,2,2},	// p= 5: D=  10 D/Dc=0.946
  {1,1,1,1},	// p= 6: D=   4 D/Dc=0.522
  {1,1,2,3},	// p= 7: D=  15 D/Dc=0.900
  {1,1,3,3},	// p= 8: D=  16 D/Dc=0.841
  {1,1,2,4},	// p= 9: D=  22 D/Dc=0.903
  {1,1,3,3},	// p=10: D=  20 D/Dc=0.795
  {1,1,3,5},	// p=11: D=  34 D/Dc=0.965
  {1,1,5,5},	// p=12: D=  16 D/Dc=0.620
  {1,2,3,6},	// p=13: D=  46 D/Dc=0.991
  {1,1,3,5},	// p=14: D=  36 D/Dc=0.829
  {1,2,4,7},	// p=15: D=  70 D/Dc=1.098
  {1,3,5,7},	// p=16: D=  64 D/Dc=1.000
  {1,2,4,8},	// p=17: D=  85 D/Dc=1.101
  {1,1,5,7},	// p=18: D=  36 D/Dc=0.687
  {1,2,4,8},	// p=19: D=  85 D/Dc=1.013
  {1,3,7,9},	// p=20: D=  80 D/Dc=0.946
  {1,2,5,8},	// p=21: D=  90 D/Dc=0.967
  {1,3,5,7},	// p=22: D=  84 D/Dc=0.902
  {1,2,6,10},	// p=23: D= 117 D/Dc=1.030
  {1,5,7,11},	// p=24: D=  64 D/Dc=0.738
  {1,2,7,11},	// p=25: D= 125 D/Dc=1.000
  {1,3,5,11},	// p=26: D= 156 D/Dc=1.085
  {1,2,5,10},	// p=27: D= 130 D/Dc=0.963
  {1,3,5,11},	// p=28: D= 144 D/Dc=0.986
  {1,3,7,12},	// p=29: D= 174 D/Dc=1.056
  {1,7,11,13},	// p=30: D= 100 D/Dc=0.780
  {1,3,5,12},	// p=31: D= 179 D/Dc=1.018
  {1,3,5,13},	// p=32: D= 176 D/Dc=0.986
  {1,2,8,14},	// p=33: D= 181 D/Dc=0.977
  {1,9,13,15},	// p=34: D= 204 D/Dc=1.014
  {1,3,8,13},	// p=35: D= 222 D/Dc=1.035
  {1,5,7,17},	// p=36: D= 144 D/Dc=0.816
  {1,3,8,14},	// p=37: D= 231 D/Dc=1.013
  {1,3,7,13},	// p=38: D= 228 D/Dc=0.987
  {1,4,10,16},	// p=39: D= 238 D/Dc=0.989
  {1,3,9,13},	// p=40: D= 260 D/Dc=1.014
  {1,3,9,14},	// p=41: D= 287 D/Dc=1.046
  {1,5,11,13},	// p=42: D= 196 D/Dc=0.849
  {1,3,13,19},	// p=43: D= 302 D/Dc=1.035
  {1,3,7,19},	// p=44: D= 272 D/Dc=0.965
  {1,4,7,16},	// p=45: D= 307 D/Dc=1.008
  {1,3,7,19},	// p=46: D= 300 D/Dc=0.981
  {1,3,8,17},	// p=47: D= 354 D/Dc=1.048
  {1,5,11,23},	// p=48: D= 256 D/Dc=0.877
  {1,3,8,18},	// p=49: D= 395 D/Dc=1.073
  {1,3,7,19},	// p=50: D= 380 D/Dc=1.037
  {1,4,10,22},	// p=51: D= 394 D/Dc=1.040
  {1,3,9,19},	// p=52: D= 380 D/Dc=1.007
  {1,3,10,24},	// p=53: D= 429 D/Dc=1.054
  {1,7,13,17},	// p=54: D= 324 D/Dc=0.904
  {1,3,8,21},	// p=55: D= 465 D/Dc=1.068
  {1,5,13,27},	// p=56: D= 448 D/Dc=1.034
  {1,5,8,23},	// p=57: D= 481 D/Dc=1.057
  {1,7,11,27},	// p=58: D= 428 D/Dc=0.984
  {1,3,8,21},	// p=59: D= 515 D/Dc=1.066
  {1,7,19,29},	// p=60: D= 400 D/Dc=0.928
  {1,3,8,22},	// p=61: D= 558 D/Dc=1.082
  {1,3,9,23},	// p=62: D= 620 D/Dc=1.127
  {1,4,13,20},	// p=63: D= 495 D/Dc=0.995
  {1,3,11,29},	// p=64: D= 560 D/Dc=1.046
  {1,4,11,24},	// p=65: D= 625 D/Dc=1.092
  {1,5,7,23},	// p=66: D= 484 D/Dc=0.950
  {1,3,9,25},	// p=67: D= 653 D/Dc=1.091
  {1,5,13,33},	// p=68: D= 560 D/Dc=0.999
  {1,5,8,25},	// p=69: D= 670 D/Dc=1.081
  {1,3,9,23},	// p=70: D= 620 D/Dc=1.029
  {1,3,8,25},	// p=71: D= 682 D/Dc=1.068
  {1,5,19,31},	// p=72: D= 576 D/Dc=0.971
  {1,6,9,26},	// p=73: D= 718 D/Dc=1.073
  {1,3,23,33},	// p=74: D= 740 D/Dc=1.078
  {1,4,11,31},	// p=75: D= 721 D/Dc=1.054
  {1,3,9,25},	// p=76: D= 716 D/Dc=1.040
  {1,12,15,20},	// p=77: D= 770 D/Dc=1.068
  {1,5,23,35},	// p=78: D= 676 D/Dc=0.991
  {1,3,9,28},	// p=79: D= 844 D/Dc=1.096
  {1,9,13,37},	// p=80: D= 820 D/Dc=1.071
  {1,5,8,29},	// p=81: D= 846 D/Dc=1.077
  {1,7,19,23},	// p=82: D= 844 D/Dc=1.066
  {1,3,10,29},	// p=83: D= 871 D/Dc=1.073
  {1,5,19,31},	// p=84: D= 784 D/Dc=1.009
  {1,3,27,38},	// p=85: D= 947 D/Dc=1.099
  {1,7,11,27},	// p=86: D= 900 D/Dc=1.062
  {1,4,11,28},	// p=87: D= 895 D/Dc=1.050
  {1,9,13,41},	// p=88: D= 844 D/Dc=1.011
  {1,12,34,37},	// p=89: D= 979 D/Dc=1.080
  {1,7,11,31},	// p=90: D= 900 D/Dc=1.027
  {1,3,10,32},	// p=91: D=1015 D/Dc=1.081
  {1,3,11,29},	// p=92: D= 972 D/Dc=1.050
  {1,7,10,32},	// p=93: D=1066 D/Dc=1.090
  {1,5,21,29},	// p=94: D=1000 D/Dc=1.048
  {1,6,9,33},	// p=95: D=1078 D/Dc=1.079
  {1,7,11,31},	// p=96: D=1024 D/Dc=1.043
  {1,22,33,47},	// p=97: D=1261 D/Dc=1.149
  {1,9,15,43},	// p=98: D=1176 D/Dc=1.101
  {1,5,16,29},	// p=99: D=1114 D/Dc=1.063
  {1,7,19,29}};	// p=100:D=1092 D/Dc=1.045


// input dimension = 5

static char overlay_displacement_5 [100][5] = {
  {1,1,1,1,1},		// p= 1
  {1,1,1,1,1},		// p= 2: D=   5 D/Dc=1.284
  {1,1,1,1,1},		// p= 3: D=   5 D/Dc=0.929
  {1,1,1,1,1},		// p= 4: D=   5 D/Dc=0.738
  {1,1,1,2,2},		// p= 5: D=  11 D/Dc=0.915
  {1,1,1,1,1},		// p= 6: D=   5 D/Dc=0.533
  {1,1,2,2,3},		// p= 7: D=  19 D/Dc=0.919
  {1,1,1,3,3},		// p= 8: D=  20 D/Dc=0.847
  {1,1,2,2,4},		// p= 9: D=  26 D/Dc=0.879
  {1,1,1,3,3},		// p=10: D=  21 D/Dc=0.726
  {1,2,3,4,5},		// p=11: D=  55 D/Dc=1.089
  {1,1,1,5,5},		// p=12: D=  20 D/Dc=0.613
  {1,2,3,4,5},		// p=13: D=  55 D/Dc=0.953
  {1,1,3,3,5},		// p=14: D=  45 D/Dc=0.812
  {1,1,2,4,7},		// p=15: D=  71 D/Dc=0.966
  {1,1,3,5,7},		// p=16: D=  80 D/Dc=0.973
  {1,2,3,4,8},		// p=17: D=  94 D/Dc=1.005
  {1,1,5,5,7},		// p=18: D=  45 D/Dc=0.664
  {1,2,3,5,9},		// p=19: D= 118 D/Dc=1.030
  {1,1,3,7,9},		// p=20: D=  84 D/Dc=0.834
  {1,1,5,8,10},		// p=21: D= 134 D/Dc=1.013
  {1,3,5,7,9},		// p=22: D= 165 D/Dc=1.083
  {1,2,4,7,10},		// p=23: D= 165 D/Dc=1.046
  {1,1,5,7,11},		// p=24: D=  80 D/Dc=0.704
  {1,2,3,7,11},		// p=25: D= 184 D/Dc=1.033
  {1,3,5,7,9},		// p=26: D= 165 D/Dc=0.948
  {1,2,4,7,13},		// p=27: D= 206 D/Dc=1.028
  {1,3,5,9,11},		// p=28: D= 180 D/Dc=0.933
  {1,2,4,7,14},		// p=29: D= 254 D/Dc=1.078
  {1,1,7,11,13},	// p=30: D= 125 D/Dc=0.736
  {1,2,4,8,15},		// p=31: D= 310 D/Dc=1.129
  {1,3,5,7,13},		// p=32: D= 253 D/Dc=0.994
  {1,2,4,8,16},		// p=33: D= 341 D/Dc=1.126
  {1,3,5,7,15},		// p=34: D= 277 D/Dc=0.991
  {1,2,4,9,16},		// p=35: D= 358 D/Dc=1.101
  {1,5,7,11,13},	// p=36: D= 180 D/Dc=0.763
  {1,2,5,9,17},		// p=37: D= 400 D/Dc=1.113
  {1,3,5,7,17},		// p=38: D= 352 D/Dc=1.022
  {1,2,4,10,17},	// p=39: D= 410 D/Dc=1.080
  {1,3,7,9,19},		// p=40: D= 336 D/Dc=0.958
  {1,4,10,16,18},	// p=41: D= 492 D/Dc=1.137
  {1,5,11,13,17},	// p=42: D= 245 D/Dc=0.787
  {1,2,6,10,20},	// p=43: D= 486 D/Dc=1.088
  {1,5,7,9,19},		// p=44: D= 517 D/Dc=1.101
  {1,2,4,11,19},	// p=45: D= 477 D/Dc=1.039
  {1,3,5,11,21},	// p=46: D= 493 D/Dc=1.038
  {1,2,6,10,22},	// p=47: D= 551 D/Dc=1.079
  {1,5,7,11,23},	// p=48: D= 320 D/Dc=0.808
  {1,2,5,12,20},	// p=49: D= 560 D/Dc=1.052
  {1,3,11,13,19},	// p=50: D= 525 D/Dc=1.002
  {1,2,5,13,22},	// p=51: D= 623 D/Dc=1.074
  {1,3,5,11,23},	// p=52: D= 628 D/Dc=1.062
  {1,3,5,12,23},	// p=53: D= 697 D/Dc=1.102
  {1,5,11,17,19},	// p=54: D= 405 D/Dc=0.828
  {1,2,6,16,26},	// p=55: D= 702 D/Dc=1.074
  {1,3,5,11,23},	// p=56: D= 685 D/Dc=1.045
  {1,2,5,13,23},	// p=57: D= 719 D/Dc=1.056
  {1,3,5,17,27},	// p=58: D= 709 D/Dc=1.034
  {1,2,17,23,28},	// p=59: D= 810 D/Dc=1.090
  {1,7,11,13,29},	// p=60: D= 500 D/Dc=0.845
  {1,3,9,20,27},	// p=61: D= 854 D/Dc=1.090
  {1,15,23,27,29},	// p=62: D= 837 D/Dc=1.065
  {1,4,10,22,29},	// p=63: D= 812 D/Dc=1.036
  {1,3,5,15,27},	// p=64: D= 916 D/Dc=1.086
  {1,3,11,18,23},	// p=65: D= 909 D/Dc=1.069
  {1,17,25,29,31},	// p=66: D= 605 D/Dc=0.861
  {1,3,13,20,28},	// p=67: D=1019 D/Dc=1.105
  {1,3,9,19,33},	// p=68: D= 941 D/Dc=1.049
  {1,4,13,19,29},	// p=69: D= 972 D/Dc=1.054
  {1,3,19,27,33},	// p=70: D=1021 D/Dc=1.068
  {1,5,14,17,25},	// p=71: D=1136 D/Dc=1.113
  {1,5,7,17,35},	// p=72: D= 720 D/Dc=0.877
  {1,3,9,14,33},	// p=73: D=1197 D/Dc=1.118
  {1,3,7,21,33},	// p=74: D=1104 D/Dc=1.062
  {1,4,11,13,34},	// p=75: D=1142 D/Dc=1.069
  {1,3,11,23,29},	// p=76: D=1140 D/Dc=1.056
  {1,5,12,27,30},	// p=77: D=1267 D/Dc=1.102
  {1,5,7,19,37},	// p=78: D= 845 D/Dc=0.891
  {1,3,22,29,37},	// p=79: D=1347 D/Dc=1.113
  {1,3,9,17,39},	// p=80: D=1300 D/Dc=1.083
  {1,5,11,14,32},	// p=81: D=1307 D/Dc=1.075
  {1,3,7,25,37},	// p=82: D=1324 D/Dc=1.071
  {1,3,9,25,39},	// p=83: D=1446 D/Dc=1.109
  {1,5,11,13,41},	// p=84: D= 980 D/Dc=0.904
  {1,3,8,26,39},	// p=85: D=1434 D/Dc=1.083
  {1,3,9,17,41},	// p=86: D=1420 D/Dc=1.068
  {1,4,10,23,35},	// p=87: D=1467 D/Dc=1.075
  {1,3,19,27,37},	// p=88: D=1488 D/Dc=1.073
  {1,5,12,32,35},	// p=89: D=1666 D/Dc=1.125
  {1,11,17,23,31},	// p=90: D=1125 D/Dc=0.917
  {1,3,10,18,43},	// p=91: D=1710 D/Dc=1.120
  {1,3,21,33,43},	// p=92: D=1588 D/Dc=1.070
  {1,4,16,23,29},	// p=93: D=1643 D/Dc=1.079
  {1,3,9,25,39},	// p=94: D=1669 D/Dc=1.078
  {1,3,8,21,36},	// p=95: D=1811 D/Dc=1.114
  {1,7,13,17,47},	// p=96: D=1280 D/Dc=0.929
  {1,5,17,37,45},	// p=97: D=1836 D/Dc=1.103
  {1,3,9,29,45},	// p=98: D=1756 D/Dc=1.070
  {1,4,13,23,34},	// p=99: D=1827 D/Dc=1.082
  {1,3,29,37,47}};	// p=100:D=1844 D/Dc=1.079


// input dimension = 6

static char overlay_displacement_6 [100][6] = {
  {1,1,1,1,1,1},	// p= 1
  {1,1,1,1,1,1},	// p= 2: D=   6 D/Dc=1.375
  {1,1,1,1,1,1},	// p= 3: D=   6 D/Dc=0.981
  {1,1,1,1,1,1},	// p= 4: D=   6 D/Dc=0.772
  {1,1,1,2,2,2},	// p= 5: D=  15 D/Dc=1.013
  {1,1,1,1,1,1},	// p= 6: D=   6 D/Dc=0.550
  {1,1,2,2,3,3},	// p= 7: D=  28 D/Dc=1.046
  {1,1,1,3,3,3},	// p= 8: D=  24 D/Dc=0.866
  {1,1,2,2,4,4},	// p= 9: D=  42 D/Dc=1.039
  {1,1,1,3,3,3},	// p=10: D=  30 D/Dc=0.804
  {1,1,2,3,4,5},	// p=11: D=  56 D/Dc=1.015
  {1,1,1,5,5,5},	// p=12: D=  24 D/Dc=0.618
  {1,2,3,4,5,6},	// p=13: D=  91 D/Dc=1.125
  {1,1,3,3,5,5},	// p=14: D=  70 D/Dc=0.928
  {1,1,2,4,4,7},	// p=15: D=  87 D/Dc=0.977
  {1,1,3,3,5,7},	// p=16: D=  94 D/Dc=0.962
  {1,2,3,4,6,8},	// p=17: D= 124 D/Dc=1.050
  {1,1,5,5,7,7},	// p=18: D=  54 D/Dc=0.661
  {1,2,3,5,7,8},	// p=19: D= 152 D/Dc=1.060
  {1,1,3,3,7,9},	// p=20: D= 120 D/Dc=0.902
  {1,2,4,5,8,10},	// p=21: D= 210 D/Dc=1.146
  {1,1,3,5,7,9},	// p=22: D= 166 D/Dc=0.980
  {1,2,3,6,7,11},	// p=23: D= 220 D/Dc=1.088
  {1,1,5,7,11,11},	// p=24: D=  96 D/Dc=0.693
  {1,1,3,6,8,12},	// p=25: D= 230 D/Dc=1.037
  {1,3,5,7,9,11},	// p=26: D= 286 D/Dc=1.120
  {1,2,4,5,7,13},	// p=27: D= 255 D/Dc=1.024
  {1,3,5,9,11,13},	// p=28: D= 280 D/Dc=1.041
  {1,2,5,8,9,12},	// p=29: D= 319 D/Dc=1.080
  {1,1,7,7,11,13},	// p=30: D= 150 D/Dc=0.720
  {1,2,4,7,10,15},	// p=31: D= 363 D/Dc=1.089
  {1,3,5,7,9,15},	// p=32: D= 352 D/Dc=1.045
  {1,1,5,7,10,14},	// p=33: D= 372 D/Dc=1.047
  {1,3,5,7,9,15},	// p=34: D= 390 D/Dc=1.045
  {1,2,4,8,11,17},	// p=35: D= 430 D/Dc=1.072
  {1,5,7,11,13,17},	// p=36: D= 216 D/Dc=0.742
  {1,6,8,10,11,14},	// p=37: D= 518 D/Dc=1.123
  {1,3,5,7,11,17},	// p=38: D= 494 D/Dc=1.072
  {1,2,4,8,11,17},	// p=39: D= 495 D/Dc=1.051
  {1,3,7,9,11,17},	// p=40: D= 480 D/Dc=1.013
  {1,2,6,9,13,18},	// p=41: D= 615 D/Dc=1.123
  {1,5,11,13,17,19},	// p=42: D= 294 D/Dc=0.761
  {1,2,7,11,15,20},	// p=43: D= 631 D/Dc=1.093
  {1,3,5,7,9,21},	// p=44: D= 606 D/Dc=1.051
  {1,2,8,11,13,17},	// p=45: D= 648 D/Dc=1.067
  {1,3,5,11,17,21},	// p=46: D= 662 D/Dc=1.059
  {1,2,4,11,17,22},	// p=47: D= 746 D/Dc=1.104
  {1,5,7,11,13,23},	// p=48: D= 384 D/Dc=0.778
  {1,2,6,10,13,22},	// p=49: D= 794 D/Dc=1.100
  {1,3,7,11,21,23},	// p=50: D= 750 D/Dc=1.051
  {1,2,4,10,16,22},	// p=51: D= 822 D/Dc=1.083
  {1,3,5,7,11,25},	// p=52: D= 824 D/Dc=1.066
  {1,4,6,13,21,24},	// p=53: D= 949 D/Dc=1.127
  {1,5,7,13,17,19},	// p=54: D= 486 D/Dc=0.794
  {1,2,6,13,21,24},	// p=55: D= 952 D/Dc=1.094
  {1,5,9,11,13,25},	// p=56: D=1022 D/Dc=1.117
  {1,2,4,8,13,28},	// p=57: D= 990 D/Dc=1.083
  {1,3,5,7,13,27},	// p=58: D= 982 D/Dc=1.063
  {1,6,8,10,21,26},	// p=59: D=1142 D/Dc=1.130
  {1,7,11,13,19,23},	// p=60: D= 600 D/Dc=0.808
  {1,2,8,13,17,27},	// p=61: D=1215 D/Dc=1.134
  {1,3,7,15,27,29},	// p=62: D=1118 D/Dc=1.073
  {1,2,4,8,16,31},	// p=63: D=1302 D/Dc=1.142
  {1,3,5,7,17,31},	// p=64: D=1222 D/Dc=1.092
  {1,2,8,12,16,31},	// p=65: D=1430 D/Dc=1.167
  {1,5,7,13,19,23},	// p=66: D= 726 D/Dc=0.821
  {1,2,12,16,20,25},	// p=67: D=1430 D/Dc=1.137
  {1,5,7,9,19,31},	// p=68: D=1318 D/Dc=1.079
  {1,2,4,8,17,32},	// p=69: D=1398 D/Dc=1.097
  {1,3,17,19,27,31},	// p=70: D=1270 D/Dc=1.034
  {1,2,12,18,22,26},	// p=71: D=1633 D/Dc=1.158
  {1,5,7,11,13,35},	// p=72: D= 864 D/Dc=0.833
  {1,4,9,15,17,35},	// p=73: D=1660 D/Dc=1.141
  {1,11,23,27,29,31},	// p=74: D=1702 D/Dc=1.142
  {1,2,11,16,23,31},	// p=75: D=1737 D/Dc=1.141
  {1,13,23,27,29,31},	// p=76: D=1862 D/Dc=1.169
  {1,2,8,18,30,34},	// p=77: D=1935 D/Dc=1.178
  {1,17,23,25,29,35},	// p=78: D=1014 D/Dc=0.844
  {1,2,10,15,19,38},	// p=79: D=1900 D/Dc=1.143
  {1,3,11,17,21,37},	// p=80: D=1750 D/Dc=1.085
  {1,2,8,19,31,35},	// p=81: D=1917 D/Dc=1.124
  {1,5,7,9,19,37},	// p=82: D=1886 D/Dc=1.104
  {1,4,14,22,24,30},	// p=83: D=2064 D/Dc=1.143
  {1,5,11,13,23,41},	// p=84: D=1176 D/Dc=0.854
  {1,4,7,9,23,41},	// p=85: D=2088 D/Dc=1.127
  {1,7,9,11,23,37},	// p=86: D=2150 D/Dc=1.133
  {1,2,14,22,28,32},	// p=87: D=2151 D/Dc=1.122
  {1,3,7,17,29,41},	// p=88: D=2240 D/Dc=1.134
  {1,2,14,22,30,41},	// p=89: D=2326 D/Dc=1.145
  {1,7,13,19,29,31},	// p=90: D=1350 D/Dc=0.864
  {1,4,15,27,34,36},	// p=91: D=2352 D/Dc=1.130
  {1,3,5,21,35,45},	// p=92: D=2392 D/Dc=1.130
  {1,2,13,17,23,44},	// p=93: D=2391 D/Dc=1.119
  {1,3,5,11,21,45},	// p=94: D=2404 D/Dc=1.112
  {1,3,9,23,37,42},	// p=95: D=2548 D/Dc=1.135
  {1,5,7,13,23,47},	// p=96: D=1536 D/Dc=0.874
  {1,4,15,29,36,38},	// p=97: D=2686 D/Dc=1.145
  {1,3,5,13,27,47},	// p=98: D=2646 D/Dc=1.127
  {1,4,7,19,28,41},	// p=99: D=2703 D/Dc=1.130
  {1,3,7,17,29,41}};	// p=100:D=2720 D/Dc=1.124


// input dimension = 7

static char overlay_displacement_7 [100][7] = {
  {1,1,1,1,1,1,1},	// p= 1
  {1,1,1,1,1,1,1},	// p= 2: D=   7 D/Dc=1.461
  {1,1,1,1,1,1,1},	// p= 3: D=   7 D/Dc=1.032
  {1,1,1,1,1,1,1},	// p= 4: D=   7 D/Dc=0.806
  {1,1,1,1,2,2,2},	// p= 5: D=  16 D/Dc=1.007
  {1,1,1,1,1,1,1},	// p= 6: D=   7 D/Dc=0.570
  {1,1,1,2,2,3,3},	// p= 7: D=  29 D/Dc=1.016
  {1,1,1,1,3,3,3},	// p= 8: D=  28 D/Dc=0.890
  {1,1,1,2,2,4,4},	// p= 9: D=  43 D/Dc=0.997
  {1,1,1,1,3,3,3},	// p=10: D=  31 D/Dc=0.774
  {1,1,2,3,3,4,5},	// p=11: D=  65 D/Dc=1.032
  {1,1,1,1,5,5,5},	// p=12: D=  28 D/Dc=0.629
  {1,1,2,3,4,5,6},	// p=13: D=  92 D/Dc=1.064
  {1,1,1,3,3,5,5},	// p=14: D=  71 D/Dc=0.877
  {1,1,2,2,4,4,7},	// p=15: D=  91 D/Dc=0.936
  {1,1,3,3,5,5,7},	// p=16: D= 112 D/Dc=0.983
  {1,1,2,4,5,7,8},	// p=17: D= 146 D/Dc=1.065
  {1,1,1,5,5,7,7},	// p=18: D=  63 D/Dc=0.666
  {1,2,3,4,5,8,9},	// p=19: D= 179 D/Dc=1.072
  {1,1,3,3,7,7,9},	// p=20: D= 124 D/Dc=0.854
  {1,1,2,4,5,8,10},	// p=21: D= 211 D/Dc=1.069
  {1,1,3,5,5,7,9},	// p=22: D= 191 D/Dc=0.977
  {1,2,3,5,6,9,10},	// p=23: D= 256 D/Dc=1.089
  {1,1,5,5,7,7,11},	// p=24: D= 112 D/Dc=0.694
  {1,2,3,4,7,8,12},	// p=25: D= 287 D/Dc=1.073
  {1,1,3,5,7,9,11},	// p=26: D= 287 D/Dc=1.038
  {1,2,4,5,7,10,13},	// p=27: D= 331 D/Dc=1.079
  {1,1,3,5,9,11,13},	// p=28: D= 284 D/Dc=0.969
  {1,2,3,5,7,11,14},	// p=29: D= 400 D/Dc=1.116
  {1,1,7,7,11,11,13},	// p=30: D= 175 D/Dc=0.717
  {1,2,3,6,7,11,15},	// p=31: D= 445 D/Dc=1.111
  {1,3,5,7,9,11,13},	// p=32: D= 448 D/Dc=1.085
  {1,2,4,5,8,10,16},	// p=33: D= 466 D/Dc=1.078
  {1,3,5,7,9,11,13},	// p=34: D= 455 D/Dc=1.038
  {1,2,3,4,9,11,17},	// p=35: D= 521 D/Dc=1.084
  {1,1,5,7,11,13,17},	// p=36: D= 252 D/Dc=0.736
  {1,2,4,5,10,12,18},	// p=37: D= 607 D/Dc=1.115
  {1,3,5,7,9,11,17},	// p=38: D= 575 D/Dc=1.061
  {1,2,4,7,10,14,19},	// p=39: D= 675 D/Dc=1.124
  {1,3,7,9,11,13,17},	// p=40: D= 496 D/Dc=0.943
  {1,2,3,7,11,15,20},	// p=41: D= 735 D/Dc=1.124
  {1,1,5,11,13,17,19},	// p=42: D= 343 D/Dc=0.752
  {1,2,4,8,11,16,21},	// p=43: D= 903 D/Dc=1.196
  {1,3,5,7,9,13,21},	// p=44: D= 764 D/Dc=1.079
  {1,2,4,8,11,16,22},	// p=45: D= 819 D/Dc=1.095
  {1,3,5,7,11,17,19},	// p=46: D= 855 D/Dc=1.098
  {1,2,4,7,13,16,21},	// p=47: D= 936 D/Dc=1.128
  {1,5,7,11,13,17,19},	// p=48: D= 448 D/Dc=0.767
  {1,2,3,8,12,18,24},	// p=49: D=1023 D/Dc=1.138
  {1,3,7,9,11,21,23},	// p=50: D= 775 D/Dc=0.974
  {1,2,5,8,11,19,23},	// p=51: D=1054 D/Dc=1.116
  {1,3,5,7,11,17,25},	// p=52: D=1031 D/Dc=1.086
  {1,2,4,8,15,18,24},	// p=53: D=1183 D/Dc=1.144
  {1,5,7,11,13,23,25},	// p=54: D= 567 D/Dc=0.780
  {1,2,3,8,14,19,26},	// p=55: D=1231 D/Dc=1.131
  {1,3,5,9,15,25,27},	// p=56: D=1136 D/Dc=1.070
  {1,2,4,7,14,22,26},	// p=57: D=1258 D/Dc=1.109
  {1,5,7,9,13,23,25},	// p=58: D=1479 D/Dc=1.184
  {1,2,5,8,15,22,26},	// p=59: D=1452 D/Dc=1.156
  {1,7,11,13,17,19,23},	// p=60: D= 700 D/Dc=0.791
  {1,2,4,8,15,20,29},	// p=61: D=1551 D/Dc=1.162
  {1,3,5,7,13,19,29},	// p=62: D=1455 D/Dc=1.109
  {1,2,4,8,16,23,29},	// p=63: D=1602 D/Dc=1.148
  {1,3,5,9,17,19,29},	// p=64: D=1559 D/Dc=1.118
  {1,2,4,8,16,21,31},	// p=65: D=1743 D/Dc=1.166
  {1,5,7,13,19,23,25},	// p=66: D= 847 D/Dc=0.802
  {1,2,4,10,18,23,30},	// p=67: D=1791 D/Dc=1.152
  {1,3,15,21,27,29,31},	// p=68: D=1703 D/Dc=1.109
  {1,2,4,8,17,22,32},	// p=69: D=1822 D/Dc=1.133
  {1,3,17,19,27,31,33},	// p=70: D=1519 D/Dc=1.022
  {1,20,23,26,30,32,34},// p=71: D=2130 D/Dc=1.195
  {1,5,7,11,13,23,35},	// p=72: D=1008 D/Dc=0.812
  {1,2,12,16,22,25,30},	// p=73: D=2078 D/Dc=1.153
  {1,3,5,7,19,25,35},	// p=74: D=2007 D/Dc=1.120
  {1,2,4,14,22,29,34},	// p=75: D=2128 D/Dc=1.140
  {1,3,5,7,17,25,35},	// p=76: D=2071 D/Dc=1.112
  {1,2,4,9,19,25,36},	// p=77: D=2262 D/Dc=1.149
  {1,5,7,11,17,19,37},	// p=78: D=1183 D/Dc=0.822
  {1,2,13,19,24,28,35},	// p=79: D=2404 D/Dc=1.159
  {1,7,9,11,13,17,37},	// p=80: D=1984 D/Dc=1.041
  {1,2,5,11,20,29,37},	// p=81: D=2491 D/Dc=1.154
  {1,3,7,19,21,31,37},	// p=82: D=2359 D/Dc=1.112
  {1,2,8,18,22,33,37},	// p=83: D=2702 D/Dc=1.177
  {1,5,11,13,17,23,37},	// p=84: D=1372 D/Dc=0.830
  {1,2,14,19,23,26,32},	// p=85: D=2726 D/Dc=1.159
  {1,3,5,11,21,35,39},	// p=86: D=2583 D/Dc=1.117
  {1,5,7,16,25,35,38},	// p=87: D=3103 D/Dc=1.212
  {1,3,7,13,21,37,39},	// p=88: D=2703 D/Dc=1.120
  {1,2,6,11,23,27,42},	// p=89: D=3062 D/Dc=1.181
  {1,7,11,17,23,29,31},	// p=90: D=1575 D/Dc=0.839
  {1,2,6,10,23,36,41},	// p=91: D=3031 D/Dc=1.152
  {1,3,5,11,25,31,43},	// p=92: D=2975 D/Dc=1.131
  {1,2,8,20,25,37,41},	// p=93: D=3154 D/Dc=1.154
  {1,3,11,17,23,41,45},	// p=94: D=3071 D/Dc=1.128
  {1,2,12,16,22,41,46},	// p=95: D=3324 D/Dc=1.163
  {1,5,7,11,29,31,43},	// p=96: D=1792 D/Dc=0.846
  {1,2,10,14,18,35,40},	// p=97: D=3450 D/Dc=1.164
  {1,3,5,13,17,23,47},	// p=98: D=3215 D/Dc=1.114
  {1,2,7,25,37,41,47},	// p=99: D=3535 D/Dc=1.158
  {1,7,9,11,13,23,49}};	// p=100:D=3100 D/Dc=1.075


// input dimension = 8

static char overlay_displacement_8 [100][8] = {
  {1,1,1,1,1,1,1,1},		// p= 1
  {1,1,1,1,1,1,1,1},		// p= 2: D=   8 D/Dc=1.542
  {1,1,1,1,1,1,1,1},		// p= 3: D=   8 D/Dc=1.082
  {1,1,1,1,1,1,1,1},		// p= 4: D=   8 D/Dc=0.841
  {1,1,1,1,2,2,2,2},		// p= 5: D=  20 D/Dc=1.094
  {1,1,1,1,1,1,1,1},		// p= 6: D=   8 D/Dc=0.590
  {1,1,1,2,2,2,3,3},		// p= 7: D=  33 D/Dc=1.047
  {1,1,1,1,3,3,3,3},		// p= 8: D=  32 D/Dc=0.917
  {1,1,1,2,2,2,4,4},		// p= 9: D=  47 D/Dc=1.003
  {1,1,1,1,3,3,3,3},		// p=10: D=  40 D/Dc=0.843
  {1,1,2,2,3,4,4,5},		// p=11: D=  76 D/Dc=1.070
  {1,1,1,1,5,5,5,5},		// p=12: D=  32 D/Dc=0.643
  {1,1,2,3,4,5,5,6},		// p=13: D= 104 D/Dc=1.081
  {1,1,1,3,3,3,5,5},		// p=14: D=  80 D/Dc=0.889
  {1,1,2,2,4,4,7,7},		// p=15: D= 140 D/Dc=1.107
  {1,1,3,3,5,5,7,7},		// p=16: D= 128 D/Dc=1.000
  {1,2,3,4,5,6,7,8},		// p=17: D= 204 D/Dc=1.197
  {1,1,1,5,5,5,7,7},		// p=18: D=  72 D/Dc=0.677
  {1,1,3,5,6,7,8,9},		// p=19: D= 209 D/Dc=1.099
  {1,1,3,3,7,7,9,9},		// p=20: D= 160 D/Dc=0.920
  {1,1,2,4,5,8,8,10},		// p=21: D= 239 D/Dc=1.077
  {1,1,3,3,5,7,7,9},		// p=22: D= 224 D/Dc=1.001
  {1,1,2,4,6,8,8,11},		// p=23: D= 302 D/Dc=1.118
  {1,1,5,5,7,7,11,11},		// p=24: D= 128 D/Dc=0.701
  {1,1,2,4,6,8,9,12},		// p=25: D= 347 D/Dc=1.114
  {1,1,3,5,7,7,9,11},		// p=26: D= 320 D/Dc=1.034
  {1,1,2,4,7,8,10,13},		// p=27: D= 395 D/Dc=1.111
  {1,1,3,5,5,9,11,13},		// p=28: D= 320 D/Dc=0.969
  {1,2,3,4,8,9,10,14},		// p=29: D= 455 D/Dc=1.120
  {1,1,7,7,11,11,13,13},	// p=30: D= 200 D/Dc=0.721
  {1,2,3,4,8,9,13,15},		// p=31: D= 539 D/Dc=1.150
  {1,3,5,7,9,11,13,15},		// p=32: D= 512 D/Dc=1.091
  {1,2,4,5,7,8,14,16},		// p=33: D= 560 D/Dc=1.110
  {1,3,5,7,9,11,13,15},		// p=34: D= 680 D/Dc=1.192
  {1,2,3,6,8,12,13,17},		// p=35: D= 659 D/Dc=1.144
  {1,1,5,7,11,11,13,17},	// p=36: D= 288 D/Dc=0.738
  {1,2,3,6,10,12,14,18},	// p=37: D= 740 D/Dc=1.155
  {1,3,5,7,9,11,13,15},		// p=38: D= 680 D/Dc=1.081
  {1,2,4,5,7,10,16,19},		// p=39: D= 785 D/Dc=1.136
  {1,3,7,9,11,13,17,19},	// p=40: D= 640 D/Dc=1.003
  {1,2,4,7,10,14,16,19},	// p=41: D= 900 D/Dc=1.164
  {1,1,5,11,11,13,17,19},	// p=42: D= 392 D/Dc=0.752
  {1,2,4,8,11,15,18,20},	// p=43: D= 979 D/Dc=1.164
  {1,3,5,7,9,13,17,19},		// p=44: D= 896 D/Dc=1.092
  {1,2,4,7,8,14,17,19},		// p=45: D= 980 D/Dc=1.120
  {1,3,5,7,9,13,17,19},		// p=46: D= 984 D/Dc=1.100
  {1,2,4,8,13,15,18,22},	// p=47: D=1162 D/Dc=1.174
  {1,5,7,11,13,17,19,23},	// p=48: D= 512 D/Dc=0.765
  {1,2,4,8,13,15,18,24},	// p=49: D=1288 D/Dc=1.191
  {1,3,7,9,11,13,21,23},	// p=50: D=1000 D/Dc=1.031
  {1,2,4,8,13,16,19,25},	// p=51: D=1496 D/Dc=1.240
  {1,3,5,7,9,11,19,25},		// p=52: D=1272 D/Dc=1.124
  {1,2,4,8,11,15,20,25},	// p=53: D=1435 D/Dc=1.174
  {1,5,7,11,13,17,19,23},	// p=54: D= 648 D/Dc=0.776
  {1,2,4,7,14,17,23,26},	// p=55: D=1540 D/Dc=1.177
  {1,3,5,9,11,13,19,25},	// p=56: D=1280 D/Dc=1.057
  {1,2,4,5,11,14,22,28},	// p=57: D=1586 D/Dc=1.158
  {1,3,5,7,9,17,21,27},		// p=58: D=1508 D/Dc=1.112
  {1,2,5,9,15,18,21,28},	// p=59: D=1755 D/Dc=1.182
  {1,7,11,13,17,19,23,29},	// p=60: D= 800 D/Dc=0.786
  {1,2,5,8,11,15,25,29},	// p=61: D=1855 D/Dc=1.180
  {1,3,5,7,11,13,25,27},	// p=62: D=1704 D/Dc=1.115
  {1,2,4,8,11,16,25,31},	// p=63: D=1955 D/Dc=1.178
  {1,3,5,7,11,17,23,31},	// p=64: D=1856 D/Dc=1.132
  {1,2,4,8,11,16,23,32},	// p=65: D=2015 D/Dc=1.164
  {1,5,7,13,17,19,23,29},	// p=66: D= 968 D/Dc=0.796
  {1,2,6,9,14,19,26,30},	// p=67: D=2162 D/Dc=1.174
  {1,3,5,7,13,19,27,31},	// p=68: D=2112 D/Dc=1.145
  {1,2,4,7,16,22,26,34},	// p=69: D=2219 D/Dc=1.159
  {1,3,9,11,13,17,23,29},	// p=70: D=1960 D/Dc=1.076
  {1,2,4,8,13,18,28,34},	// p=71: D=2455 D/Dc=1.189
  {1,5,7,11,13,19,23,35},	// p=72: D=1152 D/Dc=0.805
  {1,2,4,9,15,20,27,34},	// p=73: D=2563 D/Dc=1.186
  {1,3,5,7,13,19,31,33},	// p=74: D=2516 D/Dc=1.161
  {1,2,4,7,14,19,29,37},	// p=75: D=2628 D/Dc=1.173
  {1,3,5,13,17,23,29,37},	// p=76: D=2616 D/Dc=1.156
  {1,2,9,13,19,24,27,30},	// p=77: D=2821 D/Dc=1.187
  {1,5,7,11,17,19,31,37},	// p=78: D=1352 D/Dc=0.813
  {1,2,4,8,15,20,31,38},	// p=79: D=2914 D/Dc=1.180
  {1,3,7,9,17,19,31,37},	// p=80: D=2560 D/Dc=1.094
  {1,2,4,8,17,20,31,37},	// p=81: D=3017 D/Dc=1.175
  {1,5,7,9,19,23,37,39},	// p=82: D=2952 D/Dc=1.149
  {1,2,6,14,16,25,34,37},	// p=83: D=3193 D/Dc=1.183
  {1,5,11,13,17,23,25,41},	// p=84: D=1568 D/Dc=0.820
  {1,2,4,8,16,21,32,42},	// p=85: D=3570 D/Dc=1.225
  {1,3,5,11,21,23,35,41},	// p=86: D=3144 D/Dc=1.138
  {1,2,4,11,20,28,34,41},	// p=87: D=3431 D/Dc=1.177
  {1,3,5,7,13,21,31,43},	// p=88: D=3328 D/Dc=1.147
  {1,3,5,15,22,26,33,39},	// p=89: D=3641 D/Dc=1.188
  {1,7,11,17,19,23,31,37},	// p=90: D=1800 D/Dc=0.827
  {1,2,4,8,17,20,33,44},	// p=91: D=3727 D/Dc=1.179
  {1,3,5,7,13,25,31,45},	// p=92: D=3680 D/Dc=1.160
  {1,2,4,13,20,28,38,43},	// p=93: D=3836 D/Dc=1.174
  {1,3,5,7,13,27,29,45},	// p=94: D=3744 D/Dc=1.149
  {1,2,9,12,16,22,41,46},	// p=95: D=4058 D/Dc=1.185
  {1,5,7,11,19,29,31,43},	// p=96: D=2048 D/Dc=0.834
  {1,2,4,10,18,25,38,46},	// p=97: D=4263 D/Dc=1.192
  {1,3,9,11,23,37,39,43},	// p=98: D=3920 D/Dc=1.133
  {1,2,4,14,23,32,40,47},	// p=99: D=4319 D/Dc=1.179
  {1,3,7,23,29,37,39,49}};	// p=100:D=4000 D/Dc=1.125


// input dimension = 9

static char overlay_displacement_9 [100][9] = {
  {1,1,1,1,1,1,1,1,1},		// p= 1
  {1,1,1,1,1,1,1,1,1},		// p= 2: D=   9 D/Dc=1.620
  {1,1,1,1,1,1,1,1,1},		// p= 3: D=   9 D/Dc=1.130
  {1,1,1,1,1,1,1,1,1},		// p= 4: D=   9 D/Dc=0.875
  {1,1,1,1,1,2,2,2,2},		// p= 5: D=  21 D/Dc=1.096
  {1,1,1,1,1,1,1,1,1},		// p= 6: D=   9 D/Dc=0.610
  {1,1,1,2,2,2,3,3,3},		// p= 7: D=  42 D/Dc=1.149
  {1,1,1,1,1,3,3,3,3},		// p= 8: D=  36 D/Dc=0.945
  {1,1,1,2,2,2,4,4,4},		// p= 9: D=  63 D/Dc=1.126
  {1,1,1,1,1,3,3,3,3},		// p=10: D=  41 D/Dc=0.827
  {1,1,1,2,3,3,4,5,5},		// p=11: D=  89 D/Dc=1.119
  {1,1,1,1,1,5,5,5,5},		// p=12: D=  36 D/Dc=0.659
  {1,1,2,2,3,4,5,5,6},		// p=13: D= 120 D/Dc=1.121
  {1,1,1,3,3,3,5,5,5},		// p=14: D= 105 D/Dc=0.981
  {1,1,1,2,2,4,4,7,7},		// p=15: D= 141 D/Dc=1.070
  {1,1,1,3,3,5,5,7,7},		// p=16: D= 144 D/Dc=1.021
  {1,1,2,3,4,5,6,7,8},		// p=17: D= 205 D/Dc=1.154
  {1,1,1,5,5,5,7,7,7},		// p=18: D=  81 D/Dc=0.689
  {1,2,3,4,5,6,7,8,9},		// p=19: D= 285 D/Dc=1.232
  {1,1,1,3,3,7,7,9,9},		// p=20: D= 164 D/Dc=0.893
  {1,1,2,2,4,5,8,8,10},		// p=21: D= 255 D/Dc=1.067
  {1,1,1,3,3,5,7,9,9},		// p=22: D= 257 D/Dc=1.027
  {1,2,3,4,5,6,8,10,11},	// p=23: D= 349 D/Dc=1.151
  {1,1,1,5,5,7,7,11,11},	// p=24: D= 144 D/Dc=0.712
  {1,1,3,4,6,7,9,11,12},	// p=25: D= 387 D/Dc=1.125
  {1,1,3,3,5,7,9,9,11},		// p=26: D= 377 D/Dc=1.073
  {1,2,4,5,7,8,10,11,13},	// p=27: D= 549 D/Dc=1.252
  {1,1,3,3,5,5,9,11,13},	// p=28: D= 420 D/Dc=1.060
  {1,2,3,4,5,7,8,13,14},	// p=29: D= 524 D/Dc=1.148
  {1,1,1,7,7,11,11,13,13},	// p=30: D= 225 D/Dc=0.730
  {1,2,3,4,7,8,12,13,14},	// p=31: D= 624 D/Dc=1.180
  {1,1,3,5,7,9,11,13,15},	// p=32: D= 576 D/Dc=1.102
  {1,1,2,4,5,8,10,13,16},	// p=33: D= 636 D/Dc=1.127
  {1,1,3,5,7,9,11,13,15},	// p=34: D= 681 D/Dc=1.136
  {1,1,4,6,8,9,11,13,16},	// p=35: D= 735 D/Dc=1.150
  {1,1,5,7,11,11,13,13,17},	// p=36: D= 324 D/Dc=0.745
  {1,2,4,5,7,8,10,16,18},	// p=37: D= 839 D/Dc=1.169
  {1,3,5,7,9,11,13,15,17},	// p=38: D= 969 D/Dc=1.227
  {1,2,4,5,7,10,14,16,17},	// p=39: D= 936 D/Dc=1.179
  {1,1,3,7,9,11,13,17,19},	// p=40: D= 656 D/Dc=0.965
  {1,2,4,5,8,11,14,17,20},	// p=41: D=1020 D/Dc=1.177
  {1,1,5,5,11,11,13,17,19},	// p=42: D= 441 D/Dc=0.757
  {1,2,4,7,8,11,13,16,21},	// p=43: D=1121 D/Dc=1.183
  {1,1,3,5,7,9,13,19,21},	// p=44: D=1028 D/Dc=1.110
  {1,2,4,7,8,11,13,16,22},	// p=45: D=1164 D/Dc=1.157
  {1,3,5,7,9,11,13,19,21},	// p=46: D=1161 D/Dc=1.133
  {1,2,4,7,10,13,15,18,23},	// p=47: D=1352 D/Dc=1.200
  {1,1,5,7,11,13,17,19,23},	// p=48: D= 576 D/Dc=0.769
  {1,2,5,8,9,13,17,20,23},	// p=49: D=1421 D/Dc=1.185
  {1,3,7,9,11,13,17,19,21},	// p=50: D=1025 D/Dc=0.989
  {1,2,4,5,8,13,16,19,25},	// p=51: D=1521 D/Dc=1.184
  {1,3,5,7,9,11,17,23,25},	// p=52: D=1508 D/Dc=1.158
  {1,2,4,9,12,15,18,20,25},	// p=53: D=1655 D/Dc=1.193
  {1,5,7,11,13,17,19,23,25},	// p=54: D= 729 D/Dc=0.779
  {1,2,3,7,12,13,17,21,27},	// p=55: D=1815 D/Dc=1.209
  {1,3,5,9,11,13,17,23,27},	// p=56: D=1680 D/Dc=1.145
  {1,2,4,7,8,14,16,25,28},	// p=57: D=1995 D/Dc=1.228
  {1,3,5,7,9,13,17,25,27},	// p=58: D=1889 D/Dc=1.177
  {1,2,5,9,12,18,20,24,28},	// p=59: D=2040 D/Dc=1.204
  {1,1,7,11,13,17,19,23,29},	// p=60: D= 900 D/Dc=0.788
  {1,2,4,8,15,18,22,27,29},	// p=61: D=2171 D/Dc=1.206
  {1,3,5,7,11,13,15,27,29},	// p=62: D=2068 D/Dc=1.160
  {1,2,4,8,11,13,16,25,31},	// p=63: D=2217 D/Dc=1.184
  {1,3,5,7,11,17,19,27,31},	// p=64: D=2304 D/Dc=1.191
  {1,2,4,7,8,16,18,28,32},	// p=65: D=2483 D/Dc=1.219
  {1,5,7,13,17,19,23,25,29},	// p=66: D=1089 D/Dc=0.796
  {1,2,5,9,15,18,21,25,32},	// p=67: D=2573 D/Dc=1.208
  {1,3,5,7,11,13,19,29,33},	// p=68: D=2481 D/Dc=1.171
  {1,2,4,7,8,17,20,29,34},	// p=69: D=2604 D/Dc=1.184
  {1,3,9,11,13,17,19,23,29},	// p=70: D=2009 D/Dc=1.027
  {1,2,4,8,11,18,24,27,32},	// p=71: D=2859 D/Dc=1.209
  {1,5,7,11,13,17,19,29,31},	// p=72: D=1296 D/Dc=0.804
  {1,2,4,8,9,16,18,32,36},	// p=73: D=3066 D/Dc=1.222
  {1,3,7,9,11,21,25,27,33},	// p=74: D=3108 D/Dc=1.215
  {1,2,4,7,8,17,23,26,37},	// p=75: D=2997 D/Dc=1.179
  {1,3,5,7,11,15,17,31,37},	// p=76: D=2980 D/Dc=1.162
  {1,2,3,13,20,24,29,32,38},	// p=77: D=3277 D/Dc=1.205
  {1,5,7,11,17,19,23,31,37},	// p=78: D=1521 D/Dc=0.811
  {1,2,4,7,13,21,24,29,39},	// p=79: D=3500 D/Dc=1.217
  {1,3,7,9,11,17,19,31,37},	// p=80: D=2624 D/Dc=1.042
  {1,2,4,5,10,20,23,32,40},	// p=81: D=3618 D/Dc=1.210
  {1,3,5,7,9,19,25,31,39},	// p=82: D=3452 D/Dc=1.169
  {1,2,3,7,14,20,26,31,41},	// p=83: D=3872 D/Dc=1.225
  {1,5,11,13,17,23,25,37,41},	// p=84: D=1764 D/Dc=0.818
  {1,2,3,13,22,26,31,36,42},	// p=85: D=3884 D/Dc=1.201
  {1,3,5,7,13,19,23,33,41},	// p=86: D=3913 D/Dc=1.193
  {1,2,4,7,10,17,22,35,43},	// p=87: D=3975 D/Dc=1.190
  {1,3,5,7,13,19,25,35,39},	// p=88: D=3961 D/Dc=1.176
  {1,2,4,8,16,23,29,34,43},	// p=89: D=4484 D/Dc=1.239
  {1,7,11,13,17,23,29,31,43},	// p=90: D=2025 D/Dc=0.824
  {1,2,4,8,15,24,29,34,45},	// p=91: D=4467 D/Dc=1.212
  {1,3,5,7,11,19,25,35,45},	// p=92: D=4388 D/Dc=1.190
  {1,2,5,13,23,29,32,40,44},	// p=93: D=4563 D/Dc=1.202
  {1,3,7,11,13,19,25,39,41},	// p=94: D=4460 D/Dc=1.177
  {1,2,4,8,16,23,31,34,44},	// p=95: D=4917 D/Dc=1.224
  {1,5,7,11,13,17,23,37,47},	// p=96: D=2304 D/Dc=0.830
  {1,2,3,9,18,24,31,36,47},	// p=97: D=5003 D/Dc=1.212
  {1,3,5,17,19,29,31,37,41},	// p=98: D=4900 D/Dc=1.189
  {1,2,4,8,16,23,32,37,49},	// p=99: D=5211 D/Dc=1.215
  {1,3,7,19,23,29,37,39,49}};	// p=100:D=4100 D/Dc=1.068


// input dimension = 10

static char overlay_displacement_10 [100][10] = {
  {1,1,1,1,1,1,1,1,1,1},	// p= 1
  {1,1,1,1,1,1,1,1,1,1},	// p= 2: D=  10 D/Dc=1.695
  {1,1,1,1,1,1,1,1,1,1},	// p= 3: D=  10 D/Dc=1.176
  {1,1,1,1,1,1,1,1,1,1},	// p= 4: D=  10 D/Dc=0.908
  {1,1,1,1,1,2,2,2,2,2},	// p= 5: D=  25 D/Dc=1.175
  {1,1,1,1,1,1,1,1,1,1},	// p= 6: D=  10 D/Dc=0.630
  {1,1,1,1,2,2,2,3,3,3},	// p= 7: D=  43 D/Dc=1.138
  {1,1,1,1,1,3,3,3,3,3},	// p= 8: D=  40 D/Dc=0.973
  {1,1,1,1,2,2,2,4,4,4},	// p= 9: D=  64 D/Dc=1.107
  {1,1,1,1,1,3,3,3,3,3},	// p=10: D=  50 D/Dc=0.890
  {1,1,2,2,3,3,4,4,5,5},	// p=11: D= 110 D/Dc=1.212
  {1,1,1,1,1,5,5,5,5,5},	// p=12: D=  40 D/Dc=0.676
  {1,1,2,2,3,3,4,5,6,6},	// p=13: D= 137 D/Dc=1.164
  {1,1,1,1,3,3,3,5,5,5},	// p=14: D= 106 D/Dc=0.957
  {1,1,1,2,2,4,4,4,7,7},	// p=15: D= 157 D/Dc=1.095
  {1,1,1,3,3,3,5,5,7,7},	// p=16: D= 160 D/Dc=1.043
  {1,1,2,2,4,4,5,7,7,8},	// p=17: D= 222 D/Dc=1.164
  {1,1,1,1,5,5,5,7,7,7},	// p=18: D=  90 D/Dc=0.704
  {1,1,2,3,4,5,6,7,8,9},	// p=19: D= 286 D/Dc=1.195
  {1,1,1,3,3,3,7,7,9,9},	// p=20: D= 200 D/Dc=0.954
  {1,1,2,2,4,5,5,8,8,10},	// p=21: D= 304 D/Dc=1.126
  {1,1,3,3,5,5,7,7,9,9},	// p=22: D= 330 D/Dc=1.125
  {1,1,2,3,5,6,7,9,10,11},	// p=23: D= 392 D/Dc=1.178
  {1,1,1,5,5,7,7,11,11,11},	// p=24: D= 160 D/Dc=0.724
  {1,2,3,4,6,7,8,9,11,12},	// p=25: D= 525 D/Dc=1.265
  {1,1,3,3,5,5,7,9,11,11},	// p=26: D= 442 D/Dc=1.120
  {1,1,2,4,5,7,8,10,11,13},	// p=27: D= 550 D/Dc=1.208
  {1,1,3,3,5,5,9,11,11,13},	// p=28: D= 424 D/Dc=1.026
  {1,2,3,4,6,7,8,11,12,13},	// p=29: D= 613 D/Dc=1.196
  {1,1,1,7,7,7,11,11,13,13},	// p=30: D= 250 D/Dc=0.741
  {1,2,3,4,6,7,8,12,14,15},	// p=31: D= 744 D/Dc=1.240
  {1,1,3,5,5,7,9,11,13,15},	// p=32: D= 640 D/Dc=1.118
  {1,2,4,5,7,8,10,13,14,16},	// p=33: D= 880 D/Dc=1.275
  {1,1,3,5,7,9,9,11,13,15},	// p=34: D= 738 D/Dc=1.137
  {1,2,3,4,6,8,11,12,13,17},	// p=35: D= 853 D/Dc=1.191
  {1,1,5,5,7,7,11,13,17,17},	// p=36: D= 360 D/Dc=0.754
  {1,1,3,5,7,9,11,13,15,18},	// p=37: D= 975 D/Dc=1.211
  {1,1,3,5,7,9,11,13,15,17},	// p=38: D= 970 D/Dc=1.179
  {1,2,4,5,7,8,10,14,16,19},	// p=39: D=1021 D/Dc=1.182
  {1,1,3,7,7,9,11,13,17,19},	// p=40: D= 800 D/Dc=1.023
  {1,2,4,5,8,9,10,16,18,20},	// p=41: D=1271 D/Dc=1.261
  {1,1,5,5,11,11,13,13,17,19},	// p=42: D= 490 D/Dc=0.766
  {1,2,3,4,8,9,11,16,18,21},	// p=43: D=1276 D/Dc=1.210
  {1,3,5,7,9,13,15,17,19,21},	// p=44: D=1210 D/Dc=1.154
  {1,2,4,7,8,11,13,16,19,22},	// p=45: D=1305 D/Dc=1.175
  {1,1,3,5,7,11,13,17,19,21},	// p=46: D=1362 D/Dc=1.177
  {1,2,3,4,8,11,13,17,18,23},	// p=47: D=1526 D/Dc=1.221
  {1,1,5,7,11,11,13,17,19,23},	// p=48: D= 640 D/Dc=0.776
  {1,2,3,5,9,12,13,19,20,23},	// p=49: D=1621 D/Dc=1.213
  {1,3,7,9,11,13,17,19,21,23},	// p=50: D=1250 D/Dc=1.046
  {1,2,4,5,10,11,13,19,22,25},	// p=51: D=1696 D/Dc=1.196
  {1,3,5,7,9,11,15,17,19,23},	// p=52: D=1690 D/Dc=1.174
  {1,2,4,7,9,12,15,20,23,25},	// p=53: D=1924 D/Dc=1.231
  {1,1,5,7,11,13,17,19,23,25},	// p=54: D= 810 D/Dc=0.785
  {1,2,3,7,8,12,14,18,24,27},	// p=55: D=2021 D/Dc=1.220
  {1,3,5,9,11,13,15,17,19,27},	// p=56: D=1696 D/Dc=1.100
  {1,2,4,5,10,13,16,20,22,28},	// p=57: D=2106 D/Dc=1.206
  {1,1,9,11,13,15,17,17,21,23},	// p=58: D=2146 D/Dc=1.199
  {1,2,4,7,11,15,17,20,23,29},	// p=59: D=2356 D/Dc=1.237
  {1,1,7,11,13,13,17,19,23,29},	// p=60: D=1000 D/Dc=0.794
  {1,2,4,7,11,16,17,22,25,30},	// p=61: D=2501 D/Dc=1.237
  {1,3,5,7,9,11,15,19,27,29},	// p=62: D=2354 D/Dc=1.182
  {1,2,4,5,11,13,17,22,25,31},	// p=63: D=2520 D/Dc=1.206
  {1,3,5,7,9,11,13,19,29,31},	// p=64: D=2536 D/Dc=1.193
  {1,2,4,7,8,16,18,21,27,32},	// p=65: D=2812 D/Dc=1.238
  {1,5,7,13,17,19,23,25,29,31},	// p=66: D=1210 D/Dc=0.801
  {1,2,4,8,11,17,22,24,27,31},	// p=67: D=2936 D/Dc=1.231
  {1,3,5,7,9,11,13,19,31,33},	// p=68: D=2760 D/Dc=1.178
  {1,2,4,7,11,16,19,25,28,31},	// p=69: D=3040 D/Dc=1.220
  {1,3,9,11,13,17,19,23,27,29},	// p=70: D=2450 D/Dc=1.081
  {1,2,5,10,14,17,21,25,28,34},	// p=71: D=3408 D/Dc=1.259
  {1,5,7,11,13,17,19,23,25,35},	// p=72: D=1440 D/Dc=0.808
  {1,2,4,9,12,17,22,26,32,33},	// p=73: D=3425 D/Dc=1.231
  {1,3,5,7,11,19,21,29,33,35},	// p=74: D=3338 D/Dc=1.201
  {1,2,4,7,14,16,22,28,31,34},	// p=75: D=3550 D/Dc=1.223
  {1,3,5,7,13,17,21,27,31,33},	// p=76: D=3496 D/Dc=1.200
  {1,2,4,8,13,16,17,27,32,38},	// p=77: D=3804 D/Dc=1.237
  {1,5,7,11,17,19,23,25,29,35},	// p=78: D=1690 D/Dc=0.815
  {1,2,3,9,14,20,24,28,33,39},	// p=79: D=3950 D/Dc=1.231
  {1,3,7,9,11,13,17,19,31,37},	// p=80: D=3200 D/Dc=1.096
  {1,2,4,8,13,19,22,29,34,37},	// p=81: D=4086 D/Dc=1.225
  {1,3,7,11,13,23,25,29,31,37},	// p=82: D=4264 D/Dc=1.237
  {1,2,3,7,14,19,25,30,35,38},	// p=83: D=4316 D/Dc=1.231
  {1,5,11,13,17,19,23,25,29,37},// p=84: D=1960 D/Dc=0.821
  {1,2,4,14,21,24,29,32,37,41},	// p=85: D=4499 D/Dc=1.230
  {1,3,5,7,13,19,23,25,33,39},	// p=86: D=4378 D/Dc=1.201
  {1,2,4,8,13,22,25,31,38,41},	// p=87: D=4567 D/Dc=1.214
  {1,3,5,7,9,17,23,29,37,41},	// p=88: D=4552 D/Dc=1.200
  {1,2,3,6,15,23,27,34,36,43},	// p=89: D=4808 D/Dc=1.220
  {1,7,11,13,17,19,23,31,37,41},// p=90: D=2250 D/Dc=0.827
  {1,2,4,9,16,19,27,33,38,41},	// p=91: D=5150 D/Dc=1.238
  {1,3,5,7,13,17,19,29,37,45},	// p=92: D=4930 D/Dc=1.200
  {1,2,4,8,16,23,29,32,35,46},	// p=93: D=5580 D/Dc=1.264
  {1,3,5,7,11,19,25,31,41,43},	// p=94: D=5314 D/Dc=1.222
  {1,2,6,11,14,18,28,33,37,41},	// p=95: D=5605 D/Dc=1.243
  {1,5,7,11,13,17,23,29,31,43},	// p=96: D=2560 D/Dc=0.832
  {1,2,3,4,15,24,30,36,40,47},	// p=97: D=5548 D/Dc=1.213
  {1,3,15,23,27,31,37,39,41,47},// p=98: D=5194 D/Dc=1.163
  {1,2,4,7,14,23,28,32,38,49},	// p=99: D=5980 D/Dc=1.237
  {1,3,7,11,13,17,19,21,41,47}};// p=100:D=5000 D/Dc=1.121


// input dimension = 11

static char overlay_displacement_11 [100][11] = {
  {1,1,1,1,1,1,1,1,1,1,1},		// p= 1
  {1,1,1,1,1,1,1,1,1,1,1},		// p= 2: D=  11 D/Dc=1.766
  {1,1,1,1,1,1,1,1,1,1,1},		// p= 3: D=  11 D/Dc=1.222
  {1,1,1,1,1,1,1,1,1,1,1},		// p= 4: D=  11 D/Dc=0.941
  {1,1,1,1,1,1,2,2,2,2,2},		// p= 5: D=  26 D/Dc=1.180
  {1,1,1,1,1,1,1,1,1,1,1},		// p= 6: D=  11 D/Dc=0.651
  {1,1,1,1,2,2,2,2,3,3,3},		// p= 7: D=  47 D/Dc=1.169
  {1,1,1,1,1,1,3,3,3,3,3},		// p= 8: D=  44 D/Dc=1.002
  {1,1,1,1,2,2,2,2,4,4,4},		// p= 9: D=  68 D/Dc=1.119
  {1,1,1,1,1,1,3,3,3,3,3},		// p=10: D=  51 D/Dc=0.880
  {1,1,1,2,2,3,3,4,4,5,5},		// p=11: D= 111 D/Dc=1.191
  {1,1,1,1,1,1,5,5,5,5,5},		// p=12: D=  44 D/Dc=0.693
  {1,1,2,2,3,3,4,4,5,5,6},		// p=13: D= 146 D/Dc=1.174
  {1,1,1,1,3,3,3,3,5,5,5},		// p=14: D= 115 D/Dc=0.974
  {1,1,1,2,2,2,4,4,4,7,7},		// p=15: D= 161 D/Dc=1.082
  {1,1,1,3,3,3,5,5,5,7,7},		// p=16: D= 176 D/Dc=1.067
  {1,1,2,2,3,4,5,6,6,7,8},		// p=17: D= 245 D/Dc=1.191
  {1,1,1,1,5,5,5,5,7,7,7},		// p=18: D=  99 D/Dc=0.719
  {1,1,2,3,4,4,5,6,7,8,9},		// p=19: D= 302 D/Dc=1.195
  {1,1,1,3,3,3,7,7,7,9,9},		// p=20: D= 204 D/Dc=0.938
  {1,1,1,2,4,5,5,8,8,10,10},		// p=21: D= 344 D/Dc=1.165
  {1,1,1,3,3,5,5,7,7,9,9},		// p=22: D= 331 D/Dc=1.095
  {1,2,3,4,5,6,7,8,9,10,11},		// p=23: D= 506 D/Dc=1.301
  {1,1,1,5,5,5,7,7,7,11,11},		// p=24: D= 176 D/Dc=0.738
  {1,1,2,3,4,6,7,8,9,11,12},		// p=25: D= 526 D/Dc=1.229
  {1,1,3,3,5,5,7,7,9,9,11},		// p=26: D= 451 D/Dc=1.098
  {1,1,2,4,5,7,8,8,10,11,13},		// p=27: D= 585 D/Dc=1.209
  {1,1,3,3,5,5,9,9,11,11,13},		// p=28: D= 460 D/Dc=1.037
  {1,2,3,4,5,6,7,10,11,13,14},		// p=29: D= 700 D/Dc=1.239
  {1,1,1,7,7,7,11,11,11,13,13},		// p=30: D= 275 D/Dc=0.753
  {1,2,3,4,5,6,7,8,12,14,15},		// p=31: D= 769 D/Dc=1.222
  {1,1,3,5,5,7,7,9,11,13,15},		// p=32: D= 704 D/Dc=1.136
  {1,1,2,4,5,7,8,10,13,14,16},		// p=33: D= 881 D/Dc=1.236
  {1,1,3,3,5,7,9,11,13,15,15},		// p=34: D= 811 D/Dc=1.154
  {1,1,2,4,6,8,9,11,13,16,16},		// p=35: D= 925 D/Dc=1.201
  {1,1,5,5,7,7,11,11,13,13,17},		// p=36: D= 396 D/Dc=0.766
  {1,2,3,4,5,8,9,11,15,16,18},		// p=37: D=1082 D/Dc=1.234
  {1,1,3,5,7,9,9,11,13,15,17},		// p=38: D=1043 D/Dc=1.183
  {1,1,2,4,5,7,10,11,14,17,19},		// p=39: D=1142 D/Dc=1.209
  {1,1,3,3,7,9,11,13,17,19,19},		// p=40: D= 816 D/Dc=0.999
  {1,2,3,5,9,10,12,16,17,18,20},	// p=41: D=1323 D/Dc=1.243
  {1,1,5,5,11,11,13,13,17,17,19},	// p=42: D= 539 D/Dc=0.776
  {1,2,4,5,7,8,9,10,18,19,21},		// p=43: D=1433 D/Dc=1.239
  {1,1,3,5,7,9,13,15,17,19,21},		// p=44: D=1324 D/Dc=1.167
  {1,2,4,7,8,11,13,14,16,17,19},	// p=45: D=1449 D/Dc=1.196
  {1,3,5,7,9,11,13,15,17,19,21},	// p=46: D=1771 D/Dc=1.296
  {1,2,3,5,6,10,12,14,18,21,22},	// p=47: D=1734 D/Dc=1.257
  {1,1,5,7,11,11,13,13,17,19,23},	// p=48: D= 704 D/Dc=0.786
  {1,2,3,5,9,10,12,16,18,20,24},	// p=49: D=1814 D/Dc=1.238
  {1,1,3,7,9,11,13,17,19,21,23},	// p=50: D=1275 D/Dc=1.019
  {1,2,4,5,7,10,11,13,19,22,25},	// p=51: D=1955 D/Dc=1.239
  {1,3,5,7,9,11,15,17,19,21,23},	// p=52: D=1804 D/Dc=1.170
  {1,2,3,4,8,11,14,16,20,21,26},	// p=53: D=2166 D/Dc=1.260
  {1,1,5,7,11,13,13,17,19,23,25},	// p=54: D= 891 D/Dc=0.794
  {1,2,3,7,8,12,14,18,23,24,27},	// p=55: D=2230 D/Dc=1.236
  {1,3,5,9,11,13,15,17,19,23,25},	// p=56: D=1840 D/Dc=1.104
  {1,2,4,5,7,10,13,14,20,26,28},	// p=57: D=2405 D/Dc=1.243
  {1,3,5,7,9,11,13,17,23,25,27},	// p=58: D=2419 D/Dc=1.227
  {1,2,4,7,9,10,14,18,22,24,29},	// p=59: D=2601 D/Dc=1.252
  {1,1,7,11,11,13,13,17,19,23,29},	// p=60: D=1100 D/Dc=0.802
  {1,2,3,6,11,12,15,19,22,24,29},	// p=61: D=2792 D/Dc=1.259
  {1,3,5,7,9,11,13,15,23,27,29},	// p=62: D=2651 D/Dc=1.209
  {1,2,4,5,8,10,16,19,22,25,31},	// p=63: D=2873 D/Dc=1.240
  {1,3,5,7,9,11,13,17,19,29,31},	// p=64: D=2816 D/Dc=1.210
  {1,2,3,4,8,12,17,18,24,28,31},	// p=65: D=3133 D/Dc=1.259
  {1,1,5,7,13,17,19,23,25,29,31},	// p=66: D=1331 D/Dc=0.809
  {1,2,3,6,10,12,17,21,25,26,33},	// p=67: D=3376 D/Dc=1.271
  {1,3,5,7,9,11,13,19,21,29,33},	// p=68: D=3179 D/Dc=1.217
  {1,2,4,5,11,13,19,22,25,29,32},	// p=69: D=3398 D/Dc=1.241
  {1,3,9,11,13,17,19,23,27,29,31},	// p=70: D=2499 D/Dc=1.051
  {1,2,3,7,9,13,17,21,25,31,35},	// p=71: D=3702 D/Dc=1.263
  {1,5,7,11,13,17,19,23,25,29,31},	// p=72: D=1584 D/Dc=0.815
  {1,2,3,7,11,15,17,23,27,31,36},	// p=73: D=3880 D/Dc=1.260
  {1,3,5,7,9,13,15,21,29,31,33},	// p=74: D=3708 D/Dc=1.217
  {1,2,4,7,8,13,19,22,29,32,37},	// p=75: D=3950 D/Dc=1.241
  {1,3,5,7,9,13,17,23,27,29,35},	// p=76: D=3916 D/Dc=1.221
  {1,2,3,6,12,16,20,24,29,31,38},	// p=77: D=4276 D/Dc=1.260
  {1,5,7,11,17,19,23,25,29,31,35},	// p=78: D=1859 D/Dc=0.821
  {1,2,3,4,10,15,20,23,31,32,39},	// p=79: D=4425 D/Dc=1.253
  {1,3,7,9,11,13,17,19,23,37,39},	// p=80: D=3264 D/Dc=1.064
  {1,2,4,7,11,16,20,23,29,35,37},	// p=81: D=4685 D/Dc=1.260
  {1,3,5,7,9,13,19,23,31,37,39},	// p=82: D=4547 D/Dc=1.228
  {1,2,3,4,10,16,20,25,32,34,40},	// p=83: D=4828 D/Dc=1.251
  {1,5,11,13,17,19,23,25,29,31,37},	// p=84: D=2156 D/Dc=0.827
  {1,2,3,8,14,19,21,28,32,37,41},	// p=85: D=5125 D/Dc=1.261
  {1,3,5,7,11,15,17,19,27,39,41},	// p=86: D=4955 D/Dc=1.227
  {1,2,4,11,16,19,22,26,28,34,40},	// p=87: D=5273 D/Dc=1.253
  {1,3,5,7,9,13,17,23,29,41,43},	// p=88: D=5195 D/Dc=1.230
  {1,2,3,4,8,16,18,24,32,35,44},	// p=89: D=5364 D/Dc=1.238
  {1,7,11,13,17,19,23,29,31,37,41},	// p=90: D=2475 D/Dc=0.832
  {1,2,3,5,11,17,23,27,33,37,45},	// p=91: D=5765 D/Dc=1.257
  {1,7,9,11,13,15,19,25,29,41,43},	// p=92: D=5819 D/Dc=1.251
  {1,2,4,7,8,16,23,25,35,38,44},	// p=93: D=5975 D/Dc=1.255
  {1,3,5,7,9,13,23,25,37,43,45},	// p=94: D=5859 D/Dc=1.231
  {1,2,3,4,11,17,24,29,34,39,47},	// p=95: D=6237 D/Dc=1.258
  {1,5,7,11,13,17,23,25,29,37,47},	// p=96: D=2816 D/Dc=0.837
  {1,2,3,4,5,16,24,29,36,38,48},	// p=97: D=6122 D/Dc=1.223
  {1,3,5,11,13,19,23,27,41,45,47},	// p=98: D=5635 D/Dc=1.162
  {1,2,4,5,13,17,25,31,34,41,49},	// p=99: D=6795 D/Dc=1.264
  {1,3,7,11,13,17,19,21,27,41,47}};	// p=100:D=5100 D/Dc=1.085


// input dimension = 12

static char overlay_displacement_12 [100][12] = {
  {1,1,1,1,1,1,1,1,1,1,1,1},		// p= 1
  {1,1,1,1,1,1,1,1,1,1,1,1},		// p= 2: D=  12 D/Dc=1.835
  {1,1,1,1,1,1,1,1,1,1,1,1},		// p= 3: D=  12 D/Dc=1.265
  {1,1,1,1,1,1,1,1,1,1,1,1},		// p= 4: D=  12 D/Dc=0.972
  {1,1,1,1,1,1,2,2,2,2,2,2},		// p= 5: D=  30 D/Dc=1.253
  {1,1,1,1,1,1,1,1,1,1,1,1},		// p= 6: D=  12 D/Dc=0.670
  {1,1,1,1,2,2,2,2,3,3,3,3},		// p= 7: D=  56 D/Dc=1.257
  {1,1,1,1,1,1,3,3,3,3,3,3},		// p= 8: D=  48 D/Dc=1.030
  {1,1,1,1,2,2,2,2,4,4,4,4},		// p= 9: D=  84 D/Dc=1.223
  {1,1,1,1,1,1,3,3,3,3,3,3},		// p=10: D=  60 D/Dc=0.938
  {1,1,1,2,2,3,3,3,4,4,5,5},		// p=11: D= 120 D/Dc=1.216
  {1,1,1,1,1,1,5,5,5,5,5,5},		// p=12: D=  48 D/Dc=0.710
  {1,1,2,2,3,3,4,4,5,5,6,6},		// p=13: D= 182 D/Dc=1.285
  {1,1,1,1,3,3,3,3,5,5,5,5},		// p=14: D= 140 D/Dc=1.053
  {1,1,1,2,2,2,4,4,4,7,7,7},		// p=15: D= 210 D/Dc=1.211
  {1,1,1,3,3,3,5,5,5,7,7,7},		// p=16: D= 192 D/Dc=1.091
  {1,1,2,2,3,4,4,5,6,7,8,8},		// p=17: D= 289 D/Dc=1.266
  {1,1,1,1,5,5,5,5,7,7,7,7},		// p=18: D= 108 D/Dc=0.735
  {1,1,2,2,3,5,5,6,6,7,9,9},		// p=19: D= 337 D/Dc=1.235
  {1,1,1,3,3,3,7,7,7,9,9,9},		// p=20: D= 240 D/Dc=0.994
  {1,1,2,2,4,4,5,5,8,8,10,10},		// p=21: D= 420 D/Dc=1.258
  {1,1,1,3,3,5,5,5,7,7,9,9},		// p=22: D= 356 D/Dc=1.110
  {1,1,2,3,4,5,6,7,8,9,10,11},		// p=23: D= 507 D/Dc=1.271
  {1,1,1,5,5,5,7,7,7,11,11,11},		// p=24: D= 192 D/Dc=0.752
  {1,1,2,3,4,6,7,7,8,9,11,12},		// p=25: D= 550 D/Dc=1.227
  {1,1,3,3,5,5,7,7,9,9,11,11},		// p=26: D= 572 D/Dc=1.207
  {1,1,2,4,4,5,7,8,10,10,11,13},	// p=27: D= 639 D/Dc=1.232
  {1,1,3,3,5,5,9,9,11,11,13,13},	// p=28: D= 560 D/Dc=1.116
  {1,2,3,4,5,6,7,8,10,12,13,14},	// p=29: D= 770 D/Dc=1.267
  {1,1,1,7,7,7,11,11,11,13,13,13},	// p=30: D= 300 D/Dc=0.767
  {1,2,3,4,5,6,7,9,10,13,14,15},	// p=31: D= 859 D/Dc=1.259
  {1,1,3,3,5,7,7,9,11,13,15,15},	// p=32: D= 768 D/Dc=1.156
  {1,1,2,4,5,7,8,10,10,13,14,16},	// p=33: D= 945 D/Dc=1.247
  {1,1,3,3,5,5,7,9,11,13,15,15},	// p=34: D= 908 D/Dc=1.189
  {1,2,3,4,6,8,9,11,12,13,16,17},	// p=35: D=1190 D/Dc=1.325
  {1,1,5,5,7,7,11,11,13,13,17,17},	// p=36: D= 432 D/Dc=0.778
  {1,2,3,4,5,6,8,10,11,15,17,18},	// p=37: D=1193 D/Dc=1.261
  {1,1,3,5,7,7,9,11,11,13,15,17},	// p=38: D=1140 D/Dc=1.203
  {1,2,4,5,7,8,10,11,14,16,17,19},	// p=39: D=1482 D/Dc=1.340
  {1,1,3,3,7,7,9,11,13,17,19,19},	// p=40: D= 960 D/Dc=1.053
  {1,2,3,4,5,8,9,10,14,16,18,20},	// p=41: D=1476 D/Dc=1.277
  {1,1,5,5,11,11,13,13,17,17,19,19},	// p=42: D= 588 D/Dc=0.788
  {1,2,3,4,6,7,11,12,14,16,19,21},	// p=43: D=1591 D/Dc=1.269
  {1,1,3,5,7,9,13,13,15,17,19,21},	// p=44: D=1424 D/Dc=1.176
  {1,2,4,7,8,11,13,14,16,17,19,22},	// p=45: D=1890 D/Dc=1.327
  {1,1,3,5,7,9,11,13,15,17,19,21},	// p=46: D=1772 D/Dc=1.259
  {1,2,3,8,9,12,13,14,17,18,19,23},	// p=47: D=1881 D/Dc=1.272
  {1,1,5,7,11,11,13,13,17,19,23,23},	// p=48: D= 768 D/Dc=0.797
  {1,2,3,4,6,10,11,12,17,19,22,24},	// p=49: D=2015 D/Dc=1.267
  {1,1,3,7,9,11,13,13,17,19,21,23},	// p=50: D=1500 D/Dc=1.073
  {1,2,4,5,7,8,13,14,16,19,22,25},	// p=51: D=2166 D/Dc=1.266
  {1,3,5,7,9,11,15,17,19,21,23,25},	// p=52: D=2028 D/Dc=1.204
  {1,2,4,5,8,10,11,13,17,20,24,26},	// p=53: D=2417 D/Dc=1.291
  {1,1,5,7,11,13,17,17,19,19,23,25},	// p=54: D= 972 D/Dc=0.805
  {1,2,3,4,6,9,13,14,19,21,24,26},	// p=55: D=2509 D/Dc=1.272
  {1,3,5,9,11,13,15,17,19,23,25,27},	// p=56: D=2240 D/Dc=1.182
  {1,2,4,5,7,8,14,16,17,22,25,28},	// p=57: D=2793 D/Dc=1.299
  {1,3,5,7,9,11,13,15,17,19,25,27},	// p=58: D=2684 D/Dc=1.253
  {1,2,4,7,9,12,15,18,20,23,26,28},	// p=59: D=2964 D/Dc=1.296
  {1,1,7,11,11,13,13,17,19,23,23,29},	// p=60: D=1200 D/Dc=0.812
  {1,2,3,4,8,9,15,16,21,22,27,29},	// p=61: D=3105 D/Dc=1.287
  {1,3,5,7,9,11,13,15,19,25,27,29},	// p=62: D=3020 D/Dc=1.250
  {1,2,4,5,8,10,16,17,20,23,29,31},	// p=63: D=3486 D/Dc=1.324
  {1,3,5,7,9,11,13,15,17,21,29,31},	// p=64: D=3072 D/Dc=1.225
  {1,2,4,7,8,9,14,16,18,28,29,32},	// p=65: D=3640 D/Dc=1.314
  {1,1,5,7,13,17,19,23,25,25,29,31},	// p=66: D=1452 D/Dc=0.819
  {1,2,3,5,8,12,16,18,22,25,31,32},	// p=67: D=3709 D/Dc=1.290
  {1,3,5,7,9,11,13,15,19,25,29,31},	// p=68: D=3468 D/Dc=1.231
  {1,2,4,7,8,11,16,19,22,25,31,32},	// p=69: D=3861 D/Dc=1.282
  {1,3,9,11,13,17,19,23,27,29,31,33},	// p=70: D=2940 D/Dc=1.104
  {1,2,3,4,9,10,15,17,20,28,31,35},	// p=71: D=4095 D/Dc=1.286
  {1,5,7,11,13,17,19,23,25,29,31,35},	// p=72: D=1728 D/Dc=0.825
  {1,2,3,4,8,12,18,19,25,27,32,35},	// p=73: D=4380 D/Dc=1.296
  {1,3,5,7,11,13,19,23,27,29,31,33},	// p=74: D=4440 D/Dc=1.289
  {1,2,4,7,8,13,16,19,23,29,32,34},	// p=75: D=4395 D/Dc=1.267
  {1,3,5,7,11,13,17,23,27,29,31,37},	// p=76: D=4332 D/Dc=1.242
  {1,2,3,5,9,13,19,20,26,30,34,37},	// p=77: D=4777 D/Dc=1.289
  {1,5,7,11,17,19,23,25,29,31,35,37},	// p=78: D=2028 D/Dc=0.830
  {1,2,3,4,6,12,16,21,24,29,32,39},	// p=79: D=4829 D/Dc=1.266
  {1,3,7,9,11,13,17,19,23,29,37,39},	// p=80: D=3840 D/Dc=1.116
  {1,2,4,7,8,14,19,23,25,28,31,40},	// p=81: D=5157 D/Dc=1.279
  {1,3,5,7,9,11,17,19,23,27,37,39},	// p=82: D=5084 D/Dc=1.255
  {1,2,3,4,5,11,16,22,23,31,35,40},	// p=83: D=5231 D/Dc=1.259
  {1,5,11,13,17,19,23,25,29,31,37,41},	// p=84: D=2352 D/Dc=0.835
  {1,2,3,8,9,14,18,21,28,33,37,41},	// p=85: D=5742 D/Dc=1.291
  {1,3,5,7,9,11,19,23,29,31,39,41},	// p=86: D=5508 D/Dc=1.251
  {1,2,4,5,8,16,19,22,28,32,34,43},	// p=87: D=5931 D/Dc=1.284
  {1,3,5,7,9,13,17,23,29,31,41,43},	// p=88: D=5696 D/Dc=1.245
  {1,2,3,4,5,10,16,22,24,33,37,44},	// p=89: D=5865 D/Dc=1.251
  {1,7,11,13,17,19,23,29,31,37,41,43},	// p=90: D=2700 D/Dc=0.840
  {1,2,3,4,9,15,17,23,27,34,37,45},	// p=91: D=6349 D/Dc=1.275
  {1,3,5,7,9,17,25,27,29,35,41,45},	// p=92: D=6348 D/Dc=1.262
  {1,2,4,5,13,16,23,26,32,34,40,46},	// p=93: D=6684 D/Dc=1.283
  {1,3,5,9,11,13,19,23,25,41,43,45},	// p=94: D=6588 D/Dc=1.261
  {1,2,3,4,12,18,24,28,32,37,41,47},	// p=95: D=6844 D/Dc=1.273
  {1,5,7,11,13,17,19,23,29,31,43,47},	// p=96: D=3072 D/Dc=0.845
  {1,2,3,4,5,7,17,23,27,36,37,48},	// p=97: D=6618 D/Dc=1.228
  {1,3,5,11,13,19,23,27,31,41,45,47},	// p=98: D=6860 D/Dc=1.238
  {1,2,4,7,13,19,26,29,35,41,43,46},	// p=99: D=7533 D/Dc=1.286
  {1,3,7,9,11,13,17,19,23,29,47,49}};	// p=100:D=6000 D/Dc=1.137


// input dimension = 13

static char overlay_displacement_13 [100][13] = {
  {1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 1
  {1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 2: D=  13 D/Dc=1.902
  {1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 3: D=  13 D/Dc=1.308
  {1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 4: D=  13 D/Dc=1.003
  {1,1,1,1,1,1,1,2,2,2,2,2,2},		// p= 5: D=  31 D/Dc=1.260
  {1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 6: D=  13 D/Dc=0.690
  {1,1,1,1,1,2,2,2,2,3,3,3,3},		// p= 7: D=  57 D/Dc=1.253
  {1,1,1,1,1,1,1,3,3,3,3,3,3},		// p= 8: D=  52 D/Dc=1.058
  {1,1,1,1,1,2,2,2,2,4,4,4,4},		// p= 9: D=  85 D/Dc=1.213
  {1,1,1,1,1,1,1,3,3,3,3,3,3},		// p=10: D=  61 D/Dc=0.932
  {1,1,1,2,2,2,3,3,4,4,4,5,5},		// p=11: D= 131 D/Dc=1.251
  {1,1,1,1,1,1,1,5,5,5,5,5,5},		// p=12: D=  52 D/Dc=0.728
  {1,1,1,2,2,3,3,4,4,5,5,6,6},		// p=13: D= 183 D/Dc=1.268
  {1,1,1,1,1,3,3,3,3,5,5,5,5},		// p=14: D= 141 D/Dc=1.039
  {1,1,1,1,2,2,2,4,4,4,7,7,7},		// p=15: D= 211 D/Dc=1.193
  {1,1,1,1,3,3,3,5,5,5,7,7,7},		// p=16: D= 208 D/Dc=1.116
  {1,1,2,2,3,3,4,4,5,6,7,8,8},		// p=17: D= 298 D/Dc=1.263
  {1,1,1,1,1,5,5,5,5,7,7,7,7},		// p=18: D= 117 D/Dc=0.751
  {1,1,2,2,3,4,4,5,6,7,8,8,9},		// p=19: D= 370 D/Dc=1.270
  {1,1,1,1,3,3,3,7,7,7,9,9,9},		// p=20: D= 244 D/Dc=0.983
  {1,1,1,2,2,4,4,5,5,8,8,10,10},	// p=21: D= 421 D/Dc=1.235
  {1,1,1,3,3,3,5,5,7,7,7,9,9},		// p=22: D= 389 D/Dc=1.137
  {1,1,2,3,4,5,5,6,7,8,9,10,11},	// p=23: D= 531 D/Dc=1.275
  {1,1,1,1,5,5,5,7,7,7,11,11,11},	// p=24: D= 208 D/Dc=0.767
  {1,1,2,2,3,4,6,7,8,8,9,12,12},	// p=25: D= 617 D/Dc=1.273
  {1,1,1,3,3,5,5,7,7,9,9,11,11},	// p=26: D= 573 D/Dc=1.183
  {1,1,2,2,4,5,7,7,8,10,11,11,13},	// p=27: D= 684 D/Dc=1.248
  {1,1,1,3,3,5,5,9,9,11,11,13,13},	// p=28: D= 564 D/Dc=1.096
  {1,1,2,3,4,6,7,8,9,11,12,13,14},	// p=29: D= 827 D/Dc=1.285
  {1,1,1,1,7,7,7,11,11,11,13,13,13},	// p=30: D= 325 D/Dc=0.781
  {1,2,3,4,5,6,7,8,9,12,13,14,15},	// p=31: D= 951 D/Dc=1.296
  {1,1,3,3,5,5,7,7,9,11,13,13,15},	// p=32: D= 832 D/Dc=1.177
  {1,1,2,2,4,5,8,8,10,13,13,14,16},	// p=33: D=1008 D/Dc=1.259
  {1,1,3,3,5,5,7,9,9,11,13,13,15},	// p=34: D= 965 D/Dc=1.198
  {1,1,2,3,4,6,8,9,11,12,13,16,17},	// p=35: D=1191 D/Dc=1.296
  {1,1,1,5,5,7,7,11,11,13,13,17,17},	// p=36: D= 468 D/Dc=0.792
  {1,2,3,4,5,6,8,9,12,13,14,16,18},	// p=37: D=1323 D/Dc=1.298
  {1,1,3,3,5,5,7,9,11,13,15,15,17},	// p=38: D=1229 D/Dc=1.220
  {1,1,2,4,5,7,8,10,11,14,16,17,19},	// p=39: D=1483 D/Dc=1.309
  {1,1,3,3,7,7,9,9,11,13,17,17,19},	// p=40: D= 976 D/Dc=1.037
  {1,2,3,4,5,8,9,10,11,16,17,18,20},	// p=41: D=1597 D/Dc=1.297
  {1,1,1,5,5,11,11,13,13,17,17,19,19},	// p=42: D= 637 D/Dc=0.801
  {1,2,3,4,5,7,10,11,13,15,16,19,21},	// p=43: D=1755 D/Dc=1.301
  {1,1,3,5,5,7,7,9,13,15,17,19,21},	// p=44: D=1556 D/Dc=1.199
  {1,1,2,4,7,8,11,13,14,16,17,19,22},	// p=45: D=1899 D/Dc=1.298
  {1,1,3,5,7,9,11,11,13,15,17,19,21},	// p=46: D=1877 D/Dc=1.264
  {1,2,3,4,6,9,11,14,15,16,19,21,23},	// p=47: D=2054 D/Dc=1.297
  {1,1,5,5,7,7,11,13,17,17,19,19,23},	// p=48: D= 832 D/Dc=0.809
  {1,2,3,4,6,8,11,13,16,17,18,22,23},	// p=49: D=2245 D/Dc=1.304
  {1,1,3,7,9,11,13,13,17,19,19,21,23},	// p=50: D=1525 D/Dc=1.055
  {1,2,4,5,7,8,10,13,14,16,19,22,25},	// p=51: D=2350 D/Dc=1.286
  {1,1,3,5,7,9,11,15,17,19,21,23,25},	// p=52: D=2197 D/Dc=1.222
  {1,2,3,4,7,8,13,14,16,19,22,24,25},	// p=53: D=2654 D/Dc=1.319
  {1,1,5,7,7,11,13,13,17,17,19,23,25},	// p=54: D=1053 D/Dc=0.817
  {1,2,3,4,6,8,12,13,17,18,21,23,27},	// p=55: D=2740 D/Dc=1.295
  {1,1,3,5,9,11,13,15,17,19,23,25,27},	// p=56: D=2256 D/Dc=1.156
  {1,2,4,5,7,8,11,13,14,17,23,26,28},	// p=57: D=2923 D/Dc=1.295
  {1,3,5,7,9,11,13,15,17,19,21,23,25},	// p=58: D=2925 D/Dc=1.274
  {1,2,3,6,7,11,12,15,16,20,24,25,29},	// p=59: D=3209 D/Dc=1.314
  {1,1,7,7,11,11,13,13,17,19,23,23,29},	// p=60: D=1300 D/Dc=0.823
  {1,2,3,6,10,11,14,15,18,22,23,27,30},	// p=61: D=3456 D/Dc=1.322
  {1,3,5,7,9,11,13,15,17,19,21,27,29},	// p=62: D=3341 D/Dc=1.281
  {1,2,4,5,8,10,11,16,17,20,23,29,31},	// p=63: D=3607 D/Dc=1.311
  {1,3,5,7,9,11,13,15,17,21,23,29,31},	// p=64: D=3328 D/Dc=1.241
  {1,2,3,4,9,11,16,17,19,23,24,29,31},	// p=65: D=3815 D/Dc=1.310
  {1,1,5,7,13,17,17,19,23,25,29,29,31},	// p=66: D=1573 D/Dc=0.829
  {1,2,3,4,8,11,13,18,19,23,27,28,33},	// p=67: D=4070 D/Dc=1.316
  {1,3,5,7,9,11,13,15,19,21,27,31,33},	// p=68: D=3757 D/Dc=1.247
  {1,2,4,7,8,11,14,16,19,25,28,31,32},	// p=69: D=4255 D/Dc=1.309
  {1,1,3,9,11,13,17,19,23,27,29,31,33},	// p=70: D=2989 D/Dc=1.083
  {1,2,3,4,6,11,14,17,22,23,27,29,35},	// p=71: D=4446 D/Dc=1.304
  {1,1,5,7,11,13,17,19,23,25,29,31,35},	// p=72: D=1872 D/Dc=0.835
  {1,2,3,4,5,12,13,19,21,26,27,30,36},	// p=73: D=4594 D/Dc=1.292
  {1,3,5,7,9,11,13,17,19,21,29,33,35},	// p=74: D=4644 D/Dc=1.282
  {1,2,4,7,8,11,16,17,23,26,29,32,37},	// p=75: D=4981 D/Dc=1.312
  {1,3,5,7,9,11,13,17,23,27,29,31,37},	// p=76: D=4693 D/Dc=1.258
  {1,2,4,5,9,12,17,20,23,30,31,32,38},	// p=77: D=5254 D/Dc=1.315
  {1,1,5,7,11,17,19,23,25,29,31,35,37},	// p=78: D=2197 D/Dc=0.840
  {1,2,3,4,5,8,14,18,20,27,30,33,39},	// p=79: D=5233 D/Dc=1.282
  {1,3,7,9,11,13,17,19,21,23,29,37,39},	// p=80: D=3904 D/Dc=1.094
  {1,2,4,5,8,14,16,19,25,28,31,35,38},	// p=81: D=5785 D/Dc=1.317
  {1,3,5,7,9,11,13,21,23,29,33,35,39},	// p=82: D=5700 D/Dc=1.292
  {1,2,3,4,5,6,13,19,20,27,31,34,41},	// p=83: D=5548 D/Dc=1.261
  {1,1,5,11,13,17,19,23,25,29,31,37,41},// p=84: D=2548 D/Dc=0.845
  {1,2,3,4,11,13,19,21,26,31,36,37,42},	// p=85: D=6300 D/Dc=1.314
  {1,3,5,7,9,11,15,17,23,25,35,39,41},	// p=86: D=6213 D/Dc=1.291
  {1,2,4,5,8,14,16,22,25,31,32,37,43},	// p=87: D=6547 D/Dc=1.311
  {1,3,5,7,9,13,15,17,23,25,29,41,43},	// p=88: D=6224 D/Dc=1.265
  {1,2,3,4,5,6,13,20,21,28,34,36,44},	// p=89: D=6224 D/Dc=1.252
  {1,1,7,11,13,17,19,23,29,31,37,41,43},// p=90: D=2925 D/Dc=0.849
  {1,2,3,4,5,10,15,22,23,31,34,40,45},	// p=91: D=6973 D/Dc=1.298
  {1,3,5,9,11,13,17,19,21,33,39,43,45},	// p=92: D=6877 D/Dc=1.276
  {1,2,4,7,8,14,19,23,29,32,35,38,46},	// p=93: D=7402 D/Dc=1.311
  {1,3,5,7,9,17,19,21,27,35,39,43,45},	// p=94: D=7356 D/Dc=1.294
  {1,2,3,4,6,12,16,24,26,31,37,39,47},	// p=95: D=7658 D/Dc=1.308
  {1,5,7,11,13,17,19,23,29,31,37,41,43},// p=96: D=3328 D/Dc=0.854
  {1,2,3,4,5,6,8,17,24,26,37,39,48},	// p=97: D=6890 D/Dc=1.217
  {1,3,5,9,11,13,19,23,27,31,41,45,47},	// p=98: D=6909 D/Dc=1.207
  {1,2,4,7,8,13,16,26,28,32,35,46,49},	// p=99: D=8326 D/Dc=1.312
  {1,3,7,9,11,13,17,19,23,29,37,47,49}};// p=100:D=6100 D/Dc=1.113


// input dimension = 14

static char overlay_displacement_14 [100][14] = {
  {1,1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 1
  {1,1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 2: D=  14 D/Dc=1.966
  {1,1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 3: D=  14 D/Dc=1.349
  {1,1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 4: D=  14 D/Dc=1.033
  {1,1,1,1,1,1,1,2,2,2,2,2,2,2},		// p= 5: D=  35 D/Dc=1.327
  {1,1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 6: D=  14 D/Dc=0.709
  {1,1,1,1,1,2,2,2,2,2,3,3,3,3},		// p= 7: D=  61 D/Dc=1.282
  {1,1,1,1,1,1,1,3,3,3,3,3,3,3},		// p= 8: D=  56 D/Dc=1.085
  {1,1,1,1,1,2,2,2,2,2,4,4,4,4},		// p= 9: D=  89 D/Dc=1.226
  {1,1,1,1,1,1,1,3,3,3,3,3,3,3},		// p=10: D=  70 D/Dc=0.986
  {1,1,1,1,2,2,3,3,3,4,4,5,5,5},		// p=11: D= 144 D/Dc=1.295
  {1,1,1,1,1,1,1,5,5,5,5,5,5,5},		// p=12: D=  56 D/Dc=0.745
  {1,1,1,2,2,3,3,4,4,5,5,5,6,6},		// p=13: D= 195 D/Dc=1.290
  {1,1,1,1,1,3,3,3,3,3,5,5,5,5},		// p=14: D= 150 D/Dc=1.056
  {1,1,1,1,2,2,2,4,4,4,4,7,7,7},		// p=15: D= 227 D/Dc=1.219
  {1,1,1,1,3,3,3,3,5,5,5,7,7,7},		// p=16: D= 224 D/Dc=1.140
  {1,1,2,2,3,3,4,4,5,6,6,7,8,8},		// p=17: D= 328 D/Dc=1.304
  {1,1,1,1,1,5,5,5,5,5,7,7,7,7},		// p=18: D= 126 D/Dc=0.767
  {1,1,2,2,3,3,4,5,5,6,7,8,9,9},		// p=19: D= 403 D/Dc=1.304
  {1,1,1,1,3,3,3,3,7,7,7,9,9,9},		// p=20: D= 280 D/Dc=1.036
  {1,1,1,2,2,4,4,5,5,8,8,8,10,10},		// p=21: D= 449 D/Dc=1.254
  {1,1,1,1,3,3,3,5,5,7,7,9,9,9},		// p=22: D= 422 D/Dc=1.164
  {1,1,2,2,3,4,5,6,7,7,8,9,11,11},		// p=23: D= 577 D/Dc=1.307
  {1,1,1,1,5,5,5,7,7,7,11,11,11,11},		// p=24: D= 224 D/Dc=0.783
  {1,1,2,3,4,4,6,6,7,8,9,9,11,12},		// p=25: D= 651 D/Dc=1.284
  {1,1,1,3,3,5,5,7,7,7,9,9,11,11},		// p=26: D= 606 D/Dc=1.195
  {1,1,2,2,4,4,5,7,7,8,10,11,13,13},		// p=27: D= 755 D/Dc=1.288
  {1,1,1,3,3,5,5,5,9,9,11,11,13,13},		// p=28: D= 600 D/Dc=1.110
  {1,2,3,4,5,5,7,8,9,10,11,12,13,14},		// p=29: D= 823 D/Dc=1.258
  {1,1,1,1,7,7,7,7,11,11,11,13,13,13},		// p=30: D= 350 D/Dc=0.795
  {1,1,2,3,4,6,7,8,9,11,12,13,14,15},		// p=31: D=1023 D/Dc=1.319
  {1,1,3,3,5,5,7,7,9,9,11,13,13,15},		// p=32: D= 896 D/Dc=1.198
  {1,1,2,2,4,5,7,8,10,10,13,14,14,16},		// p=33: D=1094 D/Dc=1.287
  {1,1,3,3,5,5,7,7,9,9,11,13,15,15},		// p=34: D=1070 D/Dc=1.238
  {1,1,2,3,4,6,6,8,9,11,12,13,16,17},		// p=35: D=1227 D/Dc=1.290
  {1,1,1,5,5,7,7,11,11,11,13,13,17,17},		// p=36: D= 504 D/Dc=0.806
  {1,2,3,4,5,6,7,8,9,10,14,16,17,18},		// p=37: D=1439 D/Dc=1.327
  {1,1,3,3,5,5,7,9,11,11,13,15,15,17},		// p=38: D=1350 D/Dc=1.254
  {1,1,2,4,5,7,8,10,11,14,14,16,17,19},		// p=39: D=1571 D/Dc=1.320
  {1,1,3,3,7,7,9,9,11,11,13,17,17,19},		// p=40: D=1120 D/Dc=1.089
  {1,2,3,4,5,6,8,10,11,13,14,15,19,20},		// p=41: D=1727 D/Dc=1.321
  {1,1,1,5,5,11,11,11,13,13,17,17,19,19},	// p=42: D= 686 D/Dc=0.814
  {1,2,3,4,5,6,8,10,11,12,16,19,20,21},		// p=43: D=1978 D/Dc=1.353
  {1,1,3,3,5,7,9,13,13,15,17,19,21,21},		// p=44: D=1688 D/Dc=1.224
  {1,1,2,4,7,8,11,13,14,16,17,19,19,22},	// p=45: D=2043 D/Dc=1.318
  {1,1,3,3,5,7,9,11,13,15,17,19,21,21},		// p=46: D=1998 D/Dc=1.277
  {1,2,3,4,6,7,10,11,12,15,18,19,20,23},	// p=47: D=2280 D/Dc=1.338
  {1,1,5,5,7,7,11,11,13,13,17,19,23,23},	// p=48: D= 896 D/Dc=0.822
  {1,2,3,4,5,9,10,11,15,16,17,19,22,24},	// p=49: D=2450 D/Dc=1.334
  {1,1,3,7,7,9,9,11,13,13,17,19,21,23},		// p=50: D=1750 D/Dc=1.106
  {1,2,4,5,7,8,10,11,13,14,20,22,23,25},	// p=51: D=2606 D/Dc=1.326
  {1,1,3,5,7,9,11,11,15,17,19,21,23,25},	// p=52: D=2366 D/Dc=1.240
  {1,2,3,4,8,9,10,14,15,16,20,21,22,26},	// p=53: D=2846 D/Dc=1.337
  {1,1,5,5,7,11,11,13,17,17,19,19,23,25},	// p=54: D=1134 D/Dc=0.829
  {1,2,3,6,7,8,12,13,16,17,18,21,23,27},	// p=55: D=3000 D/Dc=1.326
  {1,1,3,5,9,11,13,15,17,17,19,23,25,27},	// p=56: D=2400 D/Dc=1.166
  {1,2,4,5,7,8,10,11,14,17,20,23,26,28},	// p=57: D=3222 D/Dc=1.329
  {1,3,5,7,9,11,13,15,17,19,21,23,25,27},	// p=58: D=3654 D/Dc=1.393
  {1,2,3,6,7,8,11,12,15,16,20,25,27,29},	// p=59: D=3504 D/Dc=1.343
  {1,1,7,7,11,11,13,13,17,19,19,23,23,29},	// p=60: D=1400 D/Dc=0.835
  {1,2,3,4,9,11,15,17,18,22,23,25,28,30},	// p=61: D=3782 D/Dc=1.352
  {1,1,3,5,7,11,13,15,17,19,23,25,27,29},	// p=62: D=3700 D/Dc=1.317
  {1,2,4,5,8,10,11,16,17,20,23,25,29,31},	// p=63: D=4041 D/Dc=1.357
  {1,3,5,7,9,11,13,15,17,19,21,23,27,31},	// p=64: D=3584 D/Dc=1.259
  {1,2,3,7,8,12,14,16,18,23,27,28,29,32},	// p=65: D=4189 D/Dc=1.342
  {1,1,5,7,13,17,17,19,23,25,25,29,29,31},	// p=66: D=1694 D/Dc=0.841
  {1,2,3,4,6,9,11,16,17,21,24,28,29,31},	// p=67: D=4398 D/Dc=1.337
  {1,3,5,7,9,11,13,15,19,21,23,25,27,33},	// p=68: D=4046 D/Dc=1.264
  {1,2,4,5,7,8,11,16,19,20,22,25,32,34},	// p=69: D=4572 D/Dc=1.326
  {1,1,3,9,11,13,17,17,19,23,27,29,31,33},	// p=70: D=3430 D/Dc=1.133
  {1,2,3,4,5,8,11,17,18,19,27,29,31,35},	// p=71: D=4828 D/Dc=1.327
  {1,1,5,7,11,11,13,17,19,23,25,29,31,35},	// p=72: D=2016 D/Dc=0.846
  {1,2,3,4,5,6,10,16,18,19,27,29,32,36},	// p=73: D=4957 D/Dc=1.310
  {1,3,5,7,9,11,13,15,17,21,27,31,33,35},	// p=74: D=5140 D/Dc=1.318
  {1,2,4,7,8,11,14,16,17,19,28,32,34,37},	// p=75: D=5375 D/Dc=1.331
  {1,3,5,7,9,11,13,15,17,23,27,29,31,37},	// p=76: D=5054 D/Dc=1.275
  {1,2,3,4,9,10,15,17,18,23,29,31,34,38},	// p=77: D=5741 D/Dc=1.342
  {1,1,5,7,11,17,19,23,25,29,29,31,35,37},	// p=78: D=2366 D/Dc=0.851
  {1,2,3,4,5,6,10,16,20,21,28,29,37,39},	// p=79: D=5674 D/Dc=1.303
  {1,3,7,9,11,13,17,19,21,23,27,31,37,39},	// p=80: D=4480 D/Dc=1.144
  {1,2,4,7,10,13,14,16,22,23,28,32,34,40},	// p=81: D=6317 D/Dc=1.343
  {1,3,5,7,9,11,13,17,19,23,25,35,37,39},	// p=82: D=6262 D/Dc=1.322
  {1,2,3,4,5,6,8,18,19,20,30,31,37,41},		// p=83: D=5974 D/Dc=1.277
  {1,1,5,11,11,13,17,19,23,25,29,31,37,41},	// p=84: D=2744 D/Dc=0.856
  {1,2,3,4,8,14,16,21,23,27,32,33,38,42},	// p=85: D=6901 D/Dc=1.342
  {1,3,5,7,9,11,13,17,19,21,31,35,39,41},	// p=86: D=6782 D/Dc=1.316
  {1,2,4,7,8,13,14,16,23,25,28,34,40,43},	// p=87: D=7271 D/Dc=1.348
  {1,3,5,7,9,13,17,19,25,27,31,37,41,43},	// p=88: D=6752 D/Dc=1.286
  {1,2,3,4,5,6,7,15,22,23,31,33,39,43},		// p=89: D=6625 D/Dc=1.260
  {1,1,7,11,13,17,19,23,23,29,31,37,41,43},	// p=90: D=3150 D/Dc=0.860
  {1,2,3,4,5,8,16,17,23,27,32,34,38,45},	// p=91: D=7534 D/Dc=1.316
  {1,3,5,7,9,11,13,19,21,25,31,41,43,45},	// p=92: D=7406 D/Dc=1.292
  {1,2,4,5,8,10,16,20,23,29,32,35,40,46},	// p=93: D=8201 D/Dc=1.346
  {1,3,5,7,9,11,17,23,27,29,31,39,41,45},	// p=94: D=8078 D/Dc=1.323
  {1,2,3,4,6,8,14,21,23,26,36,37,42,47},	// p=95: D=8125 D/Dc=1.314
  {1,5,7,11,13,17,19,23,25,29,31,41,43,47},	// p=96: D=3584 D/Dc=0.864
  {1,2,3,4,5,6,7,10,20,24,28,37,41,48},		// p=97: D=7300 D/Dc=1.221
  {1,3,5,9,11,13,15,19,23,27,31,41,45,47},	// p=98: D=7350 D/Dc=1.214
  {1,2,4,5,8,10,17,20,26,29,34,40,41,47},	// p=99: D=9062 D/Dc=1.335
  {1,3,7,9,11,13,17,19,23,29,31,37,47,49}};	// p=100:D=7000 D/Dc=1.163


// input dimension = 15

static char overlay_displacement_15 [100][15] = {
  {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 1
  {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 2: D=  15 D/Dc=2.028
  {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 3: D=  15 D/Dc=1.389
  {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 4: D=  15 D/Dc=1.062
  {1,1,1,1,1,1,1,1,2,2,2,2,2,2,2},		// p= 5: D=  36 D/Dc=1.336
  {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},		// p= 6: D=  15 D/Dc=0.727
  {1,1,1,1,1,2,2,2,2,2,3,3,3,3,3},		// p= 7: D=  70 D/Dc=1.361
  {1,1,1,1,1,1,1,1,3,3,3,3,3,3,3},		// p= 8: D=  60 D/Dc=1.112
  {1,1,1,1,1,2,2,2,2,2,4,4,4,4,4},		// p= 9: D= 105 D/Dc=1.318
  {1,1,1,1,1,1,1,1,3,3,3,3,3,3,3},		// p=10: D=  71 D/Dc=0.982
  {1,1,1,2,2,2,3,3,3,4,4,4,5,5,5},		// p=11: D= 165 D/Dc=1.370
  {1,1,1,1,1,1,1,1,5,5,5,5,5,5,5},		// p=12: D=  60 D/Dc=0.762
  {1,1,1,2,2,2,3,3,4,4,5,5,5,6,6},		// p=13: D= 211 D/Dc=1.326
  {1,1,1,1,1,3,3,3,3,3,5,5,5,5,5},		// p=14: D= 175 D/Dc=1.127
  {1,1,1,1,2,2,2,2,4,4,4,4,7,7,7},		// p=15: D= 231 D/Dc=1.214
  {1,1,1,1,3,3,3,3,5,5,5,5,7,7,7},		// p=16: D= 240 D/Dc=1.165
  {1,1,1,2,2,3,4,4,5,5,6,7,7,8,8},		// p=17: D= 350 D/Dc=1.329
  {1,1,1,1,1,5,5,5,5,5,7,7,7,7,7},		// p=18: D= 135 D/Dc=0.783
  {1,1,2,2,3,3,4,5,5,6,7,7,8,8,9},		// p=19: D= 437 D/Dc=1.339
  {1,1,1,1,3,3,3,3,7,7,7,7,9,9,9},		// p=20: D= 284 D/Dc=1.029
  {1,1,1,2,2,2,4,4,5,5,8,8,8,10,10},		// p=21: D= 465 D/Dc=1.258
  {1,1,1,3,3,3,5,5,5,7,7,7,9,9,9},		// p=22: D= 495 D/Dc=1.243
  {1,1,2,2,3,4,5,6,6,7,8,9,10,10,11},		// p=23: D= 623 D/Dc=1.338
  {1,1,1,1,5,5,5,5,7,7,7,7,11,11,11},		// p=24: D= 240 D/Dc=0.798
  {1,1,2,3,4,4,6,6,7,8,9,9,11,11,12},		// p=25: D= 750 D/Dc=1.358
  {1,1,1,3,3,3,5,5,7,7,9,9,9,11,11},		// p=26: D= 663 D/Dc=1.231
  {1,1,2,2,4,4,5,5,7,8,8,10,11,13,13},		// p=27: D= 810 D/Dc=1.313
  {1,1,1,3,3,3,5,5,5,9,9,11,11,13,13},		// p=28: D= 700 D/Dc=1.180
  {1,1,2,3,4,5,6,7,8,9,10,11,12,13,14},		// p=29: D=1016 D/Dc=1.376
  {1,1,1,1,7,7,7,7,11,11,11,11,13,13,13},	// p=30: D= 375 D/Dc=0.810
  {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},	// p=31: D=1240 D/Dc=1.428
  {1,1,3,3,5,5,7,7,9,9,11,11,13,13,15},		// p=32: D= 960 D/Dc=1.220
  {1,1,2,2,4,4,5,7,8,8,10,13,14,16,16},		// p=33: D=1221 D/Dc=1.337
  {1,1,1,3,3,5,5,7,9,11,11,13,13,15,15},	// p=34: D=1151 D/Dc=1.262
  {1,1,2,3,4,4,6,6,8,9,11,12,16,16,17},		// p=35: D=1330 D/Dc=1.321
  {1,1,1,5,5,7,7,11,11,11,13,13,13,17,17},	// p=36: D= 540 D/Dc=0.820
  {1,2,3,4,5,6,7,8,10,11,13,14,15,17,18},	// p=37: D=1591 D/Dc=1.371
  {1,1,3,3,5,5,7,7,9,11,11,13,15,17,17},	// p=38: D=1463 D/Dc=1.283
  {1,1,2,2,4,5,7,8,10,11,14,14,16,17,19},	// p=39: D=1623 D/Dc=1.319
  {1,1,3,3,7,7,9,9,11,11,13,13,17,17,19},	// p=40: D=1136 D/Dc=1.078
  {1,2,3,4,5,6,7,9,11,12,13,14,17,19,20},	// p=41: D=1901 D/Dc=1.362
  {1,1,1,5,5,5,11,11,11,13,13,17,17,19,19},	// p=42: D= 735 D/Dc=0.828
  {1,2,3,4,5,6,7,11,12,13,14,15,19,20,21},	// p=43: D=2079 D/Dc=1.363
  {1,1,3,5,5,7,7,9,9,13,15,17,19,19,21},	// p=44: D=1815 D/Dc=1.246
  {1,1,2,2,4,7,8,8,11,13,14,16,17,19,22},	// p=45: D=2079 D/Dc=1.306
  {1,1,3,3,5,7,7,9,11,13,15,17,19,19,21},	// p=46: D=2151 D/Dc=1.301
  {1,2,3,4,5,6,8,12,13,14,15,16,18,22,23},	// p=47: D=2457 D/Dc=1.363
  {1,1,5,5,7,7,11,11,13,13,17,17,19,19,23},	// p=48: D= 960 D/Dc=0.836
  {1,2,3,4,5,6,8,11,12,13,15,19,20,22,24},	// p=49: D=2635 D/Dc=1.358
  {1,1,3,3,7,7,9,11,11,13,17,19,21,23,23},	// p=50: D=1775 D/Dc=1.094
  {1,2,4,5,7,8,10,11,13,14,16,19,20,22,23},	// p=51: D=2775 D/Dc=1.342
  {1,1,3,5,7,9,9,11,15,17,19,21,23,23,25},	// p=52: D=2535 D/Dc=1.260
  {1,2,3,4,6,7,10,11,12,15,16,20,23,24,25},	// p=53: D=3091 D/Dc=1.367
  {1,1,5,5,7,7,11,11,13,17,17,19,19,23,25},	// p=54: D=1215 D/Dc=0.842
  {1,2,3,4,6,7,8,12,13,16,17,21,23,24,26},	// p=55: D=3246 D/Dc=1.353
  {1,1,3,5,9,9,11,13,15,17,17,19,23,25,27},	// p=56: D=2800 D/Dc=1.236
  {1,2,4,5,7,8,10,11,13,14,16,22,25,26,28},	// p=57: D=3459 D/Dc=1.351
  {1,1,3,5,7,9,11,13,15,17,19,21,23,25,27},	// p=58: D=3655 D/Dc=1.366
  {1,2,3,4,6,9,10,14,15,17,21,22,25,26,29},	// p=59: D=3827 D/Dc=1.376
  {1,1,7,7,11,11,13,13,17,17,19,19,23,23,29},	// p=60: D=1500 D/Dc=0.848
  {1,2,3,4,6,10,11,15,17,18,22,23,25,27,30},	// p=61: D=4087 D/Dc=1.378
  {1,3,5,7,9,11,13,15,17,19,21,23,25,27,29},	// p=62: D=4495 D/Dc=1.424
  {1,2,4,5,8,10,11,13,16,17,20,23,25,29,31},	// p=63: D=4185 D/Dc=1.354
  {1,3,5,7,9,11,13,15,17,19,21,23,25,27,29},	// p=64: D=3840 D/Dc=1.278
  {1,2,3,4,6,11,12,14,16,19,22,23,24,28,32},	// p=65: D=4525 D/Dc=1.367
  {1,1,5,7,13,17,17,19,23,25,25,29,29,31,31},	// p=66: D=1815 D/Dc=0.853
  {1,2,3,4,5,8,10,14,16,18,20,25,27,31,32},	// p=67: D=4734 D/Dc=1.359
  {1,3,5,7,9,11,13,15,19,21,23,25,27,29,31},	// p=68: D=4335 D/Dc=1.283
  {1,2,4,5,7,10,13,16,17,20,26,28,29,32,34},	// p=69: D=5013 D/Dc=1.361
  {1,1,3,9,9,11,13,17,17,19,23,27,29,31,33},	// p=70: D=3479 D/Dc=1.118
  {1,2,3,4,5,6,10,12,18,19,20,27,28,32,35},	// p=71: D=5179 D/Dc=1.347
  {1,1,1,5,7,11,11,13,17,19,23,25,29,31,35},	// p=72: D=2160 D/Dc=0.858
  {1,2,3,4,5,6,9,13,18,20,21,26,28,35,36},	// p=73: D=5450 D/Dc=1.346
  {1,3,5,7,9,11,13,15,17,19,21,25,31,33,35},	// p=74: D=5631 D/Dc=1.351
  {1,2,4,7,8,11,13,14,16,19,22,28,31,32,37},	// p=75: D=5775 D/Dc=1.351
  {1,3,5,7,9,11,13,15,17,21,25,27,33,35,37},	// p=76: D=5415 D/Dc=1.292
  {1,2,3,4,8,13,18,19,24,25,29,30,32,36,38},	// p=77: D=6207 D/Dc=1.367
  {1,1,1,5,7,11,17,19,23,25,29,29,31,35,37},	// p=78: D=2535 D/Dc=0.863
  {1,2,3,4,5,6,7,13,19,20,22,30,31,34,39},	// p=79: D=6085 D/Dc=1.321
  {1,3,7,9,11,13,17,19,21,23,27,29,31,33,37},	// p=80: D=4544 D/Dc=1.129
  {1,2,4,5,7,8,10,16,20,22,23,31,34,37,40},	// p=81: D=6834 D/Dc=1.368
  {1,3,5,7,9,11,13,21,23,25,29,31,33,37,39},	// p=82: D=7052 D/Dc=1.374
  {1,2,3,4,5,6,7,10,18,21,22,29,31,40,41},	// p=83: D=6521 D/Dc=1.306
  {1,1,1,5,11,13,17,19,23,25,29,31,37,37,41},	// p=84: D=2940 D/Dc=0.867
  {1,2,3,4,6,8,12,16,21,23,28,29,32,39,42},	// p=85: D=7406 D/Dc=1.361
  {1,3,5,7,9,11,13,21,23,25,29,31,35,37,41},	// p=86: D=7439 D/Dc=1.350
  {1,2,4,5,7,8,14,16,22,25,28,31,32,41,43},	// p=87: D=7803 D/Dc=1.367
  {1,3,5,7,9,13,15,17,19,21,23,29,35,39,41},	// p=88: D=7260 D/Dc=1.305
  {1,2,3,4,5,6,7,8,17,22,23,31,33,40,44},	// p=89: D=7092 D/Dc=1.276
  {1,1,1,7,11,13,17,19,23,23,29,31,37,41,43},	// p=90: D=3375 D/Dc=0.871
  {1,2,3,4,5,6,10,15,22,23,30,31,34,43,44},	// p=91: D=7990 D/Dc=1.327
  {1,3,5,7,9,11,13,17,19,21,25,31,39,43,45},	// p=92: D=7935 D/Dc=1.309
  {1,2,4,5,8,13,16,20,22,23,29,32,35,41,46},	// p=93: D=8835 D/Dc=1.367
  {1,3,5,7,9,11,13,19,25,27,29,31,39,41,45},	// p=94: D=8852 D/Dc=1.355
  {1,2,3,4,6,7,11,18,23,24,32,33,36,46,47},	// p=95: D=8866 D/Dc=1.343
  {1,5,7,11,13,17,19,23,25,29,31,35,37,41,43},	// p=96: D=3840 D/Dc=0.875
  {1,2,3,4,5,6,7,8,12,21,25,26,37,47,48},	// p=97: D=7929 D/Dc=1.245
  {1,3,5,9,11,13,15,19,23,25,27,31,41,45,47},	// p=98: D=8575 D/Dc=1.283
  {1,2,4,5,10,13,14,20,23,28,31,35,40,43,47},	// p=99: D=9936 D/Dc=1.368
  {1,3,7,9,11,13,17,19,23,29,31,37,43,47,49}};	// p=100:D=7100 D/Dc=1.145

//***************************************************************************

#include "foxstuff.h"


char * GetCMACOverlayDisplacementVector (int n, int p)
{
  checkthat2 (p >= 1 && p <= 100 && n >= 1 && n <= 15,
    "GetCMACOverlayDisplacementVector(): n or p out of range");

  switch (n) {
    case  1: return &overlay_displacement_1[0];
    case  2: return &overlay_displacement_2[p-1][0];
    case  3: return &overlay_displacement_3[p-1][0];
    case  4: return &overlay_displacement_4[p-1][0];
    case  5: return &overlay_displacement_5[p-1][0];
    case  6: return &overlay_displacement_6[p-1][0];
    case  7: return &overlay_displacement_7[p-1][0];
    case  8: return &overlay_displacement_8[p-1][0];
    case  9: return &overlay_displacement_9[p-1][0];
    case 10: return &overlay_displacement_10[p-1][0];
    case 11: return &overlay_displacement_11[p-1][0];
    case 12: return &overlay_displacement_12[p-1][0];
    case 13: return &overlay_displacement_13[p-1][0];
    case 14: return &overlay_displacement_14[p-1][0];
    case 15: return &overlay_displacement_15[p-1][0];
  }
  return NULL;	// should never get here
}
