Skip to content

Releases: convexengineering/gpkit

Version 1.1 - Omicron

09 Jan 00:09
6fbea17
Compare
Choose a tag to compare
  • variable and sensitivity breakdowns added
  • in solution tables, models no longer default to being sorted by sensitivity

Version 1.0.0 - Atmospheric River

26 Oct 20:54
832a056
Compare
Choose a tag to compare
  • no longer supports Python 2
  • no longer supports mosek8 C bindings (the "mosek" solver)
  • new dependencies: plotly, adce, numpy >= 1.16.4, matplotlib
  • CVXOPT solver interface now uses linear programming formulations as applicable
  • unicode printing by default, except on windows
  • vastly improved diffing, pickling
    • option for compressed solution pickles
  • various speed improvements, especially during SGP solves
  • reduced memory usage
  • SGP solves now use the PCCP method
    • raise warning on nonconvergence
  • clearer solver errors
  • new visualizations and improved old ones
    • Sankey, Variable Reference, Treemap, Icicle plots

v0.9.9 - final Python2-compatible release

03 Mar 05:23
195a6fe
Compare
Choose a tag to compare
  • The decorator @parse_variables(__doc__, globals()) replacing exec parse_variables(...)
  • Support for the MOSEK9 exponential cone solver. Install with pip!

And some things that are best seen in the docs:

  • New and improved printing.
    • v0.9.1: A >= 2*s_(0,)*s_(1,) + 2*s_(0,)*s_(2,) + 2*s_(1,)*s_(2,), V <= s_(0,)*s_(1,)*s_(2,)
    • v0.9.9: A >= 2*(s[0]*s[1] + s[1]*s[2] + s[2]*s[0]), V <= s[:].prod()
  • New syntax for modelnames.
    • v0.9.1: E_PowerSystem/Battery
    • v0.9.9: PowerSystem.Battery.E
  • Dictionary constraints (which print nicely in addition to allowing easier access)
    • {"definition of Re": Re == rho*V*c/mu, "definition of D": D >= 0.5*rho*V**2*CD*S}

v0.9.0

20 Jun 15:34
df532f7
Compare
Choose a tag to compare
  • almost complete Python 3 support (except for parse_variables)
  • Speedups, especially for SP solves
  • Models now number themselves only if their whole path is copied by another Model
  • Fixes to some sensitivity edge cases
  • Dropped 400 lines of code (down to 5100) while adding 120 lines of tests (up to 2450). Still at 290 lines of examples.

v0.8.0

12 Mar 04:25
a55ed60
Compare
Choose a tag to compare
  • Much cruft removal, various speedups and fixes
  • Auto-differentiation of linked sensitivities
  • Simpler installation process
  • Solution differencing and pickling
  • Tight/Loose warnings in solution and in solution tables
  • Tight/loose constraints in solution tables

v0.7.0

21 Mar 23:15
d139ce4
Compare
Choose a tag to compare
  • Variable's values are now used only in their first ConstraintSet; in other ConstraintSets they're free variables
    • this can be overriden by setting constant=True during variable declaration
  • MOSEK home directory can be set by a MSKHOME environment variable at build time
  • sol(var) now always returns Pint Quantities, even if the variable is dimensionless
  • sol[...][var], on the other hand, now always returns floats / numpy arrays of floats
  • Optional boundedness checking in docstring (see usage in docs)
  • Automatic boundedness checking for GPs
  • Sankey diagrams
  • Many other fixes

v0.6.0

03 Nov 02:12
413abe2
Compare
Choose a tag to compare

Version 0.6.0

  • new much faster NomialMap data structure (#682)
  • Many bug fixes and small improvements.
  • 6900 lines of code, 2200 lines of tests, 2100 lines of docstring.

v0.5.3

19 Jun 19:00
Compare
Choose a tag to compare

Version 0.5.3

  • faster SP solves (#1109)
  • LinkedConstraintSet deprecated (#1110)
  • Fixes to autosweep, ConstraintSet, interactive
  • Solution time is now stored with soltutions (including sweeps/SPs)
  • Model strings are divided with slashes (e.g. Airplane/Wing)

v0.5.2

16 Jan 02:07
Compare
Choose a tag to compare
  • Added new sweep and autosweep methods to Model
    • Added plot routines to the results of those routines to make it easy to plot a 1D sweep.
  • Added new summary method to solution_array.
    • It and table accept iterables of vars, will only print vars in that iterable (or, by default, all vars)
  • Cleaned up and documented the interactive submodule
    • removed contour and sensitivity plots
    • added a 1D-sweep plotting function
    • added that plotting function as an option within the control panel interface
  • Overhauled and documented three types of variables whose value is determined by functions:
    • calculated constants
    • post-solve calculated variables
    • between-GP-solves calculated variables (for Sequential Geometric Programs)
  • Fix Bounded and implement debug() for SPs
  • Apply subinplace to substitutions dictionary as well
  • Require GP substitutions to be Numbers only
  • Extend Bounded to one-sided bounds
  • Print model's numbers by default, unless "modelnums" in exclude
  • Implement lazy keymapping, allowing GP/SP results to be KeyDicts
  • Handle Signomial Inequalities that become Posynomial Inequalities after substitution
  • Various documentation updates
  • Various bug fixes

v0.5.1

30 Dec 01:38
Compare
Choose a tag to compare
  • O(N) sums and monomial products
  • Warn about invalid ConstraintSet elements
  • allow setting Tight tolerance as a class attribute
  • full backwards compatibility for init methods
  • scripts to test remote repositories
  • minor fixes, tests, and refactors
  • 3550 lines of code, 1800 lines of tests, 1700 lines of docstring. (not counting interactive)