O.K. the Compute("a<=0 ? 0 : log10(a)") fixes the error message, but it does
not fix the problem: It is not possible to get the logarithm of 0 as it is 
-infinity. The formula described above will display the data point at 0, which
is in the orignal scale 1 as the inverse function of the logarithm is the
exponential function and exp(0)=1.

The most correct formula would be:

Compute("a<=0 ? minfloat : log10(a)"), 

where minfloat is the lowest possible float number on the machine, but this
would stretch your scale on the axis to almost infinity. No good idea. Another
idea would be to extract the lowest value out of the data, which is not zero.
Take this value as a second input into your compute module and take this:
 
Compute("a<=0 ? log(b)-1 : log10(a)")

Then the data points which origin from zero will be plotted apart from the
other data at lower values (you can change the -1 by another value, which suits
the data spacing of the other values.

To extract the lowest value, which is not zero, you have to make another
compute, where you exchange the zero, by a big number, like:

Compute("a<=0 ? maxfloat : a")   (maxfloat is the maximum float value on your
machine)

the result can be applied to a statistics module and you will get the lowest
value as min output which is non zero!

Still you have to note on your graph that the points originating from zero are
on the wrong position, it would be good to display this by a broken axis (which
is not possible in dx).

Hope this will help

Stephan Figge

 
> Compute("a<=0 ? 0 : log10(a)")
> 
> On Wednesday, Oct 1, 2003, at 19:17 America/New_York, Brent Wood wrote:
> 
> >
> >
> >
> > Is my assumption reasonable, & is there a more elegant fix for this???
> >
> >
> >
> > Thanks,
> >
> >   Brent Wood
> >
> >
> >
> >
> ____________________________
> Chris Pelkie
> Vice President
> Conceptual Reality Presentations, Inc.
> 30 West Meadow Drive
> Ithaca, NY 14850
> 
-- 

Reply via email to