Measuring Fractal Dimension ?

79 views

Peter Billam

Jun 11, 2009, 11:32:26 PM6/11/09
to
Greetings. Are there any modules, packages, whatever, that will
measure the fractal dimensions of a dataset, e.g. a time-series ?
Like the Correlation Dimension, the Information Dimension, etc...

Peter

--
Peter Billam www.pjb.com.au www.pjb.com.au/comp/contact.html

Lawrence D'Oliveiro

Jun 14, 2009, 5:23:31 AM6/14/09
to
In message <slrnh33j2b...@box8.pjb.com.au>, Peter Billam wrote:

> Are there any modules, packages, whatever, that will
> measure the fractal dimensions of a dataset, e.g. a time-series ?

I don't think any countable set, even a countably-infinite set, can have a
fractal dimension. It's got to be uncountably infinite, and therefore
uncomputable.

Arnaud Delobelle

Jun 14, 2009, 8:04:39 AM6/14/09
to

I think there are attempts to estimate the fractal dimension of a set
using a finite sample from this set. But I can't remember where I got
this thought from!

--
Arnaud

Paul Rubin

Jun 14, 2009, 8:30:11 AM6/14/09
to
> I think there are attempts to estimate the fractal dimension of a set
> using a finite sample from this set. But I can't remember where I got
> this thought from!

There are image data compression schemes that work like that, trying
to detect self-similarity in the data. It can go the reverse way too.
There was a program called Genuine Fractals that tried to increase the
apparent resolution of photographs by adding artificial detail
constructed from detected self-similarity. Its results were mixed, as
I remember.

Steven D'Aprano

Jun 14, 2009, 10:00:56 AM6/14/09
to
Lawrence D'Oliveiro wrote:

Incorrect. Koch's snowflake, for example, has a fractal dimension of log
4/log 3 ≈ 1.26, a finite area of 8/5 times that of the initial triangle,
and a perimeter given by lim n->inf (4/3)**n. Although the perimeter is
infinite, it is countably infinite and computable.

Strictly speaking, there's not one definition of "fractal dimension", there
are a number of them. One of the more useful is the "Hausdorf dimension",
which relates to the idea of how your measurement of the size of a thing
increases as you decrease the size of your yard-stick. The Hausdorf
dimension can be statistically estimated for finite objects, e.g. the
fractal dimension of the coast of Great Britain is approximately 1.25 while
that of Norway is 1.52; cauliflower has a fractal dimension of 2.33 and
crumpled balls of paper of 2.5; the surface of the human brain and lungs
have fractal dimensions of 2.79 and 2.97.

--
Steven

Kay Schluehr

Jun 14, 2009, 5:29:04 PM6/14/09
to
On 14 Jun., 16:00, Steven D'Aprano
<st...@REMOVETHIS.cybersource.com.au> wrote:

> Incorrect. Koch's snowflake, for example, has a fractal dimension of log
> 4/log 3 ≈ 1.26, a finite area of 8/5 times that of the initial triangle,
> and a perimeter given by lim n->inf (4/3)**n. Although the perimeter is
> infinite, it is countably infinite and computable.

No, the Koch curve is continuous in R^2 and uncountable. Lawrence is
right and one can trivially cover a countable infinite set with disks
of the diameter 0, namely by itself. The sum of those diameters to an
arbitrary power is also 0 and this yields that the Hausdorff dimension
of any countable set is 0.

Peter Billam

Jun 14, 2009, 7:06:49 PM6/14/09
to
>> In message <slrnh33j2b...@box8.pjb.com.au>, Peter Billam wrote:
>>> Are there any modules, packages, whatever, that will
>>> measure the fractal dimensions of a dataset, e.g. a time-series ?

> Lawrence D'Oliveiro wrote:
>> I don't think any countable set, even a countably-infinite set, can
>> have a fractal dimension. It's got to be uncountably infinite, and
>> therefore uncomputable.

You need a lot of data-points to get a trustworthy answer.
Of course edge-effects step in as you come up against the
spacing betwen the points; you'd have to weed those out.

On 2009-06-14, Steven D'Aprano <st...@REMOVETHIS.cybersource.com.au> wrote:
> Strictly speaking, there's not one definition of "fractal dimension", there
> are a number of them. One of the more useful is the "Hausdorf dimension",

They can be seen as special cases of Renyi's generalised entropy;
the Hausdorf dimension (D0) is easy to compute because of the
box-counting-algorithm:
http://en.wikipedia.org/wiki/Box-counting_dimension

Also easy to compute is the Correlation Dimension (D2):
http://en.wikipedia.org/wiki/Correlation_dimension

Between the two, but much slower, is the Information Dimension (D1)
http://en.wikipedia.org/wiki/Information_dimension
which most closely corresponds to physical entropy.

Multifractals are very common in nature
(like stock exchanges, if that counts as nature :-))
http://en.wikipedia.org/wiki/Multifractal_analysis
but there you really need _huge_ datasets to get useful answers ...

There have been lots of papers published (these are some refs I have:
G. Meyer-Kress, "Application of dimension algorithms to experimental
chaos," in "Directions in Chaos", Hao Bai-Lin ed., (World Scientific,
Singapore, 1987) p. 122
S. Ellner, "Estmating attractor dimensions for limited data: a new
method, with error estimates" Physi. Lettr. A 113,128 (1988)
P. Grassberger, "Estimating the fractal dimensions and entropies
of strange attractors", in "Chaos", A.V. Holden, ed. (Princeton
University Press, 1986, Chap 14)
G. Meyer-Kress, ed. "Dimensions and Entropies in Chaotic Systems -
Quantification of Complex Behaviour", vol 32 of Springer series
in Synergetics (Springer Verlag, Berlin, 1986)
N.B. Abraham, J.P. Gollub and H.L. Swinney, "Testing nonlinear
dynamics," Physica 11D, 252 (1984)
) but I haven't chased these up and I don't think they contain
any working code. But the work has been done, so the code must
be there still, on some computer somwhere...

Regards, Peter

Steven D'Aprano

Jun 15, 2009, 12:55:03 AM6/15/09
to
On Sun, 14 Jun 2009 14:29:04 -0700, Kay Schluehr wrote:

> On 14 Jun., 16:00, Steven D'Aprano
> <st...@REMOVETHIS.cybersource.com.au> wrote:
>
>> Incorrect. Koch's snowflake, for example, has a fractal dimension of
>> log 4/log 3 ≈ 1.26, a finite area of 8/5 times that of the initial
>> triangle, and a perimeter given by lim n->inf (4/3)**n. Although the
>> perimeter is infinite, it is countably infinite and computable.
>
> No, the Koch curve is continuous in R^2 and uncountable.

I think we're talking about different things. The *number of points* in
the Koch curve is uncountably infinite, but that's nothing surprising,
the number of points in the unit interval [0, 1] is uncountably infinite.
But the *length* of the Koch curve is not, it's given by the above limit,
which is countably infinite (it's a rational number for all n).

> Lawrence is
> right and one can trivially cover a countable infinite set with disks of
> the diameter 0, namely by itself. The sum of those diameters to an
> arbitrary power is also 0 and this yields that the Hausdorff dimension
> of any countable set is 0.

Nevertheless, the Hausdorff dimension (or a close approximation thereof)
can be calculated from the scaling properties of even *finite* objects.
To say that self-similar objects like broccoli or the inner surface of
the human lungs fails to nest at all scales is pedantically correct but
utterly pointless. If it's good enough for Benoît Mandelbrot, it's good
enough for me.

--
Steven

pdpi

Jun 15, 2009, 7:14:14 AM6/15/09
to
On Jun 15, 5:55 am, Steven D'Aprano

You're mixing up the notion of countability. It only applies to set
sizes. Unless you're saying that there an infinite series has a
countable number of terms (a completely trivial statement), to say
that the length is "countably finite" simply does not parse correctly
(let alone being semantically correct or not). This said, I agree with
you: I reckon that the Koch curve, while composed of uncountable
cardinality, is completely described by the vertices, so a countable
set of points. It follows that you must be able to correctly calculate
the Hausdorff dimension of the curve from those control points alone,
so you should also be able to estimate it from a finite sample (you
can arguably infer self-similarity from a limited number of self-
similar generations).

Paul Rubin

Jun 16, 2009, 2:22:46 PM6/16/09
to
Lawrence D'Oliveiro <l...@geek-central.gen.new_zealand> writes:
> I don't think any countable set, even a countably-infinite set, can have a
> fractal dimension. It's got to be uncountably infinite, and therefore
> uncomputable.

I think the idea is you assume uniform continuity of the set (as
expressed by a parametrized curve). That should let you approximate
the fractal dimension.

As for countability, remember that the reals are a separable metric
space, so the value of a continuous function any dense subset of the
reals (e.g. on the rationals, which are countable) completely
determines the function, iirc.

David C. Ullrich

Jun 16, 2009, 2:57:57 PM6/16/09
to
On 15 Jun 2009 04:55:03 GMT, Steven D'Aprano
<ste...@REMOVE.THIS.cybersource.com.au> wrote:

>On Sun, 14 Jun 2009 14:29:04 -0700, Kay Schluehr wrote:
>
>> On 14 Jun., 16:00, Steven D'Aprano
>> <st...@REMOVETHIS.cybersource.com.au> wrote:
>>
>>> Incorrect. Koch's snowflake, for example, has a fractal dimension of

>>> log 4/log 3 ? 1.26, a finite area of 8/5 times that of the initial

>>> triangle, and a perimeter given by lim n->inf (4/3)**n. Although the
>>> perimeter is infinite, it is countably infinite and computable.
>>
>> No, the Koch curve is continuous in R^2 and uncountable.
>
>I think we're talking about different things. The *number of points* in
>the Koch curve is uncountably infinite, but that's nothing surprising,
>the number of points in the unit interval [0, 1] is uncountably infinite.
>But the *length* of the Koch curve is not, it's given by the above limit,
>which is countably infinite (it's a rational number for all n).

No, the length of the perimeter is infinity, period. Calling it
"countably infinite" makes no sense.

You're confusing two different sorts of "infinity". A set has a
cardinality - "countably infinite" is the smallest infinite
cardinality.

Limits, as in calculus, as in that limit above, are not
cardinailities.

>
>> Lawrence is
>> right and one can trivially cover a countable infinite set with disks of
>> the diameter 0, namely by itself. The sum of those diameters to an
>> arbitrary power is also 0 and this yields that the Hausdorff dimension
>> of any countable set is 0.
>
>Nevertheless, the Hausdorff dimension (or a close approximation thereof)
>can be calculated from the scaling properties of even *finite* objects.
>To say that self-similar objects like broccoli or the inner surface of
>the human lungs fails to nest at all scales is pedantically correct but

>utterly pointless. If it's good enough for Beno�t Mandelbrot, it's good
>enough for me.

Lawrence D'Oliveiro

Jun 16, 2009, 10:50:28 PM6/16/09
to
In message <7x63ew3...@ruckus.brouhaha.com>, wrote:

> Lawrence D'Oliveiro <l...@geek-central.gen.new_zealand> writes:
>
>> I don't think any countable set, even a countably-infinite set, can have
>> a fractal dimension. It's got to be uncountably infinite, and therefore
>> uncomputable.
>
> I think the idea is you assume uniform continuity of the set (as
> expressed by a parametrized curve). That should let you approximate
> the fractal dimension.

Fractals are, by definition, not uniform in that sense.

Jaime Fernandez del Rio

Jun 17, 2009, 1:35:35 AM6/17/09
to pytho...@python.org

I had my doubts on this statement being true, so I've gone to my copy
of Gerald Edgar's "Measure, Topology and Fractal Geometry" and
Proposition 2.4.10 on page 69 states: "The sequence (gk), in the
dragon construction of the Koch curve converges uniformly." And
uniform continuity is a very well defined concept, so there really
shouldn't be an interpretation issue here either. Would not stick my
head out for it, but I am pretty sure that a continuous sequence of
curves that converges to a continuous curve, will do so uniformly.

Jaime

--
(\__/)
( O.o)
( > <) Este es Conejo. Copia a Conejo en tu firma y ayúdale en sus
planes de dominación mundial.

Paul Rubin

Jun 17, 2009, 2:04:11 AM6/17/09
to
Jaime Fernandez del Rio <jaime...@gmail.com> writes:
> I am pretty sure that a continuous sequence of
> curves that converges to a continuous curve, will do so uniformly.

I think a typical example of a curve that's continuous but not
uniformly continuous is

f(t) = sin(1/t), defined when t > 0

It is continuous at every t>0 but wiggles violently as you get closer
to t=0. You wouldn't be able to approximate it by sampling a finite
number of points. A sequence like

g_n(t) = sin((1+1/n)/ t) for n=1,2,...

obviously converges to f, but not uniformly. On a closed interval,
any continuous function is uniformly continuous.

Charles Yeomans

Jun 17, 2009, 7:37:32 AM6/17/09
to pytho...@python.org

Isn't (-∞, ∞) closed?

Charles Yeomans

Mark Dickinson

Jun 17, 2009, 7:52:29 AM6/17/09
to
On Jun 17, 7:04 am, Paul Rubin <http://phr...@NOSPAM.invalid> wrote:
> I think a typical example of a curve that's continuous but not
> uniformly continuous is
>
>    f(t) = sin(1/t), defined when t > 0
>
> It is continuous at every t>0 but wiggles violently as you get closer
> to t=0.  You wouldn't be able to approximate it by sampling a finite
> number of points.  A sequence like
>
>    g_n(t) = sin((1+1/n)/ t)    for n=1,2,...
>
> obviously converges to f, but not uniformly.  On a closed interval,
> any continuous function is uniformly continuous.

Right, but pointwise convergence doesn't imply uniform
convergence even with continuous functions on a closed
bounded interval. For an example, take the sequence
g_n (n >= 0), of continuous real-valued functions on
[0, 1] defined by:

g_n(t) = nt if 0 <= t <= 1/n else 1

Then for any 0 <= t <= 1, g_n(t) -> 0 as n -> infinity.
But the convergence isn't uniform: max_t(g_n(t)-0) = 1
for all n.

Maybe James is thinking of the standard theorem
that says that if a sequence of continuous functions
on an interval converges uniformly then its limit
is continuous?

Mark

Mark Dickinson

Jun 17, 2009, 7:56:20 AM6/17/09
to
On Jun 17, 12:52 pm, Mark Dickinson <dicki...@gmail.com> wrote:
> g_n(t) = nt if 0 <= t <= 1/n else 1

Whoops. Wrong definition. That should be:

g_n(t) = nt if 0 <= t <= 1/n else

n(2/n-t) if 1/n <= t <= 2/n else 0

Then my claim that g_n(t) -> 0 for all t might
actually make sense...

Jaime Fernandez del Rio

Jun 17, 2009, 8:26:27 AM6/17/09
to Mark Dickinson, pytho...@python.org
On Wed, Jun 17, 2009 at 1:52 PM, Mark Dickinson<dick...@gmail.com> wrote:
> Maybe James is thinking of the standard theorem
> that says that if a sequence of continuous functions
> on an interval converges uniformly then its limit
> is continuous?

Jaime was simply plain wrong... The example that always comes to mind
when figuring out uniform convergence (or lack of it), is the step
function , i.e. f(x)= 0 if x in [0,1), x(x)=1 if x >= 1, being
approximated by the sequence f_n(x) = x**n if x in [0,1), f_n(x) = 1
if x>=1, where uniform convergence is broken mostly due to the
limiting function not being continuous.

I simply was too quick with my extrapolations, and have realized I
have a looooot of work to do for my "real and functional analysis"
exam coming in three weeks...

Jaime

P.S. The snowflake curve, on the other hand, is uniformly continuous, right?

Mark Dickinson

Jun 17, 2009, 8:46:22 AM6/17/09
to
On Jun 17, 1:26 pm, Jaime Fernandez del Rio <jaime.f...@gmail.com>
wrote:

> On Wed, Jun 17, 2009 at 1:52 PM, Mark Dickinson<dicki...@gmail.com> wrote:
> > Maybe James is thinking of the standard theorem
> > that says that if a sequence of continuous functions
> > on an interval converges uniformly then its limit
> > is continuous?

s/James/Jaime. Apologies.

> P.S. The snowflake curve, on the other hand, is uniformly continuous, right?

Yes, at least in the sense that it can be parametrized
by a uniformly continuous function from [0, 1] to the
Euclidean plane. I'm not sure that it makes a priori
sense to describe the curve itself (thought of simply
as a subset of the plane) as uniformly continuous.

Mark

pdpi

Jun 17, 2009, 9:18:17 AM6/17/09
to
On Jun 17, 1:26 pm, Jaime Fernandez del Rio <jaime.f...@gmail.com>
wrote:
> P.S. The snowflake curve, on the other hand, is uniformly continuous, right?

The definition of uniform continuity is that, for any epsilon > 0,
there is a delta > 0 such that, for any x and y, if x-y < delta, f(x)-f
(y) < epsilon. Given that Koch's curve is shaped as recursion over the
transformation from ___ to _/\_, it's immediately obvious that, for a
delta of at most the length of ____, epsilon will be at most the
height of /. It follows that, inversely, for any arbitrary epsilon,
you find the smallest / that's still taller than epsilon, and delta is
bound by the respective ____. (hooray for ascii demonstrations)

Curiously enough, it's the recursive/self-similar nature of the Koch
curve so easy to prove as uniformly continuous.

Mark Dickinson

Jun 17, 2009, 10:23:33 AM6/17/09
to
On Jun 17, 2:18 pm, pdpi <pdpinhe...@gmail.com> wrote:
> On Jun 17, 1:26 pm, Jaime Fernandez del Rio <jaime.f...@gmail.com>
> wrote:
>
> > P.S. The snowflake curve, on the other hand, is uniformly continuous, right?
>
> The definition of uniform continuity is that, for any epsilon > 0,
> there is a delta > 0 such that, for any x and y, if x-y < delta, f(x)-f
> (y) < epsilon. Given that Koch's curve is shaped as recursion over the
> transformation from ___ to _/\_, it's immediately obvious that, for a
> delta of at most the length of ____, epsilon will be at most the
> height of /. It follows that, inversely, for any arbitrary epsilon,
> you find the smallest / that's still taller than epsilon, and delta is
> bound by the respective ____. (hooray for ascii demonstrations)

I think I'm too stupid to follow this. It looks as though
you're treating (a portion of?) the Koch curve as the graph
of a function f from R -> R and claiming that f is uniformly
continuous. But the Koch curve isn't such a graph (it fails
the 'vertical line test', in the language of precalculus 101),
so I'm confused.

Here's an alternative proof:

Let K_0, K_1, K_2, ... be the successive generations of the Koch
curve, so that K_0 is the closed line segment from (0, 0) to
(1, 0), K_1 looks like _/\_, etc.

Parameterize each Kn by arc length, scaled so that the domain
of the parametrization is always [0, 1] and oriented so that
the parametrizing function fn has fn(0) = (0,0) and fn(1) = (1, 0).

Let d = ||f1 - f0||, a positive real constant whose exact value
I can't be bothered to calculate[*] (where ||f1 - f0|| means
the maximum over all x in [0, 1] of the distance from
f0(x) to f1(x)).

Then from the self-similarity we get ||f2 - f1|| = d/3,
||f3 - f2|| = d/9, ||f4 - f3|| = d/27, etc.

Hence, since sum_{i >= 0} d/(3^i) converges absolutely,
the sequence f0, f1, f2, ... converges *uniformly* to
a limiting function f : [0, 1] -> R^2 that parametrizes the
Koch curve. And since a uniform limit of uniformly continuous
function is uniformly continuous, it follows that f is
uniformly continuous.

Mark

[*] I'm guessing 1/sqrt(12).

Paul Rubin

Jun 17, 2009, 10:46:12 AM6/17/09
to
Mark Dickinson <dick...@gmail.com> writes:
> It looks as though you're treating (a portion of?) the Koch curve as
> the graph of a function f from R -> R and claiming that f is
> uniformly continuous. But the Koch curve isn't such a graph (it
> fails the 'vertical line test',

I think you treat it as a function f: R -> R**2 with the usual
distance metric on R**2.

Mark Dickinson

Jun 17, 2009, 11:18:52 AM6/17/09
to
On Jun 17, 3:46 pm, Paul Rubin <http://phr...@NOSPAM.invalid> wrote:

Right. Or rather, you treat it as the image of such a function,
if you're being careful to distinguish the curve (a subset
of R^2) from its parametrization (a continuous function
R -> R**2). It's the parametrization that's uniformly
continuous, not the curve, and since any curve can be
parametrized in many different ways any proof of uniform
continuity should specify exactly which parametrization is
in use.

Mark

pdpi

Jun 17, 2009, 11:58:48 AM6/17/09
to

I was being incredibly lazy and using loads of handwaving, seeing as I
posted that (and this!) while procrastinating at work.

an even lazier argument: given the _/\_ construct, you prove that its
vertical growth is bound: the height of / is less than 1/3 (given a
length of 1 for ___), so, even if you were to build _-_ with the
middle segment at height = 1/3, the maximum vertical growth would be
sum 1/3^n from 1 to infinity, so 0.5. Sideways growth has a similar
upper bound. 0.5 < 1, so the chebyshev distance between any two points
on the curve is <= 1. Ergo, for any x,y, f(x) is at most at chebyshev
distance 1 of (y). Induce the argument for "smaller values of one".

David C. Ullrich

Jun 18, 2009, 2:13:42 PM6/18/09
to

I won't ask where I can find this definition. That Koch thing is a
closed curve in R^2. That means _by definition_ that it is a
continuous function from [0,1] to R^2 (with the same value
at the endpoints). And any continuous fu

David C. Ullrich

Jun 18, 2009, 2:14:20 PM6/18/09
to
On Wed, 17 Jun 2009 14:50:28 +1200, Lawrence D'Oliveiro
<l...@geek-central.gen.new_zealand> wrote:

David C. Ullrich

Jun 18, 2009, 2:16:06 PM6/18/09
to
On Wed, 17 Jun 2009 14:50:28 +1200, Lawrence D'Oliveiro
<l...@geek-central.gen.new_zealand> wrote:

Sorry if I've already posted half of this - having troubles hitting
the toushpad on this little machine by accident.

The fractal in question is a curve in R^2. By definition that
means it is a continuous function from [a,b] to R^2 (with
the same value at the two endpoints). Hence it's
uniformly continuous.

David C. Ullrich

Jun 18, 2009, 2:17:44 PM6/18/09
to

Nope. Not that I see the relvance here - the g_k _do_
converge uniformly.

>Jaime

David C. Ullrich

Jun 18, 2009, 2:19:23 PM6/18/09
to

>Isn't (-?, ?) closed?

What is your version of the definition of "closed"?

>Charles Yeomans

David C. Ullrich

Jun 18, 2009, 2:21:50 PM6/18/09
to

As long as people are throwing around all this math stuff:
Officially, by definition a curve _is_ a parametrization.
Ie, a curve in the plane _is_ a continuous function from
an interval to the plane, and a subset of the plane is
not a curve.

Officially, anyway.

>Mark

David C. Ullrich

Jun 18, 2009, 2:26:56 PM6/18/09
to
On Wed, 17 Jun 2009 08:18:52 -0700 (PDT), Mark Dickinson
<dick...@gmail.com> wrote:

>On Jun 17, 3:46�pm, Paul Rubin <http://phr...@NOSPAM.invalid> wrote:
>> Mark Dickinson <dicki...@gmail.com> writes:
>> > It looks as though you're treating (a portion of?) the Koch curve as
>> > the graph of a function f from R -> R and claiming that f is
>> > uniformly continuous. �But the Koch curve isn't such a graph (it
>> > fails the 'vertical line test',
>>
>> I think you treat it as a function f: R -> R**2 with the usual
>> distance metric on R**2.
>
>Right. Or rather, you treat it as the image of such a function,
>if you're being careful to distinguish the curve (a subset
>of R^2) from its parametrization (a continuous function
>R -> R**2). It's the parametrization that's uniformly
>continuous, not the curve,

Again, it doesn't really matter, but since you use the phrase
"if you're being careful": In fact what you say is exactly
backwards - if you're being careful that subset of the plane
is _not_ a curve (it's sometimes called the "trace" of the curve".

>and since any curve can be
>parametrized in many different ways any proof of uniform
>continuity should specify exactly which parametrization is
>in use.

Any _closed_ curve must have [a,b] as its parameter
interval, and hence is uniformly continuous since any
continuous function on [a,b] is uniformly continuous.

>Mark

Charles Yeomans

Jun 18, 2009, 2:32:13 PM6/18/09
to pytho...@python.org

My version of a closed interval is one that contains its limit points.

Charles Yeomans

Arnaud Delobelle

Jun 18, 2009, 4:56:57 PM6/18/09
to
David C. Ullrich <ull...@math.okstate.edu> writes:

> On Wed, 17 Jun 2009 08:18:52 -0700 (PDT), Mark Dickinson
> <dick...@gmail.com> wrote:
>
>>On Jun 17, 3:46 pm, Paul Rubin <http://phr...@NOSPAM.invalid> wrote:
>>> Mark Dickinson <dicki...@gmail.com> writes:
>>> > It looks as though you're treating (a portion of?) the Koch curve as
>>> > the graph of a function f from R -> R and claiming that f is
>>> > uniformly continuous.  But the Koch curve isn't such a graph (it
>>> > fails the 'vertical line test',
>>>
>>> I think you treat it as a function f: R -> R**2 with the usual
>>> distance metric on R**2.
>>
>>Right. Or rather, you treat it as the image of such a function,
>>if you're being careful to distinguish the curve (a subset
>>of R^2) from its parametrization (a continuous function
>>R -> R**2). It's the parametrization that's uniformly
>>continuous, not the curve,
>
> Again, it doesn't really matter, but since you use the phrase
> "if you're being careful": In fact what you say is exactly
> backwards - if you're being careful that subset of the plane
> is _not_ a curve (it's sometimes called the "trace" of the curve".

I think it is quite common to refer to call 'curve' the image of its
parametrization. Anyway there is a representation theorem somewhere
that I believe says for subsets of R^2 something like:

A subset of R^2 is the image of a continuous function [0,1] -> R^2
iff it is compact, connected and locally connected.

(I might be a bit -or a lot- wrong here, I'm not a practising
mathematician) Which means that there is no need to find a
parametrization of a plane curve to know that it is a curve.

To add to this, the usual definition of the Koch curve is not as a
function [0,1] -> R^2, and I wonder how hard it is to find such a
function for it. It doesn't seem that easy at all to me - but I've
never looked into fractals.

--
Arnaud

Mark Dickinson

Jun 18, 2009, 8:01:12 PM6/18/09
to
On Jun 18, 7:26 pm, David C. Ullrich <ullr...@math.okstate.edu> wrote:
> On Wed, 17 Jun 2009 08:18:52 -0700 (PDT), Mark Dickinson
> >Right.  Or rather, you treat it as the image of such a function,
> >if you're being careful to distinguish the curve (a subset
> >of R^2) from its parametrization (a continuous function
> >R -> R**2).  It's the parametrization that's uniformly
> >continuous, not the curve,
>
> Again, it doesn't really matter, but since you use the phrase
> "if you're being careful": In fact what you say is exactly
> backwards - if you're being careful that subset of the plane
> is _not_ a curve (it's sometimes called the "trace" of the curve".

Darn. So I've been getting it wrong all this time. Oh well,
at least I'm not alone:

"Deﬁnition 1. A simple closed curve J, also called a
Jordan curve, is the image of a continuous one-to-one
function from R/Z to R2. [...]"

- Tom Hales, in 'Jordan's Proof of the Jordan Curve Theorem'.

"We say that Gamma is a curve if it is the image in
the plane or in space of an interval [a, b] of real
numbers of a continuous function gamma."

- Claude Tricot, 'Curves and Fractal Dimension' (Springer, 1995).

Perhaps your definition of curve isn't as universal or
'official' as you seem to think it is?

Mark

Paul Rubin

Jun 18, 2009, 8:40:55 PM6/18/09
to
David C. Ullrich <ull...@math.okstate.edu> writes:
> >> obviously converges to f, but not uniformly. On a closed interval,
> >> any continuous function is uniformly continuous.
> >
> >Isn't (-?, ?) closed?
>
> What is your version of the definition of "closed"?

I think the whole line is closed, but I hadn't realized anyone
considered the whole line to be an "interval". Apparently they do.
So that the proper statement specifies compactness (= closed and
bounded) rather than just "closed".

David C. Ullrich

Jun 19, 2009, 2:43:11 PM6/19/09
to
Evidently my posts are appearing, since I see replies.
I guess the question of why I don't see the posts themselves
\is ot here...

On Thu, 18 Jun 2009 17:01:12 -0700 (PDT), Mark Dickinson
<dick...@gmail.com> wrote:

>On Jun 18, 7:26�pm, David C. Ullrich <ullr...@math.okstate.edu> wrote:
>> On Wed, 17 Jun 2009 08:18:52 -0700 (PDT), Mark Dickinson
>> >Right. �Or rather, you treat it as the image of such a function,
>> >if you're being careful to distinguish the curve (a subset
>> >of R^2) from its parametrization (a continuous function
>> >R -> R**2). �It's the parametrization that's uniformly
>> >continuous, not the curve,
>>
>> Again, it doesn't really matter, but since you use the phrase
>> "if you're being careful": In fact what you say is exactly
>> backwards - if you're being careful that subset of the plane
>> is _not_ a curve (it's sometimes called the "trace" of the curve".
>
>Darn. So I've been getting it wrong all this time. Oh well,
>at least I'm not alone:
>

>"De?nition 1. A simple closed curve J, also called a

>Jordan curve, is the image of a continuous one-to-one
>function from R/Z to R2. [...]"
>
>- Tom Hales, in 'Jordan's Proof of the Jordan Curve Theorem'.
>
>"We say that Gamma is a curve if it is the image in
>the plane or in space of an interval [a, b] of real
>numbers of a continuous function gamma."
>
>- Claude Tricot, 'Curves and Fractal Dimension' (Springer, 1995).
>
>Perhaps your definition of curve isn't as universal or
>'official' as you seem to think it is?

Perhaps not. I'm very surprised to see those definitions; I've
been a mathematician for 25 years and I've never seen a
curve defined a subset of the plane.

Hmm. You left out a bit in the first definition you cite:

"A simple closed curve J, also called a Jordan curve, is the image

of a continuous one-to-one function from R/Z to R2. We assume that
each curve
comes with a fixed parametrization phi_J : R/Z ->� J. We call t in R/Z
the time
parameter. By abuse of notation, we write J(t) in R2 instead of phi_j
(t), using the
same notation for the function phi_J and its image J."

Close to sounding like he can't decide whether J is a set or a
function... Then later in the same paper

"Definition 2. A polygon is a Jordan curve that is a subset of a
finite union of
lines. A polygonal path is a continuous function P : [0, 1] ->� R2
that is a subset of
a finite union of lines. It is a polygonal arc, if it is 1 . 1."

By that definition a polygonal path is not a curve.

Worse: A polygonal path is a function from [0,1] to R^2
_that is a subset of a finite union of lines_. There's no
such thing - the _image_ of such a function can be a
subset of a finite union of lines.

Not that it matters, but his defintion of "polygonal path"
is, _if_ we're being very careful, self-contradictory.
So I don't think we can count that paper as a suitable
reference for what the _standard_ definitions are;
the standard definitions are not self-contradictory this way.

Then the second definition you cite: Amazon says the
prerequisites are two years of calculus. The stanard
meaning of log is log base e, even though it means
log base 10 in calculus.

>Mark

Charles Yeomans

Jun 19, 2009, 3:13:08 PM6/19/09
to pytho...@python.org

I have.

>
>
> Hmm. You left out a bit in the first definition you cite:
>
> "A simple closed curve J, also called a Jordan curve, is the image
> of a continuous one-to-one function from R/Z to R2. We assume that
> each curve
> comes with a fixed parametrization phi_J : R/Z ->¨ J. We call t in R/Z
> the time
> parameter. By abuse of notation, we write J(t) in R2 instead of phi_j
> (t), using the
> same notation for the function phi_J and its image J."
>
>
> Close to sounding like he can't decide whether J is a set or a
> function...

On the contrary, I find this definition to be written with some care.

> Then later in the same paper
>
> "Definition 2. A polygon is a Jordan curve that is a subset of a
> finite union of
> lines. A polygonal path is a continuous function P : [0, 1] ->¨ R2
> that is a subset of
> a finite union of lines. It is a polygonal arc, if it is 1 . 1."
>

These are a bit too casual for me as well...

>
> By that definition a polygonal path is not a curve.
>
> Worse: A polygonal path is a function from [0,1] to R^2
> _that is a subset of a finite union of lines_. There's no
> such thing - the _image_ of such a function can be a
> subset of a finite union of lines.
>
> Not that it matters, but his defintion of "polygonal path"
> is, _if_ we're being very careful, self-contradictory.
> So I don't think we can count that paper as a suitable
> reference for what the _standard_ definitions are;
> the standard definitions are not self-contradictory this way.

Charles Yeomans

Mark Dickinson

Jun 19, 2009, 3:40:36 PM6/19/09
to
On Jun 19, 7:43 pm, David C. Ullrich <ullr...@math.okstate.edu> wrote:
> Evidently my posts are appearing, since I see replies.
> I guess the question of why I don't see the posts themselves
> \is ot here...

Judging by this thread, I'm not sure that much is off-topic
here. :-)

> Perhaps not. I'm very surprised to see those definitions; I've
> been a mathematician for 25 years and I've never seen a
> curve defined a subset of the plane.

That in turn surprises me. I've taught multivariable
calculus courses from at least three different texts
in three different US universities, and as far as I
recall a 'curve' was always thought of as a subset of
R^2 or R^3 in those courses (though not always with
explicit definitions, since that would be too much
to hope for with that sort of text). Here's Stewart's
'Calculus', p658:

"Examples 2 and 3 show that different sets of parametric
equations can represent the same curve. Thus we
distinguish between a *curve*, which is a set of points,
and a *parametric curve*, in which the points are
traced in a particular way."

Again as far as I remember, the rest of the language
in those courses (e.g., 'level curve', 'curve as the
intersection of two surfaces') involves thinking
of curves as subsets of R^2 or R^3. Certainly
I'll agree that it's then necessary to parameterize
the curve before being able to do anything useful
with it.

[Standard question when teaching multivariable
calculus: "Okay, so we've got a curve. What's
the first thing we do with it?" Answer, shouted
out from all the (awake) students: "PARAMETERIZE IT!"
(And then calculate its length/integrate the
given vector field along it/etc.)
Those were the days...]

A Google Books search even turned up some complex
analysis texts where the word 'curve' is used to
mean a subset of the plane; check out
the book by Ian Stewart and David Orme Tall,
'Complex Analysis: a Hitchhiker's Guide to the
Plane': they distinguish 'curves' (subset of the
complex plane) from 'paths' (functions from a
closed bounded interval to the complex plane).

> "Definition 2. A polygon is a Jordan curve that is a subset of a
> finite union of
> lines. A polygonal path is a continuous function P : [0, 1] ->¨ R2
> that is a subset of
> a finite union of lines. It is a polygonal arc, if it is 1 . 1."
>
> By that definition a polygonal path is not a curve.

Right. I'm much more willing to accept 'path' as standard
terminology for a function [a, b] -> (insert_favourite_space_here).

> Not that it matters, but his defintion of "polygonal path"
> is, _if_ we're being very careful, self-contradictory.

Agreed. Surprising, coming from Hales; he must surely rank
amongst the more careful mathematicians out there.

> So I don't think we can count that paper as a suitable
> reference for what the _standard_ definitions are;
> the standard definitions are not self-contradictory this way.

I just don't believe there's any such thing as
'the standard definition' of a curve. I'm happy
to believe that in complex analysis and differential
geometry it's common to define a curve to be a
function. But in general I'd suggest that it's one
of those terms that largely depends on context, and
should be defined clearly when it's not totally
obvious from the context which definition is
intended. For example, for me, more often than not,
a curve is a 1-dimensional scheme over a field k
(usually *not* algebraically closed), that's at
least some of {geometrically reduced, geometrically
irreducible, proper, smooth}. That's a far cry either
from a subset of an affine space or from a
parametrization by an interval.

> Then the second definition you cite: Amazon says the
> prerequisites are two years of calculus. The stanard

> meaning of log is log base e, even though means

> log base 10 in calculus.

Sorry, I've lost context for this comment. Why
are logs relevant? (I'm very well aware of the
debates over the meaning of log, having frequently
had to help students 'unlearn' their "log=log10"
mindset when starting a first post-calculus course).

Mark

Charles Yeomans

Jun 20, 2009, 7:36:01 PM6/20/09
to pytho...@python.org

This simply isn't true.

Charles Yeomans

pdpi

Jun 22, 2009, 8:46:55 AM6/22/09
to

I find the usage of image slightly ambiguous (as it suggests the image
set defines the curve), but that's my only qualm with it as well.

Thinking pragmatically, you can't have non-simple curves unless you
use multisets, and you also completely lose the notion of curve
orientation and even continuity without making it a poset. At this
point in time, parsimony says that you want to ditch your multiposet
thingie (and God knows what else you want to tack in there to preserve
other interesting curve properties) and really just want to define the
curve as a freaking function and be done with it.

Charles Yeomans

Jun 22, 2009, 10:31:26 AM6/22/09
to pytho...@python.org

On Jun 22, 2009, at 8:46 AM, pdpi wrote:

> On Jun 19, 8:13 pm, Charles Yeomans <char...@declareSub.com> wrote:
>> On Jun 19, 2009, at 2:43 PM, David C. Ullrich wrote:
>>
>>

>> <snick>

>>
>>
>>
>>> Hmm. You left out a bit in the first definition you cite:
>>
>>> "A simple closed curve J, also called a Jordan curve, is the image
>>> of a continuous one-to-one function from R/Z to R2. We assume that
>>> each curve
>>> comes with a fixed parametrization phi_J : R/Z ->¨ J. We call t in
>>> R/Z
>>> the time
>>> parameter. By abuse of notation, we write J(t) in R2 instead of
>>> phi_j
>>> (t), using the
>>> same notation for the function phi_J and its image J."
>>
>>> Close to sounding like he can't decide whether J is a set or a
>>> function...
>>
>> On the contrary, I find this definition to be written with some care.
>
> I find the usage of image slightly ambiguous (as it suggests the image
> set defines the curve), but that's my only qualm with it as well.
>
> Thinking pragmatically, you can't have non-simple curves unless you
> use multisets, and you also completely lose the notion of curve
> orientation and even continuity without making it a poset. At this
> point in time, parsimony says that you want to ditch your multiposet
> thingie (and God knows what else you want to tack in there to preserve
> other interesting curve properties) and really just want to define the
> curve as a freaking function and be done with it.

> --

But certainly the image set does define the curve, if you want to view
it that way -- all parameterizations of a curve should satisfy the
same equation f(x, y) = 0.

Charles Yeomans

David C. Ullrich

Jun 22, 2009, 2:11:02 PM6/22/09
to
On Mon, 22 Jun 2009 05:46:55 -0700 (PDT), pdpi <pdpin...@gmail.com>
wrote:

>On Jun 19, 8:13�ｿｽpm, Charles Yeomans <char...@declareSub.com> wrote:
>> On Jun 19, 2009, at 2:43 PM, David C. Ullrich wrote:
>>
>>
>>
>>
>>
>> > Evidently my posts are appearing, since I see replies.
>> > I guess the question of why I don't see the posts themselves
>> > \is ot here...
>>
>> > On Thu, 18 Jun 2009 17:01:12 -0700 (PDT), Mark Dickinson
>> > <dicki...@gmail.com> wrote:
>>

>> >> On Jun 18, 7:26 pm, David C. Ullrich <ullr...@math.okstate.edu> �ｿｽ

>> >> wrote:
>> >>> On Wed, 17 Jun 2009 08:18:52 -0700 (PDT), Mark Dickinson

>> >>>> Right. �ｿｽOr rather, you treat it as the image of such a function,

>> >>>> if you're being careful to distinguish the curve (a subset
>> >>>> of R^2) from its parametrization (a continuous function

>> >>>> R -> R**2). �ｿｽIt's the parametrization that's uniformly

>> >>>> continuous, not the curve,
>>
>> >>> Again, it doesn't really matter, but since you use the phrase
>> >>> "if you're being careful": In fact what you say is exactly
>> >>> backwards - if you're being careful that subset of the plane
>> >>> is _not_ a curve (it's sometimes called the "trace" of the curve".
>>

>> >> Darn. �ｿｽSo I've been getting it wrong all this time. �ｿｽOh well,

>> >> at least I'm not alone:
>>
>> >> "De?nition 1. A simple closed curve J, also called a
>> >> Jordan curve, is the image of a continuous one-to-one
>> >> function from R/Z to R2. [...]"
>>
>> >> - Tom Hales, in 'Jordan's Proof of the Jordan Curve Theorem'.
>>
>> >> "We say that Gamma is a curve if it is the image in
>> >> the plane or in space of an interval [a, b] of real
>> >> numbers of a continuous function gamma."
>>
>> >> - Claude Tricot, 'Curves and Fractal Dimension' (Springer, 1995).
>>
>> >> Perhaps your definition of curve isn't as universal or
>> >> 'official' as you seem to think it is?
>>
>> > Perhaps not. I'm very surprised to see those definitions; I've
>> > been a mathematician for 25 years and I've never seen a
>> > curve defined a subset of the plane.
>>
>> I have.
>>
>>
>>
>>
>>
>>
>>
>> > Hmm. You left out a bit in the first definition you cite:
>>
>> > "A simple closed curve J, also called a Jordan curve, is the image
>> > of a continuous one-to-one function from R/Z to R2. We assume that
>> > each curve

>> > comes with a fixed parametrization phi_J : R/Z ->�ｿｽ J. We call t in R/Z

>> > the time
>> > parameter. By abuse of notation, we write J(t) in R2 instead of phi_j
>> > (t), using the
>> > same notation for the function phi_J and its image J."
>>
>> > Close to sounding like he can't decide whether J is a set or a
>> > function...
>>
>> On the contrary, I find this definition to be written with some care.
>
>I find the usage of image slightly ambiguous (as it suggests the image
>set defines the curve), but that's my only qualm with it as well.
>
>Thinking pragmatically, you can't have non-simple curves unless you
>use multisets, and you also completely lose the notion of curve
>orientation and even continuity without making it a poset. At this
>point in time, parsimony says that you want to ditch your multiposet
>thingie (and God knows what else you want to tack in there to preserve
>other interesting curve properties) and really just want to define the
>curve as a freaking function and be done with it.

Precisely.

David C. Ullrich

Jun 22, 2009, 2:16:56 PM6/22/09
to

This sounds like you didn't read his post, or totally missed the
point.

Say S is the set of (x,y) in the plane such that x^2 + y^2 = 1.
What's the "index", or "winding number", of that curve about the
origin?

(Hint: The curve c defined by c(t) = (cos(t), sin(t)) for
0 <= t <= 2pi has index 1 about the origin. The curve
d(t) = (cos(-t), sin(-t)) (0 <= t <= 2pi) has index -1.
The curve (cos(2t), sin(2t)) (same t) has index 2.)

>Charles Yeomans

David C. Ullrich

Jun 22, 2009, 2:43:19 PM6/22/09
to

Surely you don't say a curve is a subset of the plane and
also talk about the integrals of verctor fields over _curves_?

This is getting close to the point someone else made,
before I had a chance to: We need a parametriztion of
that subset of the plane before we can do most interesting
things with it. The parametrization determines the set,
but the set does not determine the parametrization
(not even "up to" some sort of isomorphism; the
set does not determine multiplicity, orientation, etc.)

So if the definition of "curve" is not as I claim then
in some sense it _should_ be.

Hales defines a curve to be a set C and then says he assumes
that there is a parametrization phi_C. Does he ever talk
about things like the orientation of a curve a about a point?
Seems likely. If so then his use of the word "curve" is
simply not consistent with his definition.

>A Google Books search even turned up some complex
>analysis texts where the word 'curve' is used to
>mean a subset of the plane; check out
>the book by Ian Stewart and David Orme Tall,
>'Complex Analysis: a Hitchhiker's Guide to the
>Plane': they distinguish 'curves' (subset of the
>complex plane) from 'paths' (functions from a
>closed bounded interval to the complex plane).

Hmm. I of all people am in no position to judge a book
on complex analysis by the silliness if its title...

Ok.

>> Then the second definition you cite: Amazon says the
>> prerequisites are two years of calculus. The stanard
>> meaning of log is log base e, even though means
>> log base 10 in calculus.
>
>Sorry, I've lost context for this comment. Why
>are logs relevant? (I'm very well aware of the
>debates over the meaning of log, having frequently
>had to help students 'unlearn' their "log=log10"
>mindset when starting a first post-calculus course).

The point is that a calculus class is not mathematics.
In my universe the standard definition of "log" is different
froim what log means in a calculus class, and my point
was that a definition of "curve" in a book that specifies
it's supposed to be accessible to calculus students
doesn't seem to me like much evidence regarding
the standard definition in mathematics.

>Mark

Mark Dickinson

Jun 22, 2009, 3:38:51 PM6/22/09
to
On Jun 22, 7:43 pm, David C. Ullrich <ullr...@math.okstate.edu> wrote:

> Surely you don't say a curve is a subset of the plane and
> also talk about the integrals of verctor fields over _curves_?

> [snip rest of long response that needs a decent reply, but
> possibly not here... ]

I wonder whether we can find a better place to have this
discussion; I think there are still plenty of interesting
things to say, but I fear we're rather abusing the hospitality
of comp.lang.python at the moment.

I'd suggest moving it to sci.math, except that I've seen the
noise/signal ratio over there...

Mark

Charles Yeomans

Jun 22, 2009, 5:03:14 PM6/22/09
to pytho...@python.org

That is to say, the "winding number" is a property of both the curve
and a parameterization of it. Or, in other words, the winding number
is a property of a function from S1 to C.

Charles Yeomans

Steven D'Aprano

Jun 22, 2009, 10:52:59 PM6/22/09
to
On Mon, 22 Jun 2009 13:43:19 -0500, David C. Ullrich wrote:

> In my universe the standard definition of "log" is different froim what
> log means in a calculus class

Now I'm curious what the difference is.

--
Steven

Mark Dickinson

Jun 23, 2009, 3:19:50 AM6/23/09
to
On Jun 23, 3:52 am, Steven D'Aprano

It's just the usual argument about whether 'log' means
log base 10 or log base e (natural log). At least in the
US, most[*] calculus texts (and also most calculators),
for reasons best known to themselves, use 'ln' to mean
natural log and 'log' to mean log base 10. But most
mathematicians use 'log' to mean natural log: pick up a
random pure mathematics research paper that has the word
'log' in it, and unless it's otherwise qualified, it's
safe to assume that it means log base e. (Except in the
context of algorithmic complexity, where it might well

Python also suffers a bit from this confusion: the
Decimal class defines methods 'ln' and 'log10', while
the math module and cmath modules define 'log' and
'log10'. (But the Decimal module has other problems,
like claiming that 0**0 is undefined while
infinity**0 is 1.)

[*] A notable exception is Michael Spivak's 'Calculus', which also
happens to be the book I learnt calculus from many years ago.

Mark

Lie Ryan

Jun 23, 2009, 1:49:07 PM6/23/09
to
Mark Dickinson wrote:
> On Jun 23, 3:52 am, Steven D'Aprano
> <ste...@REMOVE.THIS.cybersource.com.au> wrote:
>> On Mon, 22 Jun 2009 13:43:19 -0500, David C. Ullrich wrote:
>>> In my universe the standard definition of "log" is different froim what
>>> log means in a calculus class
>> Now I'm curious what the difference is.
>
> It's just the usual argument about whether 'log' means
> log base 10 or log base e (natural log). At least in the
> US, most[*] calculus texts (and also most calculators),
> for reasons best known to themselves, use 'ln' to mean
> natural log and 'log' to mean log base 10. But most
> mathematicians use 'log' to mean natural log: pick up a
> random pure mathematics research paper that has the word
> 'log' in it, and unless it's otherwise qualified, it's
> safe to assume that it means log base e. (Except in the
> context of algorithmic complexity, where it might well
> mean log base 2 instead...)

I usually use log without explicit base only when the base isn't
relevant in the context (i.e. when whatever sane base you put in it
wouldn't really affect the operations). In algorithmic complexity, a
logarithm's base doesn't affect the growth shape and, like constant
multiplier, is considered irrelevant to the complexity.

> Python also suffers a bit from this confusion: the
> Decimal class defines methods 'ln' and 'log10', while
> the math module and cmath modules define 'log' and
> 'log10'.

In fact, in the Decimal class there is no log to an arbitrary base.

> (But the Decimal module has other problems,
> like claiming that 0**0 is undefined while
> infinity**0 is 1.)

Well, in math inf**0 is undefined. Since python is programming language,
and in language standards it is well accepted that undefined behavior
means implementations can do anything they like including returning 0,
1, 42, or even spitting errors, that doesn't make python non-conforming
implementation.

A more serious argument: in IEEE 745 float, inf**0 is 1. Mathematic
operation in python is mostly a wrapper for the underlying C library's
sense of math.

Aahz

Jun 23, 2009, 11:02:11 PM6/23/09
to
Mark Dickinson <dick...@gmail.com> wrote:

>On Jun 22, 7:43=A0pm, David C. Ullrich <ullr...@math.okstate.edu> wrote:
>>
>> Surely you don't say a curve is a subset of the plane and
>> also talk about the integrals of verctor fields over _curves_?
>> [snip rest of long response that needs a decent reply, but
>> possibly not here... ]
>
>I wonder whether we can find a better place to have this discussion; I
>think there are still plenty of interesting things to say, but I fear
>we're rather abusing the hospitality of comp.lang.python at the moment.

As long as it's confined to this thread, I certainly have no objection;
right now, this thread is occupying only a small fractin of c.l.py
bandwidth.
--
Aahz (aa...@pythoncraft.com) <*> http://www.pythoncraft.com/

"as long as we like the same operating system, things are cool." --piranha

pdpi

Jun 24, 2009, 5:12:05 AM6/24/09
to

Well, AFAIK Python defines CPython as the standard. So whatever
CPython does is the defined behaviour.

Regarding inf ** 0, why does IEEE745 define it as 1, when there is a
perfectly fine NaN value?

Mark Dickinson

Jun 24, 2009, 7:02:33 AM6/24/09
to
On Jun 24, 10:12 am, pdpi <pdpinhe...@gmail.com> wrote:
> Regarding inf ** 0, why does IEEE745 define it as 1, when there is a
> perfectly fine NaN value?

Have a look at:

http://www.eecs.berkeley.edu/~wkahan/ieee754status/ieee754.ps

(see particularly page 9).

Mark

Mark Dickinson

Jun 24, 2009, 8:32:13 AM6/24/09
to
On Jun 24, 10:12 am, pdpi <pdpinhe...@gmail.com> wrote:
> Regarding inf ** 0, why does IEEE745 define it as 1, when there is a
> perfectly fine NaN value?

Other links: the IEEE 754 revision working group mailing list
archives are public; there was extensive discussion about
special values of pow and similar functions. Here's a relevant

The C99 rationale document has some explanations for the
choices for special values in Annex F. Look at pages 179--182
in:

http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf

Note that the original IEEE 754-1985 didn't give specifications
for pow and other transcendental functions; so a complete
specification for pow appeared in the C99 standard before it
appeared in the current IEEE standard, IEEE 754-2008. Thus
C99 Annex F probably had at least some small influence on the
choices made for IEEE 754-2008 (and in turn, IEEE 754-1985
heavily influenced C99 Annex F).

My own take on all this, briefly:

- floating-point numbers are not real numbers, so mathematics
can only take you so far in deciding what the 'right' values
are for special cases; pragmatics has to play a role too.

- there's general consensus in the numerical and mathematical
community that it's useful to define pow(0.0, 0.0) to be 1.

- once you've decided to define pow(0.0, 0.0) to be 1.0, it's
easy to justify taking pow(inf, 0.0) to be 1.0: the same
limiting arguments can be used as justification; or one can
use reflection formulae like pow(1/x, y) = 1/pow(x, y), or...

- one piece of general philosophy used for C99 and IEEE 754
seems to have been that NaN results should be avoided
when it's possible to give a meaningful non-nan value instead.

- part of the reason that pow is particularly controversial
is that it's really trying to be two different functions
at once: it's trying to be both a generalization of the
`analytic' power function x**y = exp(y*log(x)), for
real y and positive real x, and in this context one can
make a good argument that 0**0 should be undefined; but
at the same time it's also used in contexts where y is
naturally thought of as an integer; and in the latter
context bad things happen if you don't define pow(0, 0)
to be 1.

I really should get back to work now.

Mark

Hendrik van Rooyen

Jun 24, 2009, 9:58:03 AM6/24/09
to pytho...@python.org

Maybe he is a lumberjack, and quite all right...

- Hendrik

pdpi

Jun 24, 2009, 10:35:17 AM6/24/09
to

Or perhaps he works in a sewage facility.

But yeah, Log2 and LogE are the only two bases that make "natural"
sense except in specialized contexts. Base 10 (and, therefore, Log10)
is an artifact of having that 10 fingers (in fact, whatever base you
use, you always refer to it as base 10).

pdpi

Jun 24, 2009, 1:06:05 PM6/24/09
to

Thanks for the engrossing read (and damn you for making me waste
valuable work hours). After perusing both C99 and the previous
presentation on IEEE754, I find myself unconvinced regarding the
special cases. It just stinks of bug-proneness, and I fail to see how
assuming common values for exceptional cases relieves you from testing
for those special cases and getting them behaving right (in an
application-specific way) just the same.

Robin Becker

Jun 25, 2009, 5:01:53 AM6/25/09
to pytho...@python.org
pdpi wrote:
.......

>
> But yeah, Log2 and LogE are the only two bases that make "natural"
> sense except in specialized contexts. Base 10 (and, therefore, Log10)
> is an artifact of having that 10 fingers (in fact, whatever base you
> use, you always refer to it as base 10).

someone once explained to me that the set of systems that are continuous in the
calculus sense was of measure zero in the set of all systems I think it was a
fairly formal discussion, but my understanding was of the hand waving sort.

If true that makes calculus (and hence all of our understanding of such
"natural" concepts) pretty small and perhaps non-applicable.

On the other hand R Kalman (of Bucy and Kalman filter fame) likened study of
continuous linear dynamical systems to "a man searching for a lost ring under
the only light in a dark street" ie we search where we can see. Because such
systems are tractable doesn't make them natural or essential or applicable in a
generic sense.
--
Robin Becker

Paul Rubin

Jun 25, 2009, 5:38:44 AM6/25/09
to
Robin Becker <ro...@reportlab.com> writes:
> someone once explained to me that the set of systems that are
> continuous in the calculus sense was of measure zero in the set of all
> systems I think it was a fairly formal discussion, but my
> understanding was of the hand waving sort.

That is very straightforward if you don't mind a handwave. Let S be
some arbitrary subset of the reals, and let f(x)=0 if x is in S, and 1
otherwise (this is a discontinuous function if S is nonempty). How
many different such f's can there be? Obviously one for every
possible subset of the reals. The cardinality of such f's is the
power set of the reals, i.e. much larger than the set of reals.

On the other hand, let g be some arbitrary continuous function on the
reals. Let H be the image of Q (the set of rationals) under g. That
is, H = {g(x) such that x is rational}. Since g is continuous, it is
completely determined by H, which is a countable set. So the
cardinality is RxN which is the same as the cardinality of R.

> If true that makes calculus (and hence all of our understanding of
> such "natural" concepts) pretty small and perhaps non-applicable.

No really, it is just set theory, which is a pretty bogus subject in
some sense. There aren't many discontinuous functions in nature.
There is a philosophy of mathematics (intuitionism) that says
classical set theory is wrong and in fact there are NO discontinuous
functions. They have their own mathematical axioms which allow
developing calculus in a way that all functions are continuous.

> On the other hand R Kalman (of Bucy and Kalman filter fame) likened
> study of continuous linear dynamical systems to "a man searching for
> a lost ring under the only light in a dark street" ie we search
> where we can see. Because such systems are tractable doesn't make
> them natural or essential or applicable in a generic sense.

Really, I think the alternative he was thinking of may have been
something like nonlinear PDE's, a horribly messy subject from a
practical point of view, but still basically free of set-theoretic
monstrosities. The Banach-Tarski paradox has nothing to do with nature.

Robin Becker

Jun 25, 2009, 7:23:07 AM6/25/09
to pytho...@python.org
Paul Rubin wrote:
.........

> That is very straightforward if you don't mind a handwave. Let S be
> some arbitrary subset of the reals, and let f(x)=0 if x is in S, and 1
> otherwise (this is a discontinuous function if S is nonempty). How
> many different such f's can there be? Obviously one for every
> possible subset of the reals. The cardinality of such f's is the
> power set of the reals, i.e. much larger than the set of reals.
>
> On the other hand, let g be some arbitrary continuous function on the
> reals. Let H be the image of Q (the set of rationals) under g. That
> is, H = {g(x) such that x is rational}. Since g is continuous, it is
> completely determined by H, which is a countable set. So the
> cardinality is RxN which is the same as the cardinality of R.
>

ok so probably true then

>
>> If true that makes calculus (and hence all of our understanding of
>> such "natural" concepts) pretty small and perhaps non-applicable.
>
> No really, it is just set theory, which is a pretty bogus subject in
> some sense. There aren't many discontinuous functions in nature.
> There is a philosophy of mathematics (intuitionism) that says
> classical set theory is wrong and in fact there are NO discontinuous
> functions. They have their own mathematical axioms which allow
> developing calculus in a way that all functions are continuous.
>

so does this render all the discreteness implied by quantum theory unreliable?
or is it that we just cannot see(measure) the continuity that really happens?
Certainly there are people like Wolfram who seem to think we're in some kind of
giant calculating engine where state transitions are discontinuous.

>> On the other hand R Kalman (of Bucy and Kalman filter fame) likened
>> study of continuous linear dynamical systems to "a man searching for
>> a lost ring under the only light in a dark street" ie we search
>> where we can see. Because such systems are tractable doesn't make
>> them natural or essential or applicable in a generic sense.
>
> Really, I think the alternative he was thinking of may have been
> something like nonlinear PDE's, a horribly messy subject from a
> practical point of view, but still basically free of set-theoretic
> monstrosities. The Banach-Tarski paradox has nothing to do with nature.

My memory of his seminar was that he was concerned about our failure to model
even the simplest of systems with non-linearity and/or discreteness. I seem to
recall that was about the time that chaotic behaviours were starting to appear
in the control literature and they certainly depend on non-linearity.
--
Robin Becker