PHCpack, phcpy, and Sphinx

Size: px
Start display at page:

Download "PHCpack, phcpy, and Sphinx"

Transcription

1 PHCpack, phcpy, and Sphinx 1 the software PHCpack a package for Polynomial Homotopy Continuation polyhedral homotopies the Python interface phcpy 2 Documenting Software with Sphinx Sphinx generates documentation generating documentation for phcpy 3 Interface Design PHCpack as a state machine MCS 507 Lecture 40 Mathematical, Statistical and Scientific Software Jan Verschelde, 30 November 2012 Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

2 PHCpack, phcpy, and Sphinx 1 the software PHCpack a package for Polynomial Homotopy Continuation polyhedral homotopies the Python interface phcpy 2 Documenting Software with Sphinx Sphinx generates documentation generating documentation for phcpy 3 Interface Design PHCpack as a state machine Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

3 PHCpack PHCpack is a software package to solve polynomial systems with polyhedral and numerical methods. PHCpack consists of 1 open source code in Ada with interfaces to C and Python, compiles with gcc, available as a software package; 2 an executable program phc for various platforms with interfaces for Maple, MATLAB (Octave), Macaulay 2, and Sage (PHCpack is one of the optional packages). ACM TOMS archived version 1.0 of PHCpack as Algorithm 795. The current version is , available at: jan/download.html Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

4 symbolic-numeric view on polynomial homotopies Our goal is to solve a polynomial system f(x) = 0. A polynomial homotopy continuation method consists in two parts: 1 definition of a family of systems, a homotopy, e.g.: h(x, t) = (1 t) g(x) + t f(x) = 0, t [0, 1], where g(x) = 0 is a generic system with known solutions; 2 path tracking or continuation methods using predictor-corrector to approximate solution paths x(t) defined by h(x(t), t) = 0. A homotopy is optimal if no paths diverge. We have optimal homotopies for several classes of systems, e.g.: polyhedral homotopies for sparse systems with fixed supports. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

5 software integrated in PHCpack To compute mixed volumes fast: T. Gao, T.Y. Li, and M. Wu: Algorithm 846: MixedVol: A software package for mixed volume computation. ACM Trans. Math. Softw. 31(4): , For fast extended multiprecision arithmetic: Y. Hida, X.S. Li, and D.H. Bailey: Algorithms for quad-double precision floating point arithmetic. In 15th IEEE Symposium on Computer Arithmetic pages IEEE, Software at dhbailey/mpdist/qd tar.gz. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

6 PHCpack, phcpy, and Sphinx 1 the software PHCpack a package for Polynomial Homotopy Continuation polyhedral homotopies the Python interface phcpy 2 Documenting Software with Sphinx Sphinx generates documentation generating documentation for phcpy 3 Interface Design PHCpack as a state machine Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

7 Newton polytopes The support A of a polynomial f is a finite set of exponent vectors which models the sparse structure of f : f(x) = a A c a x a, c a C, x a = x a 1 1 x a 2 2 x an n. The convex hull of A is the Newton polytope of f, denoted by Q = conv(a). Mostly we work in the plane (n = 2) and stick to polygons. Today we consider systems f(x) = 0 where the equations all share the same support A, or the same Newton polytope Q. For generic choices of the coefficients, the monomials whose exponent vector is not a vertex do not have an influence on the volume of Q and may be omitted. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

8 regular triangulations With a triangulation, we compute the volume: vol(q) = S vol(s) S = conv(c), #C = n + 1. The cells C in a triangulation span simplices S. For Newton polytopes, the unit simplex has volume 1. Our triangulations are induced by a lifting function ω: ω : Z n Z : a ω(a), which embeds the support A into Z n+1, Â = ω(a). Accordingly: Q = conv(â). A triangulation is regular if there is a lifting function so there is a 1-to-1 mapping of the facets of the lower hull of the lifted point configuration and the simplices in the triangulation. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

9 polyhedral homotopy To construct the homotopy that starts at system supported at the other cell of the triangulation, we look at the inner normal of the lifted cell, i.e.: v = ( 1, 1,+1). This inner normal defines the change of coordinates x 1 = y 1 t 1 and x 2 = y 2 t 1. After multiplication by t, this change of coordinates yields { c1,11 y ĝ(y, t) = 1 y 2 t 0 + c 1,10 y 1 t 0 + c 1,01 y 2 t 0 + c 1,00 t 1 = 0 c 2,11 y 1 y 2 t 0 + c 2,10 y 1 t 0 + c 2,01 y 2 t 0 + c 2,00 t 1 = 0. At ĝ(y, t = 0) = 0 there is another solution which contributes one path. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

10 Kushnirenko s theorem Theorem (Kushnirenko (1976)) Consider the system f(x) = 0 and let A be the support of every polynomial in f. Then the number of isolated solutions of f(x) = 0 in (C ) n cannot exceed the volume of the polytope spanned by A. Polyhedral homotopies provide a constructive proof: 1 Any regular triangulation defines a polyhedral homotopy with exactly as many paths as the volume. 2 There are no more solutions than the volume of the Newton polytope, following a refined concept of. Kushnirenko s theorem was generalized by Bernshteǐn who showed that the mixed volume of Newton polytopes of the system provide a generically share upper bound for the isolated solutions. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

11 PHCpack, phcpy, and Sphinx 1 the software PHCpack a package for Polynomial Homotopy Continuation polyhedral homotopies the Python interface phcpy 2 Documenting Software with Sphinx Sphinx generates documentation generating documentation for phcpy 3 Interface Design PHCpack as a state machine Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

12 a session with phcpy >>> import phcpy >>> p = [ x*y + 2*x - 3;, x**2 + y; ] >>> phcpy.mixed_volume(p) 3 >>> s = phcpy.solve(p) ROOT COUNTS : total degree : 4 2-homogeneous Bezout number : 3 with partition : {x }{y } general linear-product Bezout number : 3 based on the set structure : { x }{ y } { x y }{ x } mixed volume : 3 stable mixed volume : 3 Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

13 the solutions >>> print s[0] t : E E+00 m : 1 the solution for t : x : E E-01 y : E E+00 == err : 4.154E-16 = rco : 1.496E-01 = res : 1.665E-16 = >>> print s[1] t : E E+00 m : 1 the solution for t : x : E E-122 y : E E+00 == err : 2.428E-16 = rco : 2.059E-01 = res : 2.220E-16 = >>> print s[2] s[2] is the complex conjugate of s[1]. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

14 representations of polynomials and solutions Polynomials are mapped to file similar to plain string conversion in computer algebra and can be parsed in a direct manner. Symbols not to use as variable names: i, I, e, E. A solution is represented by 1 a value for the continuation parameter t; 2 a multiplicity flag; 3 real and imaginary parts as values for the variables; 4 three numerical attributes for an approximate zero z: 1 err z, or estimate for forward error; 2 rco: estimate for the inverse of the condition number; 3 res: f(z), or estimate for backward error. Newton s method with extended precision refines a regular solution. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

15 PHCpack, phcpy, and Sphinx 1 the software PHCpack a package for Polynomial Homotopy Continuation polyhedral homotopies the Python interface phcpy 2 Documenting Software with Sphinx Sphinx generates documentation generating documentation for phcpy 3 Interface Design PHCpack as a state machine Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

16 Sphinx generates documentation What is Sphinx? From Sphinx is a tool that makes it easy to create intelligent and beautiful documentation, written by Georg Brandl and licensed under the BSD license. It was originally created for the new Python documentation, and it has excellent facilities for the documentation of Python projects, but C/C++ is already supported as well, and it is planned to add special support for other languages as well. Sphinx uses restructuredtext as its markup language, and many of its strengths come from the power and straightforwardness of restructuredtext and its parsing and translating suite, the Docutils. The same documentation is generated in several formats, including latex, pdf, html. Why Sphinx? Used for the python language, numpy, sympy, matplotlib. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

17 step-by-step documentation generation Given Python code with documentation strings, generate documentation with Sphinx. There are a few steps to take: 1 Make a new directory doc and do "cd doc". 2 Run sphinx-quickstart in the doc directory. Following default options, doc contains a "Makefile" and two directories: "build" and "source". 3 Edit conf.py in source as follows: sys.path.insert(0, os.path.abspath( <path> )) where <path> is the directory where our Python code is. 4 Edit index.rst with ".. automodule::" lines. 5 Type "make latexpdf" or "make html" to generate. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

18 PHCpack, phcpy, and Sphinx 1 the software PHCpack a package for Polynomial Homotopy Continuation polyhedral homotopies the Python interface phcpy 2 Documenting Software with Sphinx Sphinx generates documentation generating documentation for phcpy 3 Interface Design PHCpack as a state machine Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

19 running sphinx-quickstart The doc directory is in PHCv2/Python. Running sphinx-quickstart, some items: The root path is the current directory [.] if we run sphinx-quickstart in the doc directory. We want separate source and build directories. We can enter project name, author, version, and release numbers. Source files have suffix.rst. The master document is "index". We answer y to "autodoc" because we want automatically insert docstrings from modules. We answer y to "viewcode" to include links to the source code of documented Python objects. We also answer y to "Create Makefile?" Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

20 editing conf.py The source directory contains a file "conf.py" which we have to edit. On Mac OS X: sys.path.insert(0, \ os.path.abspath( /Users/jan/PHCv2/Python )) On Linux: sys.path.insert(0, \ os.path.abspath( /home/jan/phcv2/python )) Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

21 editing index.rst Downloading PHCpack The source for PHCpack can be downloaded from < The Python interface phcpy to PHCpack is a programmer s interface. You will need to compile the source code of PHCpack with the GNU Ada compiler, available at < Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

22 use of automodule in index.rst the functions of phcpy The module phcpy depends on the shared object file phcpy2c.so. It exports the blackbox solver of PHCpack, a fast mixed volume calculator, and a path tracker. The test function of the module generates two trinomials (a polynomial with three monomials) with randomly generated complex coefficients... automodule:: phcpy :members: Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

23 documenting examples some important examples PHCpack has been tested on many examples of polynomial systems taken from the research literature. The module examples exports some of those examples... automodule:: examples :members: Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

24 documenting phcwulf the module phcwulf The file phcwulf defines a simple client/server interaction to solve many random trinomials... automodule:: phcwulf :members: Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

25 documenting phcsols the module phcsols Solutions of phcpy.solve are returned as lists of PHCpack solution strings. The phcsols module contains functions to parse a PHCpack solution string into a dictionary... automodule:: phcsols :members: Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

26 PHCpack, phcpy, and Sphinx 1 the software PHCpack a package for Polynomial Homotopy Continuation polyhedral homotopies the Python interface phcpy 2 Documenting Software with Sphinx Sphinx generates documentation generating documentation for phcpy 3 Interface Design PHCpack as a state machine Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

27 PHCpack as a state machine phcpy is build on top of the C interface to PHCpack. The C interface was developed for the parallel versions of the path trackers in PHCpack. The main program, written in C, does the scheduling of the path tracking jobs, using the Message Passing Interface (MPI). Every job makes calls to the path trackers of PHCpack, the code written in Ada. The C interface should remain light, without having to duplicate the data structures for polynomials and solutions. Idea: we can build up a polynomial adding one term at a time, with calls to an interface routine. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

28 code of phcpy.solve def solve(l): """ Calls the blackbox solver of PHCpack. On input in L is a list of strings. """ py2c_syscon_clear_system() py2c_solcon_clear_solutions() n = len(l) m = py2c_syscon_initialize_number(n) for i in range(0,n): p = L[i] nc = len(p) py2c_syscon_store_polynomial(nc,n,i+1,p) Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

29 code of phcpy.solve continued rc = py2c_solve_system() ns = py2c_solcon_number_of_solutions() R = [] for k in range(1,ns+1): lns = py2c_solcon_length_solution_string(k) sol = py2c_solcon_write_solution_string(k,lns) R.append(sol) return R Advantage: the Python code deals only with strings. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

30 Summary and Exercises We do not release source code without documentation. Sphinx generates documention automatically. Try to use Sphinx in your final project! Last Homework due Wednesday 5 December, at 10AM: exercise 3 of lecture 27; exercise 2 of lecture 28; exercise 2 of lecture 29; exercise 1 of lecture 30; and exercise 2 of lecture 31. Scientific Software (MCS 507) PHCpack, phcpy, and Sphinx 30 November / 30

Packaging Python code and Sphinx

Packaging Python code and Sphinx Packaging Python code and Sphinx 1 Python packages extending Python with your own package making ourfirstpackage 2 the software PHCpack a package for Polynomial Homotopy Continuation polyhedral homotopies

More information

phcpy: an API for PHCpack

phcpy: an API for PHCpack phcpy: an API for PHCpack Jan Verschelde University of Illinois at Chicago Department of Mathematics, Statistics, and Computer Science http://www.math.uic.edu/ jan jan@math.uic.edu Graduate Computational

More information

turning expressions into functions symbolic substitution, series, and lambdify

turning expressions into functions symbolic substitution, series, and lambdify Defining Functions 1 Lambda Functions turning expressions into functions symbolic substitution, series, and lambdify 2 Functions and Modules writing a function definition defining and using modules where

More information

Solving Polynomial Systems with PHCpack and phcpy

Solving Polynomial Systems with PHCpack and phcpy Solving Polynomial Systems with PHCpack and phcpy Jan Verschelde University of Illinois at Chicago Department of Mathematics, Statistics, and Computer Science http://www.math.uic.edu/ jan jan@math.uic.edu

More information

Polynomial Homotopy Continuation on Graphics Processing Units

Polynomial Homotopy Continuation on Graphics Processing Units Polynomial Homotopy Continuation on Graphics Processing Units Jan Verschelde joint work with Xiangcheng Yu University of Illinois at Chicago Department of Mathematics, Statistics, and Computer Science

More information

solving polynomial systems in the cloud with phc

solving polynomial systems in the cloud with phc solving polynomial systems in the cloud with phc Jan Verschelde University of Illinois at Chicago Department of Mathematics, Statistics, and Computer Science http://www.math.uic.edu/ jan jan@math.uic.edu

More information

Gift Wrapping for Pretropisms

Gift Wrapping for Pretropisms Gift Wrapping for Pretropisms Jan Verschelde University of Illinois at Chicago Department of Mathematics, Statistics, and Computer Science http://www.math.uic.edu/ jan jan@math.uic.edu Graduate Computational

More information

Accelerating Polynomial Homotopy Continuation on a Graphics Processing Unit with Double Double and Quad Double Arithmetic

Accelerating Polynomial Homotopy Continuation on a Graphics Processing Unit with Double Double and Quad Double Arithmetic Accelerating Polynomial Homotopy Continuation on a Graphics Processing Unit with Double Double and Quad Double Arithmetic Jan Verschelde joint work with Xiangcheng Yu University of Illinois at Chicago

More information

Polyhedral Homotopies

Polyhedral Homotopies Polyhedral Homotopies Polyhedral homotopies provide proof that mixed volumes count the roots of random coefficient polynomial systems. Mixed-cell configurations store the supports of all start systems

More information

The Gift Wrapping Method in PHCpack

The Gift Wrapping Method in PHCpack The Gift Wrapping Method in PHCpack Jan Verschelde University of Illinois at Chicago Department of Mathematics, Statistics, and Computer Science http://www.math.uic.edu/ jan jan@math.uic.edu Graduate Computational

More information

Computing all Space Curve Solutions of Polynomial Systems by Polyhedral Methods

Computing all Space Curve Solutions of Polynomial Systems by Polyhedral Methods Computing all Space Curve Solutions of Polynomial Systems by Polyhedral Methods Nathan Bliss Jan Verschelde University of Illinois at Chicago Department of Mathematics, Statistics, and Computer Science

More information

Root Finding Methods. sympy and Sage. MCS 507 Lecture 13 Mathematical, Statistical and Scientific Software Jan Verschelde, 21 September 2011

Root Finding Methods. sympy and Sage. MCS 507 Lecture 13 Mathematical, Statistical and Scientific Software Jan Verschelde, 21 September 2011 wrap Root Finding Methods 1 2 wrap MCS 507 Lecture 13 Mathematical, Statistical and Scientific Software Jan Verschelde, 21 September 2011 Root Finding Methods 1 wrap 2 wrap wrap octave-3.4.0:1> p = [1,0,2,-1]

More information

LECTURE 26. Documenting Python

LECTURE 26. Documenting Python LECTURE 26 Documenting Python DOCUMENTATION Being able to properly document code, especially large projects with multiple contributors, is incredibly important. Code that is poorly-documented is sooner

More information

How to Contribute to a Sphinx Doc Documentation

How to Contribute to a Sphinx Doc Documentation How to Contribute to a Sphinx Doc Documentation Release 1.0 Haoxi Zhan December 18, 2013 Contents 1 Install Sphinx 3 1.1 Linux................................................... 3 1.2 Mac OS X................................................

More information

Tropical Implicitization

Tropical Implicitization Tropical Implicitization Jan Verschelde University of Illinois at Chicago Department of Mathematics Statistics and Computer Science http://www.math.uic.edu/ jan jan@math.uic.edu Graduate Computational

More information

On Massively Parallel Algorithms to Track One Path of a Polynomial Homotopy

On Massively Parallel Algorithms to Track One Path of a Polynomial Homotopy On Massively Parallel Algorithms to Track One Path of a Polynomial Homotopy Jan Verschelde joint with Genady Yoffe and Xiangcheng Yu University of Illinois at Chicago Department of Mathematics, Statistics,

More information

Exact Gift Wrapping to Prune the Tree of Edges of Newton Polytopes to Compute Pretropisms

Exact Gift Wrapping to Prune the Tree of Edges of Newton Polytopes to Compute Pretropisms Exact Gift Wrapping to Prune the Tree of Edges of Newton Polytopes to Compute Pretropisms Jeff Sommars Jan Verschelde University of Illinois at Chicago Department of Mathematics, Statistics, and Computer

More information

Interval Arithmetic. MCS 507 Lecture 29 Mathematical, Statistical and Scientific Software Jan Verschelde, 28 October 2011

Interval Arithmetic. MCS 507 Lecture 29 Mathematical, Statistical and Scientific Software Jan Verschelde, 28 October 2011 Naive Arithmetic 1 2 Naive 3 MCS 507 Lecture 29 Mathematical, Statistical and Scientific Software Jan Verschelde, 28 October 2011 Naive Arithmetic 1 2 Naive 3 an expression Naive Problem: Evaluate f(x,

More information

phcpy Documentation Release Jan Verschelde

phcpy Documentation Release Jan Verschelde phcpy Documentation Release 0.8.7 Jan Verschelde Sep 27, 2018 Contents 1 Getting Started 1 1.1 what is phcpy?.............................................. 1 1.2 installing phcpy.............................................

More information

Floating-Point Arithmetic

Floating-Point Arithmetic Floating-Point Arithmetic 1 Numerical Analysis a definition sources of error 2 Floating-Point Numbers floating-point representation of a real number machine precision 3 Floating-Point Arithmetic adding

More information

docs-python2readthedocs Documentation

docs-python2readthedocs Documentation docs-python2readthedocs Documentation Release 0.1.0 Matthew John Hayes Dec 01, 2017 Contents 1 Introduction 3 2 Install Sphinx 5 2.1 Pre-Work................................................. 5 2.2 Sphinx

More information

A NEW VIEW ON THE CAYLEY TRICK

A NEW VIEW ON THE CAYLEY TRICK A NEW VIEW ON THE CAYLEY TRICK KONRAD-ZUSE-ZENTRUM FÜR INFORMATIONSTECHNIK (ZIB) TAKUSTR. 7 D-14195 BERLIN GERMANY email: rambau@zib.de joint work with: BIRKETT HUBER, FRANCISCO SANTOS, Mathematical Sciences

More information

Module 7 Highlights. Mastered Reviewed. Sections ,

Module 7 Highlights. Mastered Reviewed. Sections , Sections 5.3 5.6, 6.1 6.6 Module 7 Highlights Andrea Hendricks Math 0098 Pre-college Algebra Topics Degree & leading coeff. of a univariate polynomial (5.3, Obj. 1) Simplifying a sum/diff. of two univariate

More information

Monotone Paths in Geometric Triangulations

Monotone Paths in Geometric Triangulations Monotone Paths in Geometric Triangulations Adrian Dumitrescu Ritankar Mandal Csaba D. Tóth November 19, 2017 Abstract (I) We prove that the (maximum) number of monotone paths in a geometric triangulation

More information

MATH 890 HOMEWORK 2 DAVID MEREDITH

MATH 890 HOMEWORK 2 DAVID MEREDITH MATH 890 HOMEWORK 2 DAVID MEREDITH (1) Suppose P and Q are polyhedra. Then P Q is a polyhedron. Moreover if P and Q are polytopes then P Q is a polytope. The facets of P Q are either F Q where F is a facet

More information

AMS209 Final Project: Linear Equations System Solver

AMS209 Final Project: Linear Equations System Solver AMS209 Final Project: Linear Equations System Solver Rene Gutierrez Marquez 1 UCSC 1 December 7, 2016 Abstract In this project an implementation of a solver of a system of linear equations is implemented.

More information

operator overloading algorithmic differentiation the class DifferentialNumber operator overloading

operator overloading algorithmic differentiation the class DifferentialNumber operator overloading operator overloading 1 Computing with Differential Numbers algorithmic differentiation the class DifferentialNumber operator overloading 2 Computing with Double Doubles the class DoubleDouble defining

More information

Algebraic Methods for Counting Euclidean Embeddings of Rigid Graphs

Algebraic Methods for Counting Euclidean Embeddings of Rigid Graphs Algebraic Methods for Counting Euclidean Embeddings of Rigid Graphs Ioannis Z. Emiris 1, Elias P. Tsigaridas 2, and Antonios E. Varvitsiotis 3 1 University of Athens, Athens, Greece 2 INRIA Méditerranée,

More information

Web Interfaces. the web server Apache processing forms with Python scripts Python code to write HTML

Web Interfaces. the web server Apache processing forms with Python scripts Python code to write HTML Web Interfaces 1 Python Scripts in Browsers the web server Apache processing forms with Python scripts Python code to write HTML 2 Web Interfaces for the Determinant dynamic interactive forms passing data

More information

Directed acyclic decomposition of Kuramoto equations

Directed acyclic decomposition of Kuramoto equations Directed acyclic decomposition of Kuramoto equations Tianran Chen Abstract. The Kuramoto model is one of the most widely studied model for describing synchronization behaviors in a network of coupled oscillators,

More information

h-polynomials of triangulations of flow polytopes (Cornell University)

h-polynomials of triangulations of flow polytopes (Cornell University) h-polynomials of triangulations of flow polytopes Karola Mészáros (Cornell University) h-polynomials of triangulations of flow polytopes (and of reduction trees) Karola Mészáros (Cornell University) Plan

More information

Numerical Integration

Numerical Integration Numerical Integration 1 Functions using Functions functions as arguments of other functions the one-line if-else statement functions returning multiple values 2 Constructing Integration Rules with sympy

More information

COMBINATORIAL COMMUTATIVE ALGEBRA. Fatemeh Mohammadi (University of Bristol)

COMBINATORIAL COMMUTATIVE ALGEBRA. Fatemeh Mohammadi (University of Bristol) COMBINATORIAL COMMUTATIVE ALGEBRA Fatemeh Mohammadi (University of Bristol) Abstract. In this lecture we focus on the ideals associated to graphs. We see many interesting examples in which the Betti numbers

More information

Geometric Algorithms in Three Dimensions Tutorial. FSP Seminar, Strobl,

Geometric Algorithms in Three Dimensions Tutorial. FSP Seminar, Strobl, Geometric Algorithms in Three Dimensions Tutorial FSP Seminar, Strobl, 22.06.2006 Why Algorithms in Three and Higher Dimensions Which algorithms (convex hulls, triangulations etc.) can be generalized to

More information

Convex Geometry arising in Optimization

Convex Geometry arising in Optimization Convex Geometry arising in Optimization Jesús A. De Loera University of California, Davis Berlin Mathematical School Summer 2015 WHAT IS THIS COURSE ABOUT? Combinatorial Convexity and Optimization PLAN

More information

Triangulations Of Point Sets

Triangulations Of Point Sets Triangulations Of Point Sets Applications, Structures, Algorithms. Jesús A. De Loera Jörg Rambau Francisco Santos MSRI Summer school July 21 31, 2003 (Book under construction) Triangulations Of Point Sets

More information

1. How many white tiles will be in Design 5 of the pattern? Explain your reasoning.

1. How many white tiles will be in Design 5 of the pattern? Explain your reasoning. Algebra 2 Semester 1 Review Answer the question for each pattern. 1. How many white tiles will be in Design 5 of the pattern Explain your reasoning. 2. What is another way to represent the expression 3.

More information

Newton Polygons of L-Functions

Newton Polygons of L-Functions Newton Polygons of L-Functions Phong Le Department of Mathematics University of California, Irvine June 2009/Ph.D. Defense Phong Le Newton Polygons of L-Functions 1/33 Laurent Polynomials Let q = p a where

More information

be a polytope. has such a representation iff it contains the origin in its interior. For a generic, sort the inequalities so that

be a polytope. has such a representation iff it contains the origin in its interior. For a generic, sort the inequalities so that ( Shelling (Bruggesser-Mani 1971) and Ranking Let be a polytope. has such a representation iff it contains the origin in its interior. For a generic, sort the inequalities so that. a ranking of vertices

More information

MAT128A: Numerical Analysis Lecture One: Course Logistics and What is Numerical Analysis?

MAT128A: Numerical Analysis Lecture One: Course Logistics and What is Numerical Analysis? MAT128A: Numerical Analysis Lecture One: Course Logistics and What is Numerical Analysis? September 26, 2018 Lecture 1 September 26, 2018 1 / 19 Course Logistics My contact information: James Bremer Email:

More information

Running Cython. overview hello world with Cython. experimental setup adding type declarations cdef functions & calling external functions

Running Cython. overview hello world with Cython. experimental setup adding type declarations cdef functions & calling external functions Running Cython 1 Getting Started with Cython overview hello world with Cython 2 Numerical Integration experimental setup adding type declarations cdef functions & calling external functions 3 Using Cython

More information

Convex Hulls in Three Dimensions. Polyhedra

Convex Hulls in Three Dimensions. Polyhedra Convex Hulls in Three Dimensions Polyhedra Polyhedron 1.A polyhedron is the generalization of a 2- D polygon to 3-D A finite number of flat polygonal faces The boundary or surface of a polyhedron - Zero-dimensional

More information

Institutionen för matematik, KTH.

Institutionen för matematik, KTH. Institutionen för matematik, KTH. Chapter 10 projective toric varieties and polytopes: definitions 10.1 Introduction Tori varieties are algebraic varieties related to the study of sparse polynomials.

More information

Lists and Loops. defining lists lists as queues and stacks inserting and removing membership and ordering lists

Lists and Loops. defining lists lists as queues and stacks inserting and removing membership and ordering lists Lists and Loops 1 Lists in Python defining lists lists as queues and stacks inserting and removing membership and ordering lists 2 Loops in Python for and while loops the composite trapezoidal rule MCS

More information

Chapter 8. Voronoi Diagrams. 8.1 Post Oce Problem

Chapter 8. Voronoi Diagrams. 8.1 Post Oce Problem Chapter 8 Voronoi Diagrams 8.1 Post Oce Problem Suppose there are n post oces p 1,... p n in a city. Someone who is located at a position q within the city would like to know which post oce is closest

More information

Defining Functions. turning expressions into functions. writing a function definition defining and using modules

Defining Functions. turning expressions into functions. writing a function definition defining and using modules Defining Functions 1 Lambda Functions turning expressions into functions 2 Functions and Modules writing a function definition defining and using modules 3 Computing Series Developments exploring an example

More information

CS599: Convex and Combinatorial Optimization Fall 2013 Lecture 4: Convex Sets. Instructor: Shaddin Dughmi

CS599: Convex and Combinatorial Optimization Fall 2013 Lecture 4: Convex Sets. Instructor: Shaddin Dughmi CS599: Convex and Combinatorial Optimization Fall 2013 Lecture 4: Convex Sets Instructor: Shaddin Dughmi Announcements New room: KAP 158 Today: Convex Sets Mostly from Boyd and Vandenberghe. Read all of

More information

SphinxTutorial Documentation

SphinxTutorial Documentation SphinxTutorial Documentation Release 1.0 Anthony Scemama April 12, 2013 CONTENTS 1 Introduction 3 2 Creating a new Sphinx project 5 3 restructuredtext 9 3.1 Sections..................................................

More information

Amphitheater School District End Of Year Algebra II Performance Assessment Review

Amphitheater School District End Of Year Algebra II Performance Assessment Review Amphitheater School District End Of Year Algebra II Performance Assessment Review This packet is intended to support student preparation and review for the Algebra II course concepts for the district common

More information

The important function we will work with is the omega map ω, which we now describe.

The important function we will work with is the omega map ω, which we now describe. 20 MARGARET A. READDY 3. Lecture III: Hyperplane arrangements & zonotopes; Inequalities: a first look 3.1. Zonotopes. Recall that a zonotope Z can be described as the Minkowski sum of line segments: Z

More information

FACES OF CONVEX SETS

FACES OF CONVEX SETS FACES OF CONVEX SETS VERA ROSHCHINA Abstract. We remind the basic definitions of faces of convex sets and their basic properties. For more details see the classic references [1, 2] and [4] for polytopes.

More information

Lecture 12 March 4th

Lecture 12 March 4th Math 239: Discrete Mathematics for the Life Sciences Spring 2008 Lecture 12 March 4th Lecturer: Lior Pachter Scribe/ Editor: Wenjing Zheng/ Shaowei Lin 12.1 Alignment Polytopes Recall that the alignment

More information

Effective Programming Practices for Economists. 13. Documenting (the code of) research projects

Effective Programming Practices for Economists. 13. Documenting (the code of) research projects Effective Programming Practices for Economists 13. Documenting (the code of) research projects Hans-Martin von Gaudecker Department of Economics, Universität Bonn At the end of this lecture you are able

More information

Lecture 2 - Introduction to Polytopes

Lecture 2 - Introduction to Polytopes Lecture 2 - Introduction to Polytopes Optimization and Approximation - ENS M1 Nicolas Bousquet 1 Reminder of Linear Algebra definitions Let x 1,..., x m be points in R n and λ 1,..., λ m be real numbers.

More information

An Introduction to Open-Source Mathematics Software

An Introduction to Open-Source Mathematics Software 1 An Introduction to Open-Source Mathematics Software (Specifically: GAP,, Macaulay2 and Sage) Jason B. Hill Slow Pitch Colloquium University of Colorado March 17, 2010 2 Outline 1 Introduction 2 GAP -

More information

Welcome to Bootcamp2015 s documentation!

Welcome to Bootcamp2015 s documentation! Welcome to Bootcamp2015 s documentation! This website (or pdf) will be home to some resources that will be useful for boot campers and instructors. Lecture notes and assignments for the econ course associated

More information

Outline. software testing: search bugs black-box and white-box testing static and dynamic testing

Outline. software testing: search bugs black-box and white-box testing static and dynamic testing Outline 1 Verification Techniques software testing: search bugs black-box and white-box testing static and dynamic testing 2 Programming by Contract assert statements in Python using preconditions and

More information

Math 414 Lecture 2 Everyone have a laptop?

Math 414 Lecture 2 Everyone have a laptop? Math 44 Lecture 2 Everyone have a laptop? THEOREM. Let v,...,v k be k vectors in an n-dimensional space and A = [v ;...; v k ] v,..., v k independent v,..., v k span the space v,..., v k a basis v,...,

More information

Polytopes With Large Signature

Polytopes With Large Signature Polytopes With Large Signature Joint work with Michael Joswig Nikolaus Witte TU-Berlin / TU-Darmstadt witte@math.tu-berlin.de Algebraic and Geometric Combinatorics, Anogia 2005 Outline 1 Introduction Motivation

More information

Pruning Algorithms for Pretropisms of Newton Polytopes

Pruning Algorithms for Pretropisms of Newton Polytopes Pruning Algorithms for Pretropisms of Newton Polytopes Jeff Sommars Jan Verschelde University of Illinois at Chicago Department of Mathematics, Statistics, and Computer Science 851 S. Morgan Street (m/c

More information

Today s class. Roots of equation Finish up incremental search Open methods. Numerical Methods, Fall 2011 Lecture 5. Prof. Jinbo Bi CSE, UConn

Today s class. Roots of equation Finish up incremental search Open methods. Numerical Methods, Fall 2011 Lecture 5. Prof. Jinbo Bi CSE, UConn Today s class Roots of equation Finish up incremental search Open methods 1 False Position Method Although the interval [a,b] where the root becomes iteratively closer with the false position method, unlike

More information

60 2 Convex sets. {x a T x b} {x ã T x b}

60 2 Convex sets. {x a T x b} {x ã T x b} 60 2 Convex sets Exercises Definition of convexity 21 Let C R n be a convex set, with x 1,, x k C, and let θ 1,, θ k R satisfy θ i 0, θ 1 + + θ k = 1 Show that θ 1x 1 + + θ k x k C (The definition of convexity

More information

Computation of Voronoi Diagrams and Delaunay Triangulation via Parametric Linear Programming

Computation of Voronoi Diagrams and Delaunay Triangulation via Parametric Linear Programming Computation of Voronoi Diagrams and Delaunay Triangulation via Parametric Linear Programming Saša V. Raković, Pascal Grieder and Colin Jones September 14, 2004 Abstract This note illustrates how Voronoi

More information

Fully discrete Finite Element Approximations of Semilinear Parabolic Equations in a Nonconvex Polygon

Fully discrete Finite Element Approximations of Semilinear Parabolic Equations in a Nonconvex Polygon Fully discrete Finite Element Approximations of Semilinear Parabolic Equations in a Nonconvex Polygon Tamal Pramanick 1,a) 1 Department of Mathematics, Indian Institute of Technology Guwahati, Guwahati

More information

Stable sets, corner polyhedra and the Chvátal closure

Stable sets, corner polyhedra and the Chvátal closure Stable sets, corner polyhedra and the Chvátal closure Manoel Campêlo Departamento de Estatística e Matemática Aplicada, Universidade Federal do Ceará, Brazil, mcampelo@lia.ufc.br. Gérard Cornuéjols Tepper

More information

The Cantor Handbook. Alexander Rieder

The Cantor Handbook. Alexander Rieder Alexander Rieder 2 Contents 1 Introduction 5 2 Using Cantor 6 2.1 Cantor features....................................... 6 2.2 The Cantor backends.................................... 7 2.3 The Cantor Workspace...................................

More information

POLYHEDRAL GEOMETRY. Convex functions and sets. Mathematical Programming Niels Lauritzen Recall that a subset C R n is convex if

POLYHEDRAL GEOMETRY. Convex functions and sets. Mathematical Programming Niels Lauritzen Recall that a subset C R n is convex if POLYHEDRAL GEOMETRY Mathematical Programming Niels Lauritzen 7.9.2007 Convex functions and sets Recall that a subset C R n is convex if {λx + (1 λ)y 0 λ 1} C for every x, y C and 0 λ 1. A function f :

More information

Scientific Computing: Lecture 1

Scientific Computing: Lecture 1 Scientific Computing: Lecture 1 Introduction to course, syllabus, software Getting started Enthought Canopy, TextWrangler editor, python environment, ipython, unix shell Data structures in Python Integers,

More information

In what follows, we will focus on Voronoi diagrams in Euclidean space. Later, we will generalize to other distance spaces.

In what follows, we will focus on Voronoi diagrams in Euclidean space. Later, we will generalize to other distance spaces. Voronoi Diagrams 4 A city builds a set of post offices, and now needs to determine which houses will be served by which office. It would be wasteful for a postman to go out of their way to make a delivery

More information

arxiv: v1 [math.co] 27 Feb 2015

arxiv: v1 [math.co] 27 Feb 2015 Mode Poset Probability Polytopes Guido Montúfar 1 and Johannes Rauh 2 arxiv:1503.00572v1 [math.co] 27 Feb 2015 1 Max Planck Institute for Mathematics in the Sciences, Inselstraße 22, 04103 Leipzig, Germany,

More information

Reductions and Satisfiability

Reductions and Satisfiability Reductions and Satisfiability 1 Polynomial-Time Reductions reformulating problems reformulating a problem in polynomial time independent set and vertex cover reducing vertex cover to set cover 2 The Satisfiability

More information

Integer Programming Theory

Integer Programming Theory Integer Programming Theory Laura Galli October 24, 2016 In the following we assume all functions are linear, hence we often drop the term linear. In discrete optimization, we seek to find a solution x

More information

differentiation techniques

differentiation techniques differentiation techniques 1 Callable Objects delayed execution of stored code 2 Numerical and Symbolic Differentiation numerical approximations for the derivative storing common code in a parent class

More information

Lecture 12: Feasible direction methods

Lecture 12: Feasible direction methods Lecture 12 Lecture 12: Feasible direction methods Kin Cheong Sou December 2, 2013 TMA947 Lecture 12 Lecture 12: Feasible direction methods 1 / 1 Feasible-direction methods, I Intro Consider the problem

More information

Lists and Loops. browse Python docs and interactive help

Lists and Loops. browse Python docs and interactive help Lists and Loops 1 Help in Python browse Python docs and interactive help 2 Lists in Python defining lists lists as queues and stacks inserting and removing membership and ordering lists 3 Loops in Python

More information

Convex Hull Representation Conversion (cddlib, lrslib)

Convex Hull Representation Conversion (cddlib, lrslib) Convex Hull Representation Conversion (cddlib, lrslib) Student Seminar in Combinatorics: Mathematical Software Niklas Pfister October 31, 2014 1 Introduction In this report we try to give a short overview

More information

AMath 483/583 Lecture 2. Notes: Notes: Homework #1. Class Virtual Machine. Notes: Outline:

AMath 483/583 Lecture 2. Notes: Notes: Homework #1. Class Virtual Machine. Notes: Outline: AMath 483/583 Lecture 2 Outline: Binary storage, floating point numbers Version control main ideas Client-server version control, e.g., CVS, Subversion Distributed version control, e.g., git, Mercurial

More information

POLYTOPES. Grünbaum and Shephard [40] remarked that there were three developments which foreshadowed the modern theory of convex polytopes.

POLYTOPES. Grünbaum and Shephard [40] remarked that there were three developments which foreshadowed the modern theory of convex polytopes. POLYTOPES MARGARET A. READDY 1. Lecture I: Introduction to Polytopes and Face Enumeration Grünbaum and Shephard [40] remarked that there were three developments which foreshadowed the modern theory of

More information

AMath 483/583 Lecture 2

AMath 483/583 Lecture 2 AMath 483/583 Lecture 2 Outline: Binary storage, floating point numbers Version control main ideas Client-server version control, e.g., CVS, Subversion Distributed version control, e.g., git, Mercurial

More information

751 Problem Set I JWR. Due Sep 28, 2004

751 Problem Set I JWR. Due Sep 28, 2004 751 Problem Set I JWR Due Sep 28, 2004 Exercise 1. For any space X define an equivalence relation by x y iff here is a path γ : I X with γ(0) = x and γ(1) = y. The equivalence classes are called the path

More information

Combinatorial Geometry & Topology arising in Game Theory and Optimization

Combinatorial Geometry & Topology arising in Game Theory and Optimization Combinatorial Geometry & Topology arising in Game Theory and Optimization Jesús A. De Loera University of California, Davis LAST EPISODE... We discuss the content of the course... Convex Sets A set is

More information

Computing Tropical Resultants. A. Jensen and J. Yu. REPORT No. 44, 2010/2011, spring ISSN X ISRN IML-R /11- -SE+spring

Computing Tropical Resultants. A. Jensen and J. Yu. REPORT No. 44, 2010/2011, spring ISSN X ISRN IML-R /11- -SE+spring Computing Tropical Resultants A. Jensen and J. Yu REPORT No. 44, 2010/2011, spring ISSN 1103-467X ISRN IML-R- -44-10/11- -SE+spring COMPUTING TROPICAL RESULTANTS arxiv:1109.2368v2 [math.ag] 24 Mar 2013

More information

Mechanism and Robot Kinematics, Part II: Numerical Algebraic Geometry

Mechanism and Robot Kinematics, Part II: Numerical Algebraic Geometry Mechanism and Robot Kinematics, Part II: Numerical Algebraic Geometry Charles Wampler General Motors R&D Center Including joint work with Andrew Sommese, University of Notre Dame Jan Verschelde, Univ.

More information

The Bisection Method versus Newton s Method in Maple (Classic Version for Windows)

The Bisection Method versus Newton s Method in Maple (Classic Version for Windows) The Bisection Method versus (Classic Version for Windows) Author: Barbara Forrest Contact: baforres@uwaterloo.ca Copyrighted/NOT FOR RESALE version 1.1 Contents 1 Objectives for this Lab i 2 Approximate

More information

callback, iterators, and generators

callback, iterators, and generators callback, iterators, and generators 1 Adding a Callback Function a function for Newton s method a function of the user to process results 2 A Newton Iterator defining a counter class refactoring the Newton

More information

Discrete Mathematics SECOND EDITION OXFORD UNIVERSITY PRESS. Norman L. Biggs. Professor of Mathematics London School of Economics University of London

Discrete Mathematics SECOND EDITION OXFORD UNIVERSITY PRESS. Norman L. Biggs. Professor of Mathematics London School of Economics University of London Discrete Mathematics SECOND EDITION Norman L. Biggs Professor of Mathematics London School of Economics University of London OXFORD UNIVERSITY PRESS Contents PART I FOUNDATIONS Statements and proofs. 1

More information

Quad Doubles on a GPU

Quad Doubles on a GPU Quad Doubles on a GPU 1 Floating-Point Arithmetic floating-point numbers quad double arithmetic quad doubles for use in CUDA programs 2 Quad Double Square Roots quad double arithmetic on a GPU a kernel

More information

9 Bounds for the Knapsack Problem (March 6)

9 Bounds for the Knapsack Problem (March 6) 9 Bounds for the Knapsack Problem (March 6) In this lecture, I ll develop both upper and lower bounds in the linear decision tree model for the following version of the (NP-complete) Knapsack 1 problem:

More information

The Associahedra and Permutohedra Yet Again

The Associahedra and Permutohedra Yet Again The Associahedra and Permutohedra Yet Again M. D. Sheppeard Abstract The associahedra and permutohedra polytopes are redefined as subsets of discrete simplices, associated respectively to the commutative

More information

Toric Varieties and Lattice Polytopes

Toric Varieties and Lattice Polytopes Toric Varieties and Lattice Polytopes Ursula Whitcher April 1, 006 1 Introduction We will show how to construct spaces called toric varieties from lattice polytopes. Toric fibrations correspond to slices

More information

Lecture 18: Groupoids and spaces

Lecture 18: Groupoids and spaces Lecture 18: Groupoids and spaces The simplest algebraic invariant of a topological space T is the set π 0 T of path components. The next simplest invariant, which encodes more of the topology, is the fundamental

More information

Exercise 1 - Linear Least Squares

Exercise 1 - Linear Least Squares Exercise 1 - Linear Least Squares Outline Course information Hints for Python, plotting, etc. Recap: Linear Least Squares Problem set: Q1-2D data Q2-3D data Q3 - pen and paper Course information Final

More information

Open source software and Sage 1

Open source software and Sage 1 Open source software and Sage 1 http://www.sagemath.org/ David Joyner Math Dept USNA, Annapolis, MD May, 2009 1 Presentation for NSF CDI workshop David Joyner Open source software and Sage http://www.sagemath.org/

More information

Recommonmark Documentation

Recommonmark Documentation Recommonmark Documentation Release 0.5.0 Lu Zero, Eric Holscher, and contributors Jan 22, 2019 Contents 1 Contents 3 2 Getting Started 11 3 Development 13 4 Why a bridge? 15 5 Why another bridge to docutils?

More information

The Newton polytope of implicit curves. Ioannis Z. Emiris National University of Athens, Greece

The Newton polytope of implicit curves. Ioannis Z. Emiris National University of Athens, Greece The Newton polytope of implicit curves Ioannis Z. Emiris National University of Athens, Greece Joint work with: Christos Konaxis (Athens) and Leonidas Palios (Ioannina) Oberwolfach Nov 07 Outline 03. Toric

More information

CS675: Convex and Combinatorial Optimization Spring 2018 Convex Sets. Instructor: Shaddin Dughmi

CS675: Convex and Combinatorial Optimization Spring 2018 Convex Sets. Instructor: Shaddin Dughmi CS675: Convex and Combinatorial Optimization Spring 2018 Convex Sets Instructor: Shaddin Dughmi Outline 1 Convex sets, Affine sets, and Cones 2 Examples of Convex Sets 3 Convexity-Preserving Operations

More information

LECTURE 9. Development Tools

LECTURE 9. Development Tools LECTURE 9 Development Tools DEVELOPMENT TOOLS Since you are all still in the earlier stages of your semester-long projects, now is a good time to cover some useful modules and tools for managing larger

More information

LECTURE 9. Development Tools

LECTURE 9. Development Tools LECTURE 9 Development Tools DEVELOPMENT TOOLS Since you are all still in the earlier stages of your semester-long projects, now is a good time to cover some useful modules and tools for managing larger

More information

1. Lecture notes on bipartite matching February 4th,

1. Lecture notes on bipartite matching February 4th, 1. Lecture notes on bipartite matching February 4th, 2015 6 1.1.1 Hall s Theorem Hall s theorem gives a necessary and sufficient condition for a bipartite graph to have a matching which saturates (or matches)

More information

Advanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs

Advanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs Advanced Operations Research Techniques IE316 Quiz 1 Review Dr. Ted Ralphs IE316 Quiz 1 Review 1 Reading for The Quiz Material covered in detail in lecture. 1.1, 1.4, 2.1-2.6, 3.1-3.3, 3.5 Background material

More information