~~~~~~~~~~~~~~~~~~~~~~~~~~ Liberty Database Analytics ~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ Contributors ~~~~~~~~~~~~ John Wright Edward Poore Danny Peters ~~~~~~ Files: ~~~~~~ LibertyDatabase.rb Plot.rb analytics.rb various testing files ~~~~~~~~~~~~~~~~~~~ Required Ruby Gems: ~~~~~~~~~~~~~~~~~~~ mysql gnuplot ~~~~~~~~~~~~~~~~~~~~ LibertyDatabase.rb ~~~~~~~~~~~~~~~~~~~ ~~~~~~~ Methods ~~~~~~~ new: creates a new database object with the ability to specific a certain database getData: returns a hash keyed by cell names after recieving the database parameter to query. getLeakage: returns a hash keyed by cells names, the value of each entry is another hash keyed by 'when' conditions containing leakage data. getFootprints: returns an array containing the names of all cell footprints as strings getCellFootprint: returns the name of the givens cell's footprint as a string getCells: returns an array containing the names of all cells getCellsInFootprint: returns an array containing the cell names in the specified footprint query: performs a custom database query with logging, used by other 'get' functions as well getOutputMaxCap: returns a hash with cell names as keys and the sum of the pin max capacitance as a value getTimingData: returns a hash with keys of the format cell_name.pin_name.timing_type[when], values are hashes with keys of min,max,avg close: Closes the database and logfile ~~~~~~~~~ Plot.rb ~~~~~~~~~ ~~~~~~~ Methods ~~~~~~~ new: creates a new plot object and requires two arrays passed as hashs (x,y) findOutliers: finds outliers and outputs them in a seperate data file, defaulted to "outliers.dat" generatePlot: generates a plot based on options given ~~~~~~~~~~~~~ Analytics.rb ~~~~~~~~~~~~~ Extends the Enumerable and adds the following functions ~~~~~~~ Methods ~~~~~~~ sum: returns a sum of the given array mean: returns the average of the given array variance: returns of variance of the given array stdDev: returns the standard deviation of the given array fiveNumSum: returns the five number summary of the given array as an array {min,q1,med,q3,max} median: returns the median of the given array Included is a set of tools that connect to a remote database, with defaults set in LibertyDatabase.rb. The default configuration for our uses is as follows: mysql host: xxxxxxxxxxxxxx mysql db: LiberyFileUpdate mysql user: guest mysql pass: liberty