Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #21686
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: Portability |
| Date | 2013-04-16 22:33 +0200 |
| Organization | 1&1 Internet AG |
| Message-ID | <kkkci2$q1f$1@online.de> (permalink) |
| References | (7 earlier) <g5udnV5YkqvfSvjMnZ2dnUVZ_uKdnZ2d@supernews.com> <2013Apr11.152441@mips.complang.tuwien.ac.at> <kkgt30$311$1@dont-email.me> <kkh2c6$ijc$1@online.de> <6OudnQ-ztssOCfDMnZ2dnUVZ_tqdnZ2d@supernews.com> |
Elizabeth D. Rather wrote: > I don't remember general mixed arithmetic, but I do know that all the > MOD words (MOD, /MOD, M/MOD, */MOD, etc.) featured an unsigned *divisor* > at FORTH, Inc for many years. This made a cleaner implementation, and we > never encountered a "real life" need for a signed mod divisor. Nor do I. I however encountered the need of a full-range unsigned mod divisor ([1..ffff]; this sort of integer arithmetics is very common on 16 bit platforms), with a signed dividend. Fortunately, you can trivially build that out of um/mod: : m/mod ( d u -- umod nquot ) \ Forth Inc. style >r s>d r@ and + r> um/mod ; > We > changed in the 90's to be ANS compliant, having failed to persuade the > TC of our point of view. This is a bit funny, because there are already two possible signed divisions; adding a third one wouldn't have done more harm ;-). Due to the different rounding, you can use the two standard divisions reliable only for two positive inputs, which means you could as well use um/mod. The argument back then was that CPUs do have exactly these signed division instructions (especially with symmetric rounding), but however, CPUs do need some time for the overhead of correct sign treatment, too, and then, floored is almost equal, and Forth Inc.'s division mode is even faster. The signed*unsigned multiplication is particularly handy, if you interpret your numbers as fractions in the range [0..1[, and then do a mixed singed- unsigned multiplicatin and a NIP. As above, you can easily use um* to define it: : usm* ( u n -- d ) 2dup 0< and >r um* r> - ; -- Bernd Paysan "If you want it done right, you have to do it yourself" http://bernd-paysan.de/
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar
Portability kenney@cix.compulink.co.uk - 2013-04-06 04:12 -0500
Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-06 11:31 +0000
Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-06 10:34 -1000
Re: Portability "Ed" <invalid@nospam.com> - 2013-04-09 09:56 +1000
Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-09 01:30 +0000
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-09 07:21 +0000
Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-08 22:18 -1000
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-09 12:41 +0000
Re: Portability Coos Haak <chforth@hccnet.nl> - 2013-04-09 17:21 +0200
Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-09 08:06 -1000
Re: Portability Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-09 22:34 +0200
Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-09 12:05 -1000
Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-09 14:19 -1000
Re: Portability Chris <xrissmith@me.com> - 2013-04-09 20:45 -0700
Re: Portability "Ed" <invalid@nospam.com> - 2013-04-10 14:02 +1000
Re: Portability Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-04-09 23:00 -0700
Re: Portability "WJ" <w_a_x_man@yahoo.com> - 2013-04-12 14:41 +0000
Re: Portability "Ed" <invalid@nospam.com> - 2013-04-13 15:34 +1000
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-10 15:19 +0000
Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-10 11:46 +0000
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-10 15:03 +0000
Re: Portability Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-04-09 18:28 -0700
Re: Portability Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-04-09 17:00 -0700
Re: Portability "Ed" <invalid@nospam.com> - 2013-04-10 13:00 +1000
Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-10 11:55 +0000
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-10 10:10 -0500
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-10 15:56 +0000
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-10 16:18 -0500
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-11 13:24 +0000
Re: Portability Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-04-11 20:50 -0700
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-12 04:17 -0500
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-12 13:43 +0000
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-12 11:08 -0500
Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-12 18:50 +0000
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-13 03:57 -0500
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-13 11:59 +0000
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-13 14:47 -0500
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-12 10:44 -0400
Re: Portability Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-15 16:20 +0200
Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-16 08:12 -1000
Re: Portability "A.K." <akk@nospam.org> - 2013-04-16 22:21 +0200
Re: Portability Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-16 22:33 +0200
Re: Portability "Ed" <invalid@nospam.com> - 2013-04-19 15:04 +1000
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-15 15:46 +0000
Re: Portability Sieur de Bienville <morrimichael@gmail.com> - 2013-04-15 19:19 -0700
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-16 12:53 +0000
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-16 17:29 -0400
Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-16 11:44 -1000
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-16 18:00 -0400
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-16 17:33 -0500
Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-16 12:46 -1000
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-17 13:09 -0400
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-17 12:20 -0500
Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-17 07:38 -1000
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-17 16:43 -0500
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-17 20:03 -0400
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-18 16:53 -0500
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-18 18:02 -0400
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-19 03:30 -0500
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-19 15:31 -0400
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-22 09:59 +0000
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-22 07:28 -0500
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-22 15:27 +0000
Re: Portability Hugh Aguilar <hughaguilar96@yahoo.com> - 2013-04-22 18:16 -0700
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-17 10:23 +0000
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-17 13:46 -0400
Re: Portability anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-04-22 09:47 +0000
Re: Portability Brad Eckert <hwfwguy@gmail.com> - 2013-04-17 10:32 -0700
Re: Portability nobody@nowhere - 2013-04-17 17:36 +0000
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-17 14:21 -0400
Re: Portability Brad Eckert <hwfwguy@gmail.com> - 2013-04-17 15:03 -0700
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-17 18:22 -0400
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-17 18:24 -0400
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-18 00:51 -0400
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-18 17:19 -0400
Re: Portability Brad Eckert <hwfwguy@gmail.com> - 2013-04-19 12:37 -0700
Re: Portability rickman <gnuarm@gmail.com> - 2013-04-19 15:53 -0400
Re: Portability Lars Brinkhoff <lars.spam@nocrew.org> - 2013-04-17 19:26 +0200
Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-10 18:50 +0000
Re: Portability Bernd Paysan <bernd.paysan@gmx.de> - 2013-04-10 22:14 +0200
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-12 04:18 -0500
Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-12 08:30 -1000
Re: Portability albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-04-12 18:58 +0000
Re: Portability "Elizabeth D. Rather" <erather@forth.com> - 2013-04-12 11:29 -1000
Re: Portability "Ed" <invalid@nospam.com> - 2013-04-13 14:57 +1000
Re: Portability Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-04-09 04:11 -0500
csiph-web