...
 
Commits (54)

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

......@@ -55,4 +55,23 @@ v1.0.0, 19.07.13
that stores which solvers are already aware of a constraint / variable. There is also an
attribute ``obj_passed`` of the class Problem that lists the solver instances
where the objective function has already been passed. The option ``onlyChangeObjective`` has been
deprecated.
\ No newline at end of file
deprecated.
v1.0.1.dev, 18.05.14
* Complex Semidefinite Programming.
* Flow constraints in graphs
* Improved implementation of *expression slicing* (__getitem__)
v 1.0.1, 27.08.14:
Release fixing the missing functionnalities of the previous *.dev* version:
* Improved support for complex SDP (access to dual information and correction of a few
bugs, in particular sum of complex affine expression now work correctly)
* Flow constraints in graphs, including multicommodity flows.
* Additional ``coef`` argument in the function tracepow(), in order to represent
constraints of the form trace(M X^p) >= t.
* Improved implementation of retrieve_matrix(), which was taking a very long time to
process large parameters.
* Improved implementation of the retrieval of optimal primal variables with CPLEX.
With the previous versions there was an important overhead at the end of the
solving process to get the optimal values, this is now working much faster.
* Nicer documentation.
\ No newline at end of file
......@@ -6,6 +6,13 @@ SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
RSYNC = rsync
LASTDIR = full_html/last
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
......@@ -29,22 +36,28 @@ help:
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
-rm -rf $(BUILDDIR)/*
rm -rf $(BUILDDIR)/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
@echo "Sync-ing with the /last directory"
$(RSYNC) -uzvr $(BUILDDIR)/html/* $(LASTDIR)
@echo "Done. The last build is in $(LASTDIR)"
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
......@@ -77,17 +90,17 @@ qthelp:
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/pyMathProg.qhcp"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/picos.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/pyMathProg.qhc"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/picos.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/pyMathProg"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/pyMathProg"
@echo "# mkdir -p $$HOME/.local/share/devhelp/picos"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/picos"
@echo "# devhelp"
epub:
......@@ -108,6 +121,12 @@ latexpdf:
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
......@@ -151,3 +170,13 @@ doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
lancer python ../../add_warning_notlast.py from directory /doc/full_html/x.x.x (former_version)
lancer script add_google_script directly from /doc
Changer CHANGE file
Creer dist file (python setup.py sdist) -> check that the doc is in the dist file ???
[OBSOLETE: move to /www, and change root-index with 3 <meta tags> and $sed -i 's/href="/href="v013\//g' index.html]
rsync to /www
Register on pypi (python setup.py register, username guillaume.sagnol)
sed -i 's/Picos 0\.1\.0/Picos 0\.1\.1/g' picos/*.py
et change version num dans conf.py and setup.py and __init__.py
make new directory in the full_html directory and update the symolic link "last"
\ No newline at end of file
website: ask Paul how to make redirections ?
dualize does not work on cplxsdp
solve re3 with solveviadual (pb matrice pas symmetrique -> but OK with A+A.H/2: check)
problem de rang avec cvxopt: remove constraints redondantes ?
add new contributors (Marco Dalai, Peter Wittek ?)
trace (AM^p)
robust -- uncertainty sets
read solution partially
fix some variables as constant
solve_via_dual avec cvxopt -- something special to do (finir primalize())
probleme qd solve problems 2 times in a row (test_cutting_plane.py avec mosek6, but only at zib (?))
probleme qd solve problems 2 times in a row sequentially (test_cutting_plane.py avec mosek6, but only at zib (?))
problem avec duals de gurobi pour probleme dsocp de test_picos.py (faire testSOCP5 ?). Bug gurobi -> min example ?
write_to_file --> scaled vars [mettre ds nom variable ?]
file reader
......@@ -29,7 +44,7 @@ generaliser les inplace operators (avoid seelfcopy as much as possible)
lancer script add_google_script
Changer CHANGE file
Creer dist file (python setup.py sdist)
move to /www and change root-index with 3 <meta tags> and $sed -i 's/href="/href="v013\//g' index.html
move to /www, and change root-index with 3 <meta tags> and $sed -i 's/href="/href="v013\//g' index.html
Register on pypi (python setup.py register, username guillaume.sagnol)
sed -i 's/Picos 0\.1\.0/Picos 0\.1\.1/g' picos/*.py
et change version num dans conf.py and setup.py
et change version num dans conf.py and setup.py and __init__.py
This diff is collapsed.
This diff is collapsed.
files = ['index.html','api.html',
'examples.html','constraint.html','expression.html',
'intro.html','tools.html','problem.html',
'download.html','graphs.html','tuto.html','optdes.html']
import os
files = os.popen('ls full_html/last/*.html').readlines()
files = [f[:-1] for f in files if f[:6] not in ('search','py-mod','genind')]
for f in files:
fi=open('_build/html/'+f,'r')
fitmp=open('_build/html/'+f+'tmp','w')
fi=open(f,'r')
fitmp=open(f+'tmp','w')
line = fi.readline()
while '</head>' not in line:
fitmp.write(line)
......@@ -43,5 +41,5 @@ for f in files:
fi.close()
fitmp.close()
os.system('mv _build/html/'+f+'tmp _build/html/'+f)
os.system('mv '+f+'tmp '+f)
newlines =['<body>',
'<div class="admonition warning">',
'<p class="first admonition-title">Warning</p>',
'<p class="last">You are consulting the doc of a former version of PICOS.',
'The latest version is <a href="../index.html">HERE</a>. </p>',
'</div>'
]
import os
files = os.popen('ls *.html').readlines()
files = [f[:-1] for f in files if f[:6] not in ('search','py-mod','genind')]
for f in files:
fi=open(f,'r')
fitmp=open(f+'tmp','w')
line = fi.readline()
while '<body>' not in line:
fitmp.write(line)
line = fi.readline()
for ln in newlines:
fitmp.write(ln)
line = fi.readline()
while line:
fitmp.write(line)
line = fi.readline()
fi.close()
fitmp.close()
os.system('mv '+f+'tmp '+f)
.. |br| raw:: html
<br />
.. _changes:
==============
Change History
==============
* 27 Aug. 14: **Picos** :ref:`1.0.1 <download>` **Released** |br|
Release fixing the missing functionnalities of the previous *.dev* version:
* Improved support for complex SDP (access to dual information and correction of a few bugs, in particular sum of complex affine expression now work correctly)
* Flow constraints in graphs, including multicommodity flows, cf. :ref:`this section <flowcons>`.
* Additional ``coef`` argument in the function :func:`picos.tracepow() <picos.tools.tracepow>`, in order to represent constraints of the form :math:`\operatorname{trace}(M X^p) \geq t`.
* Improved implementation of :func:`_retrieve_matrix() <picos.tools._retrieve_matrix>`, which was taking a very long time to process large parameters.
* Improved implementation of the retrieval of optimal primal variables with CPLEX. With the previous versions there was an important overhead at the end of the solving process to get the optimal values, this is now working much faster.
* Nicer documentation.
* 18 May 14: **Picos** :ref:`1.0.1.dev <download>` **Released** |br|
Major Release with following changes:
* Support for Semidefinite Programming over the complex domain, see :ref:`here <complex>`.
* Flow constraints in graphs, cf. :ref:`this section <flowcons>`.
* Improved implementation of ``__getitem__`` for affine expressions. The slicing of affine expressions
was slowing down (a lot!) the processing of the optimization problem.
* 19 Jul. 13: **Picos** :ref:`1.0.0 <download>` **Released** |br|
Major Release with following changes:
* Semidefinite Programming Interface for MOSEK 7.0 !!!
* New options ``handleBarVars`` and ``handleConeVars`` to customize how SOCP and SDPs are passed to MOSEK
(When these options are set to ``True`` , PICOS tries to minimize the number of variables of the
MOSEK instance, see the doc in :func:`set_all_options_to_default() <picos.Problem.set_all_options_to_default>`).
* The function :func:`dualize() <picos.Problem.dualize>` returns the Lagrangian dual of a Problem.
* The option ``solve_via_dual`` (documented in
:func:`set_all_options_to_default() <picos.Problem.set_all_options_to_default>` ) allows the user to pass
the dual of a problem to a solver, instead of the primal problem itself. This can yield important speed-up for
certain problems.
* In addition to the geometric mean function :func:`picos.geomean() <picos.tools.geomean>` , it is now possible