August 03, 2002
In article <MPG.17b457435bb5f6899896af@news.digitalmars.com>, Heinz Saathoff says...
>
>Do you do the matrix multiply in a function taking the matrices as 'pointer to double' parameters like
>
>   void MatrixMul(int N, double *A, double *B, double *C)

Look at the codes I sent, please.

>What would make a difference is simulating a 2D array with pointers as in
>
>  double **A = new double*[N];

I'm not so stupid or ignorant to do that.

>Another point could be different alignment of static array and dynamic allocated array. We had this discussion in the group that 8-byte aligned doubles are faster than 4-byte aligned doubles.

That's obvious stuff I dind't mentioned, I'm using floats.

>
>IMO this can only happen when the routines directly access the global static buffer and not taking the arguments as parameters.
>

This is the same conclusion I came to looking at assembly language compiler
output.
However, this is only true for DMC, try with BC++, or a compiler for RISC
architectures anf you'll find that this makes no difference (as it should be...)

Federico


August 03, 2002
Thanks to everyone who replied. Now that I solved the problem and I'm happy,I have to make two comments:

1) the C standard and DMC docs state no limit on statically allocated areas. I know form past interactiosn that the (wonderful!) linker is not in Walter's control, but that problem is not nice at all;

2) before solving the problem, I anyhow ordered the DM CD: it's a wonderful product, I love it more than I loved Symantec C++ in the past, it's worth really more than 25 bucks!

Federico


August 03, 2002
Federico wrote:

> In article <3D4B044D.97C0BB2E@smartsoft.cc>, Jan Knepper says...
> >
> >> >What about the DM Linker???
> >> Look at the other messages, it fails.
> >
> >I meant, the messages the linker gives you. You give a report for all the other linkers I can not help you with.
> >
> A dialog box appears. The title is:
> "Unexpected OPTLINK termination at EIP=0043E29C"
>
> The body contains a red circle with a white X in it, and says: "EAX=00000000 EBX=0046C7A0 ECX=00001000 EDX=000008DF ESI=00000000 EDI=00004056 EBP=006BFF78 ESP=006BFE10 First=00430000"

<g>
That's all?!

Jan


August 03, 2002
Federico wrote:

> 2) before solving the problem, I anyhow ordered the DM CD: it's a wonderful product, I love it more than I loved Symantec C++ in the past, it's worth really more than 25 bucks!

I thought it is currently being sold for $50???

Jan


August 04, 2002
In article <3D4C0358.45137DD6@smartsoft.cc>, Jan Knepper says...
>
><g>
>That's all?!
>

Yes. I'm not used to hide information to people helping me... ;-)

Walter said it is a problem in OPTLINK he cannot fix.
BTW, I'm running WinME, but I had the same problem with different versions and
on different systems.

Federico


August 04, 2002
In article <3D4C0399.A6578C4C@smartsoft.cc>, Jan Knepper says...
>
>I thought it is currently being sold for $50???
>
http://www.digitalmars.com/shop.html says $25, PayPal charged me $25 + $6 (S&H).

I'd pay $50 as well, it's worth even more, however in those days of poor compilers available for free, and of people satisfied with those, keeping the price low could be a good approach.

Federico


August 04, 2002
In article <aigqms$2li6$1@digitaldaemon.com>, Federico says...
>
>The files:
>rs.c           the original one, arrays defined at file scope
>rsdyn.c        pointers defined at file scope, malloc'ed memory areas
>rsdynb.c       pointers defined at function scope, malloc'ed memory areas
>rsdynf.c       pointers defined at file scope, malloc'ed memory areas passed
>as parameters to a function implementing the core computation
>rsdynbf.c      pointers defined at function scope, malloc'ed memory areas
>passed as parameters to a function implementing the core
>computation
>

Should someone be interested in, I forgot to mention compiler options. I used -WA -o+all -ff

Federico


1 2 3
Next ›   Last »