1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #include "Cubic.h"
- #include <algorithm>
- // 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_i<r1_count - 1){
- if(r4_pf->field_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
- }
|