Cumulative Normal Distribution function in objective C

前端 未结 2 1787
被撕碎了的回忆
被撕碎了的回忆 2020-12-17 04:28

Anyone know of a good implementation of this whose license is compatible with non-free iPhone apps?

As suggested in this question, Boost looks absolutely wonderful.

相关标签:
2条回答
  • 2020-12-17 04:53

    So you specifically want an objective-c solution, correct? Because, just in case you were not already aware, you can use C++ libraries within your project.

    0 讨论(0)
  • 2020-12-17 05:08

    No need for anything fancy. Any platform with a good C99 math library (like the iphone) already has everything you need -- specifically the erfc function, which is a slight variant:

    #import <math.h>
    
    double cumulativeNormal(double x) {
        return 0.5 * erfc(-x * M_SQRT1_2);
    }
    

    Note this is for the standard normal distribution (i.e. mean = 0, variance = 1), you'll need to use the appropriate scaling -- so for some mean and variance, it will be:

    return 0.5 * erfc(((mean - x)/sqrt(variance)) * M_SQRT1_2);
    

    If you don't need double precision, change the doubles to floats, use the erfcf function, and change the literals to single-precision literals.

    Remember, Objective-C is an extremely light extension to C. Every C function is an Objective-C function, with no wrapping or other shenanigans required.

    0 讨论(0)
提交回复
热议问题