List of usage examples for java.lang Double MIN_VALUE
double MIN_VALUE
To view the source code for java.lang Double MIN_VALUE.
Click Source Link
From source file:com.google.wireless.speed.speedometer.measurements.PingTask.java
private MeasurementResult executePingCmdTask() throws MeasurementError { Log.i(SpeedometerApp.TAG, "Starting executePingCmdTask"); PingDesc pingTask = (PingDesc) this.measurementDesc; String errorMsg = ""; MeasurementResult measurementResult = null; // TODO(Wenjie): Add a exhaustive list of ping locations for different Android phones pingTask.pingExe = parent.getString(R.string.ping_executable); try {/*from w w w . j a v a 2 s.co m*/ String command = Util.constructCommand(pingTask.pingExe, "-i", Config.DEFAULT_INTERVAL_BETWEEN_ICMP_PACKET_SEC, "-s", pingTask.packetSizeByte, "-w", pingTask.pingTimeoutSec, "-c", Config.PING_COUNT_PER_MEASUREMENT, targetIp); Log.i(SpeedometerApp.TAG, "Running: " + command); pingProc = Runtime.getRuntime().exec(command); // Grab the output of the process that runs the ping command InputStream is = pingProc.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line = null; int lineCnt = 0; ArrayList<Double> rrts = new ArrayList<Double>(); ArrayList<Integer> receivedIcmpSeq = new ArrayList<Integer>(); double packetLoss = Double.MIN_VALUE; int packetsSent = Config.PING_COUNT_PER_MEASUREMENT; // Process each line of the ping output and store the rrt in array rrts. while ((line = br.readLine()) != null) { // Ping prints a number of 'param=value' pairs, among which we only need the // 'time=rrt_val' pair String[] extractedValues = Util.extractInfoFromPingOutput(line); if (extractedValues != null) { int curIcmpSeq = Integer.parseInt(extractedValues[0]); double rrtVal = Double.parseDouble(extractedValues[1]); // ICMP responses from the system ping command could be duplicate and out of order if (!receivedIcmpSeq.contains(curIcmpSeq)) { rrts.add(rrtVal); receivedIcmpSeq.add(curIcmpSeq); } } this.progress = 100 * ++lineCnt / Config.PING_COUNT_PER_MEASUREMENT; this.progress = Math.min(Config.MAX_PROGRESS_BAR_VALUE, progress); broadcastProgressForUser(progress); // Get the number of sent/received pings from the ping command output int[] packetLossInfo = Util.extractPacketLossInfoFromPingOutput(line); if (packetLossInfo != null) { packetsSent = packetLossInfo[0]; int packetsReceived = packetLossInfo[1]; packetLoss = 1 - ((double) packetsReceived / (double) packetsSent); } Log.i(SpeedometerApp.TAG, line); } // Use the output from the ping command to compute packet loss. If that's not // available, use an estimation. if (packetLoss == Double.MIN_VALUE) { packetLoss = 1 - ((double) rrts.size() / (double) Config.PING_COUNT_PER_MEASUREMENT); } measurementResult = constructResult(rrts, packetLoss, packetsSent); Log.i(SpeedometerApp.TAG, MeasurementJsonConvertor.toJsonString(measurementResult)); } catch (IOException e) { Log.e(SpeedometerApp.TAG, e.getMessage()); errorMsg += e.getMessage() + "\n"; } catch (SecurityException e) { Log.e(SpeedometerApp.TAG, e.getMessage()); errorMsg += e.getMessage() + "\n"; } catch (NumberFormatException e) { Log.e(SpeedometerApp.TAG, e.getMessage()); errorMsg += e.getMessage() + "\n"; } catch (InvalidParameterException e) { Log.e(SpeedometerApp.TAG, e.getMessage()); errorMsg += e.getMessage() + "\n"; } finally { // All associated streams with the process will be closed upon destroy() cleanUp(pingProc); } if (measurementResult == null) { Log.e(SpeedometerApp.TAG, "Error running ping: " + errorMsg); throw new MeasurementError(errorMsg); } return measurementResult; }
From source file:org.mcisb.util.math.MathUtils.java
/** * Get maximum value in array of doubles. * //from ww w. j a va 2s.c o m * @param d * @return double */ public static double max(double[] d) { double max = Double.MIN_VALUE; for (int i = 0; i < d.length; i++) { max = Math.max(max, d[i]); } return max; }
From source file:org.opentox.jaqpot3.qsar.util.WekaInstancesProcess.java
public static Map<String, Object> transformDataset(Instances inst, PMML pmmlObject) throws JaqpotException { Map<String, Object> resMap = new HashMap<String, Object>(); List<String> attributeNames = new ArrayList<String>(); try {/* ww w .j av a 2 s .c o m*/ if (pmmlObject != null && inst != null) { PMMLManager pmmlManager = new PMMLManager(pmmlObject); PMMLEvaluationContext context = new PMMLEvaluationContext(pmmlManager); DataDictionary dataDictionary = pmmlManager.getDataDictionary(); List<DataField> dataFields = dataDictionary.getDataFields(); //Get the Derived fields (math formulas) of the PMML file TransformationDictionary trDir = pmmlManager.getTransformationDictionary(); if (trDir != null) { List<DerivedField> dfVar = trDir.getDerivedFields(); if (!dfVar.isEmpty()) { int numAttributes = inst.numAttributes(); int numInstances = inst.numInstances(); int targetAttributeIndex = numAttributes; //foreach transformation for (int i = 0; i < dfVar.size(); ++i) { //add a new attribute String attrName = (StringUtils.isNotEmpty(dfVar.get(i).getName().getValue())) ? dfVar.get(i).getName().getValue() : "New Attribute" + i; attributeNames.add(attrName); inst = WekaInstancesProcess.addNewAttribute(inst, attrName); Double res; // foreach transformation's instances for (int j = 0; j < numInstances; j++) { context = new PMMLEvaluationContext(pmmlManager); context = getInstanceAttributeFieldRefValues(inst.instance(j), numAttributes, context, dataFields); FieldValue val = ExpressionUtil.evaluate(dfVar.get(i), context); res = (Double) val.getValue(); res = (!Double.isNaN(res)) ? res : Double.MIN_VALUE; inst.instance(j).setValue(targetAttributeIndex, res); } ++targetAttributeIndex; } } } } } catch (Exception ex) { String message = "Exception while trying to transform Instances"; throw new JaqpotException(message, ex); } resMap.put("instances", inst); resMap.put("exAttributeNamesDoA", attributeNames); return resMap; }
From source file:IK.G.java
public static DVector intersectTest(DVector R, DVector ta, DVector tb, DVector tc, double[] uvw) { DVector I = new DVector(); DVector u = new DVector(tb.x, tb.y, tb.z); DVector v = new DVector(tc.x, tc.y, tc.z); DVector n;/*w ww . j av a 2 s . c om*/ DVector dir = new DVector(R.x, R.y, R.z); DVector w0 = new DVector(); double r, a, b; DVector.sub(u, ta, u); DVector.sub(v, ta, v); n = new DVector(); // cross product DVector.cross(u, v, n); if (n.mag() == 0) { return null; } w0 = new DVector(0, 0, 0); DVector.sub(w0, ta, w0); a = -(new DVector(n.x, n.y, n.z).dot(w0)); b = new DVector(n.x, n.y, n.z).dot(dir); if ((double) Math.abs(b) < Double.MIN_VALUE) { return null; } r = a / b; I = new DVector(0, 0, 0); I.x += r * dir.x; I.y += r * dir.y; I.z += r * dir.z; double[] barycentric = new double[3]; barycentric(ta, tb, tc, I, barycentric); uvw[0] = barycentric[0]; uvw[1] = barycentric[1]; uvw[2] = barycentric[2]; return I; }
From source file:org.apache.parquet.filter2.dictionarylevel.DictionaryFilterTest.java
@Test public void testGtEqDouble() throws Exception { DoubleColumn d = doubleColumn("double_field"); double highest = Double.MIN_VALUE; for (int value : intValues) { highest = Math.max(highest, toDouble(value)); }/*w w w . j a va 2 s .c o m*/ assertTrue("Should drop: >= highest + 0.00000001", canDrop(gtEq(d, highest + 0.00000001), ccmd, dictionaries)); assertFalse("Should not drop: >= highest", canDrop(gtEq(d, highest), ccmd, dictionaries)); assertFalse("Should not drop: contains matching values", canDrop(gtEq(d, Double.MIN_VALUE), ccmd, dictionaries)); }
From source file:keel.Algorithms.Decision_Trees.C45.C45.java
/** Updates all the statistics for the current itemset. * * @param predictedClassification Distribution of class values predicted for the itemset. * @param itemset The itemset. * @param nClasses The number of classes. * *///from w ww . j a v a 2 s . com private void updateStats(double[] predictedClassification, Itemset itemset, int nClasses) { int actualClass = (int) itemset.getClassValue(); if (!itemset.classIsMissing()) { updateMargins(predictedClassification, actualClass, nClasses); // Determine the predicted class (doesn't detect multiple classifications) int predictedClass = -1; double bestProb = 0.0; for (int i = 0; i < nClasses; i++) { if (predictedClassification[i] > bestProb) { predictedClass = i; bestProb = predictedClassification[i]; } } // Update counts when no class was predicted if (predictedClass < 0) { return; } double predictedProb = Math.max(Double.MIN_VALUE, predictedClassification[actualClass]); double priorProb = Math.max(Double.MIN_VALUE, priorsProbabilities[actualClass] / classPriorsSum); } }
From source file:org.apache.hadoop.hive.ql.abm.simulation.MCSimNode.java
private double[] correct(double[][] A) { double max = Double.MIN_VALUE; double min = Double.MAX_VALUE; for (int i = 0; i < A.length; ++i) { double v = A[i][i]; if (v > max) { max = v;/*from ww w. j a v a2 s .com*/ } if (v < min) { min = v; } } if (max > min * 1000000) { double[] ret = new double[A.length]; for (int i = 0; i < A.length; ++i) { ret[i] = Math.sqrt(max / A[i][i]); } scale(A, ret); return ret; } return null; }
From source file:qtiscoringengine.QTIRubric.java
public String getCorrectValue(String identifier) { if (identifier == null) return null; ResponseDeclaration rd = getResponseDeclaration(identifier); if (rd == null) return null; DataElement de = rd.getCorrectValue(); if (de == null) return null; if (de.getIsContainer()) { DEContainer dc = (DEContainer) de; if (dc.getMemberCount() > 0) { if (rd.getCardinality() == Cardinality.Ordered) { return dc.getStringValue(); }/*from ww w. j a v a 2s . com*/ double maxScore = Double.MIN_VALUE; DataElement elem = null; double sum = 0; for (int i = 0; i < dc.getMemberCount(); i++) { // if (i == 0) elem = dc.Member(i); // this is so we always get a // value. Setting default value to the first one Double d = rd.getScore(dc.getMember(i)); if (d != null) { if (d > maxScore) { maxScore = (double) d; elem = dc.getMember(i); } sum += (double) d; } } if (sum > maxScore) return dc.getStringValue(); return elem == null ? null : elem.getStringValue(); } else return null; } return de.getStringValue(); }
From source file:com.googlecode.libautocaptcha.tools.VodafoneItalyTool.java
private void initFrame() { frame = new JFrame(); frame.setTitle("libautocaptcha vodafone.it tool"); frame.setBounds(100, 100, 450, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); tabbedPane = new JTabbedPane(JTabbedPane.TOP); frame.getContentPane().add(tabbedPane, BorderLayout.CENTER); JPanel setupPanel = new JPanel(); FlowLayout flowLayout = (FlowLayout) setupPanel.getLayout(); flowLayout.setAlignment(FlowLayout.LEFT); tabbedPane.addTab("Setup", null, setupPanel, null); JPanel setupFormPanel = new JPanel(); setupPanel.add(setupFormPanel);/*from w ww .ja v a 2 s . c om*/ GridBagLayout gbl_setupFormPanel = new GridBagLayout(); gbl_setupFormPanel.columnWidths = new int[] { 150, 250 }; gbl_setupFormPanel.rowHeights = new int[] { 0, 0, 0 }; gbl_setupFormPanel.columnWeights = new double[] { 0.0, 1.0 }; gbl_setupFormPanel.rowWeights = new double[] { 0.0, 0.0, 0.0 }; setupFormPanel.setLayout(gbl_setupFormPanel); JLabel usernameLabel = new JLabel("Username"); GridBagConstraints gbc_usernameLabel = new GridBagConstraints(); gbc_usernameLabel.anchor = GridBagConstraints.WEST; gbc_usernameLabel.fill = GridBagConstraints.VERTICAL; gbc_usernameLabel.insets = new Insets(0, 0, 5, 5); gbc_usernameLabel.gridx = 0; gbc_usernameLabel.gridy = 0; setupFormPanel.add(usernameLabel, gbc_usernameLabel); usernameField = new JTextField(); GridBagConstraints gbc_usernameField = new GridBagConstraints(); gbc_usernameField.fill = GridBagConstraints.BOTH; gbc_usernameField.insets = new Insets(0, 0, 5, 0); gbc_usernameField.gridx = 1; gbc_usernameField.gridy = 0; setupFormPanel.add(usernameField, gbc_usernameField); usernameField.setColumns(10); JLabel passwordLabel = new JLabel("Password"); GridBagConstraints gbc_passwordLabel = new GridBagConstraints(); gbc_passwordLabel.anchor = GridBagConstraints.WEST; gbc_passwordLabel.fill = GridBagConstraints.VERTICAL; gbc_passwordLabel.insets = new Insets(0, 0, 5, 5); gbc_passwordLabel.gridx = 0; gbc_passwordLabel.gridy = 1; setupFormPanel.add(passwordLabel, gbc_passwordLabel); passwordField = new JPasswordField(); GridBagConstraints gbc_passwordField = new GridBagConstraints(); gbc_passwordField.fill = GridBagConstraints.BOTH; gbc_passwordField.insets = new Insets(0, 0, 5, 0); gbc_passwordField.gridx = 1; gbc_passwordField.gridy = 1; setupFormPanel.add(passwordField, gbc_passwordField); passwordField.setColumns(10); JLabel receiverLabel = new JLabel("Mobile number"); GridBagConstraints gbc_receiverLabel = new GridBagConstraints(); gbc_receiverLabel.fill = GridBagConstraints.VERTICAL; gbc_receiverLabel.anchor = GridBagConstraints.WEST; gbc_receiverLabel.insets = new Insets(0, 0, 5, 5); gbc_receiverLabel.gridx = 0; gbc_receiverLabel.gridy = 2; setupFormPanel.add(receiverLabel, gbc_receiverLabel); receiverField = new JTextField(); GridBagConstraints gbc_receiverField = new GridBagConstraints(); gbc_receiverField.insets = new Insets(0, 0, 5, 0); gbc_receiverField.fill = GridBagConstraints.BOTH; gbc_receiverField.gridx = 1; gbc_receiverField.gridy = 2; setupFormPanel.add(receiverField, gbc_receiverField); receiverField.setColumns(10); JPanel backgroundPanel = new JPanel(); FlowLayout flowLayout_1 = (FlowLayout) backgroundPanel.getLayout(); flowLayout_1.setAlignment(FlowLayout.LEFT); tabbedPane.addTab("Background", null, backgroundPanel, null); JPanel backgroundFormPanel = new JPanel(); backgroundPanel.add(backgroundFormPanel); GridBagLayout gbl_backgroundFormPanel = new GridBagLayout(); gbl_backgroundFormPanel.columnWidths = new int[] { 150, 50, 100, 0 }; gbl_backgroundFormPanel.rowHeights = new int[] { 0, 25, 0 }; gbl_backgroundFormPanel.columnWeights = new double[] { 0.0, 0.0, 0.0, Double.MIN_VALUE }; gbl_backgroundFormPanel.rowWeights = new double[] { 0.0, 0.0, Double.MIN_VALUE }; backgroundFormPanel.setLayout(gbl_backgroundFormPanel); JLabel numberLabel = new JLabel("Number of CAPTCHAs"); GridBagConstraints gbc_numberLabel = new GridBagConstraints(); gbc_numberLabel.anchor = GridBagConstraints.WEST; gbc_numberLabel.insets = new Insets(0, 0, 5, 5); gbc_numberLabel.gridx = 0; gbc_numberLabel.gridy = 0; backgroundFormPanel.add(numberLabel, gbc_numberLabel); numberField = new JTextField(); numberField.setText("5"); GridBagConstraints gbc_numberField = new GridBagConstraints(); gbc_numberField.anchor = GridBagConstraints.WEST; gbc_numberField.insets = new Insets(0, 0, 5, 5); gbc_numberField.gridx = 1; gbc_numberField.gridy = 0; backgroundFormPanel.add(numberField, gbc_numberField); numberField.setColumns(3); JButton numberButton = new JButton("Download"); numberButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int counter = 0; do { BufferedImage captcha = downloadCAPTCHA(); if (captcha != null) { try { int number = new File(tempFolder.getAbsolutePath()).listFiles().length; File file = new File(tempFolder.getAbsolutePath() + "/background_" + number + ".png"); ImageIO.write(captcha, "png", file); Thread.sleep(2500); } catch (Exception x) { x.printStackTrace(); } } } while (++counter < Integer.valueOf(numberField.getText())); Image background = loadBackground(); if (background != null) { backgroundImage.setIcon(new ImageIcon(background)); } } }); GridBagConstraints gbc_numberButton = new GridBagConstraints(); gbc_numberButton.anchor = GridBagConstraints.NORTHWEST; gbc_numberButton.insets = new Insets(0, 0, 5, 0); gbc_numberButton.gridx = 2; gbc_numberButton.gridy = 0; backgroundFormPanel.add(numberButton, gbc_numberButton); JLabel backgroundLabel = new JLabel("Current background"); GridBagConstraints gbc_backgroundLabel = new GridBagConstraints(); gbc_backgroundLabel.anchor = GridBagConstraints.WEST; gbc_backgroundLabel.insets = new Insets(0, 0, 0, 5); gbc_backgroundLabel.gridx = 0; gbc_backgroundLabel.gridy = 1; backgroundFormPanel.add(backgroundLabel, gbc_backgroundLabel); backgroundImage = new JLabel(""); GridBagConstraints gbc_backgroundImage = new GridBagConstraints(); gbc_backgroundImage.anchor = GridBagConstraints.WEST; gbc_backgroundImage.gridwidth = 2; gbc_backgroundImage.insets = new Insets(0, 0, 0, 5); gbc_backgroundImage.gridx = 1; gbc_backgroundImage.gridy = 1; backgroundFormPanel.add(backgroundImage, gbc_backgroundImage); JPanel trainingPanel = new JPanel(); tabbedPane.addTab("Training", null, trainingPanel, null); GridBagLayout gbl_trainingPanel = new GridBagLayout(); gbl_trainingPanel.columnWidths = new int[] { 437, 0 }; gbl_trainingPanel.rowHeights = new int[] { 0, 0, 0 }; gbl_trainingPanel.columnWeights = new double[] { 0.0, Double.MIN_VALUE }; gbl_trainingPanel.rowWeights = new double[] { 0.0, 0.0, Double.MIN_VALUE }; trainingPanel.setLayout(gbl_trainingPanel); trainingLoadPanel = new JPanel(); GridBagConstraints gbc_trainingLoadPanel = new GridBagConstraints(); gbc_trainingLoadPanel.anchor = GridBagConstraints.NORTHWEST; gbc_trainingLoadPanel.insets = new Insets(0, 0, 5, 0); gbc_trainingLoadPanel.gridx = 0; gbc_trainingLoadPanel.gridy = 0; trainingPanel.add(trainingLoadPanel, gbc_trainingLoadPanel); trainingLoadPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5)); JButton trainingLoadButton = new JButton("Download"); trainingLoadButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { trainingCaptcha = downloadCAPTCHA(); if (trainingCaptcha != null) { trainingCaptchaImage.setIcon(new ImageIcon(trainingCaptcha)); List<Image> glyphs = loadGlyphs(trainingCaptcha); for (int g = 0; g < 5; ++g) { trainingGlyphImage[g].setIcon(null); trainingGlyphField[g].setText(""); } for (int g = 0; g < glyphs.size() && g < 5; ++g) { trainingGlyph[g] = glyphs.get(g); trainingGlyphImage[g].setIcon(new ImageIcon(trainingGlyph[g])); } trainingLoadPanel.invalidate(); trainingSavePanel.invalidate(); } } }); trainingLoadPanel.add(trainingLoadButton); trainingCaptchaImage = new JLabel(""); trainingLoadPanel.add(trainingCaptchaImage); trainingSavePanel = new JPanel(); GridBagConstraints gbc_trainingSavePanel = new GridBagConstraints(); gbc_trainingSavePanel.insets = new Insets(0, 5, 0, 0); gbc_trainingSavePanel.anchor = GridBagConstraints.NORTHWEST; gbc_trainingSavePanel.gridx = 0; gbc_trainingSavePanel.gridy = 1; trainingPanel.add(trainingSavePanel, gbc_trainingSavePanel); GridBagLayout gbl_trainingSavePanel = new GridBagLayout(); gbl_trainingSavePanel.columnWidths = new int[] { 25, 25, 25, 25, 25, 0, 0 }; gbl_trainingSavePanel.rowHeights = new int[] { 25, 0, 0 }; gbl_trainingSavePanel.columnWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE }; gbl_trainingSavePanel.rowWeights = new double[] { 0.0, 0.0, Double.MIN_VALUE }; trainingSavePanel.setLayout(gbl_trainingSavePanel); trainingGlyph = new Image[5]; trainingGlyphImage = new JLabel[5]; trainingGlyphField = new JTextField[5]; trainingGlyphImage[0] = new JLabel(""); GridBagConstraints gbc_glyphImage0 = new GridBagConstraints(); gbc_glyphImage0.anchor = GridBagConstraints.NORTHWEST; gbc_glyphImage0.insets = new Insets(0, 0, 5, 5); gbc_glyphImage0.gridx = 0; gbc_glyphImage0.gridy = 0; trainingGlyphImage[0].setBorder(BorderFactory.createLineBorder(Color.GRAY, 2)); trainingSavePanel.add(trainingGlyphImage[0], gbc_glyphImage0); trainingGlyphImage[1] = new JLabel(""); GridBagConstraints gbc_glyphImage1 = new GridBagConstraints(); gbc_glyphImage1.anchor = GridBagConstraints.NORTHWEST; gbc_glyphImage1.insets = new Insets(0, 0, 5, 5); gbc_glyphImage1.gridx = 1; gbc_glyphImage1.gridy = 0; trainingGlyphImage[1].setBorder(BorderFactory.createLineBorder(Color.GRAY, 2)); trainingSavePanel.add(trainingGlyphImage[1], gbc_glyphImage1); trainingGlyphImage[2] = new JLabel(""); GridBagConstraints gbc_glyphImage2 = new GridBagConstraints(); gbc_glyphImage2.anchor = GridBagConstraints.NORTHWEST; gbc_glyphImage2.insets = new Insets(0, 0, 5, 5); gbc_glyphImage2.gridx = 2; gbc_glyphImage2.gridy = 0; trainingGlyphImage[2].setBorder(BorderFactory.createLineBorder(Color.GRAY, 2)); trainingSavePanel.add(trainingGlyphImage[2], gbc_glyphImage2); trainingGlyphImage[3] = new JLabel(""); GridBagConstraints gbc_glyphImage3 = new GridBagConstraints(); gbc_glyphImage3.anchor = GridBagConstraints.NORTHWEST; gbc_glyphImage3.insets = new Insets(0, 0, 5, 5); gbc_glyphImage3.gridx = 3; gbc_glyphImage3.gridy = 0; trainingGlyphImage[3].setBorder(BorderFactory.createLineBorder(Color.GRAY, 2)); trainingSavePanel.add(trainingGlyphImage[3], gbc_glyphImage3); trainingGlyphImage[4] = new JLabel(""); GridBagConstraints gbc_glyphImage4 = new GridBagConstraints(); gbc_glyphImage4.insets = new Insets(0, 0, 5, 5); gbc_glyphImage4.anchor = GridBagConstraints.NORTHWEST; gbc_glyphImage4.gridx = 4; gbc_glyphImage4.gridy = 0; trainingGlyphImage[4].setBorder(BorderFactory.createLineBorder(Color.GRAY, 2)); trainingSavePanel.add(trainingGlyphImage[4], gbc_glyphImage4); JButton trainingSaveButton = new JButton("Train"); trainingSaveButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { for (int g = 0; g < 5; ++g) { String s = trainingGlyphField[g].getText(); if (s.length() == 1) { char c = Character.toUpperCase(s.charAt(0)); net.sourceforge.javaocr.Image glyph = convertImage(trainingGlyph[g]); grayFilter.process(glyph); ThresholdFilter thresholdFilter = new ThresholdFilter(0, FG, BG); thresholdFilter.process(glyph); train(glyph, c); } trainingGlyphField[g].setText(""); } for (Map.Entry<Character, Cluster> m : clusters.entrySet()) { System.out.println("****************************************"); System.out.print(" character: "); // int samples = ((EuclidianDistanceCluster) m.getValue()).getAmountSamples(); int samples = ((SigmaWeightedEuclidianDistanceCluster) m.getValue()).getAmountSamples(); for (int s = 0; s < samples; ++s) System.out.print(m.getKey()); System.out.println(); double[] c = m.getValue().center(); for (int i = 0; i < c.length; ++i) System.out.println(" centroid[" + i + "]: " + c[i]); } System.out.println("****************************************"); System.out.println("TOTAL CLUSTERS: " + clusters.size()); } }); GridBagConstraints gbc_trainingSaveButton = new GridBagConstraints(); gbc_trainingSaveButton.gridheight = 2; gbc_trainingSaveButton.insets = new Insets(0, 0, 5, 0); gbc_trainingSaveButton.gridx = 5; gbc_trainingSaveButton.gridy = 0; trainingSavePanel.add(trainingSaveButton, gbc_trainingSaveButton); trainingGlyphField[0] = new JTextField(); GridBagConstraints gbc_glyphField0 = new GridBagConstraints(); gbc_glyphField0.fill = GridBagConstraints.HORIZONTAL; gbc_glyphField0.anchor = GridBagConstraints.NORTHWEST; gbc_glyphField0.insets = new Insets(0, 0, 0, 5); gbc_glyphField0.gridx = 0; gbc_glyphField0.gridy = 1; trainingSavePanel.add(trainingGlyphField[0], gbc_glyphField0); trainingGlyphField[0].setColumns(2); trainingGlyphField[1] = new JTextField(); GridBagConstraints gbc_glyphField1 = new GridBagConstraints(); gbc_glyphField1.fill = GridBagConstraints.HORIZONTAL; gbc_glyphField1.anchor = GridBagConstraints.NORTHWEST; gbc_glyphField1.insets = new Insets(0, 0, 0, 5); gbc_glyphField1.gridx = 1; gbc_glyphField1.gridy = 1; trainingSavePanel.add(trainingGlyphField[1], gbc_glyphField1); trainingGlyphField[1].setColumns(2); trainingGlyphField[2] = new JTextField(); GridBagConstraints gbc_glyphField2 = new GridBagConstraints(); gbc_glyphField2.fill = GridBagConstraints.HORIZONTAL; gbc_glyphField2.anchor = GridBagConstraints.NORTHWEST; gbc_glyphField2.insets = new Insets(0, 0, 0, 5); gbc_glyphField2.gridx = 2; gbc_glyphField2.gridy = 1; trainingSavePanel.add(trainingGlyphField[2], gbc_glyphField2); trainingGlyphField[2].setColumns(2); trainingGlyphField[3] = new JTextField(); GridBagConstraints gbc_glyphField3 = new GridBagConstraints(); gbc_glyphField3.fill = GridBagConstraints.HORIZONTAL; gbc_glyphField3.anchor = GridBagConstraints.NORTHWEST; gbc_glyphField3.insets = new Insets(0, 0, 0, 5); gbc_glyphField3.gridx = 3; gbc_glyphField3.gridy = 1; trainingSavePanel.add(trainingGlyphField[3], gbc_glyphField3); trainingGlyphField[3].setColumns(2); trainingGlyphField[4] = new JTextField(); GridBagConstraints gbc_glyphField4 = new GridBagConstraints(); gbc_glyphField4.insets = new Insets(0, 0, 0, 5); gbc_glyphField4.fill = GridBagConstraints.HORIZONTAL; gbc_glyphField4.anchor = GridBagConstraints.NORTHWEST; gbc_glyphField4.gridx = 4; gbc_glyphField4.gridy = 1; trainingSavePanel.add(trainingGlyphField[4], gbc_glyphField4); trainingGlyphField[4].setColumns(2); JPanel testingPanel = new JPanel(); tabbedPane.addTab("Testing", null, testingPanel, null); GridBagLayout gbl_testingPanel = new GridBagLayout(); gbl_testingPanel.columnWidths = new int[] { 437, 0 }; gbl_testingPanel.rowHeights = new int[] { 0, 0, 0, 0 }; gbl_testingPanel.columnWeights = new double[] { 1.0, Double.MIN_VALUE }; gbl_testingPanel.rowWeights = new double[] { 0.0, 0.0, 1.0, Double.MIN_VALUE }; testingPanel.setLayout(gbl_testingPanel); testingLoadPanel = new JPanel(); GridBagConstraints gbc_testingLoadPanel = new GridBagConstraints(); gbc_testingLoadPanel.anchor = GridBagConstraints.NORTHWEST; gbc_testingLoadPanel.insets = new Insets(0, 0, 5, 0); gbc_testingLoadPanel.gridx = 0; gbc_testingLoadPanel.gridy = 0; testingPanel.add(testingLoadPanel, gbc_testingLoadPanel); testingLoadPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5)); JButton testingLoadButton = new JButton("Download"); testingLoadButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { testingCaptcha = downloadCAPTCHA(); if (testingCaptcha != null) { testingCaptchaImage.setIcon(new ImageIcon(testingCaptcha)); List<Image> glyphs = loadGlyphs(testingCaptcha); for (int g = 0; g < 5; ++g) { testingGlyphImage[g].setIcon(null); testingGlyphField[g].setText(""); } for (int g = 0; g < glyphs.size() && g < 5; ++g) { testingGlyph[g] = glyphs.get(g); testingGlyphImage[g].setIcon(new ImageIcon(testingGlyph[g])); } testingLoadPanel.invalidate(); testingSavePanel.invalidate(); } } }); testingLoadPanel.add(testingLoadButton); testingCaptchaImage = new JLabel(""); testingLoadPanel.add(testingCaptchaImage); testingSavePanel = new JPanel(); GridBagConstraints gbc_testingSavePanel = new GridBagConstraints(); gbc_testingSavePanel.insets = new Insets(0, 5, 5, 0); gbc_testingSavePanel.anchor = GridBagConstraints.NORTHWEST; gbc_testingSavePanel.gridx = 0; gbc_testingSavePanel.gridy = 1; testingPanel.add(testingSavePanel, gbc_testingSavePanel); GridBagLayout gbl_testingSavePanel = new GridBagLayout(); gbl_testingSavePanel.columnWidths = new int[] { 25, 25, 25, 25, 25, 0, 0 }; gbl_testingSavePanel.rowHeights = new int[] { 25, 0, 0 }; gbl_testingSavePanel.columnWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE }; gbl_testingSavePanel.rowWeights = new double[] { 0.0, 0.0, Double.MIN_VALUE }; testingSavePanel.setLayout(gbl_testingSavePanel); testingGlyph = new Image[5]; testingGlyphImage = new JLabel[5]; testingGlyphField = new JTextField[5]; testingGlyphImage[0] = new JLabel(""); GridBagConstraints gbc_testingGlyphImage0 = new GridBagConstraints(); gbc_testingGlyphImage0.anchor = GridBagConstraints.NORTHWEST; gbc_testingGlyphImage0.insets = new Insets(0, 0, 5, 5); gbc_testingGlyphImage0.gridx = 0; gbc_testingGlyphImage0.gridy = 0; testingGlyphImage[0].setBorder(BorderFactory.createLineBorder(Color.GRAY, 2)); testingSavePanel.add(testingGlyphImage[0], gbc_testingGlyphImage0); testingGlyphImage[1] = new JLabel(""); GridBagConstraints gbc_testingGlyphImage1 = new GridBagConstraints(); gbc_testingGlyphImage1.anchor = GridBagConstraints.NORTHWEST; gbc_testingGlyphImage1.insets = new Insets(0, 0, 5, 5); gbc_testingGlyphImage1.gridx = 1; gbc_testingGlyphImage1.gridy = 0; testingGlyphImage[1].setBorder(BorderFactory.createLineBorder(Color.GRAY, 2)); testingSavePanel.add(testingGlyphImage[1], gbc_testingGlyphImage1); testingGlyphImage[2] = new JLabel(""); GridBagConstraints gbc_testingGlyphImage2 = new GridBagConstraints(); gbc_testingGlyphImage2.anchor = GridBagConstraints.NORTHWEST; gbc_testingGlyphImage2.insets = new Insets(0, 0, 5, 5); gbc_testingGlyphImage2.gridx = 2; gbc_testingGlyphImage2.gridy = 0; testingGlyphImage[2].setBorder(BorderFactory.createLineBorder(Color.GRAY, 2)); testingSavePanel.add(testingGlyphImage[2], gbc_testingGlyphImage2); testingGlyphImage[3] = new JLabel(""); GridBagConstraints gbc_testingGlyphImage3 = new GridBagConstraints(); gbc_testingGlyphImage3.anchor = GridBagConstraints.NORTHWEST; gbc_testingGlyphImage3.insets = new Insets(0, 0, 5, 5); gbc_testingGlyphImage3.gridx = 3; gbc_testingGlyphImage3.gridy = 0; testingGlyphImage[3].setBorder(BorderFactory.createLineBorder(Color.GRAY, 2)); testingSavePanel.add(testingGlyphImage[3], gbc_testingGlyphImage3); testingGlyphImage[4] = new JLabel(""); GridBagConstraints gbc_testingGlyphImage4 = new GridBagConstraints(); gbc_testingGlyphImage4.insets = new Insets(0, 0, 5, 5); gbc_testingGlyphImage4.anchor = GridBagConstraints.NORTHWEST; gbc_testingGlyphImage4.gridx = 4; gbc_testingGlyphImage4.gridy = 0; testingGlyphImage[4].setBorder(BorderFactory.createLineBorder(Color.GRAY, 2)); testingSavePanel.add(testingGlyphImage[4], gbc_testingGlyphImage4); JButton testingSaveButton = new JButton("Save and test"); testingSaveButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String text = ""; for (int g = 0; g < 5; ++g) { String s = testingGlyphField[g].getText(); if (s.length() == 1) text += s.toUpperCase(); trainingGlyphField[g].setText(""); } if (text.length() != 5) return; try { File file = new File(tempFolder.getAbsolutePath() + "/captcha_" + text + ".png"); ImageIO.write(testingCaptcha, "png", file); } catch (IOException x) { x.printStackTrace(); } testingViewArea.setText(loadStatistics()); } }); GridBagConstraints gbc_testingSaveButton = new GridBagConstraints(); gbc_testingSaveButton.gridheight = 2; gbc_testingSaveButton.insets = new Insets(0, 0, 5, 0); gbc_testingSaveButton.gridx = 5; gbc_testingSaveButton.gridy = 0; testingSavePanel.add(testingSaveButton, gbc_testingSaveButton); testingGlyphField[0] = new JTextField(); GridBagConstraints gbc_testingGlyphField0 = new GridBagConstraints(); gbc_testingGlyphField0.fill = GridBagConstraints.HORIZONTAL; gbc_testingGlyphField0.anchor = GridBagConstraints.NORTHWEST; gbc_testingGlyphField0.insets = new Insets(0, 0, 0, 5); gbc_testingGlyphField0.gridx = 0; gbc_testingGlyphField0.gridy = 1; testingSavePanel.add(testingGlyphField[0], gbc_testingGlyphField0); testingGlyphField[0].setColumns(2); testingGlyphField[1] = new JTextField(); GridBagConstraints gbc_testingGlyphField1 = new GridBagConstraints(); gbc_testingGlyphField1.fill = GridBagConstraints.HORIZONTAL; gbc_testingGlyphField1.anchor = GridBagConstraints.NORTHWEST; gbc_testingGlyphField1.insets = new Insets(0, 0, 0, 5); gbc_testingGlyphField1.gridx = 1; gbc_testingGlyphField1.gridy = 1; testingSavePanel.add(testingGlyphField[1], gbc_testingGlyphField1); testingGlyphField[1].setColumns(2); testingGlyphField[2] = new JTextField(); GridBagConstraints gbc_testingGlyphField2 = new GridBagConstraints(); gbc_testingGlyphField2.fill = GridBagConstraints.HORIZONTAL; gbc_testingGlyphField2.anchor = GridBagConstraints.NORTHWEST; gbc_testingGlyphField2.insets = new Insets(0, 0, 0, 5); gbc_testingGlyphField2.gridx = 2; gbc_testingGlyphField2.gridy = 1; testingSavePanel.add(testingGlyphField[2], gbc_testingGlyphField2); testingGlyphField[2].setColumns(2); testingGlyphField[3] = new JTextField(); GridBagConstraints gbc_testingGlyphField3 = new GridBagConstraints(); gbc_testingGlyphField3.fill = GridBagConstraints.HORIZONTAL; gbc_testingGlyphField3.anchor = GridBagConstraints.NORTHWEST; gbc_testingGlyphField3.insets = new Insets(0, 0, 0, 5); gbc_testingGlyphField3.gridx = 3; gbc_testingGlyphField3.gridy = 1; testingSavePanel.add(testingGlyphField[3], gbc_testingGlyphField3); testingGlyphField[3].setColumns(2); testingGlyphField[4] = new JTextField(); GridBagConstraints gbc_testingGlyphField4 = new GridBagConstraints(); gbc_testingGlyphField4.insets = new Insets(0, 0, 0, 5); gbc_testingGlyphField4.fill = GridBagConstraints.HORIZONTAL; gbc_testingGlyphField4.anchor = GridBagConstraints.NORTHWEST; gbc_testingGlyphField4.gridx = 4; gbc_testingGlyphField4.gridy = 1; testingSavePanel.add(testingGlyphField[4], gbc_testingGlyphField4); JPanel testingViewPanel = new JPanel(); GridBagConstraints gbc_testingViewPanel = new GridBagConstraints(); gbc_testingViewPanel.fill = GridBagConstraints.HORIZONTAL; gbc_testingViewPanel.anchor = GridBagConstraints.NORTHWEST; gbc_testingViewPanel.gridx = 0; gbc_testingViewPanel.gridy = 2; testingPanel.add(testingViewPanel, gbc_testingViewPanel); GridBagLayout gbl_testingViewPanel = new GridBagLayout(); gbl_testingViewPanel.columnWidths = new int[] { 330, 0 }; gbl_testingViewPanel.rowHeights = new int[] { 75, 0 }; gbl_testingViewPanel.columnWeights = new double[] { 0.0, Double.MIN_VALUE }; gbl_testingViewPanel.rowWeights = new double[] { 0.0, Double.MIN_VALUE }; testingViewPanel.setLayout(gbl_testingViewPanel); testingViewArea = new JTextArea(); testingViewArea.setRows(5); testingViewArea.setColumns(30); GridBagConstraints gbc_testingViewArea = new GridBagConstraints(); gbc_testingViewArea.fill = GridBagConstraints.BOTH; gbc_testingViewArea.anchor = GridBagConstraints.NORTHWEST; gbc_testingViewArea.gridx = 0; gbc_testingViewArea.gridy = 0; testingViewPanel.add(testingViewArea, gbc_testingViewArea); testingGlyphField[4].setColumns(2); JPanel outputPanel = new JPanel(); FlowLayout flowLayout2 = (FlowLayout) outputPanel.getLayout(); flowLayout2.setAlignment(FlowLayout.LEFT); tabbedPane.addTab("Output", null, outputPanel, null); JPanel outputFormPanel = new JPanel(); outputPanel.add(outputFormPanel); GridBagLayout gbl_outputFormPanel = new GridBagLayout(); gbl_outputFormPanel.columnWidths = new int[] { 150, 250 }; gbl_outputFormPanel.rowHeights = new int[] { 0 }; gbl_outputFormPanel.columnWeights = new double[] { 0.0, 1.0 }; gbl_outputFormPanel.rowWeights = new double[] { 0.0 }; outputFormPanel.setLayout(gbl_outputFormPanel); JLabel javaLabel = new JLabel("Output .java file"); GridBagConstraints gbc_javaLabel = new GridBagConstraints(); gbc_javaLabel.anchor = GridBagConstraints.WEST; gbc_javaLabel.fill = GridBagConstraints.VERTICAL; gbc_javaLabel.insets = new Insets(0, 0, 5, 5); gbc_javaLabel.gridx = 0; gbc_javaLabel.gridy = 0; outputFormPanel.add(javaLabel, gbc_javaLabel); javaField = new JTextField(); javaField.addFocusListener(new FocusListener() { public void focusLost(FocusEvent e) { javaField.removeFocusListener(this); } public void focusGained(FocusEvent e) { JFileChooser chooser = new JFileChooser(outFolderName); chooser.setSelectedFile(new File(outFileName)); chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); if (chooser.showDialog(frame, "Save .java file") == JFileChooser.APPROVE_OPTION) { javaField.setText(chooser.getSelectedFile().getAbsolutePath()); try { PrintWriter output = new PrintWriter( new FileWriter(chooser.getSelectedFile().getAbsolutePath())); output.println("package com.googlecode.libautocaptcha.decoder.data;"); output.println("import net.sourceforge.javaocr.plugin.cluster.Cluster;"); output.println("import net.sourceforge.javaocr.plugin.cluster.MahalanobisDistanceCluster;"); output.println("public class VodafoneItalyData {"); output.println(" public static final int[] " + BACKGROUND_FIELD + " = "); output.print(" new int[] { "); for (int y = 0; y < HEIGHT; ++y) for (int x = 0; x < WIDTH; ++x) output.print(background.get(x, y) + ", "); output.println("};"); output.println(" public static final char[] " + CHARACTERS_FIELD + " = "); output.print(" new char[] { "); for (Character c : clusters.keySet()) output.print("'" + c + "', "); output.println("};"); output.println(" public static final Cluster[] " + CLUSTERS_FIELD + " = "); output.print(" new MahalanobisDistanceCluster[] { "); for (Cluster c : clusters.values()) { output.print("new MahalanobisDistanceCluster(new double[] { "); double[] mx = ((MahalanobisDistanceCluster) c).getMx(); for (double i : mx) output.print(i + ", "); output.print("}, new double[][] { "); double[][] invcov = ((MahalanobisDistanceCluster) c).getInvcov(); for (double[] row : invcov) { output.print("new double[] { "); for (double i : row) output.print(i + ", "); output.print("}, "); } output.print("}), "); } output.println("};"); output.println("}"); output.close(); } catch (IOException x) { x.printStackTrace(); } } } }); GridBagConstraints gbc_javaField = new GridBagConstraints(); gbc_javaField.fill = GridBagConstraints.BOTH; gbc_javaField.insets = new Insets(0, 0, 5, 0); gbc_javaField.gridx = 1; gbc_javaField.gridy = 0; outputFormPanel.add(javaField, gbc_javaField); javaField.setColumns(10); JPanel statusPanel = new JPanel(); frame.getContentPane().add(statusPanel, BorderLayout.SOUTH); GridBagLayout gbl_statusPanel = new GridBagLayout(); gbl_statusPanel.columnWidths = new int[] { 150, 0, 0 }; gbl_statusPanel.rowHeights = new int[] { 14, 0 }; gbl_statusPanel.columnWeights = new double[] { 0.0, 1.0, Double.MIN_VALUE }; gbl_statusPanel.rowWeights = new double[] { 0.0, Double.MIN_VALUE }; statusPanel.setLayout(gbl_statusPanel); statusBar = new JProgressBar(); GridBagConstraints gbc_statusBar = new GridBagConstraints(); gbc_statusBar.insets = new Insets(0, 0, 0, 5); gbc_statusBar.gridx = 0; gbc_statusBar.gridy = 0; statusPanel.add(statusBar, gbc_statusBar); statusLabel = new JLabel(""); GridBagConstraints gbc_statusLabel = new GridBagConstraints(); gbc_statusLabel.fill = GridBagConstraints.HORIZONTAL; gbc_statusLabel.gridx = 1; gbc_statusLabel.gridy = 0; statusPanel.add(statusLabel, gbc_statusLabel); }
From source file:com.mobiperf_library.measurements.PingTask.java
private MeasurementResult executePingCmdTask(int ipByteLen) throws MeasurementError { Logger.i("Starting executePingCmdTask"); PingDesc pingTask = (PingDesc) this.measurementDesc; String errorMsg = ""; MeasurementResult measurementResult = null; // TODO(Wenjie): Add a exhaustive list of ping locations for different Android phones pingTask.pingExe = Util.pingExecutableBasedOnIPType(ipByteLen, parent); Logger.i("Ping executable is " + pingTask.pingExe); if (pingTask.pingExe == null) { Logger.e("Ping executable not found"); throw new MeasurementError("Ping executable not found"); }//from www.j av a 2 s . c o m try { String command = Util.constructCommand(pingTask.pingExe, "-i", Config.DEFAULT_INTERVAL_BETWEEN_ICMP_PACKET_SEC, "-s", pingTask.packetSizeByte, "-w", pingTask.pingTimeoutSec, "-c", Config.PING_COUNT_PER_MEASUREMENT, targetIp); Logger.i("Running: " + command); pingProc = Runtime.getRuntime().exec(command); // Grab the output of the process that runs the ping command InputStream is = pingProc.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line = null; int lineCnt = 0; ArrayList<Double> rrts = new ArrayList<Double>(); ArrayList<Integer> receivedIcmpSeq = new ArrayList<Integer>(); double packetLoss = Double.MIN_VALUE; int packetsSent = Config.PING_COUNT_PER_MEASUREMENT; // Process each line of the ping output and store the rrt in array rrts. while ((line = br.readLine()) != null) { // Ping prints a number of 'param=value' pairs, among which we only need the // 'time=rrt_val' pair String[] extractedValues = Util.extractInfoFromPingOutput(line); if (extractedValues != null) { int curIcmpSeq = Integer.parseInt(extractedValues[0]); double rrtVal = Double.parseDouble(extractedValues[1]); // ICMP responses from the system ping command could be duplicate and out of order if (!receivedIcmpSeq.contains(curIcmpSeq)) { rrts.add(rrtVal); receivedIcmpSeq.add(curIcmpSeq); } } this.progress = 100 * ++lineCnt / Config.PING_COUNT_PER_MEASUREMENT; this.progress = Math.min(Config.MAX_PROGRESS_BAR_VALUE, progress); broadcastProgressForUser(progress); // Get the number of sent/received pings from the ping command output int[] packetLossInfo = Util.extractPacketLossInfoFromPingOutput(line); if (packetLossInfo != null) { packetsSent = packetLossInfo[0]; int packetsReceived = packetLossInfo[1]; packetLoss = 1 - ((double) packetsReceived / (double) packetsSent); } Logger.i(line); } // Use the output from the ping command to compute packet loss. If that's not // available, use an estimation. if (packetLoss == Double.MIN_VALUE) { packetLoss = 1 - ((double) rrts.size() / (double) Config.PING_COUNT_PER_MEASUREMENT); } measurementResult = constructResult(rrts, packetLoss, packetsSent, PING_METHOD_CMD); } catch (IOException e) { Logger.e(e.getMessage()); errorMsg += e.getMessage() + "\n"; } catch (SecurityException e) { Logger.e(e.getMessage()); errorMsg += e.getMessage() + "\n"; } catch (NumberFormatException e) { Logger.e(e.getMessage()); errorMsg += e.getMessage() + "\n"; } catch (InvalidParameterException e) { Logger.e(e.getMessage()); errorMsg += e.getMessage() + "\n"; } finally { // All associated streams with the process will be closed upon destroy() cleanUp(pingProc); } if (measurementResult == null) { Logger.e("Error running ping: " + errorMsg); throw new MeasurementError(errorMsg); } return measurementResult; }