Lyapunov Exponents
The previous article ended with a number it never properly defined. Sensitive dependence says neighbouring trajectories diverge like — but which neighbours, in which direction, measured how, and why should the wildly fluctuating local stretching of a chaotic orbit average out to any well-defined rate at all? This article builds the answer: the theory of Lyapunov exponents, the spectrum of numbers that has become the working currency of chaos — the quantity researchers actually compute, report, and argue about when they claim a system is chaotic. The right mental picture is an infinitesimal ball of initial conditions riding the flow. The dynamics shears it into an ellipsoid, and each principal axis grows or shrinks at its own asymptotic exponential rate: one rate per phase-space dimension, ordered . That full spectrum, not just its famous leading member, is a portrait of the dynamics. Its sign pattern classifies the attractor at a glance — a fixed point, a limit cycle, chaos. Its sum equals the average phase-volume divergence, tying it to the dissipation bookkeeping of the last three articles. In Hamiltonian systems it is exactly symmetric, pairs, symplectic geometry made numerical. And weighted partial sums of it estimate the fractal dimension of the attractor the dynamics builds — the Kaplan–Yorke bridge to the next article. Two theorems and one algorithm make all this respectable: Oseledets' multiplicative ergodic theorem, which guarantees the limits exist; the symplectic pairing rule, which disciplines the Hamiltonian case; and the Benettin grow-log-renormalize recipe, which turns the definitions into measurements. By the end, "this system is chaotic" becomes a statement with error bars.
- The Lyapunov spectrum is the set of asymptotic exponential growth rates of the principal axes of an infinitesimal phase-space ball carried by the flow; on a bounded set defines chaos.
- Perturbations obey the variational equation ; the propagator accumulates the stretching, and Oseledets' theorem guarantees the limiting rates exist and are trajectory-generic.
- Every bounded non-equilibrium orbit of an autonomous flow has one exponent exactly zero — the direction along the flow.
- Sum rule: — negative for dissipative flows (attractors), exactly zero for Hamiltonian ones, where the spectrum pairs as .
- The spectrum's sign signature classifies attractors: point, cycle, torus, strange attractor.
- Measurement: Benettin's grow-log-renormalize algorithm (with Gram–Schmidt for the full spectrum) in simulations; delay-embedding methods (Wolf, Rosenstein) for experimental time series.
- Key idea: an infinitesimal ball of initial conditions is deformed by the flow into an ellipsoid whose principal axes grow like ; the ordered rates — existence guaranteed by Oseledets' theorem — classify the dynamics, sum to the mean volume divergence, and certify chaos when on a bounded invariant set.
An infinitesimal ball of initial conditions is deformed by the flow into an ellipsoid whose principal axes grow like ; the ordered rates classify the dynamics, sum to the mean phase-volume divergence, and certify chaos when on a bounded invariant set.
Where this lives today
Lyapunov analysis is now instrumentation across an absurd range of scales. Solar-system dynamicists compute exponent maps of asteroid belt regions to chart chaotic transport routes (the Kirkwood gaps are Lyapunov-positive zones); accelerator physicists tune storage-ring lattices by tracking tangent dynamics so that stored beams sit in Lyapunov-quiet regions of phase space; and climate-adjacent fluid dynamics has upgraded from single exponents to covariant Lyapunov vectors — the intrinsic directions attached to each exponent — to dissect which physical structures carry the instability in turbulence. The same mathematics surfaced, half unexpectedly, in machine learning: a recurrent neural network processing a sequence is an iterated map, its exploding/vanishing gradient problem is literally a positive/negative Lyapunov exponent of the training dynamics, and architectures like LSTMs are engineering solutions for parking a system near — the edge of chaos as a design specification. Within the chapter, this article is the metrology station. The sensitive-dependence article supplied the concept; here it became a spectrum with theorems (Oseledets, pairing) and an algorithm (Benettin) attached; and the Kaplan–Yorke formula has already leaked the next article's subject — the fractal geometry of the sets that chaotic dissipative dynamics builds. The handoff is direct: the spectrum says the Lorenz attractor has dimension ; the strange attractors article shows what a -dimensional object is.
The physical picture
Drop a tiny ball of uncertainty — all the states compatible with one imperfect measurement — into phase space and let the dynamics carry it. Locally the flow is linear (that is what the variational equation says), and a linear map takes balls to ellipsoids. Watch the ellipsoid over a long stretch of orbit: each principal axis settles into its own exponential habit, growing or shrinking like . The rates, ordered, are the Lyapunov spectrum. The longest axis is the star — its rate is what a generic error grows at, since any realistic uncertainty has some component along it — but the supporting cast matters just as much: the zero exponent along the flow direction, the negative exponents that fold uncertainty onto the attractor, and the sum of all of them, which must reproduce the volume budget the flow's divergence dictates.
The spectrum is a fingerprint. A stable fixed point contracts every axis: all exponents negative. A limit cycle carries one marker of time-translation freedom — perturbations along the orbit neither grow nor die — so its signature is . A quasiperiodic torus has two neutral directions, . And chaos wears the signature this chapter has been building toward: in three dimensions — stretch, slide, squeeze — with the sum negative for a dissipative system (a strange attractor of zero volume) or exactly zero for a Hamiltonian one (a chaotic sea, exponents in pairs). Read the signs and you have read the phase portrait. The honest subtlety is that no single glance at the Jacobian reveals any of this. Along a chaotic orbit the local stretching fluctuates violently — the trajectory passes through regions that compress the very direction that elsewhere expands — so the exponent must be defined as an infinite-time average, and it is a genuine theorem (Oseledets, 1968) that the average exists and comes out the same for almost every starting point in an ergodic component. That theorem is what licenses the entire enterprise: it turns "chaotic-looking" into a measurable number attached to the system, not to the whim of one trajectory. Measured across a family of systems, the exponent becomes a narrative device. Below is for the logistic map as a function of — the entire story of the last five articles compressed into one computed curve. Through the periodic cascade the exponent is negative, plunging toward at each superstable orbit and touching zero at every doubling threshold (where the multiplier sits at and perturbations neither grow nor decay). At the Feigenbaum accumulation point it arrives at zero with nowhere left to dip — and crosses. Beyond, the positive plateau is chaos, gashed by the negative dips of the periodic windows, and at the exponent reaches its ceiling : one binary digit of the initial condition consumed per iteration.
And it is measurable in practice, by an algorithm of almost embarrassing simplicity. Track one tangent vector alongside the trajectory; it aligns itself with the most-expanding direction (everything does); every so often, record how much it grew and rescale it to unit length before the computer overflows. The average of the logged growth rates converges to . Carry a full orthonormal frame instead, re-orthogonalizing as you go, and the successive frame vectors — each forced to live orthogonal to the faster ones — report the entire spectrum. That is Benettin's method, and it is how every Lyapunov number quoted in this chapter was actually obtained.
The formal core
Everything begins where the previous article ended: linearize about a moving trajectory. Perturbations obey the variational equation
where: — the Jacobian along the reference orbit, a time-dependent matrix even for autonomous systems. Its solutions are organized by the propagator (fundamental matrix)
where: — the time-ordered accumulation of all the local stretchings and rotations the orbit has visited; because the Jacobians at different times do not commute, is not the exponential of anything simple, and its long-time structure is a nontrivial question. The exponent of a chosen initial direction is
where: the limit is independent of the norm chosen — a factor bounded above and below dies under . What makes (3) more than wishful notation is Oseledets' multiplicative ergodic theorem: for an ergodic invariant measure, the limit
where: — the symmetric matrix whose eigenvalues are the squared singular values of , i.e. the squared stretch factors of the ellipsoid axes — exists, and its eigenvalue logarithms are the Lyapunov exponents , the same for almost every initial condition. A generic direction picks up the top exponent, almost surely: components along slower directions are outrun by factors , so only measure-zero conspiracies see anything but the maximum. Two exact structural rules discipline the spectrum. First, the sum rule: by Jacobi's formula, — the volume stretch factor of the ellipsoid — evolves as , so
where: — the time average along the orbit. This is the bridge to the volume bookkeeping of the last three articles: for the driven pendulum the right side was the constant ; for any Hamiltonian flow it vanishes identically. Second, for Hamiltonian systems the symplectic structure sharpens "sums to zero" into a term-by-term symmetry (Derivation C):
where: every stretching direction has a mirror-image contracting partner at exactly the opposite rate — the double pendulum's was this rule in action. Two derived quantities convert the spectrum into forecasts and geometry. The Lyapunov time and prediction horizon (imported from the sensitive-dependence article):
where: — the e-folding time of errors, the natural clock of unpredictability. And the Kaplan–Yorke dimension:
where: — the number of directions whose combined stretching is still non-negative; the fractional part interpolates: the attractor is "as many dimensions as the dynamics can keep from contracting." For the Lorenz attractor, spectrum : and — a fractal barely thicker than a surface, and the subject of the next article.
Which tool answers which question
| you want | use | notes |
|---|---|---|
| does an error grow, and how fast? | via (3) | generic directions inherit the top rate |
| the full portrait | spectrum signature | point · cycle · torus · chaos |
| consistency check on numerics | sum rule (5) | must match exactly |
| Hamiltonian bookkeeping | pairing (6) | spectrum symmetric; no attractors possible |
| attractor dimension | Kaplan–Yorke (8) | dynamics → geometry, no box counting |
| exponents from data | delay embedding + Rosenstein/Wolf | only (and 0) are robust from experiments |
We derive the workhorse formula of computational chaos: for a map , the Lyapunov exponent is the orbit average of . The strategy is to chain the one-step linearization into a product and let the logarithm convert products into averages — three lines of algebra hiding one deep idea, the ergodic exchange of time averages for space averages. The step to watch is the final one, where a statement about one orbit becomes a statement about an invariant density: that exchange is what makes the exponent a property of the system.
Step 1. Linearize a single step: a small error at becomes — the map's local slope is the one-dimensional Jacobian, stretching where and compressing where .
Step 2. Chain steps: — the 1D avatar of the propagator , with the time-ordering trivial because scalars commute.
Step 3. Define the rate and take logarithms:
Why the logarithm is essential: the growth factors multiply, and multiplicative fluctuations (slopes ranging from 0 to 4 for the logistic map) average meaningfully only in the log — the exponent is a geometric mean rate, not an arithmetic one.
Step 4. Exchange time for space. For an ergodic invariant density , the time average equals the space average:
Why this matters: the right side makes no reference to any particular orbit — the exponent is revealed as a property of the map plus its invariant measure, computable analytically whenever is known.
Step 5. Cash the formula on the benchmark: for , the invariant density is (from the tent-map conjugacy of the previous article), and the integral evaluates exactly to per iteration. The numerically computed curve of Figure 2 lands on this value at to three decimals — and the same formula, evaluated on a stable 2-cycle, returns , negative through the periodic cascade and zero exactly at each doubling threshold, reproducing the sawtooth of the figure. Verified: integral per Ott §2.3 and Strogatz §10.5; the Figure 2 computation gives vs ; 2-cycle value at : per iteration, matching direct simulation.
Go deeper · Derivation B · 1 minThe sum rule — spectrum meets phase-volume budget
The goal is equation (5): the Lyapunov exponents sum to the time-averaged divergence of the flow. This one identity welds the spectrum to everything the course knows about volumes — Liouville's theorem, dissipative contraction, the existence or impossibility of attractors. The strategy is to track the volume of the evolving ellipsoid two ways: as the product of its axis stretches (giving ) and via Jacobi's formula for (giving the divergence). Watch the logarithm once again do the work of converting a product of fluctuating factors into a clean time average.
Step 1. The ellipsoid's volume factor after time is — the product of the singular values , i.e. of the axis stretch factors: .
Step 2. Differentiate the determinant along the flow with Jacobi's formula:
Why the trace collapses: the trace is invariant under conjugation, so the propagator sandwich drops out — the volume growth rate at each instant is just the local divergence, regardless of how the ellipsoid is currently oriented.
Step 3. Integrate and average: , so
Step 4. Compute the same limit from the axes: by the definition of the exponents as axis growth rates. Equate:
Step 5. Harvest the consequences. Dissipative flow (): the sum is negative, so even with the attractor has zero volume — strangeness is forced, and the contraction directions must overpower the stretching. Hamiltonian flow: sum exactly zero (Liouville), so a positive exponent requires an equal-magnitude negative partner — no net contraction, no attractor, chaotic seas instead. And numerically, the rule is a free integrity test: for Lorenz, the computed spectrum must sum to the constant divergence — it does, to the third digit (Worked Example 3). Verified: Jacobi's formula and the transport theorem per Ott §4.2; Lorenz check vs ; driven-pendulum case reproduces the exact of the previous article.
Go deeper · Derivation C · 2 minSymplectic pairing — why Hamiltonian spectra are mirror-symmetric
We prove the pairing rule (6): for Hamiltonian flows the exponents come in exact pairs. This is stronger than the zero-sum rule and is pure symplectic geometry — the same structure that powered the canonical-transformation articles now disciplining chaos. The strategy: show the tangent propagator is a symplectic matrix at all times, then convert the symplectic condition into a statement about singular values. The step to watch is the similarity trick in Step 3 — one line of matrix algebra that forces the entire mirror symmetry.
Step 1. Write Hamilton's equations as a flow: with and the symplectic unit , . The variational equation is then , with the (symmetric) Hessian along the orbit.
Step 2. Show the propagator preserves the symplectic form:
carried through carefully: and ; the two terms cancel. Hence for all : the tangent flow is symplectic. Why this is the linearized Liouville-and-more: preservation of preserves all the Poincaré invariants of the W4 articles, volume among them — but the matrix identity carries finer information than the determinant alone.
Step 3. Convert to a spectral statement. From : — the inverse propagator is similar to the transpose. Therefore and (hence ) share eigenvalue spectra, and more usefully, is similar to : if is an eigenvalue of , so is . Why singular values and not eigenvalues matter: the exponents are growth rates of lengths — singular value data — and the similarity chain above forces the singular values into reciprocal pairs up to bounded factors, which is what survives the limit.
Step 4. Take the limit: reciprocal singular-value pairs give exponent pairs . Ordered, the spectrum satisfies , and the sum vanishes term by term — Liouville recovered as the shadow of a sharper symmetry.
Step 5. Add the two structural zeros for bounded motion: the flow direction always contributes (perturbations along the orbit merely reparametrize time), and its symplectic partner — the direction across energy surfaces — contributes the paired zero. For the double pendulum: , exactly as measured in the previous article. Verified: symplecticity of the tangent map and reciprocal pairing per Arnold §44 and Goldstein §9.4; the flow-direction zero follows since solves the variational equation identically (differentiate ).
Limiting cases
| Case | Spectrum signature | Meaning |
|---|---|---|
| stable fixed point | all directions contract; no zero (nothing flows) | |
| stable limit cycle | one neutral direction along the orbit | |
| quasiperiodic 2-torus | two angle directions, both neutral | |
| strange attractor (dissipative) | , | stretch + slide + overpowering squeeze; needs for flows |
| Hamiltonian chaos | , | mirror pairs; chaotic sea, no attractor |
| conservative regular motion (KAM torus) | all zeros ( DOF: ) | polynomial separation only |
| 1D map | single | per-iteration rate; at full logistic chaos |
Worked examples
1 · Reading a measured spectrum (confidence builder)
A 3D dissipative flow yields the spectrum . Classify the dynamics, compute the Kaplan–Yorke dimension, the Lyapunov time, and the horizon for initial error with tolerance (attractor units).
Step 1. Signature on a bounded set: chaotic. Sum : dissipative — a strange attractor. The zero confirms a genuine flow (not a map) away from equilibrium.
Step 2. Kaplan–Yorke (8): partial sums , , , so and .
Step 3. Lyapunov time ; horizon — about 14 e-foldings, the standard budget.
2 · The exponent as cascade bookkeeper (exam level)
For the logistic map: (i) verify at the superstable period-2 parameter is in principle and explain why; (ii) compute on the 2-cycle at ; (iii) state at , at , and at , and connect each to Figure 2.
Step 1. At , the 2-cycle contains the map's maximum where : the orbit average of contains . Perturbations are annihilated (not just shrunk) once per period — superstability, the deep negative spikes of Figure 2.
Step 2. At the 2-cycle multiplier (previous article, Derivation A) is , so per iteration — strongly stable, matching the deep valley between and the spike.
Step 3. At : multiplier , so — the exponent touches zero at every doubling threshold, the sawtooth teeth of Figure 2. At : arriving from below with no room left — the marginal Feigenbaum attractor. At : , the ceiling — one bit of initial-condition information consumed per iteration ( by Pesin). The whole cascade is thus visible as one curve: negative sawtooth, zero at the accumulation, positive plateau with window dips.
3 · The Lorenz spectrum audited (applied)
The Lorenz system (, , ) has measured spectrum . Audit it against the sum rule, and give .
Step 1. The divergence is constant: — no averaging needed, the cleanest possible test case.
Step 2. Spectrum sum: . Agreement to : the measurement passes its integrity audit. (Any proposed spectrum failing this test — e.g. one omitting the zero exponent — is instantly refuted.)
Step 3. Dimension: , — the Lorenz attractor is two-dimensional plus six percent, in excellent agreement with direct fractal-dimension measurements. The next article takes exactly this handoff: what that fractional looks like.
Origins · 1 minAleksandr Lyapunov and how this was discovered
Lyapunov built the theory of stability of motion two generations before anyone could compute with it. His 1892 doctoral dissertation, The General Problem of the Stability of Motion, written in Kharkov under the long shadow of his teacher Chebyshev, introduced both pillars of the modern subject: the "first method," which extracts stability from the growth exponents of linearized solutions — the direct ancestor of the numbers bearing his name — and the "second method" of Lyapunov functions, which certifies stability with no linearization at all and now runs through control theory, from power grids to rocket guidance. The motivating problem was celestial and concrete: whether rotating self-gravitating fluid masses (model planets) hold their shape, a question on which he duelled politely with Poincaré for decades, deciding delicate stability cases the Frenchman had left open. His exponents waited three-quarters of a century for their apotheosis: Oseledets' 1968 theorem secured their existence for generic trajectories, and the chaos revolution of the 1970s made them the field's standard measure. Lyapunov did not live to see any of it — he shot himself in Odessa in 1918, three days after his wife's death from tuberculosis, ending a life of severe and solitary rigor whose definitions turned out to be exactly what a science he never imagined would need.
Going further
References. Strogatz, Nonlinear Dynamics and Chaos, 2nd ed., §9.3, §10.5, §11 · Ott, Chaos in Dynamical Systems, 2nd ed., Ch. 4 · Goldstein, Poole & Safko, Classical Mechanics, 3rd ed., §11.6–11.8 · Landau & Lifshitz, Mechanics, Vol. 1 (3rd ed.), discussion of phase-space flow · Benettin, Galgani, Giorgilli & Strelcyn, Meccanica 15, 9 (1980) · Wolf, Swift, Swinney & Vastano, Physica D 16, 285 (1985)
Provenance. Variational equation, fundamental matrix and the Oseledec definition follow Strogatz §9.3 and Ott Ch. 4; verify the tangent-equation derivation by direct Taylor expansion. The sum rule via Jacobi's formula and Liouville's theorem is standard (Ott §4.2). Symplectic pairing checked against Arnold §44 and Goldstein §9.4. Numbers: logistic-map exponent at and Feigenbaum point (Strogatz §10.5, §10.6); Lorenz spectrum and (Strogatz §9.3, Wolf et al. 1985) — recompute . Solar-system Lyapunov time Myr from Laskar's integrations. All exponents ordered .
Builds on: Linear Stability Analysis and the Jacobian · Phase Portraits and the Phase Plane · Classification of Fixed Points: Nodes, Saddles, Spirals, Centers · Conservative Systems and Hamiltonian Phase Flow Leads to: Period-Doubling Cascade and the Route to Chaos · Bifurcations and the Loss of Stability · Limit Cycles and Self-Sustained Oscillations · Hopf Bifurcation and Birth of Limit Cycles
Why do people integrate the variational equation instead of just tracking two nearby trajectories?
Because the definition demands the limit of infinitesimal separation, and finite twins violate it in two ways. First, saturation: a real pair separates until it spans the attractor, after which the log-separation curve flattens and the fitted "exponent" sinks — you measure attractor diameter, not dynamics. Second, contamination: a finite separation vector has weight on all the Oseledets directions and samples nonlinear terms; its growth mixes exponents unpredictably. The variational equation solves both at a stroke: the tangent vector is infinitesimal by construction (it lives in the tangent space, evolved by the exact linearization along the true orbit), so it never saturates, and periodic renormalization handles the numerical overflow that would otherwise occur after digits of growth. The twin-trajectory method survives only as a data-analysis tool (Rosenstein/Kantz) where no equations are available — and there it is used carefully, fitting only the pre-saturation window at small scales.
Can the full spectrum be extracted from an experimental time series?
The top exponent and the zero, yes, with care; the negative tail, essentially no. From a single measured signal one reconstructs the attractor by delay embedding — Takens' theorem guarantees the reconstruction is diffeomorphic to the true attractor for generic measurements — and then tracks how small neighbourhoods separate (Rosenstein/Kantz for , checking stability against embedding dimension and delay). The zero exponent shows up as a reliable second plateau. But negative exponents describe how off-attractor perturbations decay, and the data contains no off-attractor points: everything measured has already collapsed onto the attractor, so the contracting directions are sampled only through their fractal residue, and estimates of and beyond are noise-dominated. Consequently experimental Kaplan–Yorke dimensions are usually computed the other way — dimension measured geometrically (next article), exponents inferred — or the negative exponents are taken from a fitted model. Simulation and experiment thus divide the spectrum between them: models give you all of it, data gives you the top.
Are Lyapunov exponents coordinate-independent? I could measure separation in angles or in energies and get different numbers.
The exponents are invariant under any smooth change of coordinates with bounded derivatives — precisely because a diffeomorphism multiplies separations by factors bounded above and below, which contribute . Angles, Cartesian positions, canonical pairs: same spectrum. This is what licenses delay-embedding measurements (the embedding is a coordinate change) and what makes the exponent a property of the dynamics rather than the chart. The fine print: the transformation must be smooth and non-degenerate on the invariant set (singular changes can distort exponents), the finite-time exponents and the covariant directions are NOT invariant (only the asymptotic rates are), and for flows the exponents carry units of inverse time, so rescaling time rescales the spectrum — per-second and per-orbit conventions differ by the mean period, a factor worth pinning down before comparing literature values.
What do the fluctuations of finite-time exponents mean — is the infinite-time limit hiding physics?
Yes, and modern usage increasingly mines it. The finite-time (local) exponent — the growth rate over a window — fluctuates around the asymptotic value with a distribution whose width shrinks like but whose shape encodes real structure: intermittency shows up as heavy tails (episodes of anomalous stability or instability), sticky KAM-island boundaries in Hamiltonian systems produce long low- episodes, and in forecasting, today's local exponent is tomorrow's error bar — weather predictability genuinely varies from day to day, and ensemble spread tracks the local, not global, stretching. Large-deviation theory formalizes this: the distribution of finite-time exponents obeys a rate function whose Legendre transform generates the generalized dimensions and entropies of multifractal analysis. So the single number is the headline; the fluctuation spectrum around it is the full story, and for mixed phase spaces (double pendulum at moderate energy) a map of local exponents is the honest portrait.
How exactly does Gram–Schmidt pull out the subleading exponents rather than k copies of the top one?
By forcing each successive vector to live in the orthogonal complement of the faster ones, where the leading growth has been projected away. Evolve an orthonormal frame with the variational equation: every vector, left alone, would rotate toward the top Oseledets direction and grow at . At each renormalization, Gram–Schmidt keeps 's direction (it legitimately tracks the fastest direction), then strips from its component along before renormalizing — so the logged growth factor of measures expansion in the 2D subspace modulo the 1D one, which grows like divided by : rate . Inductively, the -th vector's logged factors average to because the -volume of the frame grows at and Gram–Schmidt factorizes that volume growth into per-vector pieces (a running QR decomposition of , in linear-algebra language). This is also why the sums converge fastest and are the natural objects — the Kaplan–Yorke formula is built from exactly those sums.
Is a positive Lyapunov exponent by itself proof of chaos?
It is the strongest single indicator, but the honest checklist has three lines. (1) — exponential separation. (2) Boundedness/recurrence — the motion stays in a compact invariant set, so the stretching is recycled rather than a one-shot escape (a linear saddle has positive local exponents and no chaos; escape to infinity can also fake positivity over finite windows). (3) Aperiodicity of the sampled orbit — ruling out the measure-zero pathology of sitting exactly on an unstable periodic orbit, whose exponent is positive but whose motion is periodic. In practice a fourth line matters most: robustness — the estimate must be stable under longer integration, different initial conditions in the same basin, refined tolerances, and it must pass the sum-rule audit. For experimental data, add stability under embedding parameters and surrogate-data tests against colored noise. When all lines check, "chaotic" is as certified as empirical dynamics gets; any single line alone has famous counterexamples.