Thread overview
Additional native types: dec, time?
Aug 20, 2001
Jim Eberle
Aug 21, 2001
Walter
Aug 21, 2001
Jan Knepper
Aug 21, 2001
Walter
Aug 21, 2001
Angus Graham
Oct 16, 2001
Sean L. Palmer
Oct 16, 2001
Russ Lewis
August 20, 2001
Any thoughts on providing language-level support for decimal (BCD) or time values? These are fundamental quantities, yet nearly all languages relegate them to the "just implement a class" bin.

D takes on things like complex numbers, and more complete support for floating point arithmetic. Why not these?

Thanks,
Jim



August 21, 2001
Time is readilly handled with a typedef'd long type (no need for a class). I've never needed bcd in 20 years of coding, so that explains why it isn't in the language <g>.

Jim Eberle wrote in message <9lrdih$qu4$1@digitaldaemon.com>...
>Any thoughts on providing language-level support for decimal (BCD) or time values? These are fundamental quantities, yet nearly all languages relegate
them
>to the "just implement a class" bin.
>
>D takes on things like complex numbers, and more complete support for
floating
>point arithmetic. Why not these?
>
>Thanks,
>Jim
>
>
>


August 21, 2001

Walter wrote:
> 
> Time is readilly handled with a typedef'd long type (no need for a class). I've never needed bcd in 20 years of coding, so that explains why it isn't in the language <g>.

I'll restate that first sentence: "Time, measured in whole seconds from a reference point in the recent past, will be readily handled on 32-bit or bigger machines until a point in the not-too-distant future, and on 64-bit or bigger machines, for the foreseeable future."

There's a lot of stuff that isn't covered there. :)

-RB
August 21, 2001
Walter wrote:

> Time is readilly handled with a typedef'd long type (no need for a class). I've never needed bcd in 20 years of coding, so that explains why it isn't in the language <g>.

20 years?! I thought you had more than that!


August 21, 2001
Jan Knepper wrote in message <3B81E943.7515D927@smartsoft.cc>...
>20 years?! I thought you had more than that!


<cough><cough>


August 21, 2001
"Walter" <walter@digitalmars.com> wrote in message
>
> Jan Knepper wrote in message <3B81E943.7515D927@smartsoft.cc>...
> >20 years?! I thought you had more than that!
>
>
> <cough><cough>
>

For lying on your resume you are hereby dismissed.  Email me your compiler and escort yourself out of your house.

Angus Graham


October 16, 2001
Since we have no operator overloading, seems making vector and matrix classes will not be easy.  I'd rather see builtin vector types than complex numbers support.  After all, what is a complex number anyway if not a 1d vector of 2 floats?  The properties of complex numbers extend out to 1d vectors of more than 2 floats (3d points and vectors, anyone? 4d quaternions/planes?) and from there fold out to 2d matrices and so on and so forth.  I just don't see why one would think supporting the most basic complex number case was such a profound technological leap that progress should stop there.  Besides that, the D complex type seems to be oriented towards double precision arithmetic only... and we game programmers tend to prefer the smaller and faster float type in most cases.

Yes, in D we can already make vectors using static (or dynamic) arrays, but we can't give them operations equivalent to floats, or complex.

Regarding BCD, well it'd be nice, but add too much bloat to a language standard and you end up with zero conforming compilers.  Time can be well represented by a count of seconds or microseconds or days and as such deserves no special treatment by the language.... either use a long, or a double.

Sean

"Jim Eberle" <jeberle1@my-deja.com> wrote in message news:9lrdih$qu4$1@digitaldaemon.com...
> Any thoughts on providing language-level support for decimal (BCD) or time values? These are fundamental quantities, yet nearly all languages
relegate them
> to the "just implement a class" bin.
>
> D takes on things like complex numbers, and more complete support for
floating
> point arithmetic. Why not these?
>
> Thanks,
> Jim



October 16, 2001
I agree that the language should include some sort of easy support for vectors and matrices - if not through overloaded operators, then through natural types. However, it's not as easy as it sounds you think it is.

"Sean L. Palmer" wrote:

> The properties of complex numbers extend out to 1d
> vectors of more than 2 floats (3d points and vectors, anyone? 4d
> quaternions/planes?) and from there fold out to 2d matrices and so on and so
> forth.

This is true with the structural properties, but not with the arithmetic ones. Addition works fine, but multiplying does not.

(a+bi)*(c+di) = (ac-bd) +(ad+bc)i

[ a b] * [ c d ] is undefined

[ a ]   [ c ]
[ b ] * [ d ] is undefined

[ a ]
[ b] * [ c d ] = ac+bd

and this doesn't cover dot products of vectors...

> I just don't see why one would think supporting the most basic
> complex number case was such a profound technological leap that progress
> should stop there.  Besides that, the D complex type seems to be oriented
> towards double precision arithmetic only... and we game programmers tend to
> prefer the smaller and faster float type in most cases.

Yes, it would be very desirable to support vectors and matrices of arbitrary types.  Even matrices of ints are useful from time to time.

> Yes, in D we can already make vectors using static (or dynamic) arrays, but we can't give them operations equivalent to floats, or complex.

This is the same argument about infix operators as before.  With so much 3D programming going on nowadays, IMHO not including matrix arithmetic in some form means D is much less likely to be used in those applications.  If it is included (and highly optimized by the compiler), matrix math might be the "killer app" for the D language.

> Regarding BCD, well it'd be nice, but add too much bloat to a language standard and you end up with zero conforming compilers.  Time can be well represented by a count of seconds or microseconds or days and as such deserves no special treatment by the language.... either use a long, or a double.

Agreed.

--
The Villagers are Online! villagersonline.com

.[ (the fox.(quick,brown)) jumped.over(the dog.lazy) ]
.[ (a version.of(English).(precise.more)) is(possible) ]
?[ you want.to(help(develop(it))) ]