PULsE v1.97
PULsE v1.97 - Short List of Changes
This release features a new multi-sinusoidal baseline correction feature, generalised optimisers, expanded filtering capabilities and the 2-T model.
Expanded the sinusoidal baseline capabilities to multiple waves:
- Added FFTTransformer.java
- Added Window (FFT)
- Added PeriodicTransform for phase shift
- Added ZScore
- Added Harmonic
- Expanded: SinusoidalBaseline
Expanded the running average estimator by including new classes:
- OptimisablePolyline allows fine tuning of individual coordinates of a RunningAverage
- Added: OptimisedRunningAverage
- Added: Randomiser
- Added: Filter (super-class)
- Added: PolylineOptimiser
- Added: AssignmentListener
Added 2T model
- Added Gases (Nitrogen, Helium)
- Added ImplicitTwoTemperatureSolver
- Added TwoTemperatureModel
- Added TwoTemperatureProperties
Expanded optimisation by making it less dependent on the specific type of the model:
- Added GeneralTask as a superclass for all optimisation tasks
- Added RunningAverage (moved from ExperimentalData)
- Added Input and Response super-interfaces
- Added SimpleOptimisationTask operating with one Optimisable and one Input with a default Levenberg-Marquardt optimiser
- Added SimpleResponse
- Added DiscreteInput as a superclass for ExperimentalData and NumericPulseData
- Added Optimisable
Tidied up:
- LinearBaseline (slope property moved to superclass)
- HistogramFrame
- ResultTableModel
- AdjustableBaseline (slope added from LinearBaseline)
- Move half-time calculation to a special class in pulse.math.filters (added)
- DiathermicMedium
- DataLoader
- TaskPopupMenu
- AbsoluteDeviations
- ClassicalProblem
- HeatingCurve
- ImplicitLinearisedSolver
- ThermoOpticalProperties
- Launcher
- LinearOptimiser
Adapted:
- TaskTableModel
- NumericPulse
- ResidualStatistic
- SwarmState
- Problem (baseline handling, property assignment)
- Buffer (adapted to abstract optimisation task)
- ImplicitScheme (added time step index in method signature)
- CalculationTable -> plotExecutor
- Gradinet calculation and resolution in GradientBasedOptimiser
- Chart
- KSTest
- IterativeState
- Expanded Range filtering capabilities
- Pulse
- DataLogEntry
- CorrelationLogEntry to show multiple wave parameters
- Adapted CorrelationBuffer
- SearchTask (moved some methods to superclass)
- DifferenceScheme (pulse handling)
- NonlinearProblem
- WolfeOptimiser
- LMOptimiser (more robust to errors)
- AbsorptionModel
- Calculation (now formally a subclass of Reponse)
- ActiveFlags (includes loadable states, removed activeParameters())
- Status (added troubleshoot())
- ClassicalProblem2D
- TaskManager
- CompositePathOptimiser
- LinearOptimiser
- ExperimentalData
- ChartToolbar
- Expanded SolverException
- Baseline
- ... and others
Fixed:
- RegularisedLeastSquares now correctly estimates the regularised statistic
- PenetrationProblem not initialising custom AbsorptionModel
- Exception handling by GradientGuidedPath
- Missing copy method in BeerLambertAbsorption and Insulator
- Result handling by ResultsTable
- ParameterVector now explicitly deals with Parameters
- Added ParameterIdentifier
- Added Parameter
- Property updates in ProblemStatementFrame
- NetzschCSVReader: resetting marks and finding pulse width
- Use relative error rather than absolute error in FixedPointIterations
- Insulator (Reflectance)
Recovered
- RangePenalisedLeastSquares
Removed
- InvLenTransform, InvLenSqTransform
Full Changelog: v1.95...v1.97