78 #include <uves_utils_polynomial.h>
79 #include <uves_error.h>
80 #include <uves_utils_wrappers.h>
105 cpl_vector *x = NULL;
106 cpl_vector *y = NULL;
107 cpl_bivector *xy = NULL;
108 cpl_vector *z = NULL;
113 double coeff[3] = {43, -0.3, 0.0001};
114 double valx, valy, valz;
116 x = cpl_vector_new(1);
117 y = cpl_vector_new(1);
118 z = cpl_vector_new(1);
120 for (valx = -10; valx <= 50; valx += 4.7)
121 for (valy = 0.001; valy <= 0.002; valy *= 1.1)
124 valz = coeff[0]*valx*valx + coeff[1]*valy*valx + coeff[2]*valy*valy*valy*valy;
126 cpl_vector_set_size(x, npoints);
127 cpl_vector_set_size(y, npoints);
128 cpl_vector_set_size(z, npoints);
129 cpl_vector_set(x, npoints-1, valx);
130 cpl_vector_set(y, npoints-1, valy);
131 cpl_vector_set(z, npoints-1, valz);
135 for (degx = 0; degx <= 5; degx++)
136 for (degy = 0; degy <= 5; degy++) {
137 uves_unwrap_bivector_vectors(&xy);
138 xy = cpl_bivector_wrap_vectors(x, y);
148 if (degx >= 2 && degy >= 4) {
151 for (i = 0; i < cpl_vector_get_size(x); i++)
154 cpl_vector_get(x, i),
155 cpl_vector_get(y, i)),
156 cpl_vector_get(z, i), 0.001);
161 for (i = 0; i <= degx; i++)
162 for (j = 0; j <= degy; j++)
163 if (i == 2 && j == 0)
165 else if (i == 1 && j == 1)
167 else if (i == 0 && j == 4)
179 uves_free_vector(&x);
180 uves_free_vector(&y);
181 uves_free_vector(&z);
182 uves_unwrap_bivector_vectors(&xy);
195 cpl_polynomial *cp1 = cpl_polynomial_new(2);
196 cpl_polynomial *cp2 = cpl_polynomial_new(2);
197 cpl_size power[2] = {0, 3};
202 cpl_polynomial_set_coeff(cp1, power, 7.0);
203 cpl_polynomial_set_coeff(cp2, power, 9.0);
217 uves_free_polynomial(&cp1);
218 uves_free_polynomial(&cp2);
234 cpl_test_init(PACKAGE_BUGREPORT, CPL_MSG_WARNING);
241 return cpl_test_end(0);