Tratar con números muy pequeños en R

Necesito calcular una lista de números muy pequeños como

(0.1) ^ 1000, 0.2 ^ (1200),

y luego normalizarlos para que sumen uno, es decir,

a1 = 0.1 ^ 1000, a2 = 0.2 ^ 1200

Y quiero calcular a1 '= a1 / (a1 + a2), a2' = a2 (a1 + a2).

Me encuentro con problemas de flujo insuficiente, ya que obtengo a1 = 0. ¿Cómo puedo evitar esto? Teóricamente podría tratar con registros, y luego log (a1) = 1000 * log (0.l) sería una forma de representar a1 sin problemas de flujo inferior, pero para normalizar necesitaría obtener log (a1 + a2) - que no puedo calcular ya que no puedo representar a1 directamente.

Estoy programando con R, por lo que puedo decir, no hay ningún tipo de datos como Decimal en c #, que le permite obtener un valor mejor que el de doble precisión.

Cualquier sugerencia será apreciada, gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta