Michael Thomas Flanagan's Java Scientific Library     


This page, and the links therein, describe the more general classes of a Java scientific and numerical library that were written by Michael Thomas Flanagan to support both his own research and his undergraduate programming courses and projects. As he has now retired it will be updated far less frequently.

These general classes form a package entitled flanagan which may be downloaded as a jar file.
  • Permission to copy:
    A large number of individuals have requested copies of this library. Consequently I have made it available, as a jar file (see below), with the qualifation that it is written to suport a course that I lecture. Though I believe it is professionally written, it is not a commercial product and the methods are not necessarily as all embracing as might be found in a commercial product nor are they checked to be fault free in all possible foreseable situations as would be, or at least ought to be, in a commercial product; you use this library at your own risk and more formally:

    Permission to use, copy and modify this software and its documentation for NON-COMMERCIAL purposes is granted, without fee, provided that an acknowledgement to the author, Dr Michael Thomas Flanagan at www.ee.ucl.ac.uk/~mflanaga, appears in all copies and associated documentation or publications.

    Use for COMMERCIAL purposes is not permitted

    Public listing of the source codes on the internet is not permitted.

    Redistribution of the source codes or of the flanagan.jar file is not permitted.

    Redistribution in binary form of all or parts of these classes is not permitted.

    Dr Michael Thomas Flanagan makes no representations about the suitability or fitness of the software for any or for a particular purpose. Dr Michael Thomas Flanagan shall not be liable for any damages suffered as a result of using, modifying or distributing this software or its derivatives.

  • Download instructions:

    Platform 8 version:
    Click here to download Platform 8 version of flanagan.jar
    Save as flanagan.jar.
    The current version of Java Platform 8 used in compiling the classes in flanagan.jar is jdk1.8.0.

    The flanagan.jar file size is about 1.2 MB - varying slightly with update. A tutorial on manipulating jar files may be found on http://download.oracle.com/javase/tutorial/deployment/jar/index.html

    A convenient use of this jar file is to place it in the appropriate folder so that it simply becomes a library that you may import when writing your code. For example an appropriate folder on a computer running a MicroSoft operating system, e.g. Windows 8, is to place it in ProgramFiles/Java/jdk1.x.y_z/jre/lib/ext, where jdk1.x.y_z is your version (appropriate values for .x and .y_z) of the Java Development Kit. You must also create an appropriate CLASSSPATH. If you are using a Microsoft operating system, e.g. Windows 8, and you have not done so already, create a CLASSPATH by going to the Control Panel, clicking on System, then clicking on Advanced, then clicking on Environmental Variables and then clicking on new in the upper section (User variables for ...). A dialog box will appear asking for a Variable name; type in CLASSPATH, and a Variable value; type in .\; followed by the path to flanagan.jar, e.g. .\;C:\Java\jdk1.8.0\jre\lib\ext\flanagan.jar. Return clicking on the OK boxes.

Michael Thomas Flanagan can be contacted at:

   Dr Michael Thomas Flanagan
   Department of Electronic and Electrical Engineering
   UCL (University College London)
   Torrington Place
   WC1E 7JE
   E-mail: m.flanagan@ucl.ac.uk
LIST OF ALL CLASSES with links to documentation and source files
Input and Output
  Db (Dialogue Box Input
& Output)         
KeyboardInput          PrintToScreen
FileInput FileManipulate FileChooser
MultipleFilesChooser FileNameSelector FileOutput
DigiGraph (Graph Digitization)    
Graph Plotting
  PlotGraph Plotter PlotPoleZero
Mathematical Functions, Physical Constants and Conversion Functions
  Fmath ArrayMaths VectorMaths
  Point Gradient DataType
  DeepCopy Conv (Conversions) TimeAndDate
Statistical Functions & Extreme Distributions
  Stat ANOVA ProbabilityPlot
Outliers Normality Scores
Cronbach PCA RankAnalysis
PsRandom BoxCox  
Random Numbers and Deviates (including extreme distribution deviates)
Error Propagation
  ErrorProp ComplexErrorProp  
  Regression ProbabilityPlot ImpedSpecRegression
Data Smoothing
  CurveSmooth SurfaceSmooth ThreeDimensionalSmooth
  Minimisation Maximisation  
Fourier Transform & Short-Time Fourier Transform
  Fourier Transform    
Numerical Integration
  Integration RungeKutta  
  CubicInterpolation CubicSpline CubicSplineFast
BiCubicInterpolation BiCubicSpline BiCubicSplineFast
BiCubicSplineFirstDerivative TriCubicInterpolation TriCubicSpline
QuadriCubicSpline PolyCubicSpline PolyCubicSplineFast
LinearInterpolation PolylineSimplification  
Root Searching
  RealRoot ComplexPoly  
  Matrix ComplexMatrix PhasorMatrix
Complex Arithmetic
  Complex ComplexMatrix ComplexPoly
ComplexErrorProp Phasor PhasorMatrix
  Polynomial ComplexPoly  
  Impedance TransmissionLine SurfaceStripLine
CoaxialLine ParallelPlateLine TwoWireLine
Phasor PhasorMatrix  
Impedance Spectroscopy
  ImpedSpecRegression ImpedSpecSimulation  
  Reflectivity PrismCoupler GratingCoupler
PlanarWaveguide RefractiveIndex  
Biological Applications
  ImmunoAssay Donnan GouyChapmanStern
Ionic radii
Physical Properties of Some Aqueous Solutions
  Water Saline Sucrose
  Chars Strings
Control & System Engineering
PropIntDeriv (PID) PropInt (PI) PropDeriv (PD)
Prop FirstOrder SecondOrder
Compensator LowPassPassive HighPassPassive
DelayLine ZeroOrderHold Transducer
AtoD DtoA  

This page was prepared by Dr Michael Thomas Flanagan