int pointZZ_pEqual(const PointZZ_p * op1, const PointZZ_p * op2) {
    // check x coords
    if(mpz_cmp(op1->x, op2->x) != 0) {
        return 0;
    }
    // check y coords
    if(mpz_cmp(op1->y, op2->y) != 0) {
        return 0;
    }

    return 1;
}
int pointZZ_pEqual(const PointZZ_p * op1, const PointZZ_p * op2) {
     
    if(mpz_cmp(op1->x, op2->x) != 0) {
        return 0;
    }
     
    if(mpz_cmp(op1->y, op2->y) != 0) {
        return 0;
    }

    return 1;
}