Re: Rapidità di esecuzione dello scalamento di una lunghezza

#80688
Liverpool
Partecipante
    Up
    0
    Down
    ::

    egreg9″ post=80168Temo che non sia proprio vero. L’esecuzione di
    `\dimen2=\dimexpr\dimen0*3/2\relax`
    richiede essenzialmente lo stesso tempo di
    `\dimen2=\dimen0 \multiply\dimen2 by 3 \divide\dimen2 by 2`

    Però sul manuale di [tt]etex[/tt] c’è scritto

    manuale di etexLe operazioni aritmetiche sono eseguite individualmente, tranne le operazioni di ‘scalamento’ (una moltiplicazione seguita immediatamente da una divisione) che sono eseguite come un’operazione combinata con un prodotto a 64 bit come valore intermedio

    Questa frase sembra voler dire che mentre nella successione [tt]multiply+divide[/tt] le operazioni sono:
    a) carico il numero
    b) eseguo la moltiplicazione
    c) scarico il numero
    d) carico il numero
    e) eseguo la divisione
    f) scarico il numero

    con le istruzioni di [tt]etex[/tt] le operazioni sono:
    a) carico il numero
    b) eseguo la moltiplicazione
    c) eseguo la divisione sul numero in registro
    d) scarico il numero

    quindi si dovrebbe risparmiare un carico+scarico, se ho capito bene. Forse tu dici che alla fine si tratta di tempi infinitesimi?


    @OldClaudio
    , perché dici nel primo messaggio che la moltiplicazione per coefficiente fratto dovrebbe essere più onerosa della divisione per numero intero?

    Ciao

    Go to top