Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical...

25
Efficient computation of (classical) Gaussian quadrature rules A. Gil, D. Ruiz-Antol´ ın, J. Segura , N. M. Temme Departamento de Matem ´ aticas, Estad´ ıstica y Computaci ´ on Universidad de Cantabria, Spain SIAM Annual Meeting 2016 JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 1 / 25

Transcript of Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical...

Page 1: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Efficient computation of (classical) Gaussianquadrature rules

A. Gil, D. Ruiz-Antolın, J. Segura, N. M. Temme

Departamento de Matematicas, Estadıstica y ComputacionUniversidad de Cantabria, Spain

SIAM Annual Meeting 2016

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 1 / 25

Page 2: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Introduction

Given I(f ) =

∫ b

af (x)w(x)dx , with w(x) a weight function, the n-point

quadrature rule

Qn(f ) =n∑

i=1

wi f (xi ) (1)

is a Gaussian quadrature if I(f ) = Qn(f ) for f any polynomial withdeg(f ) ≤ 2n − 1.

Gaussian quadrature rules are optimal in a very specific sense and they areone of the more widely used methods of integration.

The question is, how to compute the nodes xi and weights (or Christoffelnumbers) wi?

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 2 / 25

Page 3: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Introduction

1 The nodes xi , i = 1, . . . ,n of the Gaussian quadrature rule are the rootsof the (for instance monic) orthogonal polynomial satisfying∫ b

ax ipn(x)w(x)dx = 0, i = 0, . . . ,n − 1. (2)

2 The Christoffel-Darboux formula gives the following expression for theweights in terms of monic polynomials

wj = − ||pn||2

p′n(xj )pn+1(xj ), ||pn||2 =

∫ b

apn(x)2w(x)dx

3 Recurrence relation for monic polynomials

pk+1(x) = (x − Bk )pk (x)− Ak pk−1(x), k = 1,2, . . . , (3)

where A0p−1 ≡ 0, Ak =||pk ||2

||pk−1||2, k ≥ 1, Bk =

〈xpk ,pk 〉||pk ||2

, k ≥ 0, and

< f ,g >=

∫ b

af (x)g(x)w(x)dx , ||f || =< f , f >

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 3 / 25

Page 4: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Introduction

The Golub-Welsch algorithmLet

J =

β0 α1 0 . . . 0α1 β1 α2

0 α2 β2...

.... . . αn−1

0 . . . αn−1 βn−1

αi =

√Ai , βi = Bi . Then the n different eigenvalues of J are the nodes.

Furthermore, if ~Φ(j) is an eigenvector with eigenvalue the node xj :

wj = µ0(Φ

(j)1 )2

||~Φ(j)||2E

where Φ(j)1 is the first component of ~Φ(j) and µ0 =

∫ b

aw(x)dx .

Complexity: O(n2)JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 4 / 25

Page 5: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Introduction

For the iterative computation of the nodes and weights we need:

1 A method to compute the polynomials pn(x) and the firstderivatives.

2 A method to compute the roots of pn(x) (nodes xi )3 Depending on the selection of the iterative method: good starting

values ensuring convergence (this is rarely proved).

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 5 / 25

Page 6: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature

Classical Gaussian quadrature

Iterative methods are restricted to the classical cases, characterized by thefact that the OPs are solutions of second order ODEs

C(x)y ′′n (x) + B(x)y ′n(x) + λny(x) = 0

(C and B polynomials).The classical cases are:

1 Hermite: w(x) = e−x2in (−∞,+∞)

2 Laguerre: w(x) = x−αe−x , α > −1, in (0,+∞)

3 Jacobi: w(x) = (1− x)α(1 + x)β , α, β > −1, in (−1,1)

Apart from being solution of a second order ODE, the coefficients of thethree-term recurrence relation are simple, as well as the coefficients in

y ′n(x) = an(x)yn(x) + bnyn−1(x)

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 6 / 25

Page 7: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature

Recent references on the computation of classical Gauss quadratureE. Yakimiw, Accurate computation of weights in classical Gauss-Christoffel quadrature rules.J. Comput. Phys. (1996) Legendre (Hermite and Laguerre α = 0 to a lesser extent)

K. Petras, On the computation of the Gauss-Legendre quadrature formula with a given precision.J. Comput. Appl. Math. (1999) Legendre

P. N. Swarztrauber, On computing the points and weights for Gauss-Legendre quadrature.SIAM J. Sci. Comput. (2002) Legendre

A. Glaser, X. Liu, V. Rokhlin, A fast algorithm for the calculation of the roots of special functions.SIAM J. Sci. Comput. (2007) Hermite, Laguerre (α = 0), Legendre

J. Segura, Reliable computation of the zeros of solutions of second order linear ODEs using a fourth order method.SIAM J. Numer. Anal. (2010) Hermite, Laguerre, Jacobi (*)

I. Bogaert, B. Michiels, J. Fostier, J., O(1) computation of Legendre polynomials and Gauss-Legendre nodes and weights forparallel computing.SIAM J. Sci. Comput. (2012) Legendre

N. Hale, A. Townsend, Fast and accurate computation of Gauss-Legendre and Gauss-Jacobi quadrature nodes and weights.SIAM J. Sci. Comput. (2013) Jacobi

I. Bogaert, Iteration-free computation of Gauss-Legendre quadrature nodes and weights.SIAM J. Sci. Comput. (2014) Legendre

A. Townsend, T. Trogdon, S. Olver, Fast computation of Gauss quadrature nodes and weights on the whole real line.IMA J. Numer. Anal (to appear) Hermite

A. Townsend, The race to compute high-order Gauss-Legendre quadrature.SIAM News (2015)

P. Bremer, On the numerical calculation of the roots of special functions satisfying second order ordinary differential equations.

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 7 / 25

Page 8: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Iterative methods

Worth noting:

© All papers use Newton’s method for computing the roots (order 2), with theexception of Yamikiw and Petras papers (higher derivatives are needed) andJS.

Newton’s method:

The NM, x (n+1) = x (n) − f (x (n))

f ′(x (n)), has order of convergence 2 because

εn+1

ε2n=

f ′′(α)

2f ′(α)+O(εn) as n→∞, εn = x (n) − α.

© The only proof of convergence for Newton method is for the Legendrecase (Petras, 1999).

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 8 / 25

Page 9: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Iterative methods

If a function satisfies and EDO, use it to speed up the method!

For computing zeros of solutions of

w ′′(x) + B(x)w ′(x) + C(x)w(x) = 0 (4)

we can take y(x) = exp(∫

12

B(x)dx)

w(x) and then y ′′(x) + A(x)y(x) = 0,

with A(x) = C(x)− 12

B′(x)− 14

B(x)2. Now

y(x)

y ′(x)=

w(x)

12

B′(x)w(x) + w ′(x)

and the Newton method x (n+1) = x (n) − y(x (n))

y ′(x (n))is of third order.

And we can do better!

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 9 / 25

Page 10: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Iterative methods

Algorithm (Zeros of y ′′(x) + A(x)y(x) = 0, A(x) decreasing)

Given x (n), the next iterate x (n+1) is computed as follows: find asolution of the equation w ′′(x) + A(x (n))w(x) = 0 such thaty(x (n))w ′(x (n))− y ′(x (n))w(x (n)) = 0 and take as x (n+1) the zero ofw(x) closer to x (n) and larger than x (n).

Equations: y ′′(x) + A(x)y(x) = 0, w ′′(x) + A(x (n))w(x) = 0, (A′(x) < 0)

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 10 / 25

Page 11: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Iterative methods

The method is equivalent to iterating xn+1 = T (xn) with the followingfixed point iteration.

Let h(x) = y(x)/y ′(x), j = sign(A′(x)), we define

T (x) = x − 1√A(x)

arctanj(√

A(x)h(x))

with

arctanj(ζ) =

arctan(ζ) if jz > 0,arctan(ζ) + jπ if jz ≤ 0,jπ/2 if z = ±∞

This method converges to α for any x0 in [α′, α) if A′(x) < 0, with α′ thelargest zero smaller than α (analogously for A′(x) > 0).The method has fourth order convergence:

εn+1 =A′(α)

12ε4n +O(ε5n), εk = xk − α

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 11 / 25

Page 12: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Iterative methods

Computing the zeros in an interval where A(x) ismonotonic.

The basic algorithm is remarkably simple:

Algorithm

Computing zeros for A′(x) < 0

1 Iterate T (x) starting from x (0) until an accuracy target is reached. Let α be thecomputed zero.

2 Take x (0) = T (α) = α+ π/√

A(α) and go to 1.

Repeat until the interval where the zeros are sought is swept. For A′(x) > 0 the sameideas can be applied but the zeros are computed in decreasing order.See JS, SIAM J. Numer. Anal. (2010).

Requirement: the monotonicity properties of A(x) should be known in advance inorder to compute zeros in sub-intervals where A(x) is monotonic.

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 12 / 25

Page 13: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Iterative methods

Our algorithm has some connection with the Glaser-Liu-Rokhlin algorithm (GLR).

Our algorithm uses T (x) = x − 1√A(x)

arctan(√

A(x)y(x)y ′(x)

)In GLR, they consider a Prufer transformation of the ODEp(x)u′′(x) + q(x)u′(x) + r(x) = 0, defining

θ(x) = arctan(√

rp

uu′

)

Once a zero α is computed, the next one is estimated by integrating the first orderODE satisfied by x(θ) with initial value x(0) = α. The next zero is given by x(π). Thisis used as starting value for the Newton method (and the OPs are computed by Taylorseries).

Differently from GLR our algorithm has guaranteed fourth order convergence. NoODE integration is required for a first estimation of the zeros.

The only numerical concern will be to compute accurately the OPs (provided we havean ODE y ′′(x) + A(x)y(x) = 0 with known monotonicity properties of A(x)).

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 13 / 25

Page 14: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Gauss-Hermite quadrature

Gauss-Hermite quadrature

The function y(x) = Cne−x2/2Hn(x) satisfies

y ′′n (x) + A(x)yn(x) = 0, A(x) = 2n + 1− x2.

The nodes are symmetric around the origin.

We start x = 0 and compute zeros in increasing order until we havecomputed bn/2c zeros. The first step is

x = T−1(0) =

π√

2n + 1, n odd (h(0+) = 0+)

π

2√

2n + 1, n even (h(0+) = +∞)

As n→ +∞ the coefficient A(x) is essentially constant for not too large x .In this sense, the method will be asymptotically exact.

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 14 / 25

Page 15: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Gauss-Hermite quadrature

Methods are available for computing efficiently and reliably yn(x), also forlarge n:

Computing the Real Parabolic Cylinder Functions U(a,x), V(a,x).A. Gil , J. Segura, N.M. Temme.ACM Trans. Math. Softw. 32(1) (2006) 70-101

Algorithm 850: Real Parabolic Cylinder Functions U(a,x), V(a,x).A. Gil, J. Segura, N.M. Temme.ACM Trans. Math. Softw. 32(1) (2006) 102-112

This algorithm uses two different asymptotic approximations for large n(in terms of elementary or Airy functions)

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 15 / 25

Page 16: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Gauss-Hermite quadrature

A simpler approach is also possible: use local Taylor series.

By differentiating the ODE satisffied by y(x) = Cne−x2/2Hn(x) we have

y (k+2) + (2n + 1− x2)y (k) − 2kxy (k−1) − k(k − 1)y (k−2) = 0

Stability: Perron-Kreuser theorem does not give conclusive information.

All solutions of this difference equation satisfy: lim supk→+∞

(|y (k)|/(k !)2/3

)1/k= 1

Use the derivatives to compute

y(x0 + h) =∞∑

k=0

y (k)(x0)

k !hk

and similarly for y ′(x0 + h), truncating for a given precision.

In our case h will be always less than the maximal distance between zeros ofHn(x).

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 16 / 25

Page 17: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Gauss-Hermite quadrature

Algorithm for Gauss-Hermite based on local Taylor series.

As before yn = (2nn!)−1/2e−x2/2Hn(x).

1 With x = π/√

2n + 1 for n odd and x = π/(2√

2n + 1) for n even. Leti = 1.

2 Iterate the fixed point method

T (x) = x − 1√A(x)

arctan−1(√

A(x)h(x))

until convergence is reached within a given accuracy. The values of y(x)and y ′(x) are computed from Taylor series, centered at the previouspoint.Let xi be the resulting zero (node)

3 The corresponding weight is given by wi = 2e−x2i /(y ′n(xi ))2.

4 Set x = xi + π/√

A(xi ), i = i + 1, and go to 2 if i ≤ bn/2c.

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 17 / 25

Page 18: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Gauss-Hermite quadrature

Some features of the algorithm

1 The Taylor algorithm is nearly as fast for large n as the algorithm basedon asymptotics for Hermite, but much simpler (around 60 code lines).

2 The method does not need initial estimations for the roots and they don’timprove significantly the performance. Typically 2 iterations are neededfor full double accuracy, except for the largest zeros, which require 3.

3 Full double precision accuracy is obtained for all the nodes and for any n(differently from GLR).

4 There is some degradation in relative accuracy for the normalizedweights wi (wi = ex2

i wi ), as n becomes large, particularly for the weightsfor the largest nodes, which in any case are two orders of magnitudsmaller errors than those in GLR. The errors range from 10−15 for 103

nodes (or lower) to 10−11 for 106 nodes.

5 It appears to be faster than GLR, particularly for extended (quadruple)precision. In double precision, each node/weight is computed in lessthan 0.5µs (in my laptop).

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 18 / 25

Page 19: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Gauss-Laguerre quadrature

Gauss-Laguerre quadrature

Take z(x) =√

x , thenA good starting point consists in considering y(z) = zα+1/2e−z2/2L(α)

n (z2),which satisfies y(z) + A(z)y(z) = 0 with

A(x) = A(z(x)) = −x + 2L +

14− α2

x, x = z2.

The coefficient A(x) is decreasing for positive x if |α| ≤ 1/2 and has a

maximum at xe =√α2 − 1/4 if |α| > 1/2.

For large n, the above change z(x) =√

x is an interesting transformationbecause the method becomes asymptotically exact as n→ +∞.

Other changes for which the Liouville transformations of the Laguerre ODEleads to a simple analysis are z(x) = xm, m ∈ R and z(x) = log(x) (A.Deano, A. Gil, JS, 2004).

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 19 / 25

Page 20: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Gauss-Laguerre quadrature

The question is now: how to compute L(α)n (x).

Differently form Hermite, we can not start by computing the smallest rootusing Taylor series (x = 0 is a singular point of the ODE). In fact, we will needalternatives to the Taylor series for computing more than a zero...

Plot of L(−0.8)20 (x).

The first three or four zeros can not be computed with Taylor series.

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 20 / 25

Page 21: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Gauss-Laguerre quadrature

A new (and first) algorithm for the efficient computation of Laguerrepolynomials including high orders: A. Gil, J. Segura, N. M. Temme, “Efficientcomputation of Laguerre polynomials” (submitted)Apart from recurrences for moderate degree (n ≤ 200), our algorithm uses:

1 A simple expansion for small x in terms of Bessel functions:

L(α)n (x) =

(xn

)− 12α

e12 x

(Jα(2√

nx)

A(x)−√

xn

Jα+1(2√

nx)

B(x)

)A(x) and B(x) are given as asymptotic expansions in powers of n−1.

2 A not so simple expansion in terms of Bessel functions for not so small x(from Frenzen & Wong, 1988)

3 Uniform expansion in terms of Airy functions (from Frenzen & Wong,1988)

Additional expansions in terms of Bessel functions or in terms of Hermitepolynomials can be considered for large α, but the coefficients are hard tocompute.

Recurrence over α is also possible, but the stability has to be carefullyanalyzed.

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 21 / 25

Page 22: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Gauss-Laguerre quadrature

With this we have built an algorithm for the computation of Gauss-Laguerrequadratures for −1 < α ≤ 20 and unrestricted n.

Performance:

1 Typically 2 iterations are neeeded for full double accuracy, except for thelargest and smallest zeros, which require 3.

2 Double precision accuracy is obtained for all the nodes and for any n(differently from GLR, for which only α = 0 was considered).

3 There is some degradation in relative accuracy for the normalizedweights wi (wi = exi wi ) as n becomes large. For 10n nodes, the worstrelative accuracy of the normalized weights is of the order of 10n−16.

4 The algorithm is nearly as fast as Hermite’s

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 22 / 25

Page 23: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Classical Gaussian quadrature Gauss-Jacobi quadrature

Gauss-Jacobi quadrature

We will talk about the Jacobi case some other day...

We only mention that the most appropriate starting point is the ODE

satisfied by y(θ) =

(sin

θ

2

)α+1/2(cos

θ

2

)β+1/2

Pn(cos θ):

d2ydθ2 +

14

L2 +

14− α2

sin2(θ/2)+

14− β2

cos2(θ/2)

y = 0

L = 2n + α + β + 1

The change x = cos θ is not the only possibility (see Deano, Gil,Segura (2004)) but in this variable the method is asymptotically exactas n→ +∞.

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 23 / 25

Page 24: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Status of the algorithms

Status of the algorithms and software

1 Maple codes for all classical quadrature formulas and for variouschanges of variable are available (reliable but slow).

2 A Fortran 95 code is available for Gauss-Hermite. The code outperformsthe Glaser-Liu-Rokhlin algorithm and it is simpler.

3 A Fortran 95 algorithm for Gauss-Laguerre is available for −1 < α < 20and practically unlimited orders.

4 An exponential-type algorithm based on Taylor series for Laguerre isalso available but it is not stable for all parameters (but it is an interestingapproach for large α).

5 There is a need of effective asymptotic expansions for Laguerrepolynomials with large α.

6 Jacobi: Maple codes are available. Fortran codes will be soon available.

Our goal: to offer a Fortran package for a fast, accurate and reliablecomputation of classical gaussian quadratures.

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 24 / 25

Page 25: Efficient computation of (classical) Gaussian quadrature rules · 2016. 9. 29. · Classical Gaussian quadrature Recent references on the computation of classical Gauss quadrature

Status of the algorithms

THANK YOU!

JS (Universidad de Cantabria) Classical Gaussian Quadrature SIAM Annual Meeting 2016 25 / 25