A little challenge...

Norbert Nemec Norbert at Nemec-online.de
Sat Feb 27 01:56:00 PST 2010


Robert Jacques wrote:
> That sounds sensible. However, extensive experience in Matlab has taught 
> me that resorting to custom for-loop indicates you've failed to 
> sufficiently think in arrays. :)

Indeed, most use cases are simple enough to be handled in array 
notation. I have worked with Matlab and Python and managed to come up 
with array notations in many non-trivial cases as well. However, once in 
a while, it just cannot be done. Typically, this happens when you have 
to handle non-linear terms or high order tensorial objects.

Of course, my examples were simple enough to permit alternative 
expressions, but I have encountered quite a number of cases where
I could not avoid a loop in Python. I is hard to spontaneously construct 
something useful that I can describe in a few lines.

Imagine a charge density in one dimension:
	rho[r]
and then compute the coulomb energy
	sum(r1,r2)(rho[r1]*rho[r2]/(r1-r2))

Or an expression containing function calls

	sum(i,j)(f(i)*g(j)*A[i,j]))

Ultimately, 'sum' and other reduction would actually be just one use 
case. One could even use the same mechanism to construct arrays from 
expressions.

	auto A = array(a=0:10,b=0:20)(2*a + b%3)

(Disregard the exact syntax here...)

I will think further about this and try to come up with more specific 
use cases.

Greetings,
Norbert



More information about the Digitalmars-d mailing list