[racket-dev] TR's optimizer eventually going to unbox structs?
But don't you need the 'tag' from the struct to distinguish .4 in p from .4 in 1-p? They may be the same number but they denote distinct ideas. -- Matthias
'
On Aug 18, 2012, at 2:40 PM, Neil Toronto wrote:
> Is TR's optimizer eventually going to unbox structs in the same way it unboxes rectangular flonums?
>
> I have a design choice right now: how to represent probabilities. Floats are good because of their speed, but because of floating-point limitations, *four different representations* are typically used. (For the curious: p, 1-p, log(p), and log(1-p).) I'd like to make functions that accept any one of these representations, denoted by this type:
>
> (define-type Probability
> (U probability 1-probability log-probability log-1-probability))
>
> The types are simply struct types that tag Float.
>
> Of course, manually boxing flonums ruins any chance of the compiler emitting code that keeps the flonums unboxed. If TR's optimizer unboxed structs, though, everything could be speedy.
>
> FWIW, by "eventually," I mean "within the next n years", where "n" is a smallish number.
>
> Neil ⊥
> _________________________
> Racket Developers list:
> http://lists.racket-lang.org/dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4373 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20120818/a7c62f9f/attachment.p7s>