github.com/cryptoecc/eth-ecc@v0.0.3/consensus/eccpow/LDPCDifficulty_utils.go (about)

     1  package eccpow
     2  
     3  import (
     4  	"math/big"
     5  )
     6  
     7  // Table : level, n, wc, wr, decisionFrom, decisionTo, decisionStep, _, miningProb
     8  /*
     9  	How to decision
    10  	1. The number of ones in outputword % decision_step == 0
    11  	2. The number of ones in outputword exists between decision_from to decision_to
    12  
    13  	How to change difficulty level
    14  	- Reciprocal of difficulty is probability
    15  	- Therefore We can define difficulty is reciprocal of probability
    16  	- Find close probability
    17  
    18  */
    19  type difficulty struct {
    20  	level        int
    21  	n            int
    22  	wc           int
    23  	wr           int
    24  	decisionFrom int
    25  	decisionTo   int
    26  	decisionStep int
    27  	_            float32
    28  	miningProb   float64
    29  }
    30  
    31  // FloatToBigInt convert float64 to big integer
    32  func FloatToBigInt(val float64) *big.Int {
    33  	// float64 -> bit float -> big int
    34  	bigFloat := big.NewFloat(val)
    35  	bigInt := new(big.Int)
    36  	bigFloat.Int(bigInt)
    37  
    38  	return bigInt
    39  }
    40  
    41  // BigIntToFloat convert big int to float64
    42  func BigIntToFloat(val *big.Int) float64 {
    43  	// big int -> bit float -> float64
    44  	bigFloat := new(big.Float).SetInt(val)
    45  	floatVal, _ := bigFloat.Float64()
    46  
    47  	return floatVal
    48  }
    49  
    50  // DifficultyToProb convert difficulty to probability of table
    51  func DifficultyToProb(difficulty *big.Int) float64 {
    52  	//big Int -> 1/bigInt -> float64
    53  	prob := 1 / BigIntToFloat(difficulty)
    54  	return prob
    55  }
    56  
    57  // ProbToDifficulty convert probability to difficulty of header
    58  func ProbToDifficulty(miningProb float64) *big.Int {
    59  	// float64 -> 1/float64 -> big Int
    60  	difficulty := FloatToBigInt(1 / miningProb)
    61  	return difficulty
    62  }
    63  
    64  // Table is difficulty table slice
    65  var Table = []difficulty{
    66  	{0, 32, 3, 4, 10, 22, 2, 0.329111, 3.077970e-05},
    67  	{1, 32, 3, 4, 10, 22, 2, 0.329111, 3.077970e-05},
    68  	{2, 32, 3, 4, 10, 16, 2, 0.329111, 2.023220e-05},
    69  	{3, 32, 3, 4, 16, 16, 1, 0.329111, 9.684650e-06},
    70  	{4, 32, 3, 4, 14, 14, 1, 0.329111, 6.784080e-06},
    71  	{5, 36, 3, 4, 12, 24, 2, 0.329111, 4.830240e-06},
    72  	{6, 36, 3, 4, 12, 18, 2, 0.369449, 3.125970e-06},
    73  	{7, 32, 3, 4, 12, 12, 1, 0.369449, 2.862890e-06},
    74  	{8, 44, 3, 4, 14, 30, 2, 0.369449, 1.637790e-06},
    75  	{9, 36, 3, 4, 18, 18, 1, 0.369449, 1.421700e-06},
    76  	{10, 36, 3, 4, 16, 16, 1, 0.369449, 1.051350e-06},
    77  	{11, 44, 3, 4, 14, 22, 2, 0.411046, 1.029740e-06},
    78  	{12, 40, 3, 4, 12, 28, 2, 0.411046, 7.570880e-07},
    79  	{13, 36, 3, 4, 14, 14, 1, 0.411046, 4.865630e-07},
    80  	{14, 40, 3, 4, 12, 20, 2, 0.411046, 4.813320e-07},
    81  	{15, 44, 3, 4, 22, 22, 1, 0.411046, 4.216920e-07},
    82  	{16, 44, 3, 4, 20, 20, 1, 0.411046, 3.350070e-07},
    83  	{17, 48, 3, 4, 14, 34, 2, 0.452453, 2.677070e-07},
    84  	{18, 40, 3, 4, 20, 20, 1, 0.452453, 2.055750e-07},
    85  	{19, 44, 3, 4, 18, 18, 1, 0.452453, 1.788400e-07},
    86  	{20, 48, 3, 4, 14, 24, 2, 0.452453, 1.664080e-07},
    87  	{21, 40, 3, 4, 18, 18, 1, 0.452453, 1.583110e-07},
    88  	{22, 40, 3, 4, 16, 16, 1, 0.452453, 7.917230e-08},
    89  	{23, 44, 3, 4, 16, 16, 1, 0.498513, 7.103820e-08},
    90  	{24, 48, 3, 4, 24, 24, 1, 0.498513, 6.510890e-08},
    91  	{25, 48, 3, 4, 22, 22, 1, 0.498513, 5.300760e-08},
    92  	{26, 52, 3, 4, 14, 40, 2, 0.498513, 4.266600e-08},
    93  	{27, 48, 3, 4, 20, 20, 1, 0.498513, 2.990510e-08},
    94  	{28, 40, 3, 4, 14, 14, 1, 0.498513, 2.927380e-08},
    95  	{29, 52, 3, 4, 14, 26, 2, 0.498513, 2.626790e-08},
    96  	{30, 60, 3, 4, 18, 42, 2, 0.498513, 1.485240e-08},
    97  	{31, 48, 3, 4, 18, 18, 1, 0.546238, 1.267290e-08},
    98  	{32, 52, 3, 4, 26, 26, 1, 0.546238, 9.891110e-09},
    99  	{33, 60, 3, 4, 18, 30, 2, 0.546238, 9.019200e-09},
   100  	{34, 48, 3, 4, 16, 32, 1, 0.546238, 8.762650e-09},
   101  	{35, 52, 3, 4, 24, 24, 1, 0.546238, 8.213140e-09},
   102  	{36, 56, 3, 4, 16, 42, 2, 0.546238, 6.658250e-09},
   103  	{37, 52, 3, 4, 22, 22, 1, 0.546238, 4.856960e-09},
   104  	{38, 48, 3, 4, 16, 16, 1, 0.546238, 4.381330e-09},
   105  	{39, 56, 3, 4, 16, 28, 2, 0.546238, 4.068000e-09},
   106  	{40, 60, 3, 4, 30, 30, 1, 0.546238, 3.186040e-09},
   107  	{41, 60, 3, 4, 28, 28, 1, 0.578290, 2.725470e-09},
   108  	{42, 64, 3, 4, 18, 46, 2, 0.578290, 2.410890e-09},
   109  	{43, 52, 3, 4, 20, 20, 1, 0.578290, 2.181360e-09},
   110  	{44, 60, 3, 4, 26, 26, 1, 0.578290, 1.737940e-09},
   111  	{45, 52, 3, 4, 18, 34, 1, 0.578290, 1.595330e-09},
   112  	{46, 56, 3, 4, 28, 28, 1, 0.578290, 1.481830e-09},
   113  	{47, 64, 3, 4, 18, 32, 2, 0.578290, 1.454780e-09},
   114  	{48, 56, 3, 4, 26, 26, 1, 0.578290, 1.250550e-09},
   115  	{49, 60, 3, 4, 24, 24, 1, 0.578290, 8.614860e-10},
   116  	{50, 52, 3, 4, 18, 18, 1, 0.578290, 7.976650e-10},
   117  	{51, 56, 3, 4, 24, 24, 1, 0.628015, 7.700380e-10},
   118  	{52, 60, 3, 4, 22, 38, 1, 0.628015, 6.978800e-10},
   119  	{53, 52, 3, 4, 16, 36, 1, 0.628015, 5.069080e-10},
   120  	{54, 64, 3, 4, 32, 32, 1, 0.628015, 4.986660e-10},
   121  	{55, 64, 3, 4, 30, 30, 1, 0.628015, 4.315180e-10},
   122  	{56, 68, 3, 4, 18, 50, 2, 0.628015, 3.848530e-10},
   123  	{57, 56, 3, 4, 22, 22, 1, 0.628015, 3.643130e-10},
   124  	{58, 60, 3, 4, 22, 22, 1, 0.628015, 3.489400e-10},
   125  	{59, 64, 3, 4, 28, 28, 1, 0.628015, 2.836780e-10},
   126  	{60, 56, 3, 4, 20, 36, 1, 0.628015, 2.809120e-10},
   127  	{61, 52, 3, 4, 16, 16, 1, 0.666500, 2.534540e-10},
   128  	{62, 60, 3, 4, 20, 40, 1, 0.666500, 2.427110e-10},
   129  	{63, 68, 3, 4, 18, 34, 2, 0.666500, 2.309280e-10},
   130  	{64, 64, 3, 4, 26, 26, 1, 0.666500, 1.466250e-10},
   131  	{65, 56, 3, 4, 20, 20, 1, 0.666500, 1.404560e-10},
   132  	{66, 76, 3, 4, 22, 54, 2, 0.666500, 1.375500e-10},
   133  	{67, 60, 3, 4, 20, 20, 1, 0.666500, 1.213550e-10},
   134  	{68, 56, 3, 4, 18, 38, 1, 0.666500, 9.340240e-11},
   135  	{69, 76, 3, 4, 22, 38, 2, 0.666500, 8.174200e-11},
   136  	{70, 68, 3, 4, 34, 34, 1, 0.666500, 7.700290e-11},
   137  	{71, 68, 3, 4, 32, 32, 1, 0.666500, 6.729690e-11},
   138  	{72, 64, 3, 4, 24, 24, 1, 0.706860, 6.217280e-11},
   139  	{73, 72, 3, 4, 18, 56, 2, 0.706860, 6.056200e-11},
   140  	{74, 56, 3, 4, 18, 18, 1, 0.706860, 4.670120e-11},
   141  	{75, 68, 3, 4, 30, 30, 1, 0.706860, 4.543980e-11},
   142  	{76, 64, 3, 4, 22, 42, 1, 0.706860, 4.517330e-11},
   143  	{77, 72, 3, 4, 18, 36, 2, 0.706860, 3.615450e-11},
   144  	{78, 76, 3, 4, 38, 38, 1, 0.706860, 2.593400e-11},
   145  	{79, 68, 3, 4, 28, 28, 1, 0.706860, 2.438720e-11},
   146  	{80, 76, 3, 4, 36, 36, 1, 0.706860, 2.303460e-11},
   147  	{81, 64, 3, 4, 22, 22, 1, 0.706860, 2.258660e-11},
   148  	{82, 80, 3, 4, 22, 58, 2, 0.706860, 2.229400e-11},
   149  	{83, 76, 3, 4, 34, 34, 1, 0.706860, 1.626350e-11},
   150  	{84, 64, 3, 4, 20, 40, 1, 0.706860, 1.465310e-11},
   151  	{85, 80, 3, 4, 22, 40, 2, 0.763542, 1.319160e-11},
   152  	{86, 72, 3, 4, 36, 36, 1, 0.763542, 1.174900e-11},
   153  	{87, 68, 3, 4, 26, 26, 1, 0.763542, 1.078820e-11},
   154  	{88, 72, 3, 4, 34, 34, 1, 0.763542, 1.035690e-11},
   155  	{89, 76, 3, 4, 32, 32, 1, 0.763542, 9.311370e-12},
   156  	{90, 68, 3, 4, 24, 44, 1, 0.763542, 8.173020e-12},
   157  	{91, 64, 3, 4, 20, 20, 1, 0.763542, 7.326570e-12},
   158  	{92, 72, 3, 4, 32, 32, 1, 0.763542, 7.160350e-12},
   159  	{93, 76, 3, 4, 30, 30, 1, 0.763542, 4.440960e-12},
   160  	{94, 80, 3, 4, 40, 40, 1, 0.763542, 4.089220e-12},
   161  	{95, 68, 3, 4, 24, 24, 1, 0.763542, 4.086510e-12},
   162  	{96, 72, 3, 4, 30, 30, 1, 0.763542, 3.975570e-12},
   163  	{97, 80, 3, 4, 38, 38, 1, 0.763542, 3.656430e-12},
   164  	{98, 76, 3, 4, 28, 48, 1, 0.763542, 3.634830e-12},
   165  	{99, 84, 3, 4, 22, 62, 2, 0.763542, 3.566880e-12},
   166  	{100, 68, 3, 4, 22, 46, 1, 0.783762, 2.750600e-12},
   167  	{101, 80, 3, 4, 36, 36, 1, 0.783762, 2.630600e-12},
   168  	{102, 84, 3, 4, 22, 42, 2, 0.783762, 2.102180e-12},
   169  	{103, 72, 3, 4, 28, 28, 1, 0.783762, 1.828850e-12},
   170  	{104, 76, 3, 4, 28, 28, 1, 0.783762, 1.817420e-12},
   171  	{105, 80, 3, 4, 34, 34, 1, 0.783762, 1.548670e-12},
   172  	{106, 72, 3, 4, 26, 46, 1, 0.783762, 1.441670e-12},
   173  	{107, 68, 3, 4, 22, 22, 1, 0.783762, 1.375300e-12},
   174  	{108, 76, 3, 4, 26, 50, 1, 0.783762, 1.314800e-12},
   175  	{109, 92, 3, 4, 24, 68, 2, 0.783762, 1.296220e-12},
   176  	{110, 68, 3, 4, 20, 48, 1, 0.783762, 8.516070e-13},
   177  	{111, 80, 3, 4, 32, 32, 1, 0.783762, 7.636740e-13},
   178  	{112, 92, 3, 4, 24, 46, 2, 0.783762, 7.585130e-13},
   179  	{113, 72, 3, 4, 26, 26, 1, 0.824961, 7.208340e-13},
   180  	{114, 76, 3, 4, 26, 26, 1, 0.824961, 6.573980e-13},
   181  	{115, 80, 3, 4, 30, 50, 1, 0.824961, 6.475910e-13},
   182  	{116, 84, 3, 4, 42, 42, 1, 0.824961, 6.374900e-13},
   183  	{117, 84, 3, 4, 40, 40, 1, 0.824961, 5.734350e-13},
   184  	{118, 88, 3, 4, 22, 66, 2, 0.824961, 5.640630e-13},
   185  	{119, 72, 3, 4, 24, 48, 1, 0.824961, 5.032200e-13},
   186  	{120, 76, 3, 4, 24, 52, 1, 0.824961, 4.325430e-13},
   187  	{121, 68, 3, 4, 20, 20, 1, 0.824961, 4.258030e-13},
   188  	{122, 84, 3, 4, 38, 38, 1, 0.824961, 4.195890e-13},
   189  	{123, 88, 3, 4, 22, 44, 2, 0.824961, 3.312130e-13},
   190  	{124, 80, 3, 4, 30, 30, 1, 0.824961, 3.237950e-13},
   191  	{125, 84, 3, 4, 36, 36, 1, 0.824961, 2.533670e-13},
   192  	{126, 72, 3, 4, 24, 24, 1, 0.824961, 2.516100e-13},
   193  	{127, 80, 3, 4, 28, 52, 1, 0.824961, 2.424700e-13},
   194  	{128, 92, 3, 4, 46, 46, 1, 0.865704, 2.208090e-13},
   195  	{129, 76, 3, 4, 24, 24, 1, 0.865704, 2.162710e-13},
   196  	{130, 96, 3, 4, 26, 72, 2, 0.865704, 2.099840e-13},
   197  	{131, 92, 3, 4, 44, 44, 1, 0.865704, 2.006580e-13},
   198  	{132, 72, 3, 4, 22, 50, 1, 0.865704, 1.605310e-13},
   199  	{133, 92, 3, 4, 42, 42, 1, 0.865704, 1.511670e-13},
   200  	{134, 84, 3, 4, 34, 34, 1, 0.865704, 1.288510e-13},
   201  	{135, 96, 3, 4, 26, 48, 2, 0.865704, 1.224810e-13},
   202  	{136, 80, 3, 4, 28, 28, 1, 0.865704, 1.212350e-13},
   203  	{137, 88, 3, 4, 44, 44, 1, 0.865704, 9.836240e-14},
   204  	{138, 92, 3, 4, 40, 40, 1, 0.865704, 9.542830e-14},
   205  	{139, 88, 3, 4, 42, 42, 1, 0.865704, 8.895450e-14},
   206  	{140, 80, 3, 4, 26, 54, 1, 0.865704, 8.227740e-14},
   207  	{141, 72, 3, 4, 22, 22, 1, 0.865704, 8.026550e-14},
   208  	{142, 88, 3, 4, 40, 40, 1, 0.865704, 6.609120e-14},
   209  	{143, 84, 3, 4, 32, 32, 1, 0.865704, 5.648410e-14},
   210  	{144, 92, 3, 4, 38, 38, 1, 0.908949, 5.127400e-14},
   211  	{145, 72, 3, 4, 20, 52, 1, 0.908949, 4.822030e-14},
   212  	{146, 84, 3, 4, 30, 54, 1, 0.908949, 4.372420e-14},
   213  	{147, 80, 3, 4, 26, 26, 1, 0.908949, 4.113870e-14},
   214  	{148, 88, 3, 4, 38, 38, 1, 0.908949, 4.084490e-14},
   215  	{149, 96, 3, 4, 48, 48, 1, 0.908949, 3.497970e-14},
   216  	{150, 100, 3, 4, 26, 76, 2, 0.908949, 3.365420e-14},
   217  	{151, 96, 3, 4, 46, 46, 1, 0.908949, 3.192740e-14},
   218  	{152, 80, 3, 4, 24, 56, 1, 0.908949, 2.593890e-14},
   219  	{153, 96, 3, 4, 44, 44, 1, 0.908949, 2.435890e-14},
   220  	{154, 72, 3, 4, 20, 20, 1, 0.908949, 2.411020e-14},
   221  	{155, 92, 3, 4, 36, 36, 1, 0.908949, 2.388460e-14},
   222  	{156, 84, 3, 4, 30, 30, 1, 0.908949, 2.186210e-14},
   223  	{157, 88, 3, 4, 36, 36, 1, 0.908949, 2.137330e-14},
   224  	{158, 92, 3, 4, 34, 58, 1, 0.908949, 1.967320e-14},
   225  	{159, 100, 3, 4, 26, 50, 2, 0.908949, 1.957080e-14},
   226  	{160, 96, 3, 4, 42, 42, 1, 0.908949, 1.568040e-14},
   227  	{161, 84, 3, 4, 28, 56, 1, 0.908949, 1.529960e-14},
   228  	{162, 80, 3, 4, 24, 24, 1, 0.954202, 1.296950e-14},
   229  	{163, 108, 3, 4, 28, 82, 2, 0.954202, 1.237200e-14},
   230  	{164, 92, 3, 4, 34, 34, 1, 0.954202, 9.836600e-15},
   231  	{165, 88, 3, 4, 34, 34, 1, 0.954202, 9.667440e-15},
   232  	{166, 96, 3, 4, 40, 40, 1, 0.954202, 8.634600e-15},
   233  	{167, 88, 3, 4, 32, 56, 1, 0.954202, 7.725050e-15},
   234  	{168, 84, 3, 4, 28, 28, 1, 0.954202, 7.649800e-15},
   235  	{169, 92, 3, 4, 32, 60, 1, 0.954202, 7.305750e-15},
   236  	{170, 108, 3, 4, 28, 54, 2, 0.954202, 7.154920e-15},
   237  	{171, 100, 3, 4, 50, 50, 1, 0.954202, 5.487490e-15},
   238  	{172, 104, 3, 4, 26, 78, 2, 0.954202, 5.340690e-15},
   239  	{173, 100, 3, 4, 48, 48, 1, 0.954202, 5.028760e-15},
   240  	{174, 84, 3, 4, 26, 58, 1, 0.954202, 4.951260e-15},
   241  	{175, 96, 3, 4, 38, 38, 1, 0.954202, 4.134930e-15},
   242  	{176, 100, 3, 4, 46, 46, 1, 0.954202, 3.881360e-15},
   243  	{177, 88, 3, 4, 32, 32, 1, 0.954202, 3.862530e-15},
   244  	{178, 92, 3, 4, 32, 32, 1, 0.954202, 3.652870e-15},
   245  	{179, 96, 3, 4, 36, 60, 1, 0.954202, 3.505650e-15},
   246  	{180, 104, 3, 4, 26, 52, 2, 0.993877, 3.096920e-15},
   247  	{181, 88, 3, 4, 30, 58, 1, 0.993877, 2.785770e-15},
   248  	{182, 100, 3, 4, 44, 44, 1, 0.993877, 2.543880e-15},
   249  	{183, 92, 3, 4, 30, 62, 1, 0.993877, 2.493880e-15},
   250  	{184, 84, 3, 4, 26, 26, 1, 0.993877, 2.475630e-15},
   251  	{185, 112, 3, 4, 28, 86, 2, 0.993877, 2.003890e-15},
   252  	{186, 108, 3, 4, 54, 54, 1, 0.993877, 1.937830e-15},
   253  	{187, 108, 3, 4, 52, 52, 1, 0.993877, 1.788370e-15},
   254  	{188, 96, 3, 4, 36, 36, 1, 0.993877, 1.752820e-15},
   255  	{189, 84, 3, 4, 24, 60, 1, 0.993877, 1.514630e-15},
   256  	{190, 100, 3, 4, 42, 42, 1, 0.993877, 1.433180e-15},
   257  	{191, 108, 3, 4, 50, 50, 1, 0.993877, 1.408830e-15},
   258  	{192, 88, 3, 4, 30, 30, 1, 0.993877, 1.392880e-15},
   259  	{193, 96, 3, 4, 34, 62, 1, 0.993877, 1.339400e-15},
   260  	{194, 92, 3, 4, 30, 30, 1, 0.993877, 1.246940e-15},
   261  	{195, 112, 3, 4, 28, 56, 2, 0.993877, 1.155930e-15},
   262  	{196, 108, 3, 4, 48, 48, 1, 0.993877, 9.534230e-16},
   263  	{197, 88, 3, 4, 28, 60, 1, 0.993877, 9.258750e-16},
   264  	{198, 104, 3, 4, 52, 52, 1, 1.035782, 8.531480e-16},
   265  	{199, 92, 3, 4, 28, 64, 1, 1.035782, 7.972240e-16},
   266  	{200, 104, 3, 4, 50, 50, 1, 1.035782, 7.847010e-16},
   267  	{201, 84, 3, 4, 24, 24, 1, 1.035782, 7.573130e-16},
   268  	{202, 100, 3, 4, 40, 40, 1, 1.035782, 7.043820e-16},
   269  	{203, 96, 3, 4, 34, 34, 1, 1.035782, 6.696990e-16},
   270  	{204, 100, 3, 4, 38, 62, 1, 1.035782, 6.138180e-16},
   271  	{205, 104, 3, 4, 48, 48, 1, 1.035782, 6.121340e-16},
   272  	{206, 108, 3, 4, 46, 46, 1, 1.035782, 5.596910e-16},
   273  	{207, 96, 3, 4, 32, 64, 1, 1.035782, 4.694950e-16},
   274  	{208, 88, 3, 4, 28, 28, 1, 1.035782, 4.629380e-16},
   275  	{209, 104, 3, 4, 46, 46, 1, 1.035782, 4.079260e-16},
   276  	{210, 92, 3, 4, 28, 28, 1, 1.035782, 3.986120e-16},
   277  	{211, 116, 3, 4, 30, 86, 2, 1.035782, 3.215820e-16},
   278  	{212, 112, 3, 4, 56, 56, 1, 1.035782, 3.079780e-16},
   279  	{213, 100, 3, 4, 38, 38, 1, 1.035782, 3.069090e-16},
   280  	{214, 88, 3, 4, 26, 62, 1, 1.035782, 2.893730e-16},
   281  	{215, 108, 3, 4, 44, 44, 1, 1.035782, 2.884350e-16},
   282  	{216, 112, 3, 4, 54, 54, 1, 1.035782, 2.851100e-16},
   283  	{217, 92, 3, 4, 26, 66, 1, 1.035782, 2.429760e-16},
   284  	{218, 100, 3, 4, 36, 64, 1, 1.083752, 2.410500e-16},
   285  	{219, 104, 3, 4, 44, 44, 1, 1.083752, 2.347600e-16},
   286  	{220, 96, 3, 4, 32, 32, 1, 1.083752, 2.347480e-16},
   287  	{221, 112, 3, 4, 52, 52, 1, 1.083752, 2.266460e-16},
   288  	{222, 116, 3, 4, 30, 58, 2, 1.083752, 1.850560e-16},
   289  	{223, 112, 3, 4, 50, 50, 1, 1.083752, 1.555940e-16},
   290  	{224, 96, 3, 4, 30, 66, 1, 1.083752, 1.536060e-16},
   291  	{225, 88, 3, 4, 26, 26, 1, 1.083752, 1.446860e-16},
   292  	{226, 108, 3, 4, 42, 42, 1, 1.083752, 1.322410e-16},
   293  	{227, 92, 3, 4, 26, 26, 1, 1.083752, 1.214880e-16},
   294  	{228, 100, 3, 4, 36, 36, 1, 1.083752, 1.205250e-16},
   295  	{229, 124, 3, 4, 32, 94, 2, 1.083752, 1.192380e-16},
   296  	{230, 104, 3, 4, 42, 42, 1, 1.083752, 1.182330e-16},
   297  	{231, 108, 3, 4, 40, 68, 1, 1.083752, 1.093900e-16},
   298  	{232, 112, 3, 4, 48, 48, 1, 1.083752, 9.304980e-17},
   299  	{233, 100, 3, 4, 34, 66, 1, 1.083752, 8.672750e-17},
   300  	{234, 88, 3, 4, 24, 64, 1, 1.083752, 8.671340e-17},
   301  	{235, 96, 3, 4, 30, 30, 1, 1.083752, 7.680300e-17},
   302  	{236, 124, 3, 4, 32, 62, 2, 1.083752, 6.831000e-17},
   303  	{237, 108, 3, 4, 40, 40, 1, 1.083752, 5.469510e-17},
   304  	{238, 104, 3, 4, 40, 40, 1, 1.083752, 5.287900e-17},
   305  	{239, 120, 3, 4, 30, 90, 2, 1.122176, 5.116510e-17},
   306  	{240, 112, 3, 4, 46, 46, 1, 1.122176, 4.900210e-17},
   307  	{241, 116, 3, 4, 58, 58, 1, 1.122176, 4.853020e-17},
   308  	{242, 96, 3, 4, 28, 68, 1, 1.122176, 4.769400e-17},
   309  	{243, 116, 3, 4, 56, 56, 1, 1.122176, 4.505610e-17},
   310  	{244, 100, 3, 4, 34, 34, 1, 1.122176, 4.336370e-17},
   311  	{245, 88, 3, 4, 24, 24, 1, 1.122176, 4.335670e-17},
   312  	{246, 104, 3, 4, 38, 66, 1, 1.122176, 4.264440e-17},
   313  	{247, 108, 3, 4, 38, 70, 1, 1.122176, 4.139190e-17},
   314  	{248, 116, 3, 4, 54, 54, 1, 1.122176, 3.611940e-17},
   315  	{249, 120, 3, 4, 30, 60, 2, 1.122176, 2.937590e-17},
   316  	{250, 100, 3, 4, 32, 68, 1, 1.122176, 2.904870e-17},
   317  	{251, 116, 3, 4, 52, 52, 1, 1.122176, 2.512890e-17},
   318  	{252, 96, 3, 4, 28, 28, 1, 1.122176, 2.384700e-17},
   319  	{253, 112, 3, 4, 44, 44, 1, 1.122176, 2.300220e-17},
   320  	{254, 104, 3, 4, 38, 38, 1, 1.122176, 2.132220e-17},
   321  	{255, 108, 3, 4, 38, 38, 1, 1.122176, 2.069600e-17},
   322  	{256, 112, 3, 4, 42, 70, 1, 1.122176, 1.949710e-17},
   323  	{257, 128, 3, 4, 32, 98, 2, 1.122176, 1.931040e-17},
   324  	{258, 124, 3, 4, 62, 62, 1, 1.122176, 1.738220e-17},
   325  	{259, 124, 3, 4, 60, 60, 1, 1.122176, 1.622110e-17},
   326  	{260, 104, 3, 4, 36, 68, 1, 1.165058, 1.573970e-17},
   327  	{261, 116, 3, 4, 50, 50, 1, 1.165058, 1.529120e-17},
   328  	{262, 108, 3, 4, 36, 72, 1, 1.165058, 1.452810e-17},
   329  	{263, 100, 3, 4, 32, 32, 1, 1.165058, 1.452430e-17},
   330  	{264, 124, 3, 4, 58, 58, 1, 1.165058, 1.320160e-17},
   331  	{265, 128, 3, 4, 32, 64, 2, 1.165058, 1.103980e-17},
   332  	{266, 112, 3, 4, 42, 42, 1, 1.165058, 9.748530e-18},
   333  	{267, 124, 3, 4, 56, 56, 1, 1.165058, 9.408340e-18},
   334  	{268, 100, 3, 4, 30, 70, 1, 1.165058, 9.198900e-18},
   335  	{269, 116, 3, 4, 48, 48, 1, 1.165058, 8.218710e-18},
   336  	{270, 104, 3, 4, 36, 36, 1, 1.165058, 7.869870e-18},
   337  	{271, 120, 3, 4, 60, 60, 1, 1.165058, 7.586620e-18},
   338  	{272, 112, 3, 4, 40, 72, 1, 1.165058, 7.557840e-18},
   339  	{273, 108, 3, 4, 36, 36, 1, 1.165058, 7.264050e-18},
   340  	{274, 120, 3, 4, 58, 58, 1, 1.165058, 7.062330e-18},
   341  	{275, 124, 3, 4, 54, 54, 1, 1.165058, 5.908890e-18},
   342  	{276, 120, 3, 4, 56, 56, 1, 1.165058, 5.705970e-18},
   343  	{277, 104, 3, 4, 34, 70, 1, 1.165058, 5.397190e-18},
   344  	{278, 108, 3, 4, 34, 74, 1, 1.165058, 4.794130e-18},
   345  	{279, 100, 3, 4, 30, 30, 1, 1.165058, 4.599450e-18},
   346  	{280, 120, 3, 4, 54, 54, 1, 1.165058, 4.019430e-18},
   347  	{281, 116, 3, 4, 46, 46, 1, 1.165058, 3.945320e-18},
   348  	{282, 112, 3, 4, 40, 40, 1, 1.165058, 3.778920e-18},
   349  	{283, 116, 3, 4, 44, 72, 1, 1.231412, 3.423190e-18},
   350  	{284, 124, 3, 4, 52, 52, 1, 1.231412, 3.297090e-18},
   351  	{285, 100, 3, 4, 28, 72, 1, 1.231412, 2.795780e-18},
   352  	{286, 128, 3, 4, 64, 64, 1, 1.231412, 2.769110e-18},
   353  	{287, 112, 3, 4, 38, 74, 1, 1.231412, 2.714430e-18},
   354  	{288, 104, 3, 4, 34, 34, 1, 1.231412, 2.698600e-18},
   355  	{289, 128, 3, 4, 62, 62, 1, 1.231412, 2.590140e-18},
   356  	{290, 120, 3, 4, 52, 52, 1, 1.231412, 2.486040e-18},
   357  	{291, 108, 3, 4, 34, 34, 1, 1.231412, 2.397060e-18},
   358  	{292, 128, 3, 4, 60, 60, 1, 1.231412, 2.122380e-18},
   359  	{293, 104, 3, 4, 32, 72, 1, 1.231412, 1.744360e-18},
   360  	{294, 116, 3, 4, 44, 44, 1, 1.231412, 1.711600e-18},
   361  	{295, 124, 3, 4, 50, 50, 1, 1.231412, 1.649820e-18},
   362  	{296, 128, 3, 4, 58, 58, 1, 1.231412, 1.529130e-18},
   363  	{297, 108, 3, 4, 32, 76, 1, 1.231412, 1.506960e-18},
   364  	{298, 100, 3, 4, 28, 28, 1, 1.231412, 1.397890e-18},
   365  	{299, 120, 3, 4, 50, 50, 1, 1.231412, 1.362180e-18},
   366  	{300, 116, 3, 4, 42, 74, 1, 1.231412, 1.358390e-18},
   367  	{301, 112, 3, 4, 38, 38, 1, 1.231412, 1.357210e-18},
   368  	{302, 128, 3, 4, 56, 56, 1, 1.231412, 9.742990e-19},
   369  	{303, 112, 3, 4, 36, 76, 1, 1.231412, 9.147070e-19},
   370  	{304, 104, 3, 4, 32, 32, 1, 1.231412, 8.721800e-19},
   371  	{305, 108, 3, 4, 32, 32, 1, 1.231412, 7.534800e-19},
   372  	{306, 124, 3, 4, 48, 48, 1, 1.273354, 7.478050e-19},
   373  	{307, 116, 3, 4, 42, 42, 1, 1.273354, 6.791960e-19},
   374  	{308, 120, 3, 4, 48, 48, 1, 1.273354, 6.679650e-19},
   375  	{309, 124, 3, 4, 46, 78, 1, 1.273354, 6.204930e-19},
   376  	{310, 120, 3, 4, 46, 74, 1, 1.273354, 5.926870e-19},
   377  	{311, 128, 3, 4, 54, 54, 1, 1.273354, 5.530780e-19},
   378  	{312, 104, 3, 4, 30, 74, 1, 1.273354, 5.388680e-19},
   379  	{313, 116, 3, 4, 40, 76, 1, 1.273354, 4.990110e-19},
   380  	{314, 112, 3, 4, 36, 36, 1, 1.273354, 4.573530e-19},
   381  	{315, 108, 3, 4, 30, 78, 1, 1.273354, 4.570100e-19},
   382  	{316, 124, 3, 4, 46, 46, 1, 1.273354, 3.102460e-19},
   383  	{317, 120, 3, 4, 46, 46, 1, 1.273354, 2.963440e-19},
   384  	{318, 112, 3, 4, 34, 78, 1, 1.273354, 2.927770e-19},
   385  	{319, 128, 3, 4, 52, 52, 1, 1.273354, 2.821290e-19},
   386  	{320, 104, 3, 4, 30, 30, 1, 1.273354, 2.694340e-19},
   387  	{321, 116, 3, 4, 40, 40, 1, 1.273354, 2.495060e-19},
   388  	{322, 120, 3, 4, 44, 76, 1, 1.273354, 2.405750e-19},
   389  	{323, 124, 3, 4, 44, 80, 1, 1.273354, 2.381080e-19},
   390  	{324, 108, 3, 4, 30, 30, 1, 1.273354, 2.285050e-19},
   391  	{325, 116, 3, 4, 38, 78, 1, 1.273354, 1.717170e-19},
   392  	{326, 104, 3, 4, 28, 76, 1, 1.273354, 1.613020e-19},
   393  	{327, 112, 3, 4, 34, 34, 1, 1.273354, 1.463890e-19},
   394  	{328, 128, 3, 4, 50, 50, 1, 1.273354, 1.305320e-19},
   395  	{329, 120, 3, 4, 44, 44, 1, 1.273354, 1.202870e-19},
   396  	{330, 124, 3, 4, 44, 44, 1, 1.273354, 1.190540e-19},
   397  	{331, 128, 3, 4, 48, 80, 1, 1.307736, 1.106170e-19},
   398  	{332, 120, 3, 4, 42, 78, 1, 1.307736, 9.035000e-20},
   399  	{333, 112, 3, 4, 32, 80, 1, 1.307736, 9.008150e-20},
   400  	{334, 116, 3, 4, 38, 38, 1, 1.307736, 8.585840e-20},
   401  	{335, 124, 3, 4, 42, 82, 1, 1.307736, 8.539640e-20},
   402  	{336, 104, 3, 4, 28, 28, 1, 1.307736, 8.065090e-20},
   403  	{337, 116, 3, 4, 36, 80, 1, 1.307736, 5.599310e-20},
   404  	{338, 128, 3, 4, 48, 48, 1, 1.307736, 5.530870e-20},
   405  	{339, 120, 3, 4, 42, 42, 1, 1.307736, 4.517500e-20},
   406  	{340, 112, 3, 4, 32, 32, 1, 1.307736, 4.504080e-20},
   407  	{341, 128, 3, 4, 46, 82, 1, 1.307736, 4.334810e-20},
   408  	{342, 124, 3, 4, 42, 42, 1, 1.307736, 4.269820e-20},
   409  	{343, 120, 3, 4, 40, 80, 1, 1.307736, 3.174430e-20},
   410  	{344, 124, 3, 4, 40, 84, 1, 1.307736, 2.891760e-20},
   411  	{345, 116, 3, 4, 36, 36, 1, 1.307736, 2.799660e-20},
   412  	{346, 112, 3, 4, 30, 82, 1, 1.307736, 2.695640e-20},
   413  	{347, 128, 3, 4, 46, 46, 1, 1.307736, 2.167410e-20},
   414  	{348, 116, 3, 4, 34, 82, 1, 1.307736, 1.749650e-20},
   415  	{349, 120, 3, 4, 40, 40, 1, 1.307736, 1.587220e-20},
   416  	{350, 128, 3, 4, 44, 84, 1, 1.307736, 1.586440e-20},
   417  	{351, 124, 3, 4, 40, 40, 1, 1.307736, 1.445880e-20},
   418  	{352, 112, 3, 4, 30, 30, 1, 1.307736, 1.347820e-20},
   419  	{353, 120, 3, 4, 38, 82, 1, 1.307736, 1.054790e-20},
   420  	{354, 124, 3, 4, 38, 86, 1, 1.307736, 9.338320e-21},
   421  	{355, 116, 3, 4, 34, 34, 1, 1.345734, 8.748240e-21},
   422  	{356, 128, 3, 4, 44, 44, 1, 1.345734, 7.932220e-21},
   423  	{357, 128, 3, 4, 42, 86, 1, 1.345734, 5.474680e-21},
   424  	{358, 116, 3, 4, 32, 84, 1, 1.345734, 5.297010e-21},
   425  	{359, 120, 3, 4, 38, 38, 1, 1.345734, 5.273960e-21},
   426  	{360, 124, 3, 4, 38, 38, 1, 1.345734, 4.669160e-21},
   427  	{361, 120, 3, 4, 36, 84, 1, 1.345734, 3.349800e-21},
   428  	{362, 124, 3, 4, 36, 88, 1, 1.345734, 2.903950e-21},
   429  	{363, 128, 3, 4, 42, 42, 1, 1.345734, 2.737340e-21},
   430  	{364, 116, 3, 4, 32, 32, 1, 1.345734, 2.648510e-21},
   431  	{365, 128, 3, 4, 40, 88, 1, 1.345734, 1.798290e-21},
   432  	{366, 120, 3, 4, 36, 36, 1, 1.345734, 1.674900e-21},
   433  	{367, 124, 3, 4, 36, 36, 1, 1.345734, 1.451970e-21},
   434  	{368, 120, 3, 4, 34, 86, 1, 1.345734, 1.027330e-21},
   435  	{369, 128, 3, 4, 40, 40, 1, 1.345734, 8.991430e-22},
   436  	{370, 124, 3, 4, 34, 90, 1, 1.345734, 8.779540e-22},
   437  	{371, 128, 3, 4, 38, 90, 1, 1.345734, 5.674390e-22},
   438  	{372, 120, 3, 4, 34, 34, 1, 1.345734, 5.136640e-22},
   439  	{373, 124, 3, 4, 34, 34, 1, 1.345734, 4.389770e-22},
   440  	{374, 120, 3, 4, 32, 88, 1, 1.345734, 3.073590e-22},
   441  	{375, 128, 3, 4, 38, 38, 1, 1.345734, 2.837200e-22},
   442  	{376, 128, 3, 4, 36, 92, 1, 1.345734, 1.735640e-22},
   443  	{377, 120, 3, 4, 32, 32, 1, 1.345734, 1.536800e-22},
   444  	{378, 128, 3, 4, 36, 36, 1, 1.345734, 8.678180e-23},
   445  	{379, 128, 3, 4, 34, 94, 1, 1.345734, 5.192020e-23},
   446  	{380, 128, 3, 4, 34, 34, 1, 1.345734, 2.600000e-23},
   447  }