|
@@ -1,14 +1,50 @@
|
|
|
#include "Cubic.h"
|
|
|
|
|
|
-//001B683C
|
|
|
+#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;
|
|
|
+ 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
|
|
|
}
|