Vincent got TR to 'split' complex numbers, if that's what you mean by 'wide 
enough' arguments, and he did so w/o changing R. So perhaps there is a way to 
get the computation on floats and the tag for their meaning. 



On Aug 18, 2012, at 4:13 PM, Robby Findler wrote:

> One could, concievably, still do that without boxing/unblocking by passing 
> "wide enough" arguments. And it does seem like TR could help with that, but 
> IIUC the untyped portion of the compiler needs significant work to support 
> that before TR's knowledge of the program would help (But doing a better job 
> with structs is, iiuc, a long standing "something could be much better here" 
> type of thing.) 
> 
> On Saturday, August 18, 2012, Matthias Felleisen wrote:
> 
> 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
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Reply via email to