PyObject* ClearSpecialPoints( void ) {
    PyObject *OutObj = NULL;

    if (!CleanupSpecialPoints(gIData)) {
        OutObj = Py_BuildValue("(i)", 0);
        assert(OutObj);
    } else {
        OutObj = Py_BuildValue("(i)", 1);
        assert(OutObj);
    }
    
    return OutObj;
}
int CleanupAll(AutoData *Data) {
    int result = 1;
    
    if (Data != NULL) {
        result = result && (CleanupParams(Data));
        result = result && (CleanupSolution(Data));
        result = result && (CleanupSpecialPoints(Data));
        
        FREE(Data);
        Data = NULL;
    }
    
    return result;
}
PyObject* Reset( void ) {
    int result = 1;
    PyObject *OutObj = NULL;

    result = result && (CleanupSolution(gIData));
    result = result && (CleanupSpecialPoints(gIData));
    
    DefaultData(gIData);
    
    OutObj = Py_BuildValue("(i)", result);
    assert(OutObj);
    
    return OutObj;
}