Subversion Repositories HelenOS

Rev

Rev 119 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 119 Rev 125
Line 73... Line 73...
73
}
73
}
74
 
74
 
75
static void pi(void *data)
75
static void pi(void *data)
76
{
76
{
77
    int i;
77
    int i;
78
        double lpi, pi;
78
    double lpi, pi;
79
        double n, ab, ad;
79
    double n, ab, ad;
80
 
80
 
81
    waitq_sleep(&can_start);
81
    waitq_sleep(&can_start);
82
 
82
 
83
 
83
 
84
    for (i = 0; i<ATTEMPTS; i++) {
84
    for (i = 0; i<ATTEMPTS; i++) {
85
        lpi = -1;
85
        lpi = -1;
86
        pi = 0;
86
        pi = 0;
87
 
87
 
88
            for (n=2, ab = sqrt(2); lpi != pi; n *= 2, ab = ad) {
88
        for (n=2, ab = sqrt(2); lpi != pi; n *= 2, ab = ad) {
89
                    double sc, cd;
89
            double sc, cd;
90
 
90
 
91
                    sc = sqrt(1 - (ab*ab/4));
91
            sc = sqrt(1 - (ab*ab/4));
92
                    cd = 1 - sc;
92
            cd = 1 - sc;
93
                    ad = sqrt(ab*ab/4 + cd*cd);
93
            ad = sqrt(ab*ab/4 + cd*cd);
94
                    lpi = pi;
94
            lpi = pi;
95
                    pi = 2 * n * ad;
95
            pi = 2 * n * ad;
96
            }
96
        }
97
 
97
 
98
        if((int)(100000000*pi)!=PI_10e8)
98
        if((int)(100000000*pi)!=PI_10e8)
99
            panic("tid%d: pi*10e8=%d\n", THREAD->tid, (int) 100000000*pi);
99
            panic("tid%d: pi*10e8=%d\n", THREAD->tid, (int) 100000000*pi);
100
    }
100
    }
101
 
101