Say you write out the day numbers to a map file.
Then, the file size could double or not depending on 
whether you have _ in the dates.  And a non-J program
reading the file would have to deal with two completely 
different formats, depending on whether you have _ 
in the dates.

Regarding space and time, the following benchmark 
illustrates a difference between integers and 
floating point.  Day numbers for dates that you 
likely have to deal with fall in the range 3e4 to 1.2e5.  

   todate 3e4 1.2e5
1882 2 20
2128 7 20

   i=: 30000 + 1e6 [EMAIL PROTECTED] 9e4
   f=: _ (?1e6)}i
   j=: 30000 + 1e6 [EMAIL PROTECTED] 9e4

   ts=: 6!:2 , 7!:[EMAIL PROTECTED]
   ts 'i i. j'
0.0202889 4.7193e6
   ts 'f i. j'
0.444318 2.09722e7

A single _ day number causes an increase in time
by a factor of 20 and in space by a factor of 4,
in a very common and useful computation.

In case you intend your sentence ("if space and
time are the only effects, ...") to be interpreted
in a general sense, the recent tree sum problem
provides a counterexample.  The connection matrix
solution is much more elegant than the others, the 
only drawback being that it uses more space and time.
But what a drawback!  For an n-node tree it
requires O(n^2) space, which is why the other
solutions can handle million-node trees in less 
than a second, whereas the connection matrix solution 
maxes out at around 1e4.  The O(n^2) space requirement 
is a killer no matter how much hardware advances.

It is a fallacy that efficiency doesn't matter
as hardware advances.  Efficiency matters MORE
as hardware advances, because with more capable
hardware we are asked to solve bigger problems.
In a 64 KB machine you might be tasked to solve
a problem of size 1000, and the difference between
O(n^2) vs. O(n*^.n) isn't crushing.  On a 1 GB
machine you might be tasked to solve a problem of
size 1e7, and then with O(n^2) you'd have a problem.



----- Original Message -----
From: Randy MacDonald <[EMAIL PROTECTED]>
Date: Sunday, March 16, 2008 19:08
Subject: Re: [Jprogramming] Handling NaN error with #:_
To: Programming forum <[email protected]>

> Hello;
> 
> If space and time are the only effects, and given the sheer 
> amount of 
> computing power available on the meagrest of machines, I say 
> that there 
> is not much of an issue.
> 
> Use of the previously suggested 'antibase' which uses adverse 
> seems 
> elegant enough.
> 
> Roger Hui wrote:
> > Using _ as a date or day number forces the entire
> > argument or result array from integer to floating point.
> > Some consequences:
> > - doubles the space consumption
> > - comparisons take longer
> > - important computations such as i. and e. take longer
> >
> >
> >
> > ----- Original Message -----
> > From: Alain Miville de Chêne <[EMAIL PROTECTED]>
> > Date: Sunday, March 16, 2008 14:12
> > Subject: Re: [Jprogramming] Handling NaN error with #:_
> > To: Programming forum <[email protected]>
> >
> >   
> >> It used to be elegant. It is no more.
> >> Anssi is right to value elegance.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to