2 votos

¿Son útiles las matrices complementarias para la división binaria?

El nuevo find-first-set La instrucción de CPU "ffs" de bits que se encuentra en las extensiones multimedia (MMX) 4 aparentemente hizo posible comenzar a hacer División Newton-Raphson (según Wikipedia).

¿Alguien sabe si ya se ha intentado utilizar Matrices de acompañamiento para el mismo propósito?

Explicación:

La ecuación polinómica $ax-b=0$ no es el más complicado, pero sigue siendo muy interesante ya que su solución $x = b/a$ es precisamente la división entre el número $a$ y $b$ que sigue siendo, a día de hoy, vergonzosamente lento incluso en las modernas CPUs de sobremesa que tienen latencias de 10 o 20 ciclos de reloj.

Como toda ecuación polinómica está relacionada con una matriz

Si consideramos: $${\bf M} = \begin{bmatrix}0&a\\1&b\end{bmatrix}$$ Lo que representaría $x^2-ax-b$ . Esto no es lo que queremos encontrar un cero, pero podemos con la continuidad alterar para hacer la $x^2$ menos impactante para las raíces. Por ejemplo, multiplicando $-ax-b$ con una constante grande, o lo que sería lo mismo en este caso, alterar el 1 de la diagonal de salida a algún $\epsilon>0$ por ejemplo, podemos elegir $\epsilon = 2^{k}$ que podría implementarse con un simple desplazamiento de bits. Aquí hay un gráfico sobre la forma de cuánto se aleja la raíz en función del número de bits $k$ que podemos permitirnos por iteración: Supongo que esto también podría ser pre-almacenado en una tabla en caché si los bits extra cuestan demasiado para los registros de la CPU. Este ejemplo particular 3/2.

enter image description here

Un segundo enfoque sería ampliar $(x-b/a)^2$ o $(x+b/a)(x-b/a)$ o alguna otra en la que sepamos que las raíces estarán estrechamente relacionadas con la fracción que buscamos y entonces modificamos la matriz en consecuencia, multiplicando con el mayor común divisor escalar.

Concluyamos que hay muchos enfoques, ¿de acuerdo? En fin, al grano:

Con propiedades para que ${\bf M}^k {\bf v}$ para casi cualquier inicial $\bf v$ cociente entre el primer y el último índice se acercará a una raíz del polinomio como $k$ crece.

¿Podría haber algún beneficio de las matrices compañeras u otros enfoques basados en matrices-vectores en combinación con este nuevo ffs ¿Instrucción?

1voto

mathreadler Puntos 3517

Algunos experimentos preliminares en Octave muestran que tal vez hay alguna promesa en el enfoque. Como podemos ver, la precisión de 6 bits con $\geq 88\%$ La probabilidad es alcanzable con un enfoque bastante simple (2):

La precisión de 6 bits significaría que si el factor verdadero es 420 podríamos obtener $420 \pm \frac{420}{2^6} \approx 420 \pm 6.56$ un error esperado de $2^{-6} \approx 1/64=1.5626\%$ del valor real.

$35\%$ oportunidad de conseguir (al menos) $10$ bits correctos en las primeras 8 iteraciones (curva azul).

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X