The problem backwards

Prescribing a curve rather than points

A four-bar can be made to pass through nine prescribed points and no more; past nine the problem is over-determined and the answer is an optimiser's. Prescribe the whole curve as an equation instead and there is no counting to do — but the mechanism that comes back has four hundred bars where the four-bar had four.

Assumes How many points may be prescribed.

This field’s central number is nine. A four-bar’s coupler point can be made to pass through nine prescribed points, exactly, and a tenth is one demand too many.

The counting behind it is simple and it is worth restating because everything in this rung is about what happens when the counting stops applying. A four-bar has nine free quantities once the scale, position and orientation of the whole thing are taken out: the four lengths, the coupler point’s two coordinates, and the frame’s placement. Each prescribed point is two equations and one new unknown, the crank angle at which the point is reached. So each point costs one net equation, and nine of them uses the nine freedoms up.

Past nine, the system is over-determined and there is no exact answer. What replaces it is approximate synthesis: an objective function, a starting guess, and a linkage that minimises something.

The sampling does not converge to the curve

The natural thought is that a curve is the limit of a fine enough sampling, so prescribing a hundred points approaches prescribing the curve.

It does not, and the reason is not that a hundred is not enough. It is that the character of the answer changes at ten and never changes back.

At nine and fewer, the answer is exact and finite. There are finitely many four-bars meeting the demand, they are the roots of a polynomial system, and the algebra field counts them. Each one hits every prescribed point to the solver’s floor.

At ten and more, the answer is a minimum. There is no four-bar meeting the demand, so what comes back depends on the objective function, on the starting guess, and on which of the many local minima the search fell into. The error is not zero anywhere, and how it is distributed is a design choice: minimising the worst error gives a different linkage from minimising the sum of squares, and each objective wins only on its own measure.

Refining the sampling makes the second problem harder, not closer to the first. A thousand points is a thousand residuals to trade off rather than a better approximation to an exact demand.

The exact and approximate problems are not two ends of one axis. They are different problems with different mathematics, and the boundary between them is at ten.

What an equation asks for instead

A polynomial does not sample anything. p(x,y)=0p(x,y) = 0 names the whole curve at once, and a mechanism satisfying it is not right at some places and nearly right at others — it is right everywhere it moves.

There is no counting to do, because the demand is not a list of conditions to be traded against a supply of freedoms. It is one condition, and a construction that turns it into a mechanism directly.

The price is the size. A general cubic costs a hundred and one bars and a general quintic four hundred and thirteen, against a four-bar’s four.

What the nine is really counting

It is worth going one level down on the nine, because the same counting is what does not apply to a compiled machine and the contrast is the rung’s whole point.

Nine is a balance between freedoms and conditions. The four-bar supplies nine numbers that can be chosen; each prescribed point supplies two conditions and consumes one new unknown, the crank angle at which the point is reached. Nine points, eighteen conditions, nine new unknowns, nine net — and the supply is exhausted.

Two things follow that a reader might not expect.

The count says nothing about whether a solution exists. It says the system is square. A square polynomial system has finitely many complex solutions, and how many of them are real varies with the data: the algebra field makes exactly this distinction, and a nine-point problem can be square and have no real four-bar at all.

The count says nothing about whether a solution is usable. All the defect tests come afterwards, and they remove most of the answers.

So the nine is a statement about the size of the demand rather than about what can be delivered, and a designer reading it as nine points can be hit is over-reading it by two whole steps. A compiled machine has no such number and no such gap between the count and the answer, because there is nothing being balanced.

The two are answering different questions

Set them side by side and the difference is not accuracy. It is what is being promised.

Synthesis promises a small mechanism that is right in the places that were named. It cannot say anything about anywhere else, and often what happens elsewhere is bad — the coupler curve wanders, or the linkage reaches its prescribed points on different branches and cannot be driven from one to the next.

Compilation promises a mechanism that is right everywhere on an arc. It cannot say anything about size, and what happens to the size is very bad.

Neither promise contains the other. A designer who wants a linkage to pass through five positions has no use for a four-hundred-bar machine that draws a curve through them and everywhere else besides; a mathematician who wants to know whether a given curve is drawable at all has no use for a four-bar that is close to it at five places.

What each curve costs, in cosines. Every polynomial in the two arm angles is a constant plus a sum of terms A cos(mα + nβ + φ) with whole-number m and n, and the number of those terms is what a machine has to build. The count is not the degree and not the monomial count: a circle costs one term, a general line two, and a lemniscate — degree four — costs five, fewer than the cubic above it, because its symmetry cancels frequency pairs the cubic keeps. Each row's expansion was checked against a direct evaluation of its own polynomial at random angles, worst disagreement 1.8e-14.
Fig. 1 Nine curves as equations, with how many cosine terms each expands to. A demand given this way carries no sampling and no precision points: the whole curve is one condition on the two arm angles.

The demand a curve makes is not larger, it is different in kind

There is a way of hearing prescribe the whole curve as prescribe infinitely many points, and it is worth showing that this is the wrong picture.

Infinitely many points would be an infinitely over-determined system, and the natural response to it would be an optimiser with an integral objective — which is a real method and is what approximate synthesis with a continuous objective does. That produces a linkage minimising an integral, and it is still an approximation.

An equation is not that. It is one condition, on the two arm angles, and a machine enforcing it has one fewer degree of freedom than the arm did. Nothing is being balanced against anything, no residual is being minimised, and the number of points does not enter at any stage of the construction.

The difference between a sample and an equation is not a difference of quantity. A hundred points and a polynomial are not two sizes of the same demand; one is a list of places and the other is a membership test, and only the second can be turned into a mechanism directly.

What degree a coupler curve actually is. A four-bar's coupler point traced at 602 solved positions, then asked which polynomials vanish on those points. For each degree the design matrix's smallest singular direction is taken and its worst residual plotted. Degrees four and five leave nothing near zero; degree six drops by ten decades and degree seven buys nothing further. The textbook sentence — a coupler curve is a sextic — comes back as a measurement, and the decision is made by the gap between the smallest singular value and the next, which here is a factor of 2.8e+3 — at 15, 21, 28 and 36 monomials respectively.
Fig. 2 The curve put to both fields: a four-bar’s own coupler curve, fitted for the equation it satisfies.

A curve that a four-bar draws, prescribed both ways

The cleanest way to see the two fields on one object is to take a curve a four-bar already traces and put it to each.

As points. Sample the coupler curve at nine positions and hand them to Burmester’s machinery. It returns finitely many four-bars, one of which is the original. Exact at nine points, small, and — since the original is among the answers — exact everywhere as well, by luck rather than by construction.

As an equation. Fit the sextic to the traced points and hand the polynomial to the compiler. It returns a machine of hundreds of bars, exact along an arc, with no idea that four bars would have done.

Same curve, two demands, two answers differing by two orders of magnitude in size. And the four-bar is not merely smaller: it is exact on the whole curve rather than on an arc, and it has no gadget waiting to go singular.

On this one curve, synthesis wins outright. That is not an embarrassment for compilation, because the curve was chosen to be one a four-bar draws; it is the demonstration that a general procedure has no way to be lucky, and that the interesting open question is how large the gap gets on curves nobody chose.

Where the boundary actually is

There is a case in the middle, and naming it is the honest way to draw the line.

Function generation asks for a relation between an input angle and an output angle, over a range, and the approximation field handles it by choosing precision points and minimising between them. Written as an equation, the same demand is a relation between two angles — which is exactly the form the expansion works in, and a compiled machine for it would be exact.

Nobody would build the compiled version, because a four-bar function generator is four bars and is right to a fraction of a per cent over its range. But the comparison is the sharpest available statement of what the trade is: exactness over a whole range, for a machine two orders of magnitude larger.

That is the trade, stated once, and every case in the subject falls on the same side of it.

Every curve in the catalogue, compiled and counted. The bar count is not a formula: it is the number of bar constraints the compiled mechanism actually carries, asked of the object rather than predicted. A line costs five bars and a quintic four hundred and thirteen, which is the field's central number — exactness is paid for in size. The all-revolute column replaces the one prismatic pair that closes the chain with a Peaucellier cell, which costs seven bars whatever the curve, so it is more than half the machine on a line and a rounding error on a quintic. The last column is the polynomial evaluated at the traced point, worst over each machine's working arc.
Fig. 3 What compilation returns for each of those curves. A four-bar has four bars and hits nine points; the machines here have between five and four hundred and thirteen and are exact along an arc.
How much of a compiled machine is computing anything. Each machine's bars split two ways: the ones that build an angle — reflectors, means, rigid offsets, the arm — and the ones that carry a direction from where it was computed to where it is needed. On the smallest machines the arithmetic is nearly all of it. By the quintic the carrying is 80 per cent, and it goes on rising, because the arithmetic grows with the number of terms and the carrying grows with the number of pairs of them. That is the answer to why a universality construction is enormous, and it is not about the algebra being hard.
Fig. 4 Where the cost of a prescribed curve goes. Most of a compiled machine carries angles rather than computing with them, so the price of asking for a whole curve is paid in transport rather than in arithmetic.

Three demands, and where each one lands

The clearest way to fix the boundary is to take three requests a designer might actually make and say what each field does with them.

Pass through five prescribed positions of a rigid body. Burmester’s problem, exactly solvable, finitely many answers, most of them defective. Synthesis, comfortably; and there is no version of this a compiler takes, because five positions of a body is not a curve at all.

Trace this photographed curve as closely as possible with as few links as possible. Sample it, choose precision points, run an optimiser. Synthesis, again; the curve arrived as points and has no equation, and inventing one by fitting would be adding a step whose error nobody asked for.

Trace exactly the set where this polynomial vanishes. Compilation, and nothing else in the subject answers it at all. A four-bar can be fitted to the curve and will not be exact; a search over larger chains has no way to certify exactness even if it stumbles on it.

The pattern is that the field is chosen by how the demand arrived, not by how accurate an answer is wanted. A demand that arrived as positions stays a synthesis problem however precisely it is stated, and a demand that arrived as an equation is a compilation problem however roughly.

What synthesis has that compilation does not

Three things, and they are the reason this field is not superseded.

A finite answer set that can be enumerated. Burmester’s three-position problem has a curve of solutions and the four-position problem has finitely many, and knowing how many there are is itself useful — it says whether a demand is under- or over-specified before anything is built. Compilation returns one machine and has nothing to enumerate.

Defect tests. A synthesised linkage may be exactly correct and unusable, because the prescribed positions lie on branches it cannot be driven between. This field spends a whole rung on that, and of 1,176 exactly correct three-position syntheses only 111 turned out to be usable. Compilation has an analogous problem — a machine may be assembled on a branch that draws a different curve — and its version is repaired by bracing rather than tested for.

Mechanisms people build. Every linkage in the applied field came out of a synthesis problem, and none came out of a compilation.

Bars against terms, over the whole catalogue. One mark per compiled machine. The bar count rises much faster than the term count, and the reason is the summing chain: term k has to have its direction carried to the k−1th vertex of the chain, one parallelogram per hop, so the carrying costs a translator for every pair of terms. Nine curves, from five bars to four hundred and thirteen, on a term count that goes from one to eighteen.
Fig. 5 The bill rather than the budget: bar counts against term counts, with nothing bounded by anything.

The counting has an analogue and it is not useful

For completeness, it is worth asking whether a compiled machine has a version of the nine, and the answer is instructive by being disappointing.

The compiler’s input is a polynomial and its output is a machine, and the machine’s size is set by the number of surviving cosine terms. So there is a number — the term count — and it plays the role of how big a demand this is.

What it does not do is bound anything. There is no statement of the form a machine of this size can draw curves of at most this term count, because the compiler builds whatever size the term count calls for. The number describes the answer rather than limiting the question, which is the opposite of what the nine does.

Synthesis has a budget and compilation has a bill, and the difference is why one field is full of counting arguments and the other has none. A budget makes the interesting question what fits; a bill makes it what does this cost, and the second is arithmetic rather than mathematics.

What compilation has that synthesis does not

One thing, and it is worth the field.

A guarantee that does not depend on the demand. Every synthesis method has demands it cannot meet, and finding out is part of the work: the optimiser may not converge, the exact solutions may all be defective, the chain may be wrong. Compilation cannot fail. Handed any polynomial whose curve the arm can reach, it returns a machine, in under a second, and the machine is exact.

That changes what the question is. Before, can a linkage draw this curve was open for each curve and settled case by case, usually by somebody clever. After, it is closed for all curves at once, and the open question is the different one of how small the linkage can be.

This field’s problem is optimisation and that field’s problem is existence, and they were only ever confused because both of them start by somebody wanting a curve.

What this changes about how the field reads its own history

Synthesis on this site has been presented as the problem run backwards: given the motion, find the lengths. That framing is right and it has a hidden assumption in it that this rung makes visible.

The assumption is that the motion arrives as data. Every method in the field takes positions, or a sampled path, or a table of input-output angle pairs, and every one of them is therefore an interpolation problem in disguise — which is why the whole field ends up with precision points, objective functions and defect tests, none of which is about mechanisms at all.

A demand that arrives as an equation is not data, and the machinery that grew up around data does not apply to it. That is the reason compilation looks so unlike everything else here: it is not a better interpolation, it is the absence of one.

The field’s methods are shaped by the form of its inputs, and it has had one form of input for two centuries. Adding a second changes what the methods are for rather than improving them, which is why this rung is a boundary marker rather than a new technique.

Exactness is not bought with links. Five straight-line mechanisms, each measured over its own working arc — walked out to its dead centres and back a tenth — and each plotted at its own bar count. Watt's four bars are wrong by 9.0 per cent of the stroke and Chebyshev's by 12.4; Peaucellier's seven are exact. There is nothing in between, and adding bars to an approximation does not walk down the axis: the compiled machine is exact for the same reason Peaucellier is — an exact algebraic relation — and its extra bars buy generality rather than accuracy.
Fig. 6 Five straight-line mechanisms on one axis. The two approximations are synthesis answers and the compiled ones are compilation answers, and the fourteen decades between them are what the two fields are arguing about.
Four strokes, laid on the line they are supposed to be. Each mechanism's traced path, rotated and scaled so its two ends sit on the horizontal axis, so the vertical axis is exactly the departure from straightness as a fraction of the stroke. Watt's is the classic figure of eight and Chebyshev's is the symmetric bow; the two exact mechanisms are flat at this scale and at every scale. The vertical axis spans about a fifth of the stroke and the exact traces are invisible on it — which is the honest way to draw the difference between an error of nine per cent and an error of 10⁻¹⁴.
Fig. 7 And what is bought with it: strokes that lie on the curve they were asked for, rather than through a set of points chosen from it. The difference between the two demands is visible here as the difference between a line and a set of marks on one.

The one place they meet

A four-bar’s coupler curve has an implicit equation of degree six. So an ordinary four-bar is, read backwards, a compiled machine for a particular sextic — four bars where the compiler would use hundreds.

That is the sharpest thing either field says about the other. The compiler handles every curve the same way and therefore cannot notice that a particular sextic is a four-bar’s own curve. Synthesis notices nothing else: it is entirely built out of what a four-bar can do.

There is a second meeting point, smaller and worth recording. Both fields have a branch problem, and both discovered it the same way. Synthesis found that a linkage can meet every prescribed position exactly and be unable to travel between them, because the positions lie on different assembly branches — 1,065 of 1,176 exact answers lost that way. Compilation found that a machine can satisfy every bar exactly and draw a different curve, because a parallelogram closed the wrong way.

The same underlying fact — that bar lengths do not determine an assembly — bites both, and neither field’s instruments could see it until something was measured that the constraints did not mention. That is worth more than the analogy suggests: it says the failure belongs to linkages rather than to either method.

So the honest summary is that neither is a method for the other’s problem, and the useful open question belongs to neither: given a curve, what is the smallest linkage that draws it exactly. The compiler gives an upper bound. On the one family where a better answer is known, the bound is a hundred times too large, and nothing in the subject says how far the gap goes.

About the same objects

Not linked from either essay — found by the objects both name.

The objects this essay names

Each one links to every other essay that touches it.

Approximate synthesisCompiled linkageKinematic synthesisObjective functionPath generationPrecision positionUniversality