Re: Argumenty: Co zamiast Windows 95?

Autor: Andrzej Lewandowski (lewando_at_ibm.net)
Data: Fri 07 Mar 1997 - 22:37:04 MET


ptauz_at_omk.il.pw.edu.pl wrote:
>
> > >ptauz_at_omk.il.pw.edu.pl wrote:
> > >> A ja w C++ mam
> > >> funkcje operatorowe ktore pozwalaja przypisac dzialania macierzowe
> > >> zwyklym operatorom arytmetycznym i wykonywac je po ludzku tzn.
> > >> DOWOLNE (a nie tylko jedno) wyrazenie macierzowe w JEDNEJ LINII z
> > >> nawiasami itp.

Dobra. Niech A, B i C beda macierzami 20,000 X 20,000. Rzadkimi
oczywiscie.

Teraz napisz w C++

        X = A*(B+C)

Normalny kompilator zrobi rzecz nastepujaca:

1. tmp = B+C
2. X = A*tmp

czyli wygeneruje "na chwile" macierz tmp, tez 20,000 X 20,000
ILE TO BEDZIE TRWALO???? Co wiecej, w praktycznych przypadkach
nierozsadne operacje na macierzach rzadkich wcale niekoniecznie
musza dac macier rzadka, trzeba wiec uwazac co sie robi. Kompilator
za ciebie nie bedzie uwazal...

I czy tak samo aprogramujesz to w Fortranie?

Problem jest znany w kregu C++ numerykow jako "problem
of temporaries". Sa specjalne techniki na radzenie sobie z
tym problemem, ale przy nich czytelnosc programu Fortranowego
jest jak krysztal. Ludzie pracuja nad wprowadzeniem pewnych
rozwiazan do nowego (ktorego z kolei NOWEGO???) standardu C++,
ale poki co nic nie ma. No i poki co, Fortran jest najlepszy
do obliczen numerycznych. Postudiuj sobie Computers in Physics

Andrzej Lewandowski



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:57:58 MET DST