亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mlj.java

?? 用C編寫的數據挖掘的相關算法
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package shared;
import java.lang.*;
import java.util.*;

/** This class contains methods and data members that were external to classes.
 */
public class MLJ {
    
    /** The clamping epsilon used to determine if a real value is significantly
     * different from another value.
     */    
    static public final double realEpsilon = 2.22204e-16;
    
    /** The clamping epsilon used to determine if a real value is significantly
     * different from another value.
     */    
    static public final double storedRealEpsilon= 1.1920928955078e-7;
    
    
    
    /** The clamping epsilon used to determine if a real value is significantly
     * different from another value during clamping.
     */    
    static public final double clampingEpsilon = realEpsilon * 10;
    
    /** If the given source value is lower than the lower bound, the source value is
     * changed to the lower bound value.
     * @param source The value to be clamped.
     * @param lowBound The lower bound.
     * @param additionalErrMsg Message to be displayed if clamping occurs.
     */
    static public void clamp_above(DoubleRef source, double lowBound,
    
    String additionalErrMsg) {
        clamp_above(source, lowBound, additionalErrMsg, 1);
    }
    
    
    /** If the given source value is lower than the lower bound, the source value is
     * changed to the lower bound value.
     * @param source The value to be clamped.
     * @param lowBound The lower bound.
     * @param additionalErrMsg Message to be displayed if clamping occurs.
     * @param precMultiplier The precision multiplier for real values that are close to the lower bound.
     */
    static public void clamp_above(DoubleRef source, double lowBound, String additionalErrMsg, int precMultiplier) {
        if (precMultiplier < 0) {
            Error.err(additionalErrMsg + '\n'+ "clamp_above(Real): precision multiplier ("+
            precMultiplier + ") must be non-negative-->fatal_error");
        }
        if (source.value >= lowBound) return;
        if (source.value < lowBound - clampingEpsilon * precMultiplier) {
            Error.err(additionalErrMsg + '\n'+ "clamp_above(Real): minimum value allowed ("+
            lowBound + ") exceeds variable to be clamped ("+ source + ") by more than is allowed ("+
            clampingEpsilon + ")-->fatal_error");
        }
        source.value = lowBound;
    }
    
    /** Compares two double values for equality.
     * @param lhs The left value to be compared.
     * @param rhs The right value to be compared.
     * @return TRUE if approximately equal, FALSE if significantly different.
     */
    static public boolean approx_equal(double lhs, double rhs) {
        return approx_equal(lhs,rhs,1);
    }
    
    /** Compares two double values for equality, using the given
     * precisionMultiplier to drive approximate comparisons.
     * @param lhs The left value to be compared.
     * @param rhs The right value to be compared.
     * @param precMultiplier The precision multiplier for determining if a value is signifacntly different.
     * @return TRUE if approximately equal, FALSE if significantly different.
     */
    static public boolean approx_equal(double lhs, double rhs, int precMultiplier) {
        if (Globals.DBG) MLJ.ASSERT(precMultiplier >= 0,"MLJ::approx_equal: precMultiplier < 0");
        return (Math.abs(lhs - rhs) <= clampingEpsilon * precMultiplier * Math.max(1, Math.min(Math.abs(lhs), Math.abs(rhs))));
    }
    
    
    /** Compares two arrays of double values for equality.
     * @param lhs The left array to be compared.
     * @param rhs The right array to be compared.
     * @return TRUE if approximately equal, FALSE if significantly different.
     */
    public static boolean approx_equal(double[] lhs, double[] rhs) {
        return approx_equal(lhs,rhs,1);
    }
    
    /** Compares two arrays of doubles for equality, using the given
     * precisionMultiplier to drive approximate comparisons at each element.
     * @param lhs The left array to be compared.
     * @param rhs The right array to be compared.
     * @param precisionMultiplier The precision multiplier for determining if a value is signifacntly different.
     * @return TRUE if approximately equal, FALSE if significantly different.
     */
    public static boolean approx_equal(double[] lhs, double[] rhs,
    int precisionMultiplier) {
        // FALSE if bounds differ
        if(lhs.length != rhs.length)
            return false;
        for (int x = 0; x < lhs.length; x++)
            if (!approx_equal(lhs[x], rhs[x], precisionMultiplier))
                return false;
        
        return true;
    }
    
    /** Compares two matrices of double values for equality.
     * @param lhs The left matrix to be compared.
     * @param rhs The right matrix to be compared.
     * @return TRUE if approximately equal, FALSE if significantly different.
     */
    static public boolean approx_equal(double[][] lhs, double[][] rhs) {
        return approx_equal(lhs,rhs,1);
    }
    
    /** Compares two matrices of double values for equality, using the given
     * precisionMultiplier to drive approximate comparisons at each element.
     * @param lhs The left matrix to be compared.
     * @param rhs The right matrix to be compared.
     * @param precisionMultiplier The precision multiplier for determining if a value is signifacntly different.
     * @return TRUE if approximately equal, FALSE if significantly different.
     */
    static public boolean approx_equal(double[][] lhs, double[][] rhs,
    int precisionMultiplier) {
        // FALSE if bounds differ
        if((lhs.length != rhs.length) || (lhs[0].length != rhs[0].length))
            return false;
        for (int x = 0; x < lhs.length; x++)
            for (int y = 0; y < lhs[0].length; y++)
                if (!approx_equal(lhs[x][y], rhs[x][y], precisionMultiplier))
                    return false;
        
        return true;
    }
    
    
    /** Checks if the double values are approximately equal and displays an error
     * message if they are not.
     * @param lhs The left value to be compared.
     * @param rhs The right value to be compared.
     * @param errMsg The error message to be displayed.
     */
    static public void verify_approx_equal(double lhs, double rhs, String errMsg ) {
        if (!approx_equal(lhs, rhs ))
            Error.err(errMsg + '\n'+ lhs + " versus "+ rhs + "-->fatal_error");
    }
    
    /** If the given source value is lower than the lower bound, the source value is
     * changed to the lower bound value. If the source value is above the higher bound,
     * the higher bound is substituted.
     * @param source The value to be clamped.
     * @param lowBound The lower bound.
     * @param highBound The higher bound.
     * @param additionalErrMsg An additional error message to be displayed if clamping occurs.
     */
    static public void clamp_to_range(DoubleRef source, double lowBound, double highBound, String additionalErrMsg) {
        clamp_to_range(source, lowBound, highBound, additionalErrMsg, 1);
    }
    
    /** If the given source value is lower than the lower bound, the source value is
     * changed to the lower bound value. If the source value is above the higher bound,
     * the higher bound is substituted. The precision multiplier is to determine to
     * what precision checks for significant difference are conducted.
     * @param source The value to be clamped.
     * @param lowBound The lower bound.
     * @param highBound The higher bound.
     * @param additionalErrMsg An additional error message to be displayed if clamping occurs.
     * @param precMultiplier The precision multiplier for real values that are close to the a bound.
     */
    static public void clamp_to_range(DoubleRef source, double lowBound, double highBound, String additionalErrMsg, int precMultiplier) {
        if (lowBound > highBound) {
            Error.err(additionalErrMsg + '\n'+ "clamp_to_range(Real): Lower bound of allowed range ("+
            lowBound + ") can not be greater than the upper bound of the range ("+
            highBound + ")-->fatal_error");
        }
        if (precMultiplier < 0) {
            Error.err(additionalErrMsg + '\n'+ "clamp_to_range(Real): precision multiplier ("+
            precMultiplier + ") must be non-negative-->fatal_error");
        }
        clamp_above(source, lowBound, additionalErrMsg, precMultiplier);
        clamp_below(source, highBound, additionalErrMsg, precMultiplier);
    }
    
    /** If the given source value is higher than the higher bound, the source value is
     * changed to the higher bound value.
     * @param source The value to be clamped.
     * @param highBound The higher bound.
     * @param additionalErrMsg An additional error message to be displayed if clamping occurs.
     */
    static public void clamp_below(DoubleRef source, double highBound, String additionalErrMsg) {
        clamp_below(source, highBound, additionalErrMsg, 1);
    }
    
    /** If the given source value is higher than the higher bound, the source value is
     * changed to the higher bound value.
     * @param source The value to be clamped.
     * @param highBound The higher bound.
     * @param additionalErrMsg An additional error message to be displayed if clamping occurs.
     * @param precMultiplier The precision multiplier for real values that are close to the higher bound.
     */
    static public void clamp_below(DoubleRef source, double highBound, String additionalErrMsg, int precMultiplier) {
        if (precMultiplier < 0) {
            Error.err(additionalErrMsg + '\n'+ "clamp_below(double): precision multiplier ("+
            precMultiplier + ") must be non-negative-->fatal_error");
        }
        if (source.value <= highBound) return;
        if (source.value > highBound + clampingEpsilon * precMultiplier) {
            Error.err(additionalErrMsg + '\n'+ "clamp_below(double): variable to be clamped ("+
            source + ") exceeds maximum value allowed ("+ highBound + ") by more than allowed ("+
            clampingEpsilon + ")-->fatal_error");
        }
        source.value = highBound;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久女同精品一区二区| 欧美日本一区二区在线观看| 开心九九激情九九欧美日韩精美视频电影| 中文字幕一区二区三区四区不卡 | 亚洲va在线va天堂| 亚洲啪啪综合av一区二区三区| 26uuu精品一区二区在线观看| 日韩免费视频线观看| www成人在线观看| 国产清纯美女被跳蛋高潮一区二区久久w| 日韩一区二区三区电影| 日韩欧美久久一区| 久久免费偷拍视频| 中文字幕亚洲区| 亚洲国产日韩在线一区模特| 婷婷综合五月天| 精品系列免费在线观看| 成人午夜伦理影院| 一本色道久久综合精品竹菊 | 亚洲va国产天堂va久久en| 国产精品福利一区二区| 香蕉加勒比综合久久| 日韩高清一级片| 国产在线视频精品一区| av电影在线观看一区| 欧美中文字幕一区二区三区| 欧美一区二区播放| 国产亚洲一二三区| 亚洲精品欧美激情| 麻豆久久久久久久| 不卡的电视剧免费网站有什么| 色综合久久久久久久| 欧美人牲a欧美精品| 久久久99精品免费观看不卡| 一区二区三区日韩精品视频| 日本不卡的三区四区五区| 成人黄色小视频在线观看| 91精品国产综合久久福利| 国产精品久久久久aaaa| 午夜一区二区三区在线观看| 极品少妇xxxx精品少妇偷拍| 色综合色综合色综合| 精品国产sm最大网站免费看| 亚洲日本在线看| 国产麻豆一精品一av一免费| 欧美中文字幕亚洲一区二区va在线| 日韩免费看的电影| 亚洲午夜视频在线观看| 国产成+人+日韩+欧美+亚洲| 欧美一级日韩免费不卡| 亚洲乱码日产精品bd| 国产高清精品在线| 日韩一区二区中文字幕| 亚洲一区在线观看网站| 成人的网站免费观看| 精品美女一区二区三区| 99精品在线免费| 久久久国际精品| 蜜臀va亚洲va欧美va天堂| 欧美日韩激情一区二区三区| 亚洲色图清纯唯美| www.亚洲人| 国产精品久久久久久久久搜平片 | 久久久不卡网国产精品二区 | 日韩精品一区二区三区在线观看| 亚洲制服欧美中文字幕中文字幕| 99久久国产综合色|国产精品| 欧美激情综合网| 国产精品一二三| 久久免费午夜影院| 韩国午夜理伦三级不卡影院| 欧美成人三级电影在线| 亚洲午夜久久久久久久久电影网 | 欧美成va人片在线观看| 婷婷开心久久网| 欧美激情一区在线观看| 日本不卡一二三区黄网| 欧美老女人在线| 亚洲第四色夜色| 777色狠狠一区二区三区| 亚洲成人av免费| 欧美精品久久一区二区三区| 亚洲电影在线免费观看| 在线播放中文字幕一区| 天天综合网 天天综合色| 欧美日韩国产高清一区| 蜜桃一区二区三区在线| 久久久久一区二区三区四区| 成人高清免费观看| 亚洲精品你懂的| 91精品麻豆日日躁夜夜躁| 视频在线观看91| 久久久久久久久99精品| 99视频在线观看一区三区| 一区二区在线观看免费视频播放| 欧美亚洲综合一区| 男人的j进女人的j一区| 国产亚洲综合色| 99久久综合色| 亚洲aaa精品| 久久青草欧美一区二区三区| 99在线热播精品免费| 亚洲成人免费电影| 精品国产乱码久久久久久免费| 国产精品中文字幕日韩精品 | 久久国产精品72免费观看| 久久久综合视频| 欧美专区亚洲专区| 久久99热这里只有精品| 国产精品成人免费| 91精品国产91久久久久久一区二区 | 欧美性极品少妇| 久草热8精品视频在线观看| 中文字幕第一区| 51精品国自产在线| heyzo一本久久综合| 日韩av一级电影| 亚洲色大成网站www久久九九| 欧美一级搡bbbb搡bbbb| 色综合激情五月| 国产成人av电影在线播放| 亚洲国产欧美在线人成| 国产精品人妖ts系列视频| 在线播放日韩导航| 色婷婷综合激情| 北条麻妃国产九九精品视频| 久久国产精品区| 亚洲一卡二卡三卡四卡| 国产精品麻豆视频| 久久久久久久久久美女| 欧美一区二区三区色| 91精品福利在线| 成人精品视频一区二区三区| 久草精品在线观看| 蜜臀久久99精品久久久画质超高清| 亚洲人吸女人奶水| 亚洲欧洲无码一区二区三区| 久久伊99综合婷婷久久伊| 91精品婷婷国产综合久久性色| 欧美性受xxxx黑人xyx性爽| 成人一区二区三区| 国产精品中文字幕日韩精品| 蜜桃av噜噜一区| 蜜芽一区二区三区| 石原莉奈在线亚洲二区| 天堂va蜜桃一区二区三区| 亚洲国产成人av网| 亚洲www啪成人一区二区麻豆| 亚洲免费观看高清完整| 中文字幕在线视频一区| 日韩毛片一二三区| 自拍偷在线精品自拍偷无码专区| 国产亚洲女人久久久久毛片| 国产午夜精品一区二区三区嫩草 | 久久成人麻豆午夜电影| 蜜桃视频一区二区三区| 久久69国产一区二区蜜臀| 蜜臀av性久久久久蜜臀av麻豆| 美女一区二区视频| 激情综合色丁香一区二区| 久久国产精品区| 风间由美一区二区av101| 成人黄色国产精品网站大全在线免费观看| 成人性生交大片免费看中文网站| 99久久精品国产一区| 91精品福利视频| 日韩一区二区高清| 国产午夜精品久久久久久免费视| 中文字幕av一区 二区| 日韩一区有码在线| 石原莉奈在线亚洲二区| 国产制服丝袜一区| 成人免费视频免费观看| 在线免费观看日本一区| 日韩欧美一卡二卡| 亚洲国产精品黑人久久久| 夜夜揉揉日日人人青青一国产精品| 亚洲国产一区视频| 国产麻豆一精品一av一免费| 一道本成人在线| 欧美一区二区久久久| 国产精品日韩成人| 午夜久久久久久久久| 国产福利不卡视频| 欧美性猛片xxxx免费看久爱| 精品国产亚洲一区二区三区在线观看| 欧美激情一区二区三区不卡| 亚洲成av人影院| 成人天堂资源www在线| 欧美高清视频www夜色资源网| 久久久久久亚洲综合影院红桃| 亚洲精品国产一区二区三区四区在线| 另类中文字幕网| 色哟哟精品一区| 久久精品人人爽人人爽| 视频一区欧美精品| a4yy欧美一区二区三区| 精品国产精品网麻豆系列| 亚洲最快最全在线视频| 丰满亚洲少妇av|