// Path: javaCode/dbdriver/MySqlDB.java
// public class MySqlDB
// {
// 	//String url, usr, passwd;
// 	Connection con=null;
// 	Statement st=null;
// 
// 	public MySqlDB(String url, String user, String passwd) {
// 		try {
// 			Class.forName("com.mysql.jdbc.Driver").newInstance();
// 		}
// 		catch (Exception E) {
// 			System.err.println("Unable to load driver.");
// 			E.printStackTrace();
// 			System.exit(1);
// 		}
// 		try {
// 			Connection con2 = DriverManager.getConnection(url, user, passwd);
// 			//System.out.println(url+" "+user+" "+passwd);
// 			con = con2;
// 		}
// 		catch (SQLException E) {
// 			System.out.println("SQLException: " + E.getMessage());
// 			System.out.println("SQLState:     " + E.getSQLState());
// 			System.out.println("VendorError:  " + E.getErrorCode());
// 			E.printStackTrace();
// 			con=null;
// 			System.exit(1);
// 		}
// 
// 
// 
// 	}
// 
// 	public ResultSet executeQuery(String query) throws java.lang.Exception {
// 		return con.createStatement().executeQuery(query);
// 	}
// 
// 	public DatabaseMetaData getMetaData() throws java.lang.Exception {
// 		return con.getMetaData();
// 	}
// 
// 	public int executeUpdate(String query) throws java.lang.Exception {
// 		return con.createStatement().executeUpdate(query);
// 	}
// 
// 	public PreparedStatement prepareStatement(String query)
// 		throws java.lang.Exception {
// 			return con.prepareStatement(query);
// 		}
// 
// 	public void close() throws Exception {
// 		if(con != null)
// 			con.close();
// 	}
// } 
// 
// Path: javaCode/utility/Config.java
// public class Config 
// {
// 	public String cfgFileName;
// 	public String dbName;
// 	public String host ;
// 	public String user ;
// 	public String passwd;
// 	public String port ;
// 	public String url ;
// 	public boolean useFile;
// 	public String fileName;
// 	public String dbServer;
// 	public String outputFile;
//     public String preprocessingColumn;
// 	public boolean debugMode;
// 	public int dbOption;
// 	
// 	public static String storeResultDirectory = "c:/Users/admin/dcp-workspace/log/";
//     public static String queryFileName = "c:/Users/admin/dcp-workspace/data/_fixedQueries_";
//     public static String expResultTablePrefix = "_ExpRes_"; 
// 	public static String queryClass = "dcp.clean";
//     
// 	public static boolean tokenizeUsingQgrams = true;
//     public int numHeaders;
//     
// 
// 	public String bm25WeightTable = "$Aux$_BM253_0_cu1_string_BMBaseWeights";
// 	public String tfidfWeightTable = "$Aux$_TfIdf3_0_cu1_string_Weights";
// 	// Class constructor 
// 	public Config() {
// 		outputFile = "geneRatios.txt";
// 		
// 		host = "localhost";
// 		user = "root";
// 		passwd = "";
// 		port = "3306";
// 		url = "";
// 		useFile = false;
// 	    fileName = "tmpFile";
// 	    dbServer = "mysql";
// 	    numHeaders = 7;
// 	    dbName = "midas";
// 	    preprocessingColumn = "name";
// 	    
// 	    //dbName = "probtest";
// 	    //preprocessingColumn = "title";
// 	}
// 	
// 	public String returnURL(){
// 		if(dbOption == 1)
// 			url = "jdbc:postgres://"+ host + ":"+ port +"/"+ dbName;
// 		else
// 			url = "jdbc:mysql://"+host+":"+port+"/"+dbName ;
// 		return url;
// 	}
// 	
// 	public void setDebugMode(boolean val){
// 		debugMode = val;
// 	}
// 
// 	public void setDbName(String name){
// 		dbName = name;
// 	}
// 	
// }


import dbdriver.MySqlDB;
import utility.Config;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.BitSet;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import java.util.Vector;
				}
				sumidf += Yidf.get(i);
				i = strSet.nextSetBit(i+1);
			}
			SumIdf.put(tid, sumidf);
			totalsize += strSet.cardinality();
		}
		
		
		for (int tid: strs.keySet()){
			X.set(tid);
			
			BitSet cMember = new BitSet();
			cMember.set(tid);
			C.put(tid, cMember);
			
			String str = strs.get(tid); 
			BitSet strSet = convertToBitSet2(RunProbabilityAssignment.getTF(str).keySet());
			HashMap<Integer,Double> py = new HashMap<Integer,Double>(); 
			int i = strSet.nextSetBit(0);
			while (i!=-1){
				
				Y.set(i);
				//py.put(i, 1.0/strSet.cardinality());
				py.put(i, Yidf.get(i)/SumIdf.get(tid));
				
				i = strSet.nextSetBit(i+1);
				
			}
			
// Path: javaCode/dbdriver/MySqlDB.java
// public class MySqlDB
// {
// 	//String url, usr, passwd;
// 	Connection con=null;
// 	Statement st=null;
// 
// 	public MySqlDB(String url, String user, String passwd) {
// 		try {
// 			Class.forName("com.mysql.jdbc.Driver").newInstance();
// 		}
// 		catch (Exception E) {
// 			System.err.println("Unable to load driver.");
// 			E.printStackTrace();
// 			System.exit(1);
// 		}
// 		try {
// 			Connection con2 = DriverManager.getConnection(url, user, passwd);
// 			//System.out.println(url+" "+user+" "+passwd);
// 			con = con2;
// 		}
// 		catch (SQLException E) {
// 			System.out.println("SQLException: " + E.getMessage());
// 			System.out.println("SQLState:     " + E.getSQLState());
// 			System.out.println("VendorError:  " + E.getErrorCode());
// 			E.printStackTrace();
// 			con=null;
// 			System.exit(1);
// 		}
// 
// 
// 
// 	}
// 
// 	public ResultSet executeQuery(String query) throws java.lang.Exception {
// 		return con.createStatement().executeQuery(query);
// 	}
// 
// 	public DatabaseMetaData getMetaData() throws java.lang.Exception {
// 		return con.getMetaData();
// 	}
// 
// 	public int executeUpdate(String query) throws java.lang.Exception {
// 		return con.createStatement().executeUpdate(query);
// 	}
// 
// 	public PreparedStatement prepareStatement(String query)
// 		throws java.lang.Exception {
// 			return con.prepareStatement(query);
// 		}
// 
// 	public void close() throws Exception {
// 		if(con != null)
// 			con.close();
// 	}
// } 
// 
// Path: javaCode/utility/Config.java
// public class Config 
// {
// 	public String cfgFileName;
// 	public String dbName;
// 	public String host ;
// 	public String user ;
// 	public String passwd;
// 	public String port ;
// 	public String url ;
// 	public boolean useFile;
// 	public String fileName;
// 	public String dbServer;
// 	public String outputFile;
//     public String preprocessingColumn;
// 	public boolean debugMode;
// 	public int dbOption;
// 	
// 	public static String storeResultDirectory = "c:/Users/admin/dcp-workspace/log/";
//     public static String queryFileName = "c:/Users/admin/dcp-workspace/data/_fixedQueries_";
//     public static String expResultTablePrefix = "_ExpRes_"; 
// 	public static String queryClass = "dcp.clean";
//     
// 	public static boolean tokenizeUsingQgrams = true;
//     public int numHeaders;
//     
// 
// 	public String bm25WeightTable = "$Aux$_BM253_0_cu1_string_BMBaseWeights";
// 	public String tfidfWeightTable = "$Aux$_TfIdf3_0_cu1_string_Weights";
// 	// Class constructor 
// 	public Config() {
// 		outputFile = "geneRatios.txt";
// 		
// 		host = "localhost";
// 		user = "root";
// 		passwd = "";
// 		port = "3306";
// 		url = "";
// 		useFile = false;
// 	    fileName = "tmpFile";
// 	    dbServer = "mysql";
// 	    numHeaders = 7;
// 	    dbName = "midas";
// 	    preprocessingColumn = "name";
// 	    
// 	    //dbName = "probtest";
// 	    //preprocessingColumn = "title";
// 	}
// 	
// 	public String returnURL(){
// 		if(dbOption == 1)
// 			url = "jdbc:postgres://"+ host + ":"+ port +"/"+ dbName;
// 		else
// 			url = "jdbc:mysql://"+host+":"+port+"/"+dbName ;
// 		return url;
// 	}
// 	
// 	public void setDebugMode(boolean val){
// 		debugMode = val;
// 	}
// 
// 	public void setDbName(String name){
// 		dbName = name;
// 	}
// 	
// }


// Path: javaCode/simfunctions/RunIBClusteringAp1.java
import dbdriver.MySqlDB;
import utility.Config;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.BitSet;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import java.util.Vector;

				}
				sumidf += Yidf.get(i);
				i = strSet.nextSetBit(i+1);
			}
			SumIdf.put(tid, sumidf);
			totalsize += strSet.cardinality();
		}
		
		
		for (int tid: strs.keySet()){
			X.set(tid);
			
			BitSet cMember = new BitSet();
			cMember.set(tid);
			C.put(tid, cMember);
			
			String str = strs.get(tid); 
			BitSet strSet = convertToBitSet2(RunProbabilityAssignment.getTF(str).keySet());
			HashMap<Integer,Double> py = new HashMap<Integer,Double>(); 
			int i = strSet.nextSetBit(0);
			while (i!=-1){
				
				Y.set(i);
				//py.put(i, 1.0/strSet.cardinality());
				py.put(i, Yidf.get(i)/SumIdf.get(tid));
				
				i = strSet.nextSetBit(i+1);
				
			}
			
			p_x.put(tid, 1.0/strs.size());