Hello Alex,

Thanks for the detailed answer and thanks for PicoLisp!

-- Vijay

On Wed, Aug 25, 2010 at 5:34 PM, Alexander Burger <a...@software-lab.de> wro=
te:
> Hi Vijay,
>
>> How can I do floating point arithmetic in PicoLisp? Is there an
>> example of fixed-point division?
>
> As your question seems to correctly presume, there is no real floating
> point arithmetic in PicoLisp.
>
> Fixed point numbers are actually scaled integer numbers. So a division
> always requires a multiplication with the scale _before_ actually
> dividing the numbers, and a multiplication needs a division by the scale
> _after_ multiplying the arguments.
>
> In both cases, the '*/' function (muldiv) is normally used. In addition
> to being faster than separate calls to '*' and '/', '*/' also rounds the
> result.
>
>
> For example:
>
> : (scl 6) =A0# Use a scale of 1000000
> -> 6
>
>
> # Division
> : (*/ 17.0 1.0 3.0) =A0# Divide 17 by 3
> -> 5666667
>
> : (format @ *Scl) =A0# See it as fixpoint
> -> "5.666667"
>
>
> # Multiplication
> : (*/ 12.345 0.99 1.0) =A0# Multiply 12.345 with 0.99
> -> 12221550
>
> : (format @ *Scl)
> -> "12.221550"
>
>
> As you see, the scale (1000000) can be specified conveniently as 1.0.
>
> Does this help?
>
> Cheers,
> - Alex
> --
> UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=3dunsubscribe
>
-- 
UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe

Reply via email to