1. Си / Говнокод #10574

    +134

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    double erf(double x)
    {
        const double xbreak = 0.46875;
        ...
    
        y = fabs(x);
    
    //  evaluate  erf  for  |x| <= 0.46875
        if (y<xbreak)
        {
            ...
        }
    //  evaluate  erfc  for 0.46875 <= |x| <= 4.0
        else if ((y > xbreak) && (y <= 4.))
        {
            ...
        }
    //   evaluate  erfc  for |x| > 4.0
        else
        {
            ...
        }
    
    //   fix up for negative argument, erf, etc.
        if (x > xbreak)
           result = 1 - result;
        if (x < -xbreak)
           result = result - 1;
    
        return result;
    }

    > Надо было в свое время — перевел MATLABовский исходник на C (сделано через дробно-рациональные аппроксимации на нескольких отрезках)

    http://www.rsdn.ru/forum/alg/1797230.all.aspx

    Запостил: TarasB, 05 Июня 2012

    Комментарии (8) RSS

    • тебя смутило лишнее неверное условие на 14 строке?
      Ответить
      • Оно мало того что лишнее, так из-за него +-0.46875 попадает в третью ветку...

        UPD. Хотя тут и 9я строка походу неверна.
        Ответить
        • > лишнее неверное
          именно так я и написал
          Ответить
          • Сорри, невнимательно читаю.
            Ответить
          • более того, для x=xbrake и со строками 25-28 будет хуйня, потому что они явно относятся только к 2 и 3 веткам.
            Ответить
    • вообще, конечно, ковырять какие то матановские библиотеки - удовольствие для избранных
      http://bit.ly/KMndPM
      Ответить
      • Заглянул на вики, как оказалось эти erf и erfc описаны даже в стандарте С99.
        Ответить
    • показать все, что скрытоЯ парень, 24 года. Хочу отсосать у кавказца. Пиши желательно с фото на [email protected], вышлю в ответ
      Ответить

    Добавить комментарий