unamlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y...

28
Gonzalo Pkrez de la Cruz Prof. Pablo Barrera Analisis Nuillkrico. Trabajo I 1) Busque 10s papers de W. Kahan, y elabore un ensayo alrededor de 10s siguientes puntos: a) Por que fue necesario un standard para la aritmetica punto flotante? b) Cuales son 10s antecedentes? c) Cuales fueron 10s logros? d) Cual es situacion actual? La aritmetica de las computadoras es tan antigua como la computacion. La aritmetica del punto flotante provoco polemicas antes de ser implementada, John Von Newmann rechazo incluirla en la maquina que construyo en Princeton. En un informe de gran influencia de 1946, cuyos coautores eran H.H. Goldstine y A. W. Burks, este daba argumentos a favor y en contra de "el punto flotante" y cito: "-A favor-...para retener en una sumo o product0 el maximo de digitos significativos posibles y ...para liberar a1 operador humano de la cargo de estimar e insertar en un problema "factores de escalan- constantes de multiplicacidn que sirven para mantener a 10s nljmeros dentro de 10s limites de la moquina ...". "En contra- ... Desde luego, es innegable que se pierde tiempo humano en preporar la introduccidn de factores de escala adecuados. Solo defendemos que este tiempo es muy pequeiio en proporcidn con el tiempo total necesario para preparar un problema interesante en nuestra maquina. Tenemos la sensacion de que la primera ventaja del punto flotante es un poco ilusoria. Para tener ese punto flotante, se debe gastar capacidad de memoria que, de otro modo, se podria usar para mantener mas digitos por palabra. Por ello no nos parece nada cloro que /as modestas ventajas de un punto flotante binario compensen la perdida de capacidad de memoria y la complejidad afiadido de 10s circuitos aritmeticos y de control." El motivo parecia ser que la mayor parte de 10s bits dedicados al campo del exponente serian bits ma1 gastados. La experiencia ha demostrado otra cosa. Mas adelante hubo una aproximacion software para tratar 10s numeros reales sin hardware de punto flotante llamada vectores flotantes, la idea era calcular en tiempo de ejecucion un factor de escala para todo un vector de nirmeros, eligiendo un factor de escala tal que el numero mayor de todo el vector ocupara justo su campo. Pero cuando se uso este para el calculo de matrices se vio que se podria encontrar un valor muy grande, con lo que el factor de escala debia adaptarse a estos casos de valores grandes y entonces 10s otros valores "comunes" tenian que tener muchos ceros iniciales, puesto que el factor de escala era el mismo para todos, por lo que se sacrificaba la precision ya que habia que descartar 10s bits menos significativos para acomodar 10s ceros iniciales. El deterioro provocado por la perdida de precision era visible en las primeras maquinas como las pantallas de TV, por esto el punto flotante demostro merecer su existencia al no haber alguna alternativa practica. Asi se popularizo el hardware de punto flotante porque era litil. Para 1957, el hardware de punto flotante era casi omnipresente. Una unidad decimal de punto flotante estuvo disponible en el IBM 650 y pronto en las series IBM 704, 709, 7090, 7094, ... ofrecieron hardware binario de punto flotante para simple y doble precision, per0 cabe seiialar que cada implernentacion era diferente, esto introdujo problemas dado que se elevaban enormemente 10s costos. Como el redondeo introduce algljn error en casi todas las operaciones de punto flotante, preocuparse sobre otro bit de error parecia insignificante, asi durante veinte aiios nadie se preocupo demasiado de que estas operaciones se comportasen de forma ligeramente diferente en maquinas

Upload: others

Post on 12-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente

Gonzalo Pkrez de la Cruz Prof. Pablo Barrera

Analisis Nuillkrico. Trabajo I

1) Busque 10s papers de W. Kahan, y elabore un ensayo alrededor de 10s siguientes puntos: a) Por que fue necesario un standard para la aritmetica punto flotante? b) Cuales son 10s antecedentes? c) Cuales fueron 10s logros? d) Cual es situacion actual?

La aritmetica de las computadoras es tan antigua como la computacion. La aritmetica del punto flotante provoco polemicas antes de ser implementada, John Von Newmann rechazo incluirla en la maquina que construyo en Princeton. En un informe de gran influencia de 1946, cuyos coautores eran H.H. Goldstine y A. W. Burks, este daba argumentos a favor y en contra de "el punto flotante" y cito:

"-A favor-...para retener en una sumo o product0 el maximo de digitos significativos posibles y ...p ara liberar a1 operador humano de la cargo de estimar e insertar en un problema "factores de escalan- constantes de multiplicacidn que sirven para mantener a 10s nljmeros dentro de 10s limites de la moquina ...".

"En contra- ... Desde luego, es innegable que se pierde tiempo humano en preporar la introduccidn de factores de escala adecuados. Solo defendemos que este tiempo es muy pequeiio en proporcidn con el tiempo total necesario para preparar un problema interesante en nuestra maquina. Tenemos la sensacion de que la primera ventaja del punto flotante es un poco ilusoria. Para tener ese punto flotante, se debe gastar capacidad de memoria que, de otro modo, se podria usar para mantener mas digitos por palabra. Por ello no nos parece nada cloro que /as modestas ventajas de un punto flotante binario compensen la perdida de capacidad de memoria y la complejidad afiadido de 10s circuitos aritmeticos y de control."

El motivo parecia ser que la mayor parte de 10s bits dedicados al campo del exponente serian bits ma1 gastados. La experiencia ha demostrado otra cosa.

Mas adelante hubo una aproximacion software para tratar 10s numeros reales sin hardware de punto flotante llamada vectores flotantes, la idea era calcular en tiempo de ejecucion un factor de escala para todo un vector de nirmeros, eligiendo un factor de escala tal que el numero mayor de todo el vector ocupara justo su campo. Pero cuando se uso este para el calculo de matrices se vio que se podria encontrar un valor muy grande, con lo que el factor de escala debia adaptarse a estos casos de valores grandes y entonces 10s otros valores "comunes" tenian que tener muchos ceros iniciales, puesto que el factor de escala era el mismo para todos, por lo que se sacrificaba la precision ya que habia que descartar 10s bits menos significativos para acomodar 10s ceros iniciales. El deterioro provocado por la perdida de precision era visible en las primeras maquinas como las pantallas de TV, por esto el punto flotante demostro merecer su existencia al no haber alguna alternativa practica.

Asi se popularizo el hardware de punto flotante porque era litil. Para 1957, el hardware de punto flotante era casi omnipresente. Una unidad decimal de punto flotante estuvo disponible en el IBM 650 y pronto en las series IBM 704, 709, 7090, 7094, ... ofrecieron hardware binario de punto flotante para simple y doble precision, per0 cabe seiialar que cada implernentacion era diferente, esto introdujo problemas dado que se elevaban enormemente 10s costos.

Como el redondeo introduce algljn error en casi todas las operaciones de punto flotante, preocuparse sobre otro bit de error parecia insignificante, asi durante veinte aiios nadie se preocupo demasiado de que estas operaciones se comportasen de forma ligeramente diferente en maquinas

Page 2: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente

diferentes. Si el software necesitada trucos inteligentes para evitar esas idiosincrasias y finalmente proporcionar resultados correctos en todo except0 en algunos bits finales, tales trucos eran considerados parte del arte del programador.

En una reunion de SHARE en 1964, SHARE era un grupo de usuarios de grandes computadoras IBM, se anuncio el sistemal360 que seria el sucesor de las series 7094 y uno de 10s conferencistas describio 10s trucos que debio utilizar para conseguir un nivel de calidad para la biblioteca del sistemal360 y menciono que aun con estos no habia logrado lo que anteriormente con el 7094. Como la doble precision del sistemal360 tenia mas precision y mayor rango que la del 7094, se esperaba que el software continuara funcionando como minimo igual que antes, sin embargo esto no ocurrio asi.

Los programadores que se habian convertido en gestores de programas se horrorizaban por el costo de convertir el software del 7094 para que corriese en el sistemal360, per0 aun peor que eso fue la perdida de fe de 10s clientes en IBM.

La necesidad de un estandar de punto flotante surge por problemas como el que se present0 en aquella epoca donde un estudiante uso el 7090 para simular las alas que estaba disefiando para aterrizajes y despegues cortos. Sabia que esas alas serian dificiles de controlar si entre sus caracteristicas se incluia un comienzo abrupt0 de frenada, per0 pensaba que podia evitarlo, aunque sus simulaciones mostraban todo lo contrario. Solo para estar seguro de que el redondeo no estaba infiriendo repitio la mayoria de sus calculos en doble precision y obtuvo resultados como 10s de precision simple, por lo que todo indicaba que sus alas tenian un defect0 ya que caian abruptamente con ambas precisiones, el estudiante ante tales resultados pensaba en abandonar el proyecto.

Mientras tanto Kahan remplazo el programa de algoritmos de IBM(AL0G) por otro disefiado por el mismo, el cual esperaba tuviera mayor precision. Lo probo con 10s programas de aquel estudiante y result0 que estos cambiaban significativamente, Kahan consulto con el, para que pudieran deducir que era lo que pasaba. El estudiante estaba confuso pues con el nuevo ALOG las alas caian de forma gradual.

En 1963 el 7090 fue remplazado por un 7094 m6s rapido y con hardware de punto flotante y doble precision per0 practicamente con 10s mismos algoritmos que el 7090, y cuando se realizaban 10s calculos en esta obtenia resultados muy parecidos a 10s primeros, es decir, las alas caian abruptamente. Entender esto llevo mucho tiempo. Esto era debido a que tanto el 7094 como el 7090 carecian de un bit de guarda en la precision doble, per0 el estudiante descubrio una manera de compensar esta falta por lo que escribio (0.5-x)+0.5 en lugar de (1.0-x) y esto "resolvio" el problema.

En 1974 Kahan trabaja como consultor en Hewlett-Packard para mejorar la precision de sus calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente en 1976, cuando lhon F. Palmer tiene todo el poder en lntel para elegir "la mejor aritmetica del punto flotante" para todos 10s productos de la linea Intel, Kahan trabajara con el. Entre Kahan y Palmer hicieron un disefio que pareciera un imposible, per0 un grupo de empleados de lntel liderados por Rafi Nave lo asumieron como un reto.

Hasta ese momento la aritmetica del punto flotante habia sido diferente entre las grandes computadoras por lo que se volvieron caoticas entre 10s microprocesadores, cada uno de 10s cuales podia hospedar docenas de variedades de aritmeticas de punto flotante en firmware de ROM o en el software. Robert G. Stewart un ingeniero del IEEE se harto de esta anarquia y propuso que el IEEE publicara un estandar para el punto flotante. Simultaneamente se divulgaba que lntel iba a poner en un chip una impresionante aritmetica de punto flotante, dado esto la competencia vio en la propuesta de Stewart una forma de ralentizar a Intel.

Page 3: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente

Asi fue como se reunio un comite a fines de 1977, y en estas se presentaron varias propuestas que estaban compitiendo para ser aceptada como el estandar para la aritmetica de punto flotante, esto se prolongo hasta 1985, cuando se hizo oficial el estandar 754 para el punto flotante en el sistema binario. El proyecto ganador era muy parecido al propuesto por Kahan, Jerome Coonen (estudiante) y Harold Stone. Su diseiio se basaba en el diseiio de Intel, sin embargo para que fuera aceptado se requeria del apoyo unanime del comite y eso llevaba tiempo.

En 1980, Intel no espero mas y lanzo el 8087 para usarlo en el IBM PC. En 1982, Motorola anuncio su 68881, que tuvo lugar en la Sun 3 y el Macintosh II; Apple habia estado apoyando la propuesta desde el principio, es decir, el estandar habia sido aceptado de facto antes de que se presentara la version final.

Lo mejor del IEEE754 es que es extensamente difundido con un formato de punto flotante comun, exige una precision minima de medio ulp en el bit menos significativo y las operaciones deben ser conmutativas.

En el presente el estandar IEEE 754 se ha implementado con un grado de fidelidad considerable en la linea de produccion de todos 10s fabricantes de computadoras norteamericanas. Las unicas excepciones significativas fueron 10s DEC VAX, 10s descendientes de la IBM 51370 y las sliper computadoras vectoriales de Cray Research.

En 1989 la Association for Computing Machinery, reconociendo las ventajas obtenidas por la industria informatica gracias al IEEE 754 homenajeo a Kahan

Asi el IEEE754 especifica lo siguiente para 10s numeros de punto flotante y operaciones entre estos.

Formatos de 10s numeros de punto flotante. Simple y doble precision. Resultados de operaciones basicas y comparaciones. Una vez que se tiene un numero en el sistema de punto flotante las operaciones se calculan como si se calculara en infinita precision, el resultado se normaliza y luego se redondea. Modos de redondeos. 4 tipos de redondeo, por defualt se considera el redondeo al numero mas cercano. Resultados en excepciones

Tipo de excepcion Operacion invalida Overflow

Un NaN es generado por operaciones como 010, Otinf, inflinf, (+inf)+(-inf), y raiz(-1).

Resultado en el sistema NaN Mas (menos) infinito

1 Division por cero I Underflow

Otra caracteristica importante es que es un sistema cerrado, es decir, una operacion aritmetica produce un resultado en el sistema.

Mas (menos) infinito Numeros subnormales

Cabe mencionar que el estandar esta en constante revision y que si bien Kahan ya no es el principal si ha tenido algunas contribuciones, tambien esta el IEEE 854-1987 que es una generalization del IEEE754 que cubre tanto aritmetica binaria como decimal.

Page 4: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente

2) En Internet, puede encontrar la biblioteca MACHAR, la cual calcula las principales caracteristicas numericas de un ordenador. Diga cuales son 10s antecedentes, que hace, como lo hace y por que?

Al inicio del uso de las computadoras, cuando 10s programadores desarrollaban software numerico usualmente programaban tal cual 10s modelos de matematicas clasicas, series de potencia, etc., se pensaba que estos funcionarian sin problemas, tiempo despues se fueron dando cuenta que no funcionaban correctamente. Al tratar de contestar la pregunta LPor que no funcionan correctamente? Se analizaron si 10s modelos eran correctos y asi era, entonces analizaron a detalle 10s problemas y descubrieron que eran las computadoras las que tenian problemas cuando calculaban usando valores muy pequeiios o muy grandes, entre otros problemas, al final concluyeron que el problema radicaba esencialmente en la aritmetica de las computadoras.

Al darse cuenta de 10s distintos problemas que generaban 10s underflow, overflow, etc., se desarrollaron programas mas robustos, es decir que contemplaban y solucionaban 10s problemas antes mencionados y 10s disehadores de software y de computadoras se dieron cuenta de la importancia que tenian 10s partimetros de precision en la aritmetica de las computadoras.

Otro grave problema era que la aritmetica de cada equipo de computo era totalmente distinta (no habia portabilidad), por lo que 10s programas eran incompatibles de una maquina a otra; lo cual era un desperdicio de tiempo, pues si ya se habia gastado tiempo en tener un programa que funcionaba bien, que se habia probado en escritorio y que se habia documentado, despues con un cambio de equipo el programa ya no se podia usar y nuevamente el algoritmo se tenia que rehacer para adaptarlo a la aritmetica de la nueva maquina, adicionalmente se tenia que ser un experto en el equipo para saber que trucos o como se debia modificar cada programa.

Uno de 10s pioneros en esta area fue W.J. Cody, quien escribio numerosos articulos sobre estos problemas y trabajo certificando equipos y programas que cumplieran con ciertos criterios de exactitud en 10s calculos, y que 10s programas fueran robustos.

Fue entonces cuando Cody, se dio cuenta que una forma de hacer portables (compatibles) 10s programas de manera sencilla es detectando algunos parametros referentes a la aritmetica de las computadoras, para asi con unas cuantas modificaciones en un software numerico probado, hacerlo compatible.

Asi comienza a desarrollar paquetes como el ELENFUNT o el FUNPACK, que son paquetes que hacian distintas pruebas sobre la aritmetica de las computadoras, estos paquetes tenian el problema que se desarrollaban especificamente para cada equipo.

Con el FUNPACK, por primera vez se probaba s i 10s programas eran robustos ; es decir si daban respuestas correctas o cercanamente correctas o te decia si algo estaba mal, si dabas ma1 10s argumentos y si la rutina te daba respuesta sin advertire que algo estaba mal, esa seria la definicion practica de robusto.

Al principio las pruebas servian para que el usuario supiera que el programa corria apropiadamente en la maquina, dandole la precision y la calidad del programa.

Page 5: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente

Despues de haber aprendido al hacer las librerias se diseAo Machar. Estas pruebas se convirtieron en un estandar para 10s constructores de maquinas y 10s productores de compiladores, tenian que pasar las pruebas; no significaba que esto fuera definitivo per0 si no pasaban las pruebas debian regresar a corregir el producto.

La ventaja que tiene el MACHAR es que es un programa portable, compatible con distintas maquinas, lo que se denominaria un programa dinamico y fue desarrollado en FORTRAN, este que hace pruebas y le da al usuario trece parametros fundamentales asociados al sistema aritmetico de punto flotante de la computadora; aunque el original se desarrollo en FORTRAN, se ha transcrito a BASIC, PASCAL, C, MATLAB entre otros.

El MACHAR es anterior al sistema aritmetico del IEEE754, por lo que una vez que se lanzo en estandar IEEE754, se hizo una nueva version del MACHAR.

Los trece parametros fundamentales son:

1) E l radio para el esquema de representacion p , es la base con la que la maquina

tra baja.

2) t, el numero de base 0 de significancia en el punto flotante.

3) rnd, un parametro que indica el metodo de redondeo.

4) ngrd, si la aritmetica de la computadora trunca, el numero de base P guarda digitos

usados en multiplication.

5) machep, el exponente para la potencia menor de j3.

6) negep, otro parametro para la potencia menor.

7) iexp, el numero de bits dedicados a la representacion exponencial, incluyendo el signo,

de un numero de punto flotante.

8) minexp, la menor potencia permitida de p que tiene significancia completa.

9) maxexp, el menor valor de la potencia de p que causa overflow.

10) eps, el punto flotante de pmachep . 11) epsneg, el punto flotante de p ' l e g e p .

12) xmin, el punto flotante de p m i r L e x p .

13) xmax, un numero que aproxime el numero finito mas grande p m a x e p ( l - epsneg) .

El modelo usado en el MACHAR, especifica la representacion de 10s numeros punto flotante con cuatro parametros P , minexp, maxexp, t , 10s cuales son tratados como si fueran representados por pe * s, donde P es el radio de representacion (base), e es el exponente

1 entero tal que minexp i e i maxexp, si s # 0, entonces - < s i 1; a lo que se le llama la

0 - forma normalizada de un nOmero.

Para calcular 10s parametros utiliza diferentes algoritmos, utiliza un algoritmo (de Malcolm con algunas modificaciones sugeridas por Gentleman y ~arovich) para determinar el metodo de redondeo y 10s parametros P y t, esencialmente hace una suma y si la suma difiere de cierto numero entonces se detecta que la maquina esta redondeando.

Para determinar 10s exponentes machep, negep, eps y epsneg lo que se hace es un ciclo (loop) para encontrar cada parametro mencionado en 10s puntos anteriores hasta ver cuales son 10s ultimos numeros que se puede calcular antes de una condicion dada, en 10s dos ultimos es que una funcion de ellos ya no sea distinguible de 1.

Page 6: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente

Para el caso de minexp y xminotra otra vez se hace un loop pero ahora la condicion tiene que ver con un underflow. El MACHAR tambien hace comparaciones con el IF, para verificar si 10s underflow 10s marca como cero o simplemente como underflow.

Despues del MACHAR, Coby desarrollo el SPECFUN, que tiene mas pruebas y mayor compatibilidad.

Estos paquetes son herramientas y nos alertan sobre la forma en que debemos desarrollar 10s software numericos, o modificar software ya existente y nos alerta sobre posibles problemas que se puedan tener al correrlos; tambien nos dan un comparativo entre las distintas computadoras, en cuanto a su aritmetica y su precision.

A continuacion se presenta el codigo para precision doble del MACHAR trascrito a MATLAB

.-:;'I [ ibc la I . ~md. ogrd machep, ncgcp. lexp, minexp. maxexp, eps eysneg xmln xmax I : r8.machar ( dummy)

: ..

one = I:

. .. ~ ~. . . _ ~ .. ,..... ~~... , ..?.,...p,..r. two = one + one, . _ . . ~- ~ . . . . . . . ..'t........,,,' zero = one - one,

a = one,

.-. ', :? ( 1 )

a Z a + a : temp = a t o n e , tempi =temp ~ a.

.f ( lempl - o n e -: zero ) yo::

i>,.,,

b = one,

Page 7: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente

t e m p z a t b temp =floor ( tenlp - a J

theta = ,temp beta - ibela

1 - 6 b - one,

t - I t t i . b = b ' beta temp = b + one lempl .temp - b.

.: 1 tempi one -: zero i .". . ..

m d = 0 betah = beta I two. temp = a betah,

{temp - a -= zero J rnd - 1

21

telnpa - a 4 bola temp = telnpa + belah

i lrno == 0 8 temp - ternpa= rero) ~rnd - 2 -, -

negep - t t 3 bela~n - one I beta a - o i c

I = 1 negep a - a ' belaill

b = a

( 1 )

temp - one - a

, i temp one -= zero) , ~ " , ,.?

,.""

a = a ' lbeta negel>= negep - 1

negep = n e e p epsneg a.

8. ( ,beta -: 2 8 rnd -= 0 )

a = ( a ' ( o n e t a ) ) / t w o . temp = one - a,

:(temp - one -= zero I epsneg = a .

machep = -11. 3 a - b

temp one * a

' ( temp - one -= zero ) - 5:.

a - a ' beta machep = machep t 1

eps = a temp = tempa + beta ' ( one + eps )

( lbeta -= 2 8 r l x i -= 0 )

a = ( a ' ( o n e + a ) ) i t w o , temp = one t a

: I (temp - one -z zero ) eps = a. 211

temp = one t eps.

11 ( irnd == 0 8 temp'one - one -= zera I

t = one eps, nxres = 0,

b.,,,',:: ( 1 )

Y-1. z'y'y;

a =z*one, lemp=z'I,

I ( a t a = = z e r o l y < = a b s ( z ) ) exit

r l d

tempi -temp' beta~n.

11 ( lempl ' bela == 2 1 DrccI;

i l l t i

l = i + i ; k = k + k ,

i r ' i i

PI I , , . - I = ,.., , *. , . . . , . i! (!beta -= 10 I

wxp = I 4 1 m x = k * k '

lexp = 2: IZ = beta.

k 1 1 1

i i ( k ~ l 2 ) d:"&

e '3

iz = iz + ibeta: lerp = lerp 4 1

r- ?

m x = ~ z + ~ z - l .

,*87,>;* ( 1 )

rmln = y. y = y ' betain,

a = y 'one. temp. y 'I.

;I( a t a == zero I xmln <= abs ( y ) ) 3"'::.

+>,,

Page 8: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente

k ~ k + l teliipl =temp' betaln,

i 1 temp1 ' beld -= y / Inrres = 3 xmln = y . ,..

, .. . .

i = rnaxerp + minexp:

( ,bela == 2 8 1 == 0 ) maxexp - rnaxexu 1

maxexp = maxexp 1 i l ' i

, : ( a - - y ) maxexp = maxexp - 2,

<,ill

. ( nr r= k t k - 3 8 (bela-= 10 I mr = rnx + mx: lexp = exp + !,

Y I : xrnax = one - epmeg;

maxexp = mx t rnlnexp $7 ( xmax ' one -= xrnax) xmax = one beta' epsneg

CRC

xrnax = xmax I ( beta ' beta ' beta ' xrnin 1,

i = maxexp + minexp t 3

( irnd == 2 1 ~rnd == b maxcxp = maxexp - 2, r - 11 i ibeta == 2 1

xrnax = xnlax xmax, e!sd

xrnax = xmar ' beta. "3'1 ( lrnd -- 3 1 trnd -- 4 1

maxexp : maxexp lt. E,'' EFC

Se ejecuto el programa en una maquina y las constantes que produjo fueron:

TEST02 R8-MACHAR computes double orecision machine constants.

overflows: MAXEXP = 1024

EPS is a small pos~tive floating point number such that 1.0 < 1.0 + EPS.

EPS = 2.2204460492503131e-016 IBETA is the internal base for machine arithmetic. IBETA= 2

IT is the number of digits, base IBETA, in the floating point significand.

IT= 53

EPSNEG is a small positwe floating point number such that 1.0 - EPSNEG < 1.0. EPSNEG = 1.1102230246251565e-016

IRND reports on floating point addition rounding: 0, for chopping; 1, for non-IEEE rounding; 2, for IEEE rounding; 3, for chopping with partial underflow; 4, for non-IEEE round~ng with partial underflow. 5, for IEEE rounding with partial underflow. IRND= 5

XMIN is the smallest positive normalized floating point power of the radix: XMIN = 2.2250738585072014e-308

XMAX is the largest finite floating point number: XMAX = 1.7976931348623157et308

NGRD is the number of guard digits for floating point multiplication with truncating arithmetic NGRD= 0

MACHEP is the largest negative integer such that 1.0 < 1.0 + BETAnMACHEP. MACHEP = -52

NEGEPS is the largest negative integer such that 1.0 - BETAnNEGEPS < 1.0: NEGEP = -53

IEXP 1s the number of bits reserved for the exponent of a floating point number: IEXP= 11

MINEXP is the most negative power of BETA such that BETAAMINEXP is positive and normalized. MINEXP = -1022

MAXEXP is the smallest positive power of BETA that

Page 9: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 10: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 11: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 12: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 13: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 14: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente

= 1 ( A , bay + . - o ~ ~ f ' I C T

Page 15: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 16: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 17: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 18: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 19: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente

Sect 9 = +.J,-.& CY 5

du+o , a s d * - ~ n - l Y ~ U ~ C ( R P I O S x dP la 4-0

A t .d:.. GF'" , obsevuece 9ue st ' C Y + N L M ~

Page 20: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 21: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 22: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 23: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 24: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 25: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 26: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 27: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente
Page 28: UNAMlya.fciencias.unam.mx/gfgf/sc091/archivos/respt1_cc091.pdf · 2018. 6. 11. · calculadoras y su trabajo mejoro drasticamente la precision de las calculadoras HP, posteriormente