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) # Use a scale of 1000000 -> 6 # Division : (*/ 17.0 1.0 3.0) # Divide 17 by 3 -> 5666667 : (format @ *Scl) # See it as fixpoint -> "5.666667" # Multiplication : (*/ 12.345 0.99 1.0) # 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=unsubscribe