/* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is mozilla.org code.
 *
 * The Initial Developer of the Original Code is
 * Netscape Communications Corporation.
 * Portions created by the Initial Developer are Copyright (C) 1998
 * the Initial Developer. All Rights Reserved.
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either of the GNU General Public License Version 2 or later (the "GPL"),
 * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 *
 * ***** END LICENSE BLOCK ***** */

package org.mozilla.intl.chardet ;

import java.lang.* ;

public class EUCTWStatistics extends nsEUCStatistics {


     static float[] mFirstByteFreq ;
     static float   mFirstByteStdDev;
     static float   mFirstByteMean;
     static float   mFirstByteWeight;
     static float[] mSecondByteFreq;
     static float   mSecondByteStdDev;
     static float   mSecondByteMean;
     static float   mSecondByteWeight;

     public float[] mFirstByteFreq() { return mFirstByteFreq; }  
     public float   mFirstByteStdDev()  { return mFirstByteStdDev; }  
     public float   mFirstByteMean()  { return mFirstByteMean; }  
     public float   mFirstByteWeight()  { return mFirstByteWeight; }  
     public float[] mSecondByteFreq()  { return mSecondByteFreq; }  
     public float   mSecondByteStdDev()  { return mSecondByteStdDev; }  
     public float   mSecondByteMean()  { return mSecondByteMean; }  
     public float   mSecondByteWeight()  { return mSecondByteWeight; }  

	public EUCTWStatistics() {

	    mFirstByteFreq = new float[] {
                0.000000f, // FreqH[a1]
                0.000000f, // FreqH[a2]
                0.000000f, // FreqH[a3]
                0.000000f, // FreqH[a4]
                0.000000f, // FreqH[a5]
                0.000000f, // FreqH[a6]
                0.000000f, // FreqH[a7]
                0.000000f, // FreqH[a8]
                0.000000f, // FreqH[a9]
                0.000000f, // FreqH[aa]
                0.000000f, // FreqH[ab]
                0.000000f, // FreqH[ac]
                0.000000f, // FreqH[ad]
                0.000000f, // FreqH[ae]
                0.000000f, // FreqH[af]
                0.000000f, // FreqH[b0]
                0.000000f, // FreqH[b1]
                0.000000f, // FreqH[b2]
                0.000000f, // FreqH[b3]
                0.000000f, // FreqH[b4]
                0.000000f, // FreqH[b5]
                0.000000f, // FreqH[b6]
                0.000000f, // FreqH[b7]
                0.000000f, // FreqH[b8]
                0.000000f, // FreqH[b9]
                0.000000f, // FreqH[ba]
                0.000000f, // FreqH[bb]
                0.000000f, // FreqH[bc]
                0.000000f, // FreqH[bd]
                0.000000f, // FreqH[be]
                0.000000f, // FreqH[bf]
                0.000000f, // FreqH[c0]
                0.000000f, // FreqH[c1]
                0.000000f, // FreqH[c2]
                0.000000f, // FreqH[c3]
                0.119286f, // FreqH[c4]
                0.052233f, // FreqH[c5]
                0.044126f, // FreqH[c6]
                0.052494f, // FreqH[c7]
                0.045906f, // FreqH[c8]
                0.019038f, // FreqH[c9]
                0.032465f, // FreqH[ca]
                0.026252f, // FreqH[cb]
                0.025502f, // FreqH[cc]
                0.015963f, // FreqH[cd]
                0.052493f, // FreqH[ce]
                0.019256f, // FreqH[cf]
                0.015137f, // FreqH[d0]
                0.031782f, // FreqH[d1]
                0.017370f, // FreqH[d2]
                0.018494f, // FreqH[d3]
                0.015575f, // FreqH[d4]
                0.016621f, // FreqH[d5]
                0.007444f, // FreqH[d6]
                0.011642f, // FreqH[d7]
                0.013916f, // FreqH[d8]
                0.019159f, // FreqH[d9]
                0.016445f, // FreqH[da]
                0.007851f, // FreqH[db]
                0.011079f, // FreqH[dc]
                0.022842f, // FreqH[dd]
                0.015513f, // FreqH[de]
                0.010033f, // FreqH[df]
                0.009950f, // FreqH[e0]
                0.010347f, // FreqH[e1]
                0.013103f, // FreqH[e2]
                0.015371f, // FreqH[e3]
                0.012502f, // FreqH[e4]
                0.007436f, // FreqH[e5]
                0.018253f, // FreqH[e6]
                0.014134f, // FreqH[e7]
                0.008907f, // FreqH[e8]
                0.005411f, // FreqH[e9]
                0.009570f, // FreqH[ea]
                0.013598f, // FreqH[eb]
                0.006092f, // FreqH[ec]
                0.007409f, // FreqH[ed]
                0.008432f, // FreqH[ee]
                0.005816f, // FreqH[ef]
                0.009349f, // FreqH[f0]
                0.005472f, // FreqH[f1]
                0.007170f, // FreqH[f2]
                0.007420f, // FreqH[f3]
                0.003681f, // FreqH[f4]
                0.007523f, // FreqH[f5]
                0.004610f, // FreqH[f6]
                0.006154f, // FreqH[f7]
                0.003348f, // FreqH[f8]
                0.005074f, // FreqH[f9]
                0.005922f, // FreqH[fa]
                0.005254f, // FreqH[fb]
                0.004682f, // FreqH[fc]
                0.002093f, // FreqH[fd]
                0.000000f  // FreqH[fe]
	};

	mFirstByteStdDev = 0.016681f; // Lead Byte StdDev
	mFirstByteMean = 0.010638f; // Lead Byte Mean
	mFirstByteWeight = 0.715599f; // Lead Byte Weight

	mSecondByteFreq = new float[] {
                 0.028933f, // FreqL[a1]
                 0.011371f, // FreqL[a2]
                 0.011053f, // FreqL[a3]
                 0.007232f, // FreqL[a4]
                 0.010192f, // FreqL[a5]
                 0.004093f, // FreqL[a6]
                 0.015043f, // FreqL[a7]
                 0.011752f, // FreqL[a8]
                 0.022387f, // FreqL[a9]
                 0.008410f, // FreqL[aa]
                 0.012448f, // FreqL[ab]
                 0.007473f, // FreqL[ac]
                 0.003594f, // FreqL[ad]
                 0.007139f, // FreqL[ae]
                 0.018912f, // FreqL[af]
                 0.006083f, // FreqL[b0]
                 0.003302f, // FreqL[b1]
                 0.010215f, // FreqL[b2]
                 0.008791f, // FreqL[b3]
                 0.024236f, // FreqL[b4]
                 0.014107f, // FreqL[b5]
                 0.014108f, // FreqL[b6]
                 0.010303f, // FreqL[b7]
                 0.009728f, // FreqL[b8]
                 0.007877f, // FreqL[b9]
                 0.009719f, // FreqL[ba]
                 0.007952f, // FreqL[bb]
                 0.021028f, // FreqL[bc]
                 0.005764f, // FreqL[bd]
                 0.009341f, // FreqL[be]
                 0.006591f, // FreqL[bf]
                 0.012517f, // FreqL[c0]
                 0.005921f, // FreqL[c1]
                 0.008982f, // FreqL[c2]
                 0.008771f, // FreqL[c3]
                 0.012802f, // FreqL[c4]
                 0.005926f, // FreqL[c5]
                 0.008342f, // FreqL[c6]
                 0.003086f, // FreqL[c7]
                 0.006843f, // FreqL[c8]
                 0.007576f, // FreqL[c9]
                 0.004734f, // FreqL[ca]
                 0.016404f, // FreqL[cb]
                 0.008803f, // FreqL[cc]
                 0.008071f, // FreqL[cd]
                 0.005349f, // FreqL[ce]
                 0.008566f, // FreqL[cf]
                 0.010840f, // FreqL[d0]
                 0.015401f, // FreqL[d1]
                 0.031904f, // FreqL[d2]
                 0.008670f, // FreqL[d3]
                 0.011479f, // FreqL[d4]
                 0.010936f, // FreqL[d5]
                 0.007617f, // FreqL[d6]
                 0.008995f, // FreqL[d7]
                 0.008114f, // FreqL[d8]
                 0.008658f, // FreqL[d9]
                 0.005934f, // FreqL[da]
                 0.010452f, // FreqL[db]
                 0.009142f, // FreqL[dc]
                 0.004519f, // FreqL[dd]
                 0.008339f, // FreqL[de]
                 0.007476f, // FreqL[df]
                 0.007027f, // FreqL[e0]
                 0.006025f, // FreqL[e1]
                 0.021804f, // FreqL[e2]
                 0.024248f, // FreqL[e3]
                 0.015895f, // FreqL[e4]
                 0.003768f, // FreqL[e5]
                 0.010171f, // FreqL[e6]
                 0.010007f, // FreqL[e7]
                 0.010178f, // FreqL[e8]
                 0.008316f, // FreqL[e9]
                 0.006832f, // FreqL[ea]
                 0.006364f, // FreqL[eb]
                 0.009141f, // FreqL[ec]
                 0.009148f, // FreqL[ed]
                 0.012081f, // FreqL[ee]
                 0.011914f, // FreqL[ef]
                 0.004464f, // FreqL[f0]
                 0.014257f, // FreqL[f1]
                 0.006907f, // FreqL[f2]
                 0.011292f, // FreqL[f3]
                 0.018622f, // FreqL[f4]
                 0.008149f, // FreqL[f5]
                 0.004636f, // FreqL[f6]
                 0.006612f, // FreqL[f7]
                 0.013478f, // FreqL[f8]
                 0.012614f, // FreqL[f9]
                 0.005186f, // FreqL[fa]
                 0.048285f, // FreqL[fb]
                 0.006816f, // FreqL[fc]
                 0.006743f, // FreqL[fd]
                 0.008671f  // FreqL[fe]
	};

	mSecondByteStdDev = 0.006630f; // Trail Byte StdDev
	mSecondByteMean = 0.010638f; // Trail Byte Mean
	mSecondByteWeight = 0.284401f; // Trial Byte Weight
	}

}
