#include "Cubic.h" #include // 001B683C int Cubic::degree() { if (fabsf(list_0[0]) >= 0.000001 || fabsf(list_0[1]) >= 0.000001) return 3; if (fabsf(list_0[2]) >= 0.000001 || fabsf(list_0[3]) >= 0.000001) return 2; if (fabsf(list_0[4]) >= 0.000001 || fabsf(list_0[5]) >= 0.000001) return 1; if (fabsf(list_0[6]) >= 0.000001 || fabsf(list_0[7]) >= 0.000001) return 0; return -1; } // 001b6c48 void sort(cFloat* pf0, int r1_count) { // loc_1B6C58 for (int i_r2 = 0; i_r2 < 3; i_r2++) { // loc_1B6C58 if (fabs(pf0[i_r2].field_4) >= 1.0e-6f || i_r2 >= r1_count || pf0[i_r2].field_0 < 0) { // loc_1B6C80 pf0[i_r2].field_0 = 1000.0f; pf0[i_r2].field_4 = 0; } // loc_1B6C88 } // 001B6C8E //优化后的冒泡 for (int i_lr = 0; i_lr < r1_count; i_lr++) { //.text:001B6C98 int d_r12 = 0; int r3_i=0; cFloat*r4_pf=pf0+r3_i; while(r3_ifield_0>(r4_pf+1)->field_0){ //001B6CC2 cFloat r4r12_cfloat=*r4_pf; *r4_pf=*(r4_pf+1); *(r4_pf+1)=r4r12_cfloat; r4_pf=pf0+r3_i+1; d_r12=1; }else { r3_i++; } } // loc_1B6CDA if (!(d_r12)) break; } // locret_1B6CE4 }