parse a pdf in c# : Export pdf bookmarks to excel application software tool html windows asp.net online CVX8-part1418

The CVX Users’ Guide, Release 2.1
If huber is called with a numeric value of x, then upon reaching the cvx_end statement, CVX will find
acomplete specification, and solve the problem to compute the result. CVX places the optimal objective
function value into the variable cvx_optval, and function returns that value as its output. Of course, it’s
very inefficient to compute the Huber function of a numeric value x by solving a QP. But it does give the
correct value (up to the core solver accuracy).
What is most important, however, is that if huber is used within a CVX specification, with an affine CVX
expression for its argument, then CVX will do the rightthing. In particular, CVX will recognize the Huber
function, called with affine argument, as a valid convex expression. In this case, the function huber will
contain a special Matlab object that represents the function call in constraints and objectives. Thus the
function huber can be used anywhere a traditionalconvex function canbe used, in constraints or objective
functions, in accordance with the DCPruleset.
There is a corresponding development for concave functions as well. Given a convex set S as above, and a
concave function g : (R
n
R
m
)! (R [  1), the function
f: R ! (R [  1); f(x) , supfg(x;y) j 9y; (x;y) 2 S g
is concave. If g(x;y) , y, then
f(x) , supfy j 9y; (x;y) 2 S g
gives the hypographrepresentation of f:
hypof = S  R
n
+
:
In CVX, a concave incomplete specification is simply one that uses a maximize objective instead of a
minimize objective; and if properly constructed, it can be used anywhere a traditional concave function
can be usedwithin a CVX specification.
For an example of a concave incomplete specification, consider the function
f: R
nn
!R; f(X) = 
min
(X +X
T
)
Its hypograph can be represented using a single linear matrix inequality:
hypof = f(X;t) j f(X)  tg =
(X;t) j X +X
T
tI  0
 
So we canimplementthis function in CVX as follows:
function cvx_optval = lambda_min_symm( X )
n = size( X, 1 );
cvx_begin
variable y;
maximize( y );
subject to
X + X' - y
*
eye( n ) == semidefinite( n );
cvx_end
If a numeric value of X is supplied, this function will return min(eig(X+X’)) (to within numerical
tolerances). However, this function can also be used in CVX constraints and objectives, just like any other
concave function in the atom library.
11.6. Adding new functions to the atom library
75
Export pdf bookmarks to excel - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
bookmarks pdf files; create bookmark pdf file
Export pdf bookmarks to excel - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
how to add a bookmark in pdf; creating bookmarks in pdf from word
The CVX Users’ Guide, Release 2.1
There are two practical issues that arise when defining functions using incomplete specifications, both of
which we will illustrate using our huber example above. First of all, as written the function works only
with scalar values. To apply it (elementwise) to a vector requires that we iterate through the elements in a
for loop—a very inefficient enterprise, particularly in CVX. A far better approach is to extend the huber
function to handle vector inputs. This is, in fact, rather simple to do: we simply create a multiobjective
version of the problem:
function cvx_optval = huber( x )
sx = size( x );
cvx_begin
variables w( sx ) v( sx );
minimize( w .^ 2 + 2
*
v );
subject to
abs( x ) <= w + v;
w <= 1; v >= 0;
cvx_end
This version of huber will in effect create sx “instances” of the problem in parallel; and when used in a
CVX specification, willbe handledcorrectly.
The second issue is that if the input to huber is numeric, then direct computation is a far more efficient
way to compute the result than solving a QP. (What is more, the multiobjective version cannot be used with
numeric inputs.) One solution is to place both versions in one file, with an appropriate test to select the
proper version to use:
function cvx_optval = huber( x )
if isnumeric( x ),
xa
= abs( x );
flag = xa < 1;
cvx_optval = flag .
*
xa.^2 + (~flag)
*
(2
*
xa-1);
else,
sx = size( x );
cvx_begin
variables w( sx ) v( sx );
minimize( w .^ 2 + 2
*
v );
subject to
abs( x ) <= w + v;
w <= 1; v >= 0;
cvx_end
end
Alternatively, you can create two separate versions of the function, one for numeric input and one for CVX
expressions, and place the CVX version in a subdirectory called @cvx. (Do not include this directory in
your Matlabpath;onlyinclude itsparent.) Matlab willautomaticallycalltheversion inthe @cvxdirectory
when one of the arguments is a CVX variable. This is the approach taken for the version of huber found
in the CVX atom library.
One good way to learn more about using incomplete specifications is to examine some of the examples
alreadyintheCVX atomlibrary. Goodchoices include huber, inv_pos, lambda_min, lambda_max,
matrix_frac, quad_over_lin, sum_largest, and others. Some are a bit difficult to read because
of diagnostic or error-checking code, but these are relativelysimple.
76
Chapter 11. Advanced topics
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
document file. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. Also a preview
how to bookmark a pdf file; edit pdf bookmarks
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Demo Code in VB.NET. The following VB.NET codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
create bookmarks pdf files; how to add bookmarks to pdf files
CHAPTER
TWELVE
LICENSE
CVX:A system for disciplined convex programming
©2012CVX Research, Inc., Austin, TX.
http://cvxr.com
info@cvxr.com
Thank you for using CVX!
The files contained in the CVX distribution come from several different sources and are covered under a
variety of licenses. Those files owned by CVX Research, Inc. are released under one of two licenses: the
CVXStandardLicenseandtheCVX ProfessionalLicense. The CVXProfessionalLicenseis nota permissive
license, and it does not permit redistribution. The CVX Standard License, on the other hand, is in fact the
GNU StandardLicense, Version 3, amended with a single additional permission.
12.1 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. 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 distribu-
tions, 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
77
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
creating bookmarks pdf; copy bookmarks from one pdf to another
C# PDF File Compress Library: Compress reduce PDF size in C#.net
NET framework. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. C# class demo
pdf create bookmarks; how to create bookmark in pdf with
The CVX Users’ Guide, Release 2.1
directly from our servers, so please feel free to refer people to our web site—even directly to ourdownload
page.
12.2 CVX Standard License
CVX also offers what we call “redistributable” packages that omitallof 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 fulltextof theGPLv3 is given inthe file GPL.txt found inthetopdirectory of theCVX package. Please
see Section 7 of this license for more information about additionalpermissions suchas the one offeredhere.
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.
12.3 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:
Youare freeto modify CVX toconnectto anysolver whose fullfunctionality isprovidedfree of
charge toallusers, evenif thesolver’slicense isotherwiseincompatible with theGNU Standard
License Version 3. This permissiondoes notapplytosolvers whichare free justto 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 resultingnexus of free and commercialsoftware presents a licensing challenge. Our visionis guidedby
three goals:
• to ensure thatCVX 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 com-
mercial 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 outhere are intended to supportthese 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
78
Chapter 12. License
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
Export PDF images to HTML images. The HTML document file, converted by C#.NET PDF to HTML SDK, preserves all the original anchors, links, bookmarks and font
create bookmark in pdf automatically; add bookmarks to pdf reader
How to C#: Basic SDK Concept of XDoc.PDF for .NET
C# programmers can convert Word, Excel, PowerPoint Tiff, Jpeg, Bmp, Png, and Gif to PDF document. This class describes bookmarks in a PDF document.
copy pdf bookmarks to another pdf; how to bookmark a page in pdf document
The CVX Users’ Guide, Release 2.1
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
youare under no obligation to dothis. Instead, you can ship the interface code with the solver itself;or you
can construct a modified versionof 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 madeavailabletoacademicacademicusersatnocharge. If you area vendor or developer
of a commercial solver, and would like to develop or offer a CVX interface to your users, please contact
us atinfo@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
yousupportour goal of making commercial solver capabilityavailable at no charge to academic customers;
and our licensing interface helps tofacilitate thatoffering.
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 atinfo@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.
12.4 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 notinclude
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
permissionof theauthors. The solvers SDPT3 and SeDuMiaresubject tothe termsof the GPLv2;therefore,
youare free to redistribute them under the terms of that license.
12.5 Example library
The contents of the example library, which is distributed with CVX in the examples/ subdirectory, is public
domain. Youarefree tousetheminany wayyouwish; butwhenyoudo, werequestthatyou giveappropriate
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 tooffer someexamples to be includedinthis library, and are willingto release them to the public
domain, please contact us!
12.6 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.
12.4. Bundled solvers
79
C# Create PDF Library SDK to convert PDF from other file formats
create searchable PDF document from Microsoft Office Word, Excel and PowerPoint. Create and save editable PDF with a blank page, bookmarks, links, signatures
convert word to pdf with bookmarks; bookmarks in pdf
VB.NET PDF: Basic SDK Concept of XDoc.PDF
VB.NET programmers can convert Word, Excel, PowerPoint Tiff, Jpeg, Bmp, Png, and Gif to PDF document. This class describes bookmarks in a PDF document.
how to add bookmarks to pdf document; create pdf bookmarks from word
The CVX Users’ Guide, Release 2.1
80
Chapter 12. License
CHAPTER
THIRTEEN
CITING CVX
If you are actively using CVX in teaching, research, or applications, and haven’t yet told us about it, please
do so! Drop us anemailatCVXResearchSupport. It is truly encouraging to hear aboutnew uses for CVX,
and we like to keep track of geographic and technicaldiversity of our user base. And of course, it is always
apleasure to receive an email at CVX Research Support that is not a bug report!
Are you using CVX in research work to be published? If so, please include explicit mention of our work in
your publication. We suggest language such as this:
To solve problem (17) we used CVX, a package for specifying and solving convex programs
[1],[2].
withthe following corresponding entries in your bibliography:
CVX Research, Inc. CVX: Matlab software for disciplined convex programming, version 2.0.
http://cvxr.com/cvx, April 2011.
M. Grant and S. Boyd. Graph implementations for nonsmooth convex programs, Recent Ad-
vances in Learning and Control (a tribute to M. Vidyasagar), V. Blondel, S. Boyd, and H.
Kimura, editors, pages 95-110, Lecture Notes in Control and Information Sciences, Springer,
2008.http://stanford.edu/~boyd/graph_dcp.html.
The corresponding BiBTeX citations are given below:
@misc{cvx,
author
= {CVX Research, Inc.},
title
= {{CVX}: Matlab Software for Disciplined Convex Programming, version 2.0},
howpublished = {\url{http://cvxr.com/cvx}},
month
= aug,
year
= 2012
}
@incollection{gb08,
author
= {M. Grant and S. Boyd},
title
= {Graph implementations for nonsmooth convex programs},
booktitle = {Recent Advances in Learning and Control},
series
= {Lecture Notes in Control and Information Sciences},
editor
= {V. Blondel and S. Boyd and H. Kimura},
publisher = {Springer-Verlag Limited},
pages
= {95--110},
year
= 2008,
note
= {\url{http://stanford.edu/~boyd/graph_dcp.html}}
}
81
The CVX Users’ Guide, Release 2.1
82
Chapter 13. Citing CVX
CHAPTER
FOURTEEN
CREDITS AND ACKNOWLEDGEMENTS
CVX was designed by Michael Grant and Stephen Boyd, with input from Yinyu Ye; and was implemented
by Michael Grant[GBY06]. Itincorporates ideas from earlier works by Löfberg[Löf04], Dahland[DV04],
Wu and Boyd[WB00], and many others. The modeling language follows the spirit ofAMPLorGAMS;
unlike these packages, however, CVX was designed from the beginning to fully exploit convexity. The
specific method for implementing CVX in Matlab draws heavily fromYALMIP.
We wish to thank the following people for their contributions: Toh Kim Chuan, Laurent El Ghaoui, Arpita
Ghosh, SiddharthJoshi, JohanLöberg,Almir Mutapcic, Michael Overtonandhis students,ArtOwen, Rahul
Panicker, Imre Polik, Joëlle Skaf, Lieven Vandenberghe, Argyris Zymnis. We are also grateful to the many
students in severaluniversities who have (perhaps unwittingly) servedas beta testers by using CVX in their
classwork. We thankIgalSasonfor catchingmanytyposinanearlier versionofthisdocument, andgenerally
helping us to improve its clarity.
Wewouldliketo thankGurobiOptimizationandMOSEKApSfortheir generousassistanceaswedeveloped
the interfaces to their commercial products.
83
The CVX Users’ Guide, Release 2.1
84
Chapter 14. Credits and Acknowledgements
Documents you may be interested
Documents you may be interested