Introduction to IBEX. Jordan Ninin LAB-STICC / ENSTA-Bretagne Brest, France

Size: px
Start display at page:

Download "Introduction to IBEX. Jordan Ninin LAB-STICC / ENSTA-Bretagne Brest, France"

Transcription

1 Introduction to IBEX Jordan Ninin LAB-STICC / ENSTA-Bretagne Brest, France Jan, 2014 Jordan Ninin IBEX Jan, / 51

2 First Use Progamming Langage: C++ using your favorite editor (Eclipse, QtCreator, Gedit, vi,...) Minimal integration: #include ibex.h using namespase ibex; First Program: #include ibex.h using namespace std; using namespace ibex; int main(int argc, char argv) { // write your own code here } Jordan Ninin IBEX Jan, / 51

3 Architecture 1 Arithmetic: Interval, IntervalVector,... 2 Symbolic: Function, Variable, 3 Modelisation: NumConstraint, System, SystemFactory, 4 Contractor: CtcFwdBwd, CtcUnion, CtcCompo,... 5 Strategy: DefaultSolver, DefaultOptimizer,... * Tools: Bsc, LinearSolver, CellBuffer,... Jordan Ninin IBEX Jan, / 51

4 Outline 1 Arithmetic Interval IntervalVector IntervalMatrix 2 Symbolic Function, Variable Evaluation 3 Modelisation NumConstraint System 4 Contractor Contractor Algebra Advanced Contractors 5 Tools 6 Strategy Jordan Ninin IBEX Jan, / 51

5 Interval Interval Fundamental rules IBEX is entire based over the type Interval. Each usual arithmetic function are extended to the intervals. Each real number are represented by an interval of 2 floating-point numbers which enclose it. Each operator of the interval arithmetic are computed to respect the inclusion property over the floating-point number. Jordan Ninin IBEX Jan, / 51

6 Interval Basic Constructors and Operators Interval x(1,2); // create the interval [1,2] Interval y(3); // create the interval [3,3] Interval y1; // create the interval [ oo,oo] Interval y2=interval::all_reals; // y2 =[ oo,oo] Interval y3=interval::empty_set; // create the empty interval Interval y4=interval::pi; // y4=[ , Succ( )] Interval z1 = x+y; Interval z2 = x + Interval(5,6) + 4; Interval z3 = z1 + exp(x) acos(y) +log(x z2); Interval z4 = z1 & z2 // z4 = the intersection of z1 and z2 Interval z5 = z1 z2 // z5 = the hull of the union of z1 and z2 Jordan Ninin IBEX Jan, / 51

7 Interval Addition Methods x.lb() x = inf([x]), x.contains(d) True iff d [x], x.ub() x = sup([x]), x.is subset(y) True iff [x] [y], x.mid() the middle of [x], x.is disjoint(y) True iff [x] [y] =, x.rad() the radius of [x], x.is empty() True iff [x] ==, x.diam() the diameter of [x], x.mag() max( x, x ),... ==,!=, +=, -=, *=, /=, &=, =, x.is unbounded(), x.is strict subset(y), x.is bisectable(), x.inflate(d),... Jordan Ninin IBEX Jan, / 51

8 IntervalVector IntervalVector Definie a vector of Interval. // create the interval vector ([ oo,oo],[ oo,oo]) IntervalVector x1(2); // create the intervalvector ([1,3],[1,3]) IntervalVector x2(2,interval(1,3)); //create the interval vector ([0,1],[2,3],[4,5]) double x[3][2]={{0,1},{2,3},{4,5}}; IntervalVector x3(3,x); //create the interval vector ([3.6,3.6],[3.6,3.6],[3.6,3.6],[3.6,3.6]) Vector yy(4,3.6); IntervalVector y(yy); // modify the first element of y y[0] = x3[2] + x2[1]; Jordan Ninin IBEX Jan, / 51

9 IntervalVector IntervalVector x2.init(interval(2,3)); x3.perimeter(); x3.volume(); x3.max_diam(); x3.size(); x1.set_empty(); x2.resize(4); IntervalVector x5= x3.subvector(start,end); Other basic operators are available like in Interval: x.lb(), x.ub(), x.mid(), x.diam(), x.rad(), ==,!=, +=, -=, *=, /=, &=, =, x.is unbounded(), x.is strict subset(y), x.is bisectable(), x.inflate(d),... Jordan Ninin IBEX Jan, / 51

10 IntervalMatrix IntervalMatrix Since we cannot build 3-dimensional arrays in C++, all the bounds must be set in a single n*2 array representing the matrix row by row double _M[9][2]={{0,1},{0,1},{0,1}, {0,2},{0,2},{0,2}, {0,3},{0,3},{0,3}}; IntervalMatrix M(3,3,_M); / create M = (([0,1] [0,1] [0,1]) ; ([0,2] [0,2] [0,2]) ; ([0,3] [0,3] [0,3]) ) / Jordan Ninin IBEX Jan, / 51

11 IntervalMatrix Operator between IntervalVector and IntervalMatrix double _x[3][2]={{0,1},{2,3},{4,5}}; IntervalVector x(3,_x); IntervalMatrix M(3,3); M=Matrix::eye(3)+Interval( 1,1) Matrix::ones(3); IntervalVector y=m x; // matrix vector multiplication IntervalMatrix N=M.transpose(); // N is MˆT Jordan Ninin IBEX Jan, / 51

12 Symbolic Type Variable Variable x ; // create a scalar variable Variable v(3); // create a vector variable of size 3 Variable m(4,4); // create a Matrix 4x4 symbolic variable Function Variable x(2), y; Function f(x, x[0] pow(x[2],2) exp(x[0] x[2]); Function h(x,y, x[1] (x[0]+y)); Warning! the maximal number of variable is limited to 6: Solution: compress all the variables in a single vector variable. Jordan Ninin IBEX Jan, / 51

13 Function, Variable Example: f(x) = x 0 x 2 1 exp(x 0x 1 ) exp x 0 x 2 x 1 x 0 x 1 a Function is the expression tree of a mathematical equation, a Variable is a leaf of the expression tree. Jordan Ninin IBEX Jan, / 51

14 Function, Variable Create a Function Vector-valued/Matrix-valued function: Return Variable x,y; Function f(x,y, Return(x y, x y)); Function g(x,y, Return(Return(exp(x),sqrt(y)), Return(x y,log(x) ) ); Using the Minibex syntax function f(x) return ((2 x, x); ( x,3 x)); end Function f( myfunction.txt ); Listing 1: myfunction.txt Jordan Ninin IBEX Jan, / 51

15 Function, Variable Other Composing Function / create the distance function with 2 arguments / Variable a(2), b(2); Function dist(a,b,sqrt(sqr(a[0] b[0])+sqr(a[1] b[1]))); / create the constant vector pt=(1,2) / Vector pt(2); pt[0]=1; pt[1]=2; / create the function x >dist(x,pt). / Variable x(2); Function f(x,dist(x,pt)); Symbolic Differentiation: Function::DIFF Function gf(f, Function::DIFF); = Create the expression tree of the gradient of the function f. Jordan Ninin IBEX Jan, / 51

16 Evaluation Interval Evaluation The interval evaluation of f is an enclosure of the image of the given input interval vector [x] by f: {f(x),x [x]} f([x]) The input of a Evaluation is an IntervalVector in any case (no matter the dimension of the variable). The order of the input IntervalVector is the same order as the one of the variable at the creation of the function. The type of the output depends of the evaluator: IntervalVector x(5,interval( 1,1)); Interval y = f.eval(x); IntervalVector yv= g.eval_vector(x); IntervalMatrix ym= h.eval_matrix(x); Jordan Ninin IBEX Jan, / 51

17 Evaluation Example: x [1,2] [1,3], f(x) = x 0 x1 2 exp(x 0x 1 ) [ , ] [ , ] [1, 18] exp [2.718, ] [1,2] x 0 x 2 [1,9] [1,6] [1,3] x 1 x 0 x 1 [1,3] [1,2] Jordan Ninin IBEX Jan, / 51

18 Evaluation Gradient/Jacobian evaluation The interval evaluation of f is an enclosure of the image of the gradient/jacobian of f over an interval vector [x]: { f(x),x [x]} f([x]) The type of the output depends of the evaluator: IntervalVector x(5,interval( 1,1)); IntervalVector yv= f.gradient(x); IntervalMatrix ym= g.jacobian(x); Jordan Ninin IBEX Jan, / 51

19 Evaluation Example: x [1,2] [1,3], f(x) = x 0 x 2 1 exp(x 0x 1 ), f ( [ ,6.282] [ , 9.282] [ , 6.282] [ , ] [ , 9.282] [2.718, ] [2.718, ] [1,9] [1, 18] exp [2.718, ] [2, 12] [0,0] [2,6] [1,1] x 0 x 2 [1,2] [1,2] [1,9] [1,6] [0,0] [1,3] [0,0][1,3] x 1 x 0 x 1 [1,3][0,0] [1,1] [1,1] [1,1] [1,2] [0,0] Jordan Ninin IBEX Jan, / 51 )

20 Evaluation Backward evaluation The backward evaluation is the reverse process of an evaluation. Given two intervals [y] and [x], it compute an interval [z]: [z] = [x] {z,f(z) [y]} or [z] = [x] f 1 ([y]) This algorithm does not return a new interval [z] but contract the input interval [x] which is therefore an input-output argument. Variable x1, x2; Function f(x1,x2,sin(x1+x2)); double _box[2][2]={{1,2},{3,4}}; IntervalVector box(2,_box); f.backward( 1.0,box); / box = ([1, ] ; [3, ]) / Jordan Ninin IBEX Jan, / 51

21 Evaluation Example: Let f(x) = x 0 x 2 1 exp(x 0 +x 1 ) f.backward(-100, ([1,2],[2,6])) [ , [ 100, 100] ] [4, 72] exp [104, [ , 172] ] [1,2] x 0 x 2 [4,36] + [4.6443, [3, 8] ] [2.6443, ] [2,6] x 1 x 0 x 1 [2.6443, [2,6] ] [1,2] After the backward, box = [1,2] [2.6443,4.1474] Jordan Ninin IBEX Jan, / 51

22 Evaluation Exercice: If I have an scalar variable, an Vector variable and an Matrix variable, how can I arrange this in a single IntervalVector to compute a evaluation? = Use the backward algorithm to insert in an IntervalVector and the eval algorithm to extract from it!!! Jordan Ninin IBEX Jan, / 51

23 Evaluation Variable x, v(6), m(5,5); Function proj_x(x,v,m, x); Function proj_v(x,v,m, v); Function proj_m(x,v,m, m); Function f(x,v,m, transpose(v) m v x); Interval xi(3,5); IntervalVector vi(6,interval(0,1)); IntervalMatrix mi(5,5,interval( 1,3)); IntervalVector box( ); proj_x.backward(xi,box); // insert xi in the right position of x in box proj_v.backward(vi,box); // insert vi in the right position of v in box proj_m.backward(mi,box); // insert mi in the right position of m in box Interval res=f.eval(box) Jordan Ninin IBEX Jan, / 51

24 NumConstraint NumConstraint a NumConstraint is a mathematical constraint: f(x) 0, g(x) = 0,... It composes by a function and a comparison sign. The possible signs are: LT (<), LEQ ( ), EQ (=), GEQ ( ), GT (>). Like in Function, the number of variable is limited to 6. Variable x;variable x; NumConstraint c(x,sin(x)=0.5); // the constraint sin(x)=0.5 Function f(x,x+1); NumConstraint c(f,leq); // the constraint x+1<=0 Jordan Ninin IBEX Jan, / 51

25 System System A System in IBEX is a set of constraints with, optionnaly, a goal function to minimize and an initial domain for variables. a System can be created with a file (in MinIbex language) or with a SystemFactory. Variables x1 in [0,1]; x2, x3; Minimize 5 x1 x3ˆ4 (10 x2ˆ2) Constraints 2 x1 + 2 x2 + log(x3) <= 10; end System sys( mysystem.txt ); Jordan Ninin IBEX Jan, / 51

26 System SystemFactory Simplify the construction of System. Warning! each NumConstraint must have the same number of variables. The order of each variable must be respected. Variable x, y; NumConstraint c(x,y, x sqrt(y) >= 0); SystemFactory fac; fac.add_var(x); // add a variable to the system fac.add_var(y); // add a variable to the system fac.add_goal(x+y);// add a objective function fac.add_ctr(c); // add a constraint System sys(fac); Jordan Ninin IBEX Jan, / 51

27 Contractor Programming The key idea behind contractor programming is to abstract the algorithm from the underlying constraint and to view it as function Ctc : Advantage Ctc : IR n IR n such that C([x]) [x] Standardize the interface between algorithms, Simplify Interfaces, Combination, Composition,... Propose building blocks to create high-level algorithm. Jordan Ninin IBEX Jan, / 51

28 Forward-Backward The standard way to contract with respect to a constraint is by using the forward-bacwkard algorithm. Variable x,y,z; NumConstraint c(x,y,z,x+y=z); CtcFwdBwd ctc1(c); Function f(x,y,z, x+y z); CtcFwdBwd ctc2(f); // create the contractor with the constraint f=0 Jordan Ninin IBEX Jan, / 51

29 Forward-Backward This contractor reduces the input box to an enclosure of the domain which respect the constraint, using the method contract. Variable x,y; double = 0.5 sqrt(2); Function f(x,y,return(sqrt(sqr(x)+sqr(y)) d, sqrt(sqr(x 1.0)+sqr(y 1.0)) d); IntervalVector box(2,interval( 10,10)); CtcFwdBwd c(f); c.contract(box); // now box= ([0.2929, ] ; [0.2929, ]) The behavior is the same as: f.backward(0,box); Jordan Ninin IBEX Jan, / 51

30 Fixpoint The fixpoint operator applies a contractor Ctc iteratively, while the gain is more than the given ratio: fixpoint(ctc) : [x] Ctc(...Ctc(Ctc([x]))...), CtcFwdBwd ctc(f); CtcFixPoint ctcfix(ctc,1.e 3); ctcfix.contract(box); Jordan Ninin IBEX Jan, / 51

31 CtcFwdBwd composed with a CtcFixPoint Let c(x) = x 0 x1 2 exp(x 0 +x 1 ) = 100 where [x] [1,2] [2,6]. [ , [ 100, 100] ] [7.12, [6.99, [4, 72] 30.4] 34.4] exp [ , [104, [106.99, 172] 134.4] ] [1,2] x 0 x 2 [7.12, [4,36] [6.99,17.2] 15.2] + [3, [4.6443, [4.67, 8] 4.9] ] [2.6443, [2.67, ] [2,6] 3.9] x 1 x 0 x 1 [2.67, [2.6443, [2,6] 3.9] ] [1,2] C([1,2] [2,6]) [1,2] [ ,3.8667] Jordan Ninin IBEX Jan, / 51

32 Contractor Algebra Union, Composition The interest of the contractor programming is to compose, to intersect, to make the union of contractor: union(c 1,...,C n ) : [x] C 1 ([x])... C n ([x]). inter(c 1,...,C n ) : [x] C 1 ([x])... C n ([x]). compo(c 1,...,C n ) : [x] C n (...C 2 (C 1 ([x])...). The Union corresponds to a logical OR between the NumConstraint of the contractor. The composition is more efficient than the intersection, that is why the composition is always preferred. CtcUnion c_union(c1,c2); CtcCompo c_compo1(c1,c2); Array<Ctc> array(c1,c2,c_union); CtcCompo c_compo2(array); Jordan Ninin IBEX Jan, / 51

33 Advanced Contractors Interval Newton This contractor find a zero of a vector-valued function. It is very efficient if the box contains only one solution. If the box is contracted, it is a mathematical proof that the box contain a solution. Variable x,y; double d = 0.5 sqrt(2); Function f(x,y,return(sqrt(sqr(x)+sqr(y)) d, sqrt(sqr(x 1.0)+sqr(y 1.0)) d); IntervalVector box(2,interval(0.2,0.4)); CtcNewton c(f); c.contract(box); Jordan Ninin IBEX Jan, / 51

34 Advanced Contractors Propagation, Linear Relaxation CtcPropa: The propagation operator calculates the fixpoint of (the composition of) n contractors by using a more sophisticated ( incremental ) strategy than a simple loop. it can be defined as follows: propagation(c 1,...,C n ) := fixpoint(compo(c 1,...,C n )). Array<Ctc> array(c0,c1,c2,c3); CtcPropag(array); CtcPolytopeHull: This contractor computes the convex hull of a System using Linear Relaxation Technique (XTaylor, Affine Arithmetic, Composition). CtcPolytopeHull( new LinearRelaxCombo(sys)); Jordan Ninin IBEX Jan, / 51

35 Advanced Contractors Ctc3BCid, CtcAcid Other improvement of the propagation algorithm, such as: Ctc3BCid(ctc), CtcAcid(sys,ctc): B B 3 B 4 2 B 1 x C([x]) B 1 B 2 B 3 B 4 Jordan Ninin IBEX Jan, / 51

36 Advanced Contractors Q-Intersection The Q-Intersection contract the box, by calculating the union of the boxes resulting from the contraction with all combinations of q contractors among n. q inter(c 1,...,C n,q) := union(...,inter(c i1,...,c iq ),...) This contractor is typically used where we have a set of contractors that result from measurements (each measurement enforces a constraint), some of which can be incorrect. CtcQInter(const Array<Ctc>& list, int q); Jordan Ninin IBEX Jan, / 51

37 Advanced Contractors Your own Contractor To create a contractor, you just have to declare a class that extends Ctc and create: a constructor that calls the constructor of Ctc. The later need the size of the input box. a method: void contract(intervalvector& box) #include ibex.h namespace ibex{ class MyContractor : public Ctc { public: MyContractor(int n) : Ctc(n) { } // Constructor void contract(intervalvector& box) { // Contractor box=box.mid()+0.5 Interval( 1,1) box.rad(); } }; } Jordan Ninin IBEX Jan, / 51

38 Advanced Contractors Other Contractors CtcEmpty(int n): Return the empty box. CtcIdentity(int n): Return the box without modifying. CtcInteger(int nb var, const BoolMask& is int): Contract the box to integer set (according to the mask). CtcInverse(Ctc& c, Function& f): Make a evaluation, then contract the result using c and insert the contraction in the original box using backward algorithm. Interval res= f.eval(box); c.contract(res); f.backward(res,box); CtcNotIn(Function& f, const Interval& y): Contract according the constraint f(x) y. CtcPrecision(int nb var, double ceil): Empty the box if its diameter is smaller than ceil. Jordan Ninin IBEX Jan, / 51

39 Advanced Contractors How to interact two Modelizations of one problem? C 0 ([x] [y]) C 1 ([x]) Model 1 C 11 ([x]): Linear Relaxation C 12 ([x]): Local minimization C 3 ([x],[y]) C 2 ([y]) Link between Model 1 and Model 2 Interaction between [x] and [y] Model 2 C 21 ([y]): Forward-Backward C 22 ([y]): Fixed point over C 21 C 23 ([y]): Local minimization C 0 ([x] [y]) = C 3 ( (C11 C 12 )([x]), (C 21 C 23 )([y]) ) Jordan Ninin IBEX Jan, / 51

40 Advanced Contractors Construct a Contractor depending of a problem C 0 ([x]) C 2 ([x]) = C 1 ([x]) Fixed Point of C 1 ([x]) Forward-Backward of the non-convex part C 3 ([x]) Linear Relaxation of the entire problem except the black-box constraint C 4 ([x]) If condition then Compute the black-box constraint Jordan Ninin IBEX Jan, / 51

41 Tools Bisector: Bsc object to bisect an IntervalVector following a strategy. LargestFirst bsc; pair<intervalvector,intervalvector> res=bsc.bisect(box); Storage: CellBuffer CellHeap stock; stock.push(box); IntervalVector res=stock.pop(); LinearSolver: Interface with a linear solver LinearSolver ls(int nb_vars, int nb_ctr); Jordan Ninin IBEX Jan, / 51

42 Solver: create a Solver/Paver with a contractor, a bisector and a Buffer. All the IntervalVector with a max diam less than prec will be considers as a solution. Solver(Ctc& ctc, Bsc& bsc, CellBuffer& buffer, double prec); std::vector<intervalvector> solve(init_box); Optimizer: create a global optimizer with a system, a contractor and a bisector. Optimizer opti(system& sys, Bsc& bsc, Ctc& ctc, double prec); void optimize(const IntervalVector& init_box); opti.loup point // access to the global minimum of sys Jordan Ninin IBEX Jan, / 51

43 Compiling, Linking Automatic linkage with: Soplex: implementation of a Linear Solver. FiLib or Goal: implementing the interval arithmetic. See the makefile or simple qt.pro and replace the????? by the path where IBEX is installed. Jordan Ninin IBEX Jan, / 51

44 Listing 2: makefile IBEXHOME :=??????????? CXXFLAGS = I$(IBEXHOME)/IBEX/include/ibex I$(IBEXHOME)/IBEX/ include I$(IBEXHOME)/soplex 1.7.2/src frounding math msse2 mfpmath=sse LIBS = L$(IBEXHOME)/IBEX/lib L$(IBEXHOME)/soplex 1.7.2/lib libex lsoplex lprim Listing 3: simple qt.pro IBEXHOME =??????????????????? INCLUDEPATH += $$IBEXHOME/IBEX/include/ibex $$IBEXHOME/IBEX/ include $$IBEXHOME/soplex 1.7.2/src frounding math msse2 mfpmath=sse LIBS += L$$IBEXHOME/IBEX/lib L$$IBEXHOME/soplex 1.7.2/lib libex lsoplex lprim Jordan Ninin IBEX Jan, / 51

45 In Practice DOWNLOAD IBEX Jordan Ninin IBEX Jan, / 51

ibex_snippets.cpp #include "ibex.h" using namespace std; using namespace ibex;

ibex_snippets.cpp #include ibex.h using namespace std; using namespace ibex; #include "ibex.h" using namespace std; using namespace ibex; int main() Example #1 Basic interval arithmetic > create the interval x=[1,2] and y=[3,4] > calculate the interval sum x+y > calculate interval

More information

Gilles Chabert Ecole des Mines de Nantes Dec 2014

Gilles Chabert Ecole des Mines de Nantes Dec 2014 www.ibex-lib.org Gilles Chabert Ecole des Mines de Nantes Dec 2014 Outline Introduction Contractors Forward-backward XTaylor Q-intersection Getting started Conclusion Introduction IBEX is an open-source

More information

Global Optimization based on Contractor Programming: an Overview of the IBEX library

Global Optimization based on Contractor Programming: an Overview of the IBEX library Global Optimization based on Contractor Programming: an Overview of the IBEX library Jordan Ninin ENSTA-Bretagne, LabSTIC, IHSEV team, 2 rue Francois Verny, 29806 Brest, France, jordan.ninin@ensta-bretagne.fr

More information

Global Optimization based on Contractor Programming: an Overview of the IBEX library

Global Optimization based on Contractor Programming: an Overview of the IBEX library Global Optimization based on Contractor Programming: an Overview of the IBEX library Jordan Ninin To cite this version: Jordan Ninin. Global Optimization based on Contractor Programming: an Overview of

More information

Advanced Systems Programming

Advanced Systems Programming Advanced Systems Programming Introduction to C++ Martin Küttler September 19, 2017 1 / 18 About this presentation This presentation is not about learning programming or every C++ feature. It is a short

More information

Ordinary Differential Equation Solver Language (ODESL) Reference Manual

Ordinary Differential Equation Solver Language (ODESL) Reference Manual Ordinary Differential Equation Solver Language (ODESL) Reference Manual Rui Chen 11/03/2010 1. Introduction ODESL is a computer language specifically designed to solve ordinary differential equations (ODE

More information

Chapter 1. Fundamentals of Higher Order Programming

Chapter 1. Fundamentals of Higher Order Programming Chapter 1 Fundamentals of Higher Order Programming 1 The Elements of Programming Any powerful language features: so does Scheme primitive data procedures combinations abstraction We will see that Scheme

More information

FORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each):

FORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each): FORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each): 1. If a function has default arguments, they can be located anywhere

More information

OUTLINES. Variable names in MATLAB. Matrices, Vectors and Scalar. Entering a vector Colon operator ( : ) Mathematical operations on vectors.

OUTLINES. Variable names in MATLAB. Matrices, Vectors and Scalar. Entering a vector Colon operator ( : ) Mathematical operations on vectors. 1 LECTURE 3 OUTLINES Variable names in MATLAB Examples Matrices, Vectors and Scalar Scalar Vectors Entering a vector Colon operator ( : ) Mathematical operations on vectors examples 2 VARIABLE NAMES IN

More information

Haske k ll An introduction to Functional functional programming using Haskell Purely Lazy Example: QuickSort in Java Example: QuickSort in Haskell

Haske k ll An introduction to Functional functional programming using Haskell Purely Lazy Example: QuickSort in Java Example: QuickSort in Haskell Haskell An introduction to functional programming using Haskell Anders Møller amoeller@cs.au.dk The most popular purely functional, lazy programming language Functional programming language : a program

More information

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 6: User-Defined Functions I

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 6: User-Defined Functions I C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 6: User-Defined Functions I In this chapter, you will: Objectives Learn about standard (predefined) functions and discover

More information

Physics 234: Computational Physics

Physics 234: Computational Physics Physics 234: Computational Physics In-class Midterm Exam Friday, February 12, 2010 Student s Name: Fill-in-the-blank and multiple choice questions (20 points) Mark your answers on the exam sheet in blue

More information

An introduction introduction to functional functional programming programming using usin Haskell

An introduction introduction to functional functional programming programming using usin Haskell An introduction to functional programming using Haskell Anders Møller amoeller@cs.au.dkau Haskell The most popular p purely functional, lazy programming g language Functional programming language : a program

More information

Computers in Engineering Root Finding Michael A. Hawker

Computers in Engineering Root Finding Michael A. Hawker Computers in Engineering COMP 208 Root Finding Michael A. Hawker Root Finding Many applications involve finding the roots of a function f(x). That is, we want to find a value or values for x such that

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

CSCE 110 PROGRAMMING FUNDAMENTALS

CSCE 110 PROGRAMMING FUNDAMENTALS CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 2. Overview of C++ Prof. Amr Goneid, AUC 1 Overview of C++ Prof. Amr Goneid, AUC 2 Overview of C++ Historical C++ Basics Some Library

More information

ALIAS-C++ A C++ Algorithms Library of Interval Analysis for equation Systems Version 2.7 September 2012 The COPRIN project Download ALIAS here!

ALIAS-C++ A C++ Algorithms Library of Interval Analysis for equation Systems Version 2.7 September 2012 The COPRIN project Download ALIAS here! ALIAS-C++ A C++ Algorithms Library of Interval Analysis for equation Systems Version 2.7 September 2012 The COPRIN project Download ALIAS here! 2 Chapter 1 Introduction ALIAS-C++ is a C++ library of algorithms,

More information

Summary of basic C++-commands

Summary of basic C++-commands Summary of basic C++-commands K. Vollmayr-Lee, O. Ippisch April 13, 2010 1 Compiling To compile a C++-program, you can use either g++ or c++. g++ -o executable_filename.out sourcefilename.cc c++ -o executable_filename.out

More information

Chapter 6: User-Defined Functions. Objectives (cont d.) Objectives. Introduction. Predefined Functions 12/2/2016

Chapter 6: User-Defined Functions. Objectives (cont d.) Objectives. Introduction. Predefined Functions 12/2/2016 Chapter 6: User-Defined Functions Objectives In this chapter, you will: Learn about standard (predefined) functions Learn about user-defined functions Examine value-returning functions Construct and use

More information

Arrays. Comp Sci 1570 Introduction to C++ Array basics. arrays. Arrays as parameters to functions. Sorting arrays. Random stuff

Arrays. Comp Sci 1570 Introduction to C++ Array basics. arrays. Arrays as parameters to functions. Sorting arrays. Random stuff and Arrays Comp Sci 1570 Introduction to C++ Outline and 1 2 Multi-dimensional and 3 4 5 Outline and 1 2 Multi-dimensional and 3 4 5 Array declaration and An array is a series of elements of the same type

More information

A Constraint Satisfaction Problem (CSP) Approach to Design and Verify Cyber-Physical Systems (CPS)

A Constraint Satisfaction Problem (CSP) Approach to Design and Verify Cyber-Physical Systems (CPS) A Constraint Satisfaction Problem (CSP) Approach to Design and Verify Cyber-Physical Systems (CPS) Alexandre Chapoutot joint work with Julien Alexandre dit Sandretto and Olivier Mullier U2IS, ENSTA ParisTech,

More information

Multiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)

Multiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible) Name Closed notes, book and neighbor. If you have any questions ask them. Notes: Segment of code necessary C++ statements to perform the action described not a complete program Program a complete C++ program

More information

Introduction to C++ Introduction to C++ Week 6 Dr Alex Martin 2013 Slide 1

Introduction to C++ Introduction to C++ Week 6 Dr Alex Martin 2013 Slide 1 Introduction to C++ Introduction to C++ Week 6 Dr Alex Martin 2013 Slide 1 Numerical Integration Methods The Trapezoidal Rule If one has an arbitrary function f(x) to be integrated over the region [a,b]

More information

DM545 Linear and Integer Programming. Lecture 2. The Simplex Method. Marco Chiarandini

DM545 Linear and Integer Programming. Lecture 2. The Simplex Method. Marco Chiarandini DM545 Linear and Integer Programming Lecture 2 The Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark Outline 1. 2. 3. 4. Standard Form Basic Feasible Solutions

More information

Applied Programming and Computer Science, DD2325/appcs15 PODF, Programmering och datalogi för fysiker, DA7011

Applied Programming and Computer Science, DD2325/appcs15 PODF, Programmering och datalogi för fysiker, DA7011 Applied Programming and Computer Science, DD2325/appcs15 PODF, Programmering och datalogi för fysiker, DA7011 Autumn 2015 Lecture 3, Simple C programming M. Eriksson (with contributions from A. Maki and

More information

Convexity and Optimization

Convexity and Optimization Convexity and Optimization Richard Lusby DTU Management Engineering Class Exercises From Last Time 2 DTU Management Engineering 42111: Static and Dynamic Optimization (3) 18/09/2017 Today s Material Extrema

More information

COMP80 Lambda Calculus Programming Languages Slides Courtesy of Prof. Sam Guyer Tufts University Computer Science History Big ideas Examples:

COMP80 Lambda Calculus Programming Languages Slides Courtesy of Prof. Sam Guyer Tufts University Computer Science History Big ideas Examples: COMP80 Programming Languages Slides Courtesy of Prof. Sam Guyer Lambda Calculus Formal system with three parts Notation for functions Proof system for equations Calculation rules called reduction Idea:

More information

Reliable Nonlinear Parameter Estimation Using Interval Analysis: Error-in-Variable Approach

Reliable Nonlinear Parameter Estimation Using Interval Analysis: Error-in-Variable Approach Reliable Nonlinear Parameter Estimation Using Interval Analysis: Error-in-Variable Approach Chao-Yang Gau and Mark A. Stadtherr Λ Department of Chemical Engineering University of Notre Dame Notre Dame,

More information

Linear Programming in Small Dimensions

Linear Programming in Small Dimensions Linear Programming in Small Dimensions Lekcija 7 sergio.cabello@fmf.uni-lj.si FMF Univerza v Ljubljani Edited from slides by Antoine Vigneron Outline linear programming, motivation and definition one dimensional

More information

Introduction to C++ Introduction. Structure of a C++ Program. Structure of a C++ Program. C++ widely-used general-purpose programming language

Introduction to C++ Introduction. Structure of a C++ Program. Structure of a C++ Program. C++ widely-used general-purpose programming language Introduction C++ widely-used general-purpose programming language procedural and object-oriented support strong support created by Bjarne Stroustrup starting in 1979 based on C Introduction to C++ also

More information

Lecture 2 Arrays, Searching and Sorting (Arrays, multi-dimensional Arrays)

Lecture 2 Arrays, Searching and Sorting (Arrays, multi-dimensional Arrays) Lecture 2 Arrays, Searching and Sorting (Arrays, multi-dimensional Arrays) In this lecture, you will: Learn about arrays Explore how to declare and manipulate data into arrays Understand the meaning of

More information

BSc (Hons) Computer Science. with Network Security. Examinations for / Semester1

BSc (Hons) Computer Science. with Network Security. Examinations for / Semester1 BSc (Hons) Computer Science with Network Security Cohort: BCNS/15B/FT Examinations for 2015-2016 / Semester1 MODULE: PROGRAMMING CONCEPT MODULE CODE: PROG 1115C Duration: 3 Hours Instructions to Candidates:

More information

Introduction to Matlab

Introduction to Matlab Introduction to Matlab By:Mohammad Sadeghi *Dr. Sajid Gul Khawaja Slides has been used partially to prepare this presentation Outline: What is Matlab? Matlab Screen Basic functions Variables, matrix, indexing

More information

Multiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)

Multiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible) Name Closed notes, book and neighbor. If you have any questions ask them. Notes: Segment of code necessary C++ statements to perform the action described not a complete program Program a complete C++ program

More information

Applied Interval Analysis

Applied Interval Analysis Luc Jaulin, Michel Kieffer, Olivier Didrit and Eric Walter Applied Interval Analysis With Examples in Parameter and State Estimation, Robust Control and Robotics With 125 Figures Contents Preface Notation

More information

Introduction to C++ with content from

Introduction to C++ with content from Introduction to C++ with content from www.cplusplus.com 2 Introduction C++ widely-used general-purpose programming language procedural and object-oriented support strong support created by Bjarne Stroustrup

More information

Lecture 2: SML Basics

Lecture 2: SML Basics 15-150 Lecture 2: SML Basics Lecture by Dan Licata January 19, 2012 I d like to start off by talking about someone named Alfred North Whitehead. With someone named Bertrand Russell, Whitehead wrote Principia

More information

Symbolic Subdifferentiation in Python

Symbolic Subdifferentiation in Python Symbolic Subdifferentiation in Python Maurizio Caló and Jaehyun Park EE 364B Project Final Report Stanford University, Spring 2010-11 June 2, 2011 1 Introduction 1.1 Subgradient-PY We implemented a Python

More information

SPM Add Math Form 5 Chapter 3 Integration

SPM Add Math Form 5 Chapter 3 Integration SPM Add Math Form Chapter Integration INDEFINITE INTEGRAL CHAPTER : INTEGRATION Integration as the reverse process of differentiation ) y if dy = x. Given that d Integral of ax n x + c = x, where c is

More information

Exam 3 Chapters 7 & 9

Exam 3 Chapters 7 & 9 Exam 3 Chapters 7 & 9 CSC 2100-002/003 29 Mar 2017 Read through the entire test first BEFORE starting Put your name at the TOP of every page The test has 4 sections worth a total of 100 points o True/False

More information

LECTURE 18 LECTURE OUTLINE

LECTURE 18 LECTURE OUTLINE LECTURE 18 LECTURE OUTLINE Generalized polyhedral approximation methods Combined cutting plane and simplicial decomposition methods Lecture based on the paper D. P. Bertsekas and H. Yu, A Unifying Polyhedral

More information

Chapter 2. Outline. Simple C++ Programs

Chapter 2. Outline. Simple C++ Programs Chapter 2 Simple C++ Programs Outline Objectives 1. Building C++ Solutions with IDEs: Dev-cpp, Xcode 2. C++ Program Structure 3. Constant and Variables 4. C++ Operators 5. Standard Input and Output 6.

More information

Tutorial 13 Salary Survey Application: Introducing One- Dimensional Arrays

Tutorial 13 Salary Survey Application: Introducing One- Dimensional Arrays Tutorial 13 Salary Survey Application: Introducing One- Dimensional Arrays Outline 13.1 Test-Driving the Salary Survey Application 13.2 Introducing Arrays 13.3 Declaring and Initializing Arrays 13.4 Constructing

More information

Composition I. composition is a way to combine or compose multiple classes together to create new class

Composition I. composition is a way to combine or compose multiple classes together to create new class Composition I composition is a way to combine or compose multiple classes together to create new class composition has-a relationship a car has-a gear-box a graduate student has-a course list if XX has-a

More information

x 6 + λ 2 x 6 = for the curve y = 1 2 x3 gives f(1, 1 2 ) = λ actually has another solution besides λ = 1 2 = However, the equation λ

x 6 + λ 2 x 6 = for the curve y = 1 2 x3 gives f(1, 1 2 ) = λ actually has another solution besides λ = 1 2 = However, the equation λ Math 0 Prelim I Solutions Spring 010 1. Let f(x, y) = x3 y for (x, y) (0, 0). x 6 + y (4 pts) (a) Show that the cubic curves y = x 3 are level curves of the function f. Solution. Substituting y = x 3 in

More information

More Flow Control Functions in C++ CS 16: Solving Problems with Computers I Lecture #4

More Flow Control Functions in C++ CS 16: Solving Problems with Computers I Lecture #4 More Flow Control Functions in C++ CS 16: Solving Problems with Computers I Lecture #4 Ziad Matni Dept. of Computer Science, UCSB Administrative CHANGED T.A. OFFICE/OPEN LAB HOURS! Thursday, 10 AM 12 PM

More information

Project 1: Convex hulls and line segment intersection

Project 1: Convex hulls and line segment intersection MCS 481 / David Dumas / Spring 2014 Project 1: Convex hulls and line segment intersection Due at 10am on Monday, February 10 0. Prerequisites For this project it is expected that you already have CGAL

More information

Exact real arithmetic. Keith Briggs

Exact real arithmetic. Keith Briggs Exact real arithmetic Keith Briggs Keith.Briggs@bt.com more.btexact.com/people/briggsk2/xr.html 2002 Nov 20 15:00 Typeset in L A T E X2e on a linux system Exact real arithmetic p.1/35 Complexity Outline

More information

= f (a, b) + (hf x + kf y ) (a,b) +

= f (a, b) + (hf x + kf y ) (a,b) + Chapter 14 Multiple Integrals 1 Double Integrals, Iterated Integrals, Cross-sections 2 Double Integrals over more general regions, Definition, Evaluation of Double Integrals, Properties of Double Integrals

More information

Distributed Real-Time Control Systems. Lecture 17 C++ Programming Intro to C++ Objects and Classes

Distributed Real-Time Control Systems. Lecture 17 C++ Programming Intro to C++ Objects and Classes Distributed Real-Time Control Systems Lecture 17 C++ Programming Intro to C++ Objects and Classes 1 Bibliography Classical References Covers C++ 11 2 What is C++? A computer language with object oriented

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Introduction to Programming for Engineers Spring Final Examination. May 10, Questions, 170 minutes

Introduction to Programming for Engineers Spring Final Examination. May 10, Questions, 170 minutes Final Examination May 10, 2011 75 Questions, 170 minutes Notes: 1. Before you begin, please check that your exam has 28 pages (including this one). 2. Write your name and student ID number clearly on your

More information

C introduction: part 1

C introduction: part 1 What is C? C is a compiled language that gives the programmer maximum control and efficiency 1. 1 https://computer.howstuffworks.com/c1.htm 2 / 26 3 / 26 Outline Basic file structure Main function Compilation

More information

Reals 1. Floating-point numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method.

Reals 1. Floating-point numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method. Reals 1 13 Reals Floating-point numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method. 13.1 Floating-point numbers Real numbers, those declared to be

More information

Convex sets and convex functions

Convex sets and convex functions Convex sets and convex functions Convex optimization problems Convex sets and their examples Separating and supporting hyperplanes Projections on convex sets Convex functions, conjugate functions ECE 602,

More information

Lab 1: First Steps in C++ - Eclipse

Lab 1: First Steps in C++ - Eclipse Lab 1: First Steps in C++ - Eclipse Step Zero: Select workspace 1. Upon launching eclipse, we are ask to chose a workspace: 2. We select a new workspace directory (e.g., C:\Courses ): 3. We accept the

More information

A506 / C201 Computer Programming II Placement Exam Sample Questions. For each of the following, choose the most appropriate answer (2pts each).

A506 / C201 Computer Programming II Placement Exam Sample Questions. For each of the following, choose the most appropriate answer (2pts each). A506 / C201 Computer Programming II Placement Exam Sample Questions For each of the following, choose the most appropriate answer (2pts each). 1. Which of the following functions is causing a temporary

More information

Voronoi diagrams Delaunay Triangulations. Pierre Alliez Inria

Voronoi diagrams Delaunay Triangulations. Pierre Alliez Inria Voronoi diagrams Delaunay Triangulations Pierre Alliez Inria Voronoi Diagram Voronoi Diagram Voronoi Diagram The collection of the non-empty Voronoi regions and their faces, together with their incidence

More information

MATHEMATICS II: COLLECTION OF EXERCISES AND PROBLEMS

MATHEMATICS II: COLLECTION OF EXERCISES AND PROBLEMS MATHEMATICS II: COLLECTION OF EXERCISES AND PROBLEMS GRADO EN A.D.E. GRADO EN ECONOMÍA GRADO EN F.Y.C. ACADEMIC YEAR 2011-12 INDEX UNIT 1.- AN INTRODUCCTION TO OPTIMIZATION 2 UNIT 2.- NONLINEAR PROGRAMMING

More information

Question 2. [5 points] Given the following symbolic constant definition

Question 2. [5 points] Given the following symbolic constant definition CS 101, Spring 2012 Mar 20th Exam 2 Name: Question 1. [5 points] Determine which of the following function calls are valid for a function with the prototype: void drawrect(int width, int height); Assume

More information

CS 372: Computational Geometry Lecture 10 Linear Programming in Fixed Dimension

CS 372: Computational Geometry Lecture 10 Linear Programming in Fixed Dimension CS 372: Computational Geometry Lecture 10 Linear Programming in Fixed Dimension Antoine Vigneron King Abdullah University of Science and Technology November 7, 2012 Antoine Vigneron (KAUST) CS 372 Lecture

More information

automatic differentiation techniques used in jump

automatic differentiation techniques used in jump automatic differentiation techniques used in jump Miles Lubin, Iain Dunning, and Joey Huchette June 22, 2016 MIT Operations Research Center 1 / 36 - Solver-independent, fast, extensible, open-source algebraic

More information

UNIT - I. Introduction to C Programming. BY A. Vijay Bharath

UNIT - I. Introduction to C Programming. BY A. Vijay Bharath UNIT - I Introduction to C Programming Introduction to C C was originally developed in the year 1970s by Dennis Ritchie at Bell Laboratories, Inc. C is a general-purpose programming language. It has been

More information

CAAM 420 Daily Note. Scriber: Qijia Jiang. Date: Oct.16. Project 3 Due Wed 23.Oct. Two parts: debug code and library exercise.

CAAM 420 Daily Note. Scriber: Qijia Jiang. Date: Oct.16. Project 3 Due Wed 23.Oct. Two parts: debug code and library exercise. CAAM 420 Daily Note Scriber: Qijia Jiang Date: Oct.16 1 Announcement Project 3 Due Wed 23.Oct. Two parts: debug code and library exercise. 2 Make Convention Make syntax for library directories and library

More information

Sketchpad Graphics Language Reference Manual. Zhongyu Wang, zw2259 Yichen Liu, yl2904 Yan Peng, yp2321

Sketchpad Graphics Language Reference Manual. Zhongyu Wang, zw2259 Yichen Liu, yl2904 Yan Peng, yp2321 Sketchpad Graphics Language Reference Manual Zhongyu Wang, zw2259 Yichen Liu, yl2904 Yan Peng, yp2321 October 20, 2013 1. Introduction This manual provides reference information for using the SKL (Sketchpad

More information

Part 3: Function Pointers, Linked Lists and nd Arrays

Part 3: Function Pointers, Linked Lists and nd Arrays Part 3: Function Pointers, Linked Lists and nd Arrays Prof. Dr. Ulrik Schroeder C++ - Einführung ins Programmieren WS 03/04 http://learntech.rwth-aachen.de/lehre/ws04/c++/folien/index.html Pointer to functions

More information

Quiz Start Time: 09:34 PM Time Left 82 sec(s)

Quiz Start Time: 09:34 PM Time Left 82 sec(s) Quiz Start Time: 09:34 PM Time Left 82 sec(s) Question # 1 of 10 ( Start time: 09:34:54 PM ) Total Marks: 1 While developing a program; should we think about the user interface? //handouts main reusability

More information

Introduction to Mathcad

Introduction to Mathcad CHAPTER 1 Introduction to Mathcad Mathcad is a product of MathSoft inc. The Mathcad can help us to calculate, graph, and communicate technical ideas. It lets us work with mathematical expressions using

More information

CS201 Latest Solved MCQs

CS201 Latest Solved MCQs Quiz Start Time: 09:34 PM Time Left 82 sec(s) Question # 1 of 10 ( Start time: 09:34:54 PM ) Total Marks: 1 While developing a program; should we think about the user interface? //handouts main reusability

More information

Algorithmic Differentiation of Implicit Functions and Optimal Values

Algorithmic Differentiation of Implicit Functions and Optimal Values Algorithmic Differentiation of Implicit Functions and Optimal Values Bradley M. Bell 1 and James V. Burke 2 1 Applied Physics Laboratory, University of Washington, Seattle, WA 98195, USA, bradbell@washington.edu

More information

PIC 10A. Lecture 3: More About Variables, Arithmetic, Casting, Assignment

PIC 10A. Lecture 3: More About Variables, Arithmetic, Casting, Assignment PIC 10A Lecture 3: More About Variables, Arithmetic, Casting, Assignment Assigning values to variables Our variables last time did not seem very variable. They always had the same value! Variables stores

More information

Programming 2. Object Oriented Programming. Daniel POP

Programming 2. Object Oriented Programming. Daniel POP Programming 2 Object Oriented Programming Daniel POP Week 5 Agenda 1. Modifiers: friend 2. Objects Wrap-up last week Self-reference Modifiers: static const mutable Object Oriented Programming Friends (I)

More information

Ch. 3: The C in C++ - Continued -

Ch. 3: The C in C++ - Continued - Ch. 3: The C in C++ - Continued - QUIZ What are the 3 ways a reference can be passed to a C++ function? QUIZ True or false: References behave like constant pointers with automatic dereferencing. QUIZ What

More information

Chapter 4: Basic C Operators

Chapter 4: Basic C Operators Chapter 4: Basic C Operators In this chapter, you will learn about: Arithmetic operators Unary operators Binary operators Assignment operators Equalities and relational operators Logical operators Conditional

More information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

A general introduction to Functional Programming using Haskell

A general introduction to Functional Programming using Haskell A general introduction to Functional Programming using Haskell Matteo Rossi Dipartimento di Elettronica e Informazione Politecnico di Milano rossi@elet.polimi.it 1 Functional programming in a nutshell

More information

CMAT Language - Language Reference Manual COMS 4115

CMAT Language - Language Reference Manual COMS 4115 CMAT Language - Language Reference Manual COMS 4115 Language Guru: Michael Berkowitz (meb2235) Project Manager: Frank Cabada (fc2452) System Architect: Marissa Ojeda (mgo2111) Tester: Daniel Rojas (dhr2119)

More information

SONIC A Solver and Optimizer for Nonlinear Problems based on Interval Computation

SONIC A Solver and Optimizer for Nonlinear Problems based on Interval Computation SONIC A Solver and Optimizer for Nonlinear Problems based on Interval Computation Elke Just University of Wuppertal June 14, 2011 Contents About SONIC Miranda Borsuk Topological Degree Implementation Branch

More information

SMPL - A Simplified Modeling Language for Mathematical Programming

SMPL - A Simplified Modeling Language for Mathematical Programming SMPL - A Simplified Modeling Language for Mathematical Programming Mihály Csaba Markót November 3, 2008 1 Purpose and Scope This working paper describes SMPL, an initiative of a Simplified Modeling Language

More information

MATH2070: LAB 4: Newton s method

MATH2070: LAB 4: Newton s method MATH2070: LAB 4: Newton s method 1 Introduction Introduction Exercise 1 Stopping Tests Exercise 2 Failure Exercise 3 Introduction to Newton s Method Exercise 4 Writing Matlab code for functions Exercise

More information

Lecture 19: Functions, Types and Data Structures in Haskell

Lecture 19: Functions, Types and Data Structures in Haskell The University of North Carolina at Chapel Hill Spring 2002 Lecture 19: Functions, Types and Data Structures in Haskell Feb 25 1 Functions Functions are the most important kind of value in functional programming

More information

bool_set and interval for the C++ standard

bool_set and interval for the C++ standard bool_set and interval for the C++ standard Sylvain Pion (INRIA Sophia Antipolis) Hervé Brönnimann (Bloomberg, Polytechnic University Brooklyn) Guillaume Melquiond (ENS Lyon) Plan 1 Motivation 2 Applications

More information

CS 376b Computer Vision

CS 376b Computer Vision CS 376b Computer Vision 09 / 25 / 2014 Instructor: Michael Eckmann Today s Topics Questions? / Comments? Enhancing images / masks Cross correlation Convolution C++ Cross-correlation Cross-correlation involves

More information

Interpolation is a basic tool used extensively in tasks such as zooming, shrinking, rotating, and geometric corrections.

Interpolation is a basic tool used extensively in tasks such as zooming, shrinking, rotating, and geometric corrections. Image Interpolation 48 Interpolation is a basic tool used extensively in tasks such as zooming, shrinking, rotating, and geometric corrections. Fundamentally, interpolation is the process of using known

More information

Convex sets and convex functions

Convex sets and convex functions Convex sets and convex functions Convex optimization problems Convex sets and their examples Separating and supporting hyperplanes Projections on convex sets Convex functions, conjugate functions ECE 602,

More information

Object-Oriented Programming, Iouliia Skliarova

Object-Oriented Programming, Iouliia Skliarova Object-Oriented Programming, Iouliia Skliarova CBook a = CBook("C++", 2014); CBook b = CBook("Physics", 1960); a.display(); b.display(); void CBook::Display() cout

More information

LAB 1 General MATLAB Information 1

LAB 1 General MATLAB Information 1 LAB 1 General MATLAB Information 1 General: To enter a matrix: > type the entries between square brackets, [...] > enter it by rows with elements separated by a space or comma > rows are terminated by

More information

Programming Fundamentals (CS 302 ) Dr. Ihsan Ullah. Lecturer Department of Computer Science & IT University of Balochistan

Programming Fundamentals (CS 302 ) Dr. Ihsan Ullah. Lecturer Department of Computer Science & IT University of Balochistan Programming Fundamentals (CS 302 ) Dr. Ihsan Ullah Lecturer Department of Computer Science & IT University of Balochistan 1 Outline p Introduction p Program development p C language and beginning with

More information

ELEC 377 C Programming Tutorial. ELEC Operating Systems

ELEC 377 C Programming Tutorial. ELEC Operating Systems ELE 377 Programming Tutorial Outline! Short Introduction! History & Memory Model of! ommon Errors I have seen over the years! Work through a linked list example on the board! - uses everything I talk about

More information

Lab copy. Do not remove! Mathematics 152 Spring 1999 Notes on the course calculator. 1. The calculator VC. The web page

Lab copy. Do not remove! Mathematics 152 Spring 1999 Notes on the course calculator. 1. The calculator VC. The web page Mathematics 152 Spring 1999 Notes on the course calculator 1. The calculator VC The web page http://gamba.math.ubc.ca/coursedoc/math152/docs/ca.html contains a generic version of the calculator VC and

More information

Introduction to Functional Programming in Haskell 1 / 56

Introduction to Functional Programming in Haskell 1 / 56 Introduction to Functional Programming in Haskell 1 / 56 Outline Why learn functional programming? The essence of functional programming What is a function? Equational reasoning First-order vs. higher-order

More information

Chapter 3 Numerical Methods

Chapter 3 Numerical Methods Chapter 3 Numerical Methods Part 1 3.1 Linearization and Optimization of Functions of Vectors 1 Problem Notation 2 Outline 3.1.1 Linearization 3.1.2 Optimization of Objective Functions 3.1.3 Constrained

More information

Review of the C Programming Language for Principles of Operating Systems

Review of the C Programming Language for Principles of Operating Systems Review of the C Programming Language for Principles of Operating Systems Prof. James L. Frankel Harvard University Version of 7:26 PM 4-Sep-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights

More information

Summer May 18, 2010

Summer May 18, 2010 Summer 2010 to Department of Computer Science Engineering York University Toronto May 18, 2010 1 / 46 What have we done last time? to Basic information about testing: Black- Glass-box tests Rom tests Regression

More information

Numerical Methods Lecture 7 - Optimization

Numerical Methods Lecture 7 - Optimization Numerical Methods Lecture 7 - Optimization Topics: numerical optimization - Newton again - Random search - Golden Section Search READING : text pgs. 331-349 Optimization - motivation What? Locating where

More information

Week 2: Console I/O and Operators Arithmetic Operators. Integer Division. Arithmetic Operators. Gaddis: Chapter 3 (2.14,3.1-6,3.9-10,5.

Week 2: Console I/O and Operators Arithmetic Operators. Integer Division. Arithmetic Operators. Gaddis: Chapter 3 (2.14,3.1-6,3.9-10,5. Week 2: Console I/O and Operators Gaddis: Chapter 3 (2.14,3.1-6,3.9-10,5.1) CS 1428 Fall 2014 Jill Seaman 1 2.14 Arithmetic Operators An operator is a symbol that tells the computer to perform specific

More information

PROGRAMMING IN C++ CVIČENÍ

PROGRAMMING IN C++ CVIČENÍ PROGRAMMING IN C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com REQUIREMENTS FOR COURSE CREDIT Basic requirements

More information

Midterm 2. CMSC 430 Introduction to Compilers Fall Instructions Total 100. Name: November 21, 2016

Midterm 2. CMSC 430 Introduction to Compilers Fall Instructions Total 100. Name: November 21, 2016 Name: Midterm 2 CMSC 430 Introduction to Compilers Fall 2016 November 21, 2016 Instructions This exam contains 7 pages, including this one. Make sure you have all the pages. Write your name on the top

More information

A Constraint Satisfaction Problem (CSP) Approach to Design and Verify Cyber-Physical Systems (CPS)

A Constraint Satisfaction Problem (CSP) Approach to Design and Verify Cyber-Physical Systems (CPS) A Constraint Satisfaction Problem (CSP) Approach to Design and Verify Cyber-Physical Systems (CPS) Alexandre Chapoutot joint work with Julien Alexandre dit Sandretto and Olivier Mullier U2IS, ENSTA ParisTech,

More information

Arrays. Defining arrays, declaration and initialization of arrays. Designed by Parul Khurana, LIECA.

Arrays. Defining arrays, declaration and initialization of arrays. Designed by Parul Khurana, LIECA. Arrays Defining arrays, declaration and initialization of arrays Introduction Many applications require the processing of multiple data items that have common characteristics (e.g., a set of numerical

More information