( locsemege | 2017. 08. 30., sze – 21:10 )

Octave-ban lehet, hogy megírom. Tegyük hozzá, octave-ot eddig egyetlen alkalommal használtam, lényegében komplex együtthatós, sok ismeretlenes lineáris egyenletrendszer megoldására Gauss-eliminációval. Az is gyorsan futott. Azért nem eleve octave-ot használtam, mert nem ismerem a szintaxisát, tanulnom kellett volna, a calc-ot meg ismerem. Aztán az awk-t is, a komplex mul() és div() függvények megírása pedig nem akkora kihívás.

Érzésem szerint az awk gyorsasága részben abból jön, hogy köztes kódra fordít első körben, nem a szöveges scriptet bogarássza jelen példában 274000-szer - ennyiszer fut le a ciklusmag a konkrét scriptben. A másik ok, hogy használhatja az aritmetikai coprocessort, tehát a lebegőpontos műveletek hardware támogatással, nagyon gyorsan történhetnek.

Ezzel szemben a calc racionális törtként ábrázolja a számokat, de akár nagyon hosszan, például az 1000 faktoriálisát az utolsó számjegyig kiírja, nem lebegőpontosan adja meg a mantissza adott pontosságával. Ebből viszont az következik, hogy memóriában - jó, gondolom, cache-ben -, a CPU-ra támaszkodva, software-esen számol mindent.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE