- Timestamp:
- Nov 30, 2008, 11:13:15 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/applyfit2d.c
r20839 r20859 43 43 } 44 44 45 zvec[0].Nelements = xvec[0].Nelements; 46 REALLOCATE (zvec[0].elements.Flt, opihi_flt, zvec[0].Nelements); 45 ResetVector (zvec, OPIHI_FLT, xvec[0].Nelements); 47 46 bzero (zvec[0].elements.Flt, sizeof(opihi_flt)*zvec[0].Nelements); 48 x = xvec[0].elements.Flt;49 y = yvec[0].elements.Flt;50 47 z = zvec[0].elements.Flt; 51 48 52 for (n = 0; n < xvec[0].Nelements; n++, x++, y++, z++) { 53 Y = X = 1; 54 for (j = 0; j < order + 1; j++) { 55 X = Y; 56 for (i = 0; i < order + 1 - j; i++) { 57 *z += C[i][j]*X; 58 X = X * (*x); 49 // we have four cases (x == flt or int) and (y == flt or int) 50 if ((xvec[0].type == OPIHI_FLT) && (yvec[0].type == OPIHI_FLT)) { 51 opihi_flt *x = xvec[0].elements.Flt; 52 opihi_flt *y = yvec[0].elements.Flt; 53 for (n = 0; n < xvec[0].Nelements; n++, x++, y++, z++) { 54 Y = X = 1; 55 for (j = 0; j < order + 1; j++) { 56 X = Y; 57 for (i = 0; i < order + 1 - j; i++) { 58 *z += C[i][j]*X; 59 X = X * (*x); 60 } 61 Y = Y * (*y); 59 62 } 60 Y = Y * (*y);61 63 } 62 64 } 65 if ((xvec[0].type == OPIHI_FLT) && (yvec[0].type == OPIHI_INT)) { 66 opihi_flt *x = xvec[0].elements.Flt; 67 opihi_int *y = yvec[0].elements.Int; 68 for (n = 0; n < xvec[0].Nelements; n++, x++, y++, z++) { 69 Y = X = 1; 70 for (j = 0; j < order + 1; j++) { 71 X = Y; 72 for (i = 0; i < order + 1 - j; i++) { 73 *z += C[i][j]*X; 74 X = X * (*x); 75 } 76 Y = Y * (*y); 77 } 78 } 79 } 80 if ((xvec[0].type == OPIHI_INT) && (yvec[0].type == OPIHI_FLT)) { 81 opihi_int *x = xvec[0].elements.Int; 82 opihi_flt *y = yvec[0].elements.Flt; 83 for (n = 0; n < xvec[0].Nelements; n++, x++, y++, z++) { 84 Y = X = 1; 85 for (j = 0; j < order + 1; j++) { 86 X = Y; 87 for (i = 0; i < order + 1 - j; i++) { 88 *z += C[i][j]*X; 89 X = X * (*x); 90 } 91 Y = Y * (*y); 92 } 93 } 94 } 95 if ((xvec[0].type == OPIHI_INT) && (yvec[0].type == OPIHI_INT)) { 96 opihi_int *x = xvec[0].elements.Int; 97 opihi_int *y = yvec[0].elements.Int; 98 for (n = 0; n < xvec[0].Nelements; n++, x++, y++, z++) { 99 Y = X = 1; 100 for (j = 0; j < order + 1; j++) { 101 X = Y; 102 for (i = 0; i < order + 1 - j; i++) { 103 *z += C[i][j]*X; 104 X = X * (*x); 105 } 106 Y = Y * (*y); 107 } 108 } 109 } 110 63 111 for (i = 0; i < order + 1; i++) free (C[i]); 64 112 free (C);
Note:
See TracChangeset
for help on using the changeset viewer.
