Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Floating point support?



On Sep 14,  5:56pm, Peter Stephenson wrote:
} Subject: Floating point support?
}
} I'm thinking about adding some floating point support to zsh; this is just
} to canvas opinions.  My idea is to add a floating point parameter type
} together with support in math evaluations [...]

Problems that immediately come to mind:

For one, suppose I have float-typed parameters x and y and I write

	for i in {$x..$y}; do
or
	print *.<$x-$y>

Another is that array subscripts are math-eval'd, and some pretty strange
things may happen in any code that relies upon multiplication or division
to compute subscripts if floating point gets involved (even if the result
is rounded down).  Not that I'm directly aware of any such code ...

Then there's the (very minor) matter of associative arrays with numeric
indices (which are represented by converting to strings) and expectations
of accuracy when indexing those with the result of floating-point math
(the problem being that there shouldn't be any expectation of accuracy).

I'm also a bit dubious of making floating point precision dependent on the
size of the integer type, but if it doesn't bother you ...

} - Does anyone object to sullying the integral purity of zsh with decimal
} points and exponents?

Plainly from the standpoint of purity, not I.

} - What about functions?  We could supply some basic maths functions, or
} could put them in a loadable module

I'd vote for the module, though it should be in the builtin modules list
for a static compile.

} which would require yet more support for hooks

We could treat it like a Windoze DLL and simply load the module named 
"math" (or "float" or something); if users want other special functions
they have add them to a module with that same name.  Maybe we could put
in support for any module to load another one later in the module path,
for creation of such augmented modules.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com



Messages sorted by: Reverse Date, Date, Thread, Author