Example #1
0
File: main.c Project: RYWU/C-Cpp
int *GBB(int *arr1, int *arr2){ //arr1 > arr2;
    int ans = 1;
    while (notZero(arr1)==1 && notZero(arr2)==1) {
        if (arr2[0] % 2 == 0 && arr1[0] % 2 ==0){
            ans *= 2;
            //printf("ans*2\n");
            arr1 = divTwo(arr1);
            arr2 = divTwo(arr2);
            continue;
        }
        else if (arr2[0] % 2 == 0 && arr1[0] %2 == 1){
            arr2 = divTwo(arr2);
            continue;
        }
        else if (arr2[0] % 2 == 1 && arr1[0] %2 == 0){
            arr1 = divTwo(arr1);
            continue;
        }
        if (compare(arr1, arr2) == 1) {
            swap(arr1, arr2);
            //            printf("swap");
        }
        arr1 = minus(arr1, arr2);
        //        printf("minus\n");
    }
    printf("ans: %d\n", ans);
    printf("Final arr2:\n");
    printNum(arr2);
    
    return times(arr2, ans);
}
Example #2
0
void transform_t::picker()
{
    const GLfixed* const m = matrix.m;

    // XXX: picker needs to be smarter
    flags = 0;
    ops = OP_ALL;
    point2 = point2__generic;
    point3 = point3__generic;
    point4 = point4__generic;
    
    // find out if this is a 2D projection
    if (!(notZero(m[3]) | notZero(m[7]) | notZero(m[11]) | notOne(m[15]))) {
        flags |= FLAGS_2D_PROJECTION;
    }
}
Example #3
0
static inline
int notOne(GLfixed v) {
    return notZero(v - 0x10000);
}