-
Notifications
You must be signed in to change notification settings - Fork 86
/
LICENSE.txt
152 lines (127 loc) · 7.46 KB
/
LICENSE.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
CVX: A system for disciplined convex programming
© 2005-2014 CVX Research, Inc., Austin, TX.
http://cvxr.com
info@cvxr.com
Thank you for using CVX!
The files contained in the various CVX distributions come from various sources
and are covered under a variety of licenses. Files created and owned by CVX
Research, Inc. are governed by two licenses: the *CVX Standard License* and
the *CVX Professional License*. The file README.txt that accompanies each
package specifies which license applies.
CVX Professional License
------------------------
The full CVX package, including the commercial solver functionality,
includes several files in Matlab *p-code* format. This format contains
an encrypted form of Matlab bytecode, and are distinguished by a .p
suffix. For instance, the package currently includes the files
shims/cvx_mosek.p
shims/cvx_gurobi.p
cvx_license.p
but future versions may add additional .p files, and they are governed
by this text as well. Individual .m files may explicitly declare that the
are governed by the CVX Professional license; currently, the only such file is
cvx_grbgetkey.m
Furthermore, all files within the subdirectories
gurobi/
mosek/
are licensed by Gurobi Optimization and MOSEK ApS, respectively, for
inclusion in the CVX package by contractual agreement. In the future,
CVX Research may include other commercial solvers in its distributions,
and they will be governed by this section as well.
Any package containing even one of the files mentioned above is subject
to the *CVX Professional License*. You may *not* redistribute such a package,
nor make it available on a public repository, without the express written
consent of CVX Research, Inc. Of course, the full CVX package is freely
available to download directly from our servers, so please feel free to
refer people to our web site---even directly to our download page.
CVX Standard License
--------------------
CVX also offers what we call "redistributable" packages that omit all of
the files listed above. This package retains all of the functionality of
CVX, with the exception of its ability to connect to commercial solvers.
Redistributable packages are offered on the same download page as our
standard packages.
The redistributable package is covered by the *CVX Standard License*. This
license is nothing more than the GNU Standard License, Version 3 (GPLv3),
with one additional permission we call the "Free Solver Clause", discused
in the next section.
The full text of the GPLv3 is given in the file GPL.txt found in the top
directory of the CVX package. Please see Section 7 of this license for more
information about additional permissions such as the one offered here. In
particular, you are free to *remove* this permission from any modified
version of CVX you create; but you may not *create new ones*.
You must include the files LICENSE.txt and GPL.txt in unmodified form when
redistributing this software or any subset of it. If you did not receive a
copy of either of these files with your distribution, please contact us.
The Free Solver Clause
----------------------
We have chosen to add a single "additional permission" clause to the CVX
Standard License above and beyond the text of the GPLv3. This full text of
this clause is contained in the following paragraph:
You are free to modify CVX to connect to any solver whose full
functionality is provided free of charge to *all* users, even if the
solver's license is otherwise incompatible with the GNU Standard
License Version 3. This permission does not apply to solvers which
are free just to certain users (e.g., academic users), free for
limited time periods, or free with restricted functionality.
CVX relies upon other software packages, called *solvers*, to perform many
of its underlying calculations. Currently CVX supports free solvers SeDuMi
and SDPT3, and commercial solvers Gurobi and MOSEK. The resulting nexus of
free and commercial software presents a licensing challenge. Our vision is
guided by three goals:
- to ensure that CVX remains fully free to use with any fully free solver.
- to support the development and support of CVX by selling interfaces to
commercial solvers to commercial customers.
- to provide the academic community with our full commercial capabilities
at no charge. (Obviously this depends upon the cooperation of commercial
solver vendors. Gurobi and MOSEK fully support this goal.)
The terms we lay out here are intended to support these trifold goals.
We invite our users to create new interfaces between CVX and other free
solvers. By "free", we mean that the solver must be made available at no
charge for to *all* users, including commercial users, without restriction.
Please contact us if you are interested in creating such an interface; we can
offer assistance. If you do create one, please consider submitting it to us
for inclusion in the standard CVX distribution; but you are under no
obligation to do this. Instead, you can ship the interface code with the
solver itself; or you can construct a modified version of the
redistributable CVX package with your interface included.
We do not permit the creation and distribution of new interfaces between CVX
and *non-free* solvers---even if those solvers are made available to academic
academic users at no charge. If you are a vendor or developer of a
commercial solver, and would like to develop or offer a CVX interface to
your users, please contact us at info@cvxr.com. We welcome the opportunity
to support a wider variety of commercial solvers with CVX, and are willing
to devote engineering resources to make those connections. Of course, we
hope that you support our goal of making commercial solver capability
available at no charge to academic customers; and our licensing interface
helps to facilitate that offering.
If you are a user of a particular commercial solver and would like to see it
supported by CVX, please contact your solver vendor---but please contact us
at info@cvxr.com as well. If there is sufficient demand, and it proves
technically and financially feasible, we will reach out to the solver vendor
to work on an implementation.
Bundled solvers
----------------
The solvers SDPT3, SeDuMi, Gurobi, and MOSEK are distributed with CVX in the
sdpt3/, sedumi/, gurobi/, and mosek/ subdirectories, respectively. (The
redistributable version of CVX does not include gurobi/ and mosek/.) Future
versions of CVX may include additional solvers as well, each in their own
subdirectories. None of these packages are owned by CVX Research, Inc. They
are included with permission of the authors. The solvers SDPT3 and SeDuMi
are subject to the terms of the GPLv2; therefore, you are free to redistribute
them under the terms of that license.
Example library
---------------
The contents of the example library, which is distributed with CVX in the
examples/ subdirectory, is *public domain*. You are free to use them in any
way you wish; but when you do, we request that you give appropriate credit
to the authors. A number of people have contributed to the examples in this
library, including Lieven Vandenberghe, Joëlle Skaf, Argyris Zymnis, Almir
Mutapcic, Michael Grant, and Stephen Boyd. If you would like to offer some
examples to be included in this library, and are willing to release them to
the public domain, please contact us!
No Warranty
-----------
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.