Anatoly Vorobey (avva) wrote,
Anatoly Vorobey
avva

Category:

численные методы

Исследование одного очень красивого хака (PDF, англ.) - быстрого вычисления функции 1/sqrt(x) (обратный квадратный корень):

float InvSqrt(float x)
{
    float xhalf = 0.5f*x;
    int i = *(int*)&x;       // get bits for floating value
    i = 0x5f3759df - (i>>1); // gives initial guess 
    x = *(float*)&i;         // convert bits back to float
    x = x*(1.5f-xhalf*x*x);  // Newton step, repeating increases accuracy
    return x;
}

Статья объясняет, почему и как это работает, и откуда взялась таинственная магическая константа 0x5f3759df.

Очень красиво.

Кстати, если не ошибаюсь, при чтении этого кода и этой статьи мне впервые понадобилось вообще для чего-либо знание метода приближений Ньютона, с тех пор, как я его выучил на курсе численных методов в университете 12 лет назад.

Subscribe

  • странные слова ермолая

    Я читаю "Записки охотника" Тургенева, и во второй главе, "Ермолай и мельничиха", происходит что-то фундаментально непонятное мне. Рассказчик идет на…

  • красивая двухходовка

    Белые начинают и ставят мат в два хода. Это единственная сложная и красивая задача на мат в два хода с всего 4 фигурами на доске, какую я знаю.…

  • река волга

    Иногда тайный смысл в какой-то песне надо добывать, как руду, прозревать, проникать, выцарапывать... но иногда все лежит на поверхности и говорится…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 18 comments

  • странные слова ермолая

    Я читаю "Записки охотника" Тургенева, и во второй главе, "Ермолай и мельничиха", происходит что-то фундаментально непонятное мне. Рассказчик идет на…

  • красивая двухходовка

    Белые начинают и ставят мат в два хода. Это единственная сложная и красивая задача на мат в два хода с всего 4 фигурами на доске, какую я знаю.…

  • река волга

    Иногда тайный смысл в какой-то песне надо добывать, как руду, прозревать, проникать, выцарапывать... но иногда все лежит на поверхности и говорится…