List of usage examples for org.apache.commons.math3.util ResizableDoubleArray ResizableDoubleArray
public ResizableDoubleArray(ResizableDoubleArray original) throws NullArgumentException
From source file:com.itemanalysis.jmetrik.stats.ranking.RankingAnalysis.java
private ResizableDoubleArray getData() throws SQLException { Statement stmt = null;/*from www. j av a2s . co m*/ ResultSet rs = null; ResizableDoubleArray data = new ResizableDoubleArray((int) (maxProgress / 2.0)); try { //connect to table to create data set to be ranked Table sqlTable = new Table(tableName.getNameForDatabase()); SelectQuery select = new SelectQuery(); select.addColumn(sqlTable, variable.getName().nameForDatabase()); stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(select.toString()); String vNameDb = variable.getName().nameForDatabase(); double x = Double.NaN; int dbIndex = 0;//row position index for all records in db while (rs.next()) { x = rs.getDouble(vNameDb); if (!rs.wasNull()) { if (ascending) { data.addElement(x);//ascending order } else { data.addElement(-x);//descending order } } else { missingIndex.add(dbIndex); } dbIndex++; updateProgress(); } return data; } catch (SQLException ex) { throw ex; } finally { if (rs != null) rs.close(); if (stmt != null) stmt.close(); } }
From source file:com.itemanalysis.jmetrik.graph.density.DensityAnalysis.java
public XYSeriesCollection summarize() throws SQLException, IllegalArgumentException { Statement stmt = null;//from w w w . ja va2 s .c om ResultSet rs = null; TreeMap<String, ResizableDoubleArray> data = new TreeMap<String, ResizableDoubleArray>(); //set progress bar information int nrow = 0; JmetrikPreferencesManager pref = new JmetrikPreferencesManager(); String dbType = pref.getDatabaseType(); if (DatabaseType.APACHE_DERBY.toString().equals(dbType)) { JmetrikDatabaseFactory dbFactory = new JmetrikDatabaseFactory(DatabaseType.APACHE_DERBY); nrow = dao.getRowCount(conn, tableName); } else { //add other databases here when functionality is added } maxProgress = (double) nrow; Table sqlTable = new Table(tableName.getNameForDatabase()); SelectQuery select = new SelectQuery(); select.addColumn(sqlTable, variable.getName().nameForDatabase()); if (hasGroupingVariable) select.addColumn(sqlTable, groupVar.getName().nameForDatabase()); stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(select.toString()); String conditionalName = ""; ResizableDoubleArray cData = null; double value = Double.NaN; while (rs.next()) { if (groupVar != null) { String groupName = rs.getString(groupVar.getName().nameForDatabase()); if (rs.wasNull()) { groupName = ""; } conditionalName = groupName; } else { conditionalName = "Series 1"; } cData = data.get(conditionalName); if (cData == null) { cData = new ResizableDoubleArray((int) maxProgress); data.put(conditionalName, cData); } value = rs.getDouble(variable.getName().nameForDatabase()); if (!rs.wasNull()) { cData.addElement(value); } updateProgress(); } rs.close(); stmt.close(); String kType = command.getSelectOneOption("kernel").getSelectedArgument(); double adjustment = command.getFreeOption("adjust").getDouble(); KernelFactory kernelFactory = new KernelFactory(kType); KernelFunction kernelFunction = kernelFactory.getKernelFunction(); Bandwidth bandwidth = null; KernelDensity density = null; UniformDistributionApproximation uniform = null; Min min = new Min(); Max max = new Max(); double[] x = null; this.firePropertyChange("progress-ind-on", null, null); XYSeriesCollection seriesCollection = new XYSeriesCollection(); XYSeries series = null; for (String s : data.keySet()) { series = new XYSeries(s); x = data.get(s).getElements(); bandwidth = new ScottsBandwidth(x, adjustment); uniform = new UniformDistributionApproximation(min.evaluate(x), max.evaluate(x), KERNEL_POINTS); density = new KernelDensity(kernelFunction, bandwidth, uniform); double[] dens = density.evaluate(x); double[] points = density.getPoints(); for (int i = 0; i < dens.length; i++) { series.add(points[i], dens[i]); } seriesCollection.addSeries(series); } return seriesCollection; }