static PyObject * BBox_almost_equals(PlanarBBoxObject *self, PlanarBBoxObject *other) { return Py_BOOL( PlanarBBox_Check(self) && PlanarBBox_Check(other) && almost_eq(self->min.x, other->min.x) && almost_eq(self->min.y, other->min.y) && almost_eq(self->max.x, other->max.x) && almost_eq(self->max.y, other->max.y)); }
static PyObject * BBox__mul__(PyObject *a, PyObject *b) { PlanarBBoxObject *box; PlanarAffineObject *t; PyObject *p, *p_xform; int rectilinear; double ta, tb, tc, td, te, tf; planar_vec2_t p0, p1; if (PlanarBBox_Check(a) && PlanarAffine_Check(b)) { box = (PlanarBBoxObject *)a; t = (PlanarAffineObject *)b; } else if (PlanarBBox_Check(b) && PlanarAffine_Check(a)) { box = (PlanarBBoxObject *)b; t = (PlanarAffineObject *)a; } else { /* We support only transform operations */ Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } ta = t->a; tb = t->b; tc = t->c; td = t->d; te = t->e; tf = t->f; rectilinear = ((almost_eq(ta, 0.0) && almost_eq(te, 0.0)) || (almost_eq(td, 0.0) && almost_eq(tb, 0.0))); if (rectilinear) { p0.x = box->min.x*ta + box->min.y*td + tc; p0.y = box->min.x*tb + box->min.y*te + tf; p1.x = box->max.x*ta + box->max.y*td + tc; p1.y = box->max.x*tb + box->max.y*te + tf; box = (PlanarBBoxObject *)BBox_alloc(Py_TYPE(box), 0); if (box != NULL) { box->min.x = MIN(p0.x, p1.x); box->min.y = MIN(p0.y, p1.y); box->max.x = MAX(p0.x, p1.x); box->max.y = MAX(p0.y, p1.y); } return (PyObject *)box; } else { p = (PyObject *)BBox_to_polygon(box); if (p == NULL) { return NULL; } p_xform = PyNumber_InPlaceMultiply(p, (PyObject *)t); Py_DECREF(p); return p_xform; } }
static PyObject * Affine_get_is_rectilinear(polypaths_planar_overrideAffineObject *self) { PyObject *r; if ((almost_eq(self->a, 0.0) && almost_eq(self->e, 0.0)) || (almost_eq(self->d, 0.0) && almost_eq(self->b, 0.0))) { r = Py_True; } else { r = Py_False; } Py_INCREF(r); return r; }
static void test_track(void) { WCHAR textW[] = {'t','e','x','t',0}; TTTOOLINFOW info = { 0 }; HWND parent, tt; LRESULT res; RECT pos; parent = CreateWindowExW(0, WC_STATICW, NULL, WS_CAPTION | WS_VISIBLE, 50, 50, 300, 300, NULL, NULL, NULL, 0); ok(parent != NULL, "creation of parent window failed\n"); ShowWindow(parent, SW_SHOWNORMAL); flush_events(100); tt = CreateWindowExW(WS_EX_TOPMOST, TOOLTIPS_CLASSW, NULL, TTS_NOPREFIX | TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, parent, NULL, GetModuleHandleW(NULL), 0); ok(tt != NULL, "creation of tooltip window failed\n"); info.cbSize = TTTOOLINFOW_V1_SIZE; info.uFlags = TTF_IDISHWND | TTF_TRACK | TTF_ABSOLUTE; info.hwnd = parent; info.hinst = GetModuleHandleW(NULL); info.lpszText = textW; info.uId = (UINT_PTR)parent; GetClientRect(parent, &info.rect); res = SendMessageW(tt, TTM_ADDTOOLW, 0, (LPARAM)&info); ok(res, "adding the tool to the tooltip failed\n"); SendMessageW(tt, TTM_SETDELAYTIME, TTDT_INITIAL, MAKELPARAM(1,0)); SendMessageW(tt, TTM_TRACKACTIVATE, (WPARAM)TRUE, (LPARAM)&info); SendMessageW(tt, TTM_TRACKPOSITION, 0, MAKELPARAM(10, 10)); GetWindowRect(tt, &pos); ok(almost_eq(pos.left, 10), "pos.left = %d\n", pos.left); ok(almost_eq(pos.top, 10), "pos.top = %d\n", pos.top); info.uFlags = TTF_IDISHWND | TTF_ABSOLUTE; SendMessageW(tt, TTM_SETTOOLINFOW, 0, (LPARAM)&info); SendMessageW(tt, TTM_TRACKPOSITION, 0, MAKELPARAM(10, 10)); GetWindowRect(tt, &pos); ok(!almost_eq(pos.left, 10), "pos.left = %d\n", pos.left); ok(!almost_eq(pos.top, 10), "pos.top = %d\n", pos.top); DestroyWindow(tt); DestroyWindow(parent); }
void TestInHC4Revise::apply02() { Variable x(2),y(2); Function f(x,y,sqrt(sqr(x[0]-y[0])+sqr(x[1]-y[1]))); IntervalVector constY(2,Interval::ONE); Function g(x, f(x,constY)); IntervalVector box(2,Interval(0,4)); double _pt[][2] = { {0.5,0.5} , {0.5,0.5} }; IntervalVector pt(2,_pt); g.ibwd(Interval(0,1),box,pt); // check the box is inside by testing two corners TEST_ASSERT(almost_eq(g.eval(box.lb()),Interval::ONE,1e-07)); TEST_ASSERT(almost_eq(g.eval(box.ub()),Interval::ONE,1e-07)); }
static PyObject * Affine_get_is_orthonormal(polypaths_planar_overrideAffineObject *self) { PyObject *r; if (almost_eq(self->a * self->b + self->d * self->e, 0.0) && almost_eq(self->a * self->a + self->d * self->d, 1.0) && almost_eq(self->b * self->b + self->e * self->e, 1.0) ) { r = Py_True; } else { r = Py_False; } Py_INCREF(r); return r; }
bool FlatSpatialPoolerTest::check_vector_eq(Real arr[], vector<Real> vec) { for (UInt i = 0; i < vec.size(); i++) { if (!almost_eq(arr[i],vec[i])) { return false; } } return true; }
bool FlatSpatialPoolerTest::check_vector_eq(Real arr1[], Real arr2[], UInt n) { for (UInt i = 0; i < n; i++) { if (!almost_eq(arr1[i], arr2[i])) { return false; } } return true; }
bool TestIbex::almost_eq(const IntervalVector& y_actual, const IntervalVector& y_expected, double err) { if (y_actual.size()!=y_actual.size()) return false; if (y_actual.is_empty() && y_expected.is_empty()) return true; for (int i=0; i<y_actual.size(); i++) { if (!almost_eq(y_actual[i], y_expected[i],err)) return false; } return true; }
void TestNewton::inflating_newton01() { Ponts30 p30; double eps=1e-2; IntervalVector error(30,-eps); IntervalVector box(30,BOX2); box += error; IntervalVector expected(30,BOX2); bool ret=inflating_newton(*p30.f,box); TEST_ASSERT(ret); TEST_ASSERT(almost_eq(box,expected,1e-10)); }
static PyObject * Affine_get_is_degenerate(polypaths_planar_overrideAffineObject *self) { PyObject *r; if (almost_eq(self->a*self->e - self->b*self->d, 0.0)) { r = Py_True; } else { r = Py_False; } Py_INCREF(r); return r; }
void TestCtcHC4::ponts30() { Ponts30 p30; IntervalVector box = p30.init_box; NumConstraint* ctr[30]; CtcFwdBwd* c[30]; for (int i=0; i<30; i++) { Function* fi=dynamic_cast<Function*>(&((*p30.f)[i])); TEST_ASSERT(fi!=NULL); ctr[i]=new NumConstraint(*fi,EQ); c[i]=new CtcFwdBwd(*ctr[i]); } // cout << "before="<< box << endl; for (int i=0; i<30; i++) { c[i]->contract(box); //cout << box << endl; //cout << p30.hc4r_box[i] << endl; //c[i]->hc4r.eval.f.cf.print<Domain>(); TEST_ASSERT(almost_eq(box, p30.hc4r_box[i],1e-02)); } //cout << "after="<< box << endl; box = p30.init_box; Array<NumConstraint> a(ctr,30); CtcHC4 hc4(a,0.1); hc4.accumulate=true; box=p30.init_box; hc4.contract(box); TEST_ASSERT(almost_eq(box, p30.hc4_box,1e-04)); for (int i=0; i<30; i++) { delete c[i]; delete ctr[i]; } }
void TestNewton::newton01() { Ponts30 p30; IntervalVector box(30,BOX1); try { newton(*p30.f,box); } catch (EmptyBoxException& e) { //cout << "empty box" << endl; TEST_ASSERT(false); } catch (LinearException& e) { //cout << "linear exception" << endl; TEST_ASSERT(false); } IntervalVector expected(30,BOX2); //cout << expected << endl << endl << endl; //cout << box << endl; TEST_ASSERT(almost_eq(box,expected,1e-10)); }
static PyObject * Affine_get_is_identity(polypaths_planar_overrideAffineObject *self) { PyObject *r; if (almost_eq(self->a, 1.0) && almost_eq(self->b, 0.0) && almost_eq(self->c, 0.0) && almost_eq(self->d, 0.0) && almost_eq(self->e, 1.0) && almost_eq(self->f, 0.0)) { r = Py_True; } else { r = Py_False; } Py_INCREF(r); return r; }
static PyObject * Affine_almost_equals(polypaths_planar_overrideAffineObject *self, polypaths_planar_overrideAffineObject *other) { PyObject *r; assert(polypaths_planar_overrideAffine_Check(self)); if (polypaths_planar_overrideAffine_Check(other)) { if (almost_eq(self->a, other->a) && almost_eq(self->b, other->b) && almost_eq(self->c, other->c) && almost_eq(self->d, other->d) && almost_eq(self->e, other->e) && almost_eq(self->f, other->f)) { r = Py_True; } else { r = Py_False; } Py_INCREF(r); return r; } else { CONVERSION_ERROR(); } }
void TestGradient::jac01() { IntervalMatrix J(30,30); Ponts30 p30; p30.f->jacobian(IntervalVector(30,BOX1),J); double error=1e-5; CPPUNIT_ASSERT(almost_eq(J[0][0],Interval(0.483002,0.491002),error)); CPPUNIT_ASSERT(almost_eq(J[0][1],Interval(0.109265,0.117265),error)); CPPUNIT_ASSERT(almost_eq(J[0][2],Interval(-0.491002,-0.483002),error)); CPPUNIT_ASSERT(almost_eq(J[0][3],Interval(-0.117265,-0.109265),error)); CPPUNIT_ASSERT(almost_eq(J[1][0],Interval(0.14141,0.14941),error)); CPPUNIT_ASSERT(almost_eq(J[1][1],Interval(0.474389,0.482389),error)); CPPUNIT_ASSERT(almost_eq(J[1][4],Interval(-0.14941,-0.14141),error)); CPPUNIT_ASSERT(almost_eq(J[1][5],Interval(-0.482389,-0.474389),error)); CPPUNIT_ASSERT(almost_eq(J[2][2],Interval(-0.345592,-0.337592),error)); CPPUNIT_ASSERT(almost_eq(J[2][3],Interval(0.361124,0.369124),error)); CPPUNIT_ASSERT(almost_eq(J[2][4],Interval(0.337592,0.345592),error)); CPPUNIT_ASSERT(almost_eq(J[2][5],Interval(-0.369124,-0.361124),error)); CPPUNIT_ASSERT(almost_eq(J[3][2],Interval(0.483002,0.491002),error)); CPPUNIT_ASSERT(almost_eq(J[3][3],Interval(0.109265,0.117265),error)); CPPUNIT_ASSERT(almost_eq(J[3][10],Interval(-0.491002,-0.483002),error)); CPPUNIT_ASSERT(almost_eq(J[3][11],Interval(-0.117265,-0.109265),error)); CPPUNIT_ASSERT(almost_eq(J[4][4],Interval(0.023626,0.031626),error)); CPPUNIT_ASSERT(almost_eq(J[4][5],Interval(0.495236,0.503236),error)); CPPUNIT_ASSERT(almost_eq(J[4][6],Interval(-0.031626,-0.023626),error)); CPPUNIT_ASSERT(almost_eq(J[4][7],Interval(-0.503236,-0.495236),error)); CPPUNIT_ASSERT(almost_eq(J[5][4],Interval(0.483002,0.491002),error)); CPPUNIT_ASSERT(almost_eq(J[5][5],Interval(0.109265,0.117265),error)); CPPUNIT_ASSERT(almost_eq(J[5][8],Interval(-0.491002,-0.483002),error)); CPPUNIT_ASSERT(almost_eq(J[5][9],Interval(-0.117265,-0.109265),error)); CPPUNIT_ASSERT(almost_eq(J[6][6],Interval(-0.104805,-0.096805),error)); CPPUNIT_ASSERT(almost_eq(J[6][7],Interval(0.485733,0.493733),error)); CPPUNIT_ASSERT(almost_eq(J[6][16],Interval(0.096805,0.104805),error)); CPPUNIT_ASSERT(almost_eq(J[6][17],Interval(-0.493733,-0.485733),error)); CPPUNIT_ASSERT(almost_eq(J[7][6],Interval(0.455376,0.463376),error)); CPPUNIT_ASSERT(almost_eq(J[7][7],Interval(-0.389971,-0.381971),error)); CPPUNIT_ASSERT(almost_eq(J[7][8],Interval(-0.463376,-0.455376),error)); CPPUNIT_ASSERT(almost_eq(J[7][9],Interval(0.381971,0.389971),error)); CPPUNIT_ASSERT(almost_eq(J[8][8],Interval(0.337592,0.345592),error)); CPPUNIT_ASSERT(almost_eq(J[8][9],Interval(-0.369124,-0.361124),error)); CPPUNIT_ASSERT(almost_eq(J[8][10],Interval(-0.345592,-0.337592),error)); CPPUNIT_ASSERT(almost_eq(J[8][11],Interval(0.361124,0.369124),error)); CPPUNIT_ASSERT(almost_eq(J[9][2],Interval(0.14141,0.14941),error)); CPPUNIT_ASSERT(almost_eq(J[9][3],Interval(0.474389,0.482389),error)); CPPUNIT_ASSERT(almost_eq(J[9][8],Interval(-0.14941,-0.14141),error)); CPPUNIT_ASSERT(almost_eq(J[9][9],Interval(-0.482389,-0.474389),error)); CPPUNIT_ASSERT(almost_eq(J[10][10],Interval(5.18921,5.19721),error)); CPPUNIT_ASSERT(almost_eq(J[10][11],Interval(3.00109,3.00909),error)); CPPUNIT_ASSERT(almost_eq(J[10][12],Interval(-5.19721,-5.18921),error)); CPPUNIT_ASSERT(almost_eq(J[10][13],Interval(-3.00909,-3.00109),error)); CPPUNIT_ASSERT(almost_eq(J[11][10],Interval(1.18242,1.19042),error)); CPPUNIT_ASSERT(almost_eq(J[11][11],Interval(9.92537,9.93337),error)); CPPUNIT_ASSERT(almost_eq(J[11][14],Interval(-1.19042,-1.18242),error)); CPPUNIT_ASSERT(almost_eq(J[11][15],Interval(-9.93337,-9.92537),error)); CPPUNIT_ASSERT(almost_eq(J[12][12],Interval(-9.204,-9.196),error)); CPPUNIT_ASSERT(almost_eq(J[12][13],Interval(3.91518,3.92318),error)); CPPUNIT_ASSERT(almost_eq(J[12][26],Interval(9.196,9.204),error)); CPPUNIT_ASSERT(almost_eq(J[12][27],Interval(-3.92318,-3.91518),error)); CPPUNIT_ASSERT(almost_eq(J[13][12],Interval(0.796,0.804),error)); CPPUNIT_ASSERT(almost_eq(J[13][13],Interval(3.91518,3.92318),error)); CPPUNIT_ASSERT(almost_eq(J[13][28],Interval(-0.804,-0.796),error)); CPPUNIT_ASSERT(almost_eq(J[13][29],Interval(-3.92318,-3.91518),error)); CPPUNIT_ASSERT(almost_eq(J[14][14],Interval(-5.19721,-5.18921),error)); CPPUNIT_ASSERT(almost_eq(J[14][15],Interval(-3.00909,-3.00109),error)); CPPUNIT_ASSERT(almost_eq(J[14][26],Interval(5.18921,5.19721),error)); CPPUNIT_ASSERT(almost_eq(J[14][27],Interval(3.00109,3.00909),error)); CPPUNIT_ASSERT(almost_eq(J[15][12],Interval(-4.01079,-4.00279),error)); CPPUNIT_ASSERT(almost_eq(J[15][13],Interval(6.92028,6.92828),error)); CPPUNIT_ASSERT(almost_eq(J[15][14],Interval(4.00279,4.01079),error)); CPPUNIT_ASSERT(almost_eq(J[15][15],Interval(-6.92828,-6.92028),error)); CPPUNIT_ASSERT(almost_eq(J[16][16],Interval(-0.377719,-0.369719),error)); CPPUNIT_ASSERT(almost_eq(J[16][17],Interval(-0.336166,-0.328166),error)); CPPUNIT_ASSERT(almost_eq(J[16][18],Interval(0.369719,0.377719),error)); CPPUNIT_ASSERT(almost_eq(J[16][19],Interval(0.328166,0.336166),error)); CPPUNIT_ASSERT(almost_eq(J[17][16],Interval(-0.104805,-0.096805),error)); CPPUNIT_ASSERT(almost_eq(J[17][17],Interval(0.485733,0.493733),error)); CPPUNIT_ASSERT(almost_eq(J[17][24],Interval(0.096805,0.104805),error)); CPPUNIT_ASSERT(almost_eq(J[17][25],Interval(-0.493733,-0.485733),error)); CPPUNIT_ASSERT(almost_eq(J[18][6],Interval(-0.478524,-0.470524),error)); CPPUNIT_ASSERT(almost_eq(J[18][7],Interval(0.153567,0.161567),error)); CPPUNIT_ASSERT(almost_eq(J[18][18],Interval(0.470524,0.478524),error)); CPPUNIT_ASSERT(almost_eq(J[18][19],Interval(-0.161567,-0.153567),error)); CPPUNIT_ASSERT(almost_eq(J[19][18],Interval(-0.104805,-0.096805),error)); CPPUNIT_ASSERT(almost_eq(J[19][19],Interval(0.485733,0.493733),error)); CPPUNIT_ASSERT(almost_eq(J[19][22],Interval(0.096805,0.104805),error)); CPPUNIT_ASSERT(almost_eq(J[19][23],Interval(-0.493733,-0.485733),error)); CPPUNIT_ASSERT(almost_eq(J[20][20],Interval(0.369719,0.377719),error)); CPPUNIT_ASSERT(almost_eq(J[20][21],Interval(0.328166,0.336166),error)); CPPUNIT_ASSERT(almost_eq(J[20][22],Interval(-0.377719,-0.369719),error)); CPPUNIT_ASSERT(almost_eq(J[20][23],Interval(-0.336166,-0.328166),error)); CPPUNIT_ASSERT(almost_eq(J[21][18],Interval(-0.478524,-0.470524),error)); CPPUNIT_ASSERT(almost_eq(J[21][19],Interval(0.153567,0.161567),error)); CPPUNIT_ASSERT(almost_eq(J[21][20],Interval(0.470524,0.478524),error)); CPPUNIT_ASSERT(almost_eq(J[21][21],Interval(-0.161567,-0.153567),error)); CPPUNIT_ASSERT(almost_eq(J[22][16],Interval(-0.478524,-0.470524),error)); CPPUNIT_ASSERT(almost_eq(J[22][17],Interval(0.153567,0.161567),error)); CPPUNIT_ASSERT(almost_eq(J[22][22],Interval(0.470524,0.478524),error)); CPPUNIT_ASSERT(almost_eq(J[22][23],Interval(-0.161567,-0.153567),error)); CPPUNIT_ASSERT(almost_eq(J[23][22],Interval(0.369719,0.377719),error)); CPPUNIT_ASSERT(almost_eq(J[23][23],Interval(0.328166,0.336166),error)); CPPUNIT_ASSERT(almost_eq(J[23][24],Interval(-0.377719,-0.369719),error)); CPPUNIT_ASSERT(almost_eq(J[23][25],Interval(-0.336166,-0.328166),error)); CPPUNIT_ASSERT(almost_eq(J[24][14],Interval(-2.19299,-2.18499),error)); CPPUNIT_ASSERT(almost_eq(J[24][15],Interval(-8.20281,-8.19481),error)); CPPUNIT_ASSERT(almost_eq(J[24][24],Interval(2.18499,2.19299),error)); CPPUNIT_ASSERT(almost_eq(J[24][25],Interval(8.19481,8.20281),error)); CPPUNIT_ASSERT(almost_eq(J[25][24],Interval(-3.00821,-3.00021),error)); CPPUNIT_ASSERT(almost_eq(J[25][25],Interval(5.18972,5.19772),error)); CPPUNIT_ASSERT(almost_eq(J[25][26],Interval(3.00021,3.00821),error)); CPPUNIT_ASSERT(almost_eq(J[25][27],Interval(-5.19772,-5.18972),error)); CPPUNIT_ASSERT(almost_eq(J[26][26],Interval(9.996,10.004),error)); CPPUNIT_ASSERT(almost_eq(J[26][27],Interval(-0.004,0.004),error)); CPPUNIT_ASSERT(almost_eq(J[26][28],Interval(-10.004,-9.996),error)); CPPUNIT_ASSERT(almost_eq(J[26][29],Interval(-0.004,0.004),error)); CPPUNIT_ASSERT(almost_eq(J[27][27],Interval(1,1),error)); CPPUNIT_ASSERT(almost_eq(J[28][28],Interval(1,1),error)); CPPUNIT_ASSERT(almost_eq(J[29][29],Interval(1,1),error)); }
static bool stamp_almost_eq(heatmap_stamp_t* s, float* expected) { return almost_eq(s->buf, expected, s->w*s->h); }
void TestGradient::jac02() { IntervalMatrix J(30,30); Ponts30 p30; p30.f->jacobian(IntervalVector(30,BOX2),J); double error=1e-5; CPPUNIT_ASSERT(almost_eq(J[0][0],Interval(0.48632,0.487549),error)); CPPUNIT_ASSERT(almost_eq(J[0][1],Interval(0.112083,0.115061),error)); CPPUNIT_ASSERT(almost_eq(J[0][2],Interval(-0.487549,-0.48632),error)); CPPUNIT_ASSERT(almost_eq(J[0][3],Interval(-0.115061,-0.112083),error)); CPPUNIT_ASSERT(almost_eq(J[1][0],Interval(0.143925,0.146181),error)); CPPUNIT_ASSERT(almost_eq(J[1][1],Interval(0.476964,0.480027),error)); CPPUNIT_ASSERT(almost_eq(J[1][4],Interval(-0.146181,-0.143925),error)); CPPUNIT_ASSERT(almost_eq(J[1][5],Interval(-0.480027,-0.476964),error)); CPPUNIT_ASSERT(almost_eq(J[2][2],Interval(-0.342653,-0.341109),error)); CPPUNIT_ASSERT(almost_eq(J[2][3],Interval(0.363777,0.36607),error)); CPPUNIT_ASSERT(almost_eq(J[2][4],Interval(0.341109,0.342653),error)); CPPUNIT_ASSERT(almost_eq(J[2][5],Interval(-0.36607,-0.363777),error)); CPPUNIT_ASSERT(almost_eq(J[3][2],Interval(0.486787,0.487045),error)); CPPUNIT_ASSERT(almost_eq(J[3][3],Interval(0.113082,0.114187),error)); CPPUNIT_ASSERT(almost_eq(J[3][10],Interval(-0.487045,-0.486787),error)); CPPUNIT_ASSERT(almost_eq(J[3][11],Interval(-0.114187,-0.113082),error)); CPPUNIT_ASSERT(almost_eq(J[4][4],Interval(0.0255079,0.0276924),error)); CPPUNIT_ASSERT(almost_eq(J[4][5],Interval(0.498262,0.500422),error)); CPPUNIT_ASSERT(almost_eq(J[4][6],Interval(-0.0276924,-0.0255079),error)); CPPUNIT_ASSERT(almost_eq(J[4][7],Interval(-0.500422,-0.498262),error)); CPPUNIT_ASSERT(almost_eq(J[5][4],Interval(0.485872,0.487985),error)); CPPUNIT_ASSERT(almost_eq(J[5][5],Interval(0.112593,0.114557),error)); CPPUNIT_ASSERT(almost_eq(J[5][8],Interval(-0.487985,-0.485872),error)); CPPUNIT_ASSERT(almost_eq(J[5][9],Interval(-0.114557,-0.112593),error)); CPPUNIT_ASSERT(almost_eq(J[6][6],Interval(-0.101143,-0.0972429),error)); CPPUNIT_ASSERT(almost_eq(J[6][7],Interval(0.489483,0.490794),error)); CPPUNIT_ASSERT(almost_eq(J[6][16],Interval(0.0972429,0.101143),error)); CPPUNIT_ASSERT(almost_eq(J[6][17],Interval(-0.490794,-0.489483),error)); CPPUNIT_ASSERT(almost_eq(J[7][6],Interval(0.459466,0.461192),error)); CPPUNIT_ASSERT(almost_eq(J[7][7],Interval(-0.38664,-0.384894),error)); CPPUNIT_ASSERT(almost_eq(J[7][8],Interval(-0.461192,-0.459466),error)); CPPUNIT_ASSERT(almost_eq(J[7][9],Interval(0.384894,0.38664),error)); CPPUNIT_ASSERT(almost_eq(J[8][8],Interval(0.341455,0.342282),error)); CPPUNIT_ASSERT(almost_eq(J[8][9],Interval(-0.365251,-0.364476),error)); CPPUNIT_ASSERT(almost_eq(J[8][10],Interval(-0.342282,-0.341455),error)); CPPUNIT_ASSERT(almost_eq(J[8][11],Interval(0.364476,0.365251),error)); CPPUNIT_ASSERT(almost_eq(J[9][2],Interval(0.144505,0.145591),error)); CPPUNIT_ASSERT(almost_eq(J[9][3],Interval(0.477559,0.479438),error)); CPPUNIT_ASSERT(almost_eq(J[9][8],Interval(-0.145591,-0.144505),error)); CPPUNIT_ASSERT(almost_eq(J[9][9],Interval(-0.479438,-0.477559),error)); CPPUNIT_ASSERT(almost_eq(J[10][10],Interval(5.19321,5.19321),error)); CPPUNIT_ASSERT(almost_eq(J[10][11],Interval(3.00509,3.00509),error)); CPPUNIT_ASSERT(almost_eq(J[10][12],Interval(-5.19321,-5.19321),error)); CPPUNIT_ASSERT(almost_eq(J[10][13],Interval(-3.00509,-3.00509),error)); CPPUNIT_ASSERT(almost_eq(J[11][10],Interval(1.18642,1.18642),error)); CPPUNIT_ASSERT(almost_eq(J[11][11],Interval(9.92937,9.92937),error)); CPPUNIT_ASSERT(almost_eq(J[11][14],Interval(-1.18642,-1.18642),error)); CPPUNIT_ASSERT(almost_eq(J[11][15],Interval(-9.92937,-9.92937),error)); CPPUNIT_ASSERT(almost_eq(J[12][12],Interval(-9.2,-9.2),error)); CPPUNIT_ASSERT(almost_eq(J[12][13],Interval(3.91918,3.91918),error)); CPPUNIT_ASSERT(almost_eq(J[12][26],Interval(9.2,9.2),error)); CPPUNIT_ASSERT(almost_eq(J[12][27],Interval(-3.91918,-3.91918),error)); CPPUNIT_ASSERT(almost_eq(J[13][12],Interval(0.8,0.8),error)); CPPUNIT_ASSERT(almost_eq(J[13][13],Interval(3.91918,3.91918),error)); CPPUNIT_ASSERT(almost_eq(J[13][28],Interval(-0.8,-0.8),error)); CPPUNIT_ASSERT(almost_eq(J[13][29],Interval(-3.91918,-3.91918),error)); CPPUNIT_ASSERT(almost_eq(J[14][14],Interval(-5.19321,-5.19321),error)); CPPUNIT_ASSERT(almost_eq(J[14][15],Interval(-3.00509,-3.00509),error)); CPPUNIT_ASSERT(almost_eq(J[14][26],Interval(5.19321,5.19321),error)); CPPUNIT_ASSERT(almost_eq(J[14][27],Interval(3.00509,3.00509),error)); CPPUNIT_ASSERT(almost_eq(J[15][12],Interval(-4.00679,-4.00679),error)); CPPUNIT_ASSERT(almost_eq(J[15][13],Interval(6.92428,6.92428),error)); CPPUNIT_ASSERT(almost_eq(J[15][14],Interval(4.00679,4.00679),error)); CPPUNIT_ASSERT(almost_eq(J[15][15],Interval(-6.92428,-6.92428),error)); CPPUNIT_ASSERT(almost_eq(J[16][16],Interval(-0.378006,-0.372188),error)); CPPUNIT_ASSERT(almost_eq(J[16][17],Interval(-0.334222,-0.329547),error)); CPPUNIT_ASSERT(almost_eq(J[16][18],Interval(0.372188,0.378006),error)); CPPUNIT_ASSERT(almost_eq(J[16][19],Interval(0.329547,0.334222),error)); CPPUNIT_ASSERT(almost_eq(J[17][16],Interval(-0.102688,-0.0996866),error)); CPPUNIT_ASSERT(almost_eq(J[17][17],Interval(0.489621,0.489962),error)); CPPUNIT_ASSERT(almost_eq(J[17][24],Interval(0.0996866,0.102688),error)); CPPUNIT_ASSERT(almost_eq(J[17][25],Interval(-0.489962,-0.489621),error)); CPPUNIT_ASSERT(almost_eq(J[18][6],Interval(-0.476148,-0.472432),error)); CPPUNIT_ASSERT(almost_eq(J[18][7],Interval(0.155602,0.160906),error)); CPPUNIT_ASSERT(almost_eq(J[18][18],Interval(0.472432,0.476148),error)); CPPUNIT_ASSERT(almost_eq(J[18][19],Interval(-0.160906,-0.155602),error)); CPPUNIT_ASSERT(almost_eq(J[19][18],Interval(-0.102939,-0.0971202),error)); CPPUNIT_ASSERT(almost_eq(J[19][19],Interval(0.485907,0.493623),error)); CPPUNIT_ASSERT(almost_eq(J[19][22],Interval(0.0971202,0.102939),error)); CPPUNIT_ASSERT(almost_eq(J[19][23],Interval(-0.493623,-0.485907),error)); CPPUNIT_ASSERT(almost_eq(J[20][20],Interval(0.366904,0.381292),error)); CPPUNIT_ASSERT(almost_eq(J[20][21],Interval(0.320063,0.34306),error)); CPPUNIT_ASSERT(almost_eq(J[20][22],Interval(-0.381292,-0.366904),error)); CPPUNIT_ASSERT(almost_eq(J[20][23],Interval(-0.34306,-0.320063),error)); CPPUNIT_ASSERT(almost_eq(J[21][18],Interval(-0.481229,-0.467026),error)); CPPUNIT_ASSERT(almost_eq(J[21][19],Interval(0.146229,0.170178),error)); CPPUNIT_ASSERT(almost_eq(J[21][20],Interval(0.467026,0.481229),error)); CPPUNIT_ASSERT(almost_eq(J[21][21],Interval(-0.170178,-0.146229),error)); CPPUNIT_ASSERT(almost_eq(J[22][16],Interval(-0.478128,-0.472125),error)); CPPUNIT_ASSERT(almost_eq(J[22][17],Interval(0.156019,0.159742),error)); CPPUNIT_ASSERT(almost_eq(J[22][22],Interval(0.472125,0.478128),error)); CPPUNIT_ASSERT(almost_eq(J[22][23],Interval(-0.159742,-0.156019),error)); CPPUNIT_ASSERT(almost_eq(J[23][22],Interval(0.372438,0.37544),error)); CPPUNIT_ASSERT(almost_eq(J[23][23],Interval(0.33022,0.333601),error)); CPPUNIT_ASSERT(almost_eq(J[23][24],Interval(-0.37544,-0.372438),error)); CPPUNIT_ASSERT(almost_eq(J[23][25],Interval(-0.333601,-0.33022),error)); CPPUNIT_ASSERT(almost_eq(J[24][14],Interval(-2.18899,-2.18899),error)); CPPUNIT_ASSERT(almost_eq(J[24][15],Interval(-8.19881,-8.19881),error)); CPPUNIT_ASSERT(almost_eq(J[24][24],Interval(2.18899,2.18899),error)); CPPUNIT_ASSERT(almost_eq(J[24][25],Interval(8.19881,8.19881),error)); CPPUNIT_ASSERT(almost_eq(J[25][24],Interval(-3.00421,-3.00421),error)); CPPUNIT_ASSERT(almost_eq(J[25][25],Interval(5.19372,5.19372),error)); CPPUNIT_ASSERT(almost_eq(J[25][26],Interval(3.00421,3.00421),error)); CPPUNIT_ASSERT(almost_eq(J[25][27],Interval(-5.19372,-5.19372),error)); CPPUNIT_ASSERT(almost_eq(J[26][26],Interval(10,10),error)); CPPUNIT_ASSERT(almost_eq(J[26][28],Interval(-10,-10),error)); CPPUNIT_ASSERT(almost_eq(J[27][27],Interval(1,1),error)); CPPUNIT_ASSERT(almost_eq(J[28][28],Interval(1,1),error)); CPPUNIT_ASSERT(almost_eq(J[29][29],Interval(1,1),error)); }
void TestEval::issue242() { Function f("x[3]","-x"); IntervalVector x(3,Interval::ONE); CPPUNIT_ASSERT(almost_eq(f.eval_vector(x),-x,0)); }
void TestGradient::hansen01() { IntervalMatrix H(30,30); Ponts30 p30; p30.f->hansen_matrix(IntervalVector(30,BOX1),H); double error=1e-05; CPPUNIT_ASSERT(almost_eq(H[0][0],Interval(0.485002,0.489002),error)); CPPUNIT_ASSERT(almost_eq(H[0][1],Interval(0.111265,0.115265),error)); CPPUNIT_ASSERT(almost_eq(H[0][2],Interval(-0.491002,-0.483002),error)); CPPUNIT_ASSERT(almost_eq(H[0][3],Interval(-0.117265,-0.109265),error)); CPPUNIT_ASSERT(almost_eq(H[1][0],Interval(0.14341,0.14741),error)); CPPUNIT_ASSERT(almost_eq(H[1][1],Interval(0.476389,0.480389),error)); CPPUNIT_ASSERT(almost_eq(H[1][4],Interval(-0.14941,-0.14141),error)); CPPUNIT_ASSERT(almost_eq(H[1][5],Interval(-0.482389,-0.474389),error)); CPPUNIT_ASSERT(almost_eq(H[2][2],Interval(-0.343592,-0.339592),error)); CPPUNIT_ASSERT(almost_eq(H[2][3],Interval(0.363124,0.367124),error)); CPPUNIT_ASSERT(almost_eq(H[2][4],Interval(0.337592,0.345592),error)); CPPUNIT_ASSERT(almost_eq(H[2][5],Interval(-0.369124,-0.361124),error)); CPPUNIT_ASSERT(almost_eq(H[3][2],Interval(0.485002,0.489002),error)); CPPUNIT_ASSERT(almost_eq(H[3][3],Interval(0.111265,0.115265),error)); CPPUNIT_ASSERT(almost_eq(H[3][10],Interval(-0.491002,-0.483002),error)); CPPUNIT_ASSERT(almost_eq(H[3][11],Interval(-0.117265,-0.109265),error)); CPPUNIT_ASSERT(almost_eq(H[4][4],Interval(0.025626,0.029626),error)); CPPUNIT_ASSERT(almost_eq(H[4][5],Interval(0.497236,0.501236),error)); CPPUNIT_ASSERT(almost_eq(H[4][6],Interval(-0.031626,-0.023626),error)); CPPUNIT_ASSERT(almost_eq(H[4][7],Interval(-0.503236,-0.495236),error)); CPPUNIT_ASSERT(almost_eq(H[5][4],Interval(0.485002,0.489002),error)); CPPUNIT_ASSERT(almost_eq(H[5][5],Interval(0.111265,0.115265),error)); CPPUNIT_ASSERT(almost_eq(H[5][8],Interval(-0.491002,-0.483002),error)); CPPUNIT_ASSERT(almost_eq(H[5][9],Interval(-0.117265,-0.109265),error)); CPPUNIT_ASSERT(almost_eq(H[6][6],Interval(-0.102805,-0.098805),error)); CPPUNIT_ASSERT(almost_eq(H[6][7],Interval(0.487733,0.491733),error)); CPPUNIT_ASSERT(almost_eq(H[6][16],Interval(0.096805,0.104805),error)); CPPUNIT_ASSERT(almost_eq(H[6][17],Interval(-0.493733,-0.485733),error)); CPPUNIT_ASSERT(almost_eq(H[7][6],Interval(0.457376,0.461376),error)); CPPUNIT_ASSERT(almost_eq(H[7][7],Interval(-0.387971,-0.383971),error)); CPPUNIT_ASSERT(almost_eq(H[7][8],Interval(-0.463376,-0.455376),error)); CPPUNIT_ASSERT(almost_eq(H[7][9],Interval(0.381971,0.389971),error)); CPPUNIT_ASSERT(almost_eq(H[8][8],Interval(0.339592,0.343592),error)); CPPUNIT_ASSERT(almost_eq(H[8][9],Interval(-0.367124,-0.363124),error)); CPPUNIT_ASSERT(almost_eq(H[8][10],Interval(-0.345592,-0.337592),error)); CPPUNIT_ASSERT(almost_eq(H[8][11],Interval(0.361124,0.369124),error)); CPPUNIT_ASSERT(almost_eq(H[9][2],Interval(0.14341,0.14741),error)); CPPUNIT_ASSERT(almost_eq(H[9][3],Interval(0.476389,0.480389),error)); CPPUNIT_ASSERT(almost_eq(H[9][8],Interval(-0.14941,-0.14141),error)); CPPUNIT_ASSERT(almost_eq(H[9][9],Interval(-0.482389,-0.474389),error)); CPPUNIT_ASSERT(almost_eq(H[10][10],Interval(5.19121,5.19521),error)); CPPUNIT_ASSERT(almost_eq(H[10][11],Interval(3.00309,3.00709),error)); CPPUNIT_ASSERT(almost_eq(H[10][12],Interval(-5.19721,-5.18921),error)); CPPUNIT_ASSERT(almost_eq(H[10][13],Interval(-3.00909,-3.00109),error)); CPPUNIT_ASSERT(almost_eq(H[11][10],Interval(1.18442,1.18842),error)); CPPUNIT_ASSERT(almost_eq(H[11][11],Interval(9.92737,9.93137),error)); CPPUNIT_ASSERT(almost_eq(H[11][14],Interval(-1.19042,-1.18242),error)); CPPUNIT_ASSERT(almost_eq(H[11][15],Interval(-9.93337,-9.92537),error)); CPPUNIT_ASSERT(almost_eq(H[12][12],Interval(-9.202,-9.198),error)); CPPUNIT_ASSERT(almost_eq(H[12][13],Interval(3.91718,3.92118),error)); CPPUNIT_ASSERT(almost_eq(H[12][26],Interval(9.196,9.204),error)); CPPUNIT_ASSERT(almost_eq(H[12][27],Interval(-3.92318,-3.91518),error)); CPPUNIT_ASSERT(almost_eq(H[13][12],Interval(0.798,0.802),error)); CPPUNIT_ASSERT(almost_eq(H[13][13],Interval(3.91718,3.92118),error)); CPPUNIT_ASSERT(almost_eq(H[13][28],Interval(-0.804,-0.796),error)); CPPUNIT_ASSERT(almost_eq(H[13][29],Interval(-3.92318,-3.91518),error)); CPPUNIT_ASSERT(almost_eq(H[14][14],Interval(-5.19521,-5.19121),error)); CPPUNIT_ASSERT(almost_eq(H[14][15],Interval(-3.00709,-3.00309),error)); CPPUNIT_ASSERT(almost_eq(H[14][26],Interval(5.18921,5.19721),error)); CPPUNIT_ASSERT(almost_eq(H[14][27],Interval(3.00109,3.00909),error)); CPPUNIT_ASSERT(almost_eq(H[15][12],Interval(-4.00879,-4.00479),error)); CPPUNIT_ASSERT(almost_eq(H[15][13],Interval(6.92228,6.92628),error)); CPPUNIT_ASSERT(almost_eq(H[15][14],Interval(4.00279,4.01079),error)); CPPUNIT_ASSERT(almost_eq(H[15][15],Interval(-6.92828,-6.92028),error)); CPPUNIT_ASSERT(almost_eq(H[16][16],Interval(-0.375719,-0.371719),error)); CPPUNIT_ASSERT(almost_eq(H[16][17],Interval(-0.334166,-0.330166),error)); CPPUNIT_ASSERT(almost_eq(H[16][18],Interval(0.369719,0.377719),error)); CPPUNIT_ASSERT(almost_eq(H[16][19],Interval(0.328166,0.336166),error)); CPPUNIT_ASSERT(almost_eq(H[17][16],Interval(-0.102805,-0.098805),error)); CPPUNIT_ASSERT(almost_eq(H[17][17],Interval(0.487733,0.491733),error)); CPPUNIT_ASSERT(almost_eq(H[17][24],Interval(0.096805,0.104805),error)); CPPUNIT_ASSERT(almost_eq(H[17][25],Interval(-0.493733,-0.485733),error)); CPPUNIT_ASSERT(almost_eq(H[18][6],Interval(-0.476524,-0.472524),error)); CPPUNIT_ASSERT(almost_eq(H[18][7],Interval(0.155567,0.159567),error)); CPPUNIT_ASSERT(almost_eq(H[18][18],Interval(0.470524,0.478524),error)); CPPUNIT_ASSERT(almost_eq(H[18][19],Interval(-0.161567,-0.153567),error)); CPPUNIT_ASSERT(almost_eq(H[19][18],Interval(-0.102805,-0.098805),error)); CPPUNIT_ASSERT(almost_eq(H[19][19],Interval(0.487733,0.491733),error)); CPPUNIT_ASSERT(almost_eq(H[19][22],Interval(0.096805,0.104805),error)); CPPUNIT_ASSERT(almost_eq(H[19][23],Interval(-0.493733,-0.485733),error)); CPPUNIT_ASSERT(almost_eq(H[20][20],Interval(0.371719,0.375719),error)); CPPUNIT_ASSERT(almost_eq(H[20][21],Interval(0.330166,0.334166),error)); CPPUNIT_ASSERT(almost_eq(H[20][22],Interval(-0.377719,-0.369719),error)); CPPUNIT_ASSERT(almost_eq(H[20][23],Interval(-0.336166,-0.328166),error)); CPPUNIT_ASSERT(almost_eq(H[21][18],Interval(-0.476524,-0.472524),error)); CPPUNIT_ASSERT(almost_eq(H[21][19],Interval(0.155567,0.159567),error)); CPPUNIT_ASSERT(almost_eq(H[21][20],Interval(0.470524,0.478524),error)); CPPUNIT_ASSERT(almost_eq(H[21][21],Interval(-0.161567,-0.153567),error)); CPPUNIT_ASSERT(almost_eq(H[22][16],Interval(-0.476524,-0.472524),error)); CPPUNIT_ASSERT(almost_eq(H[22][17],Interval(0.155567,0.159567),error)); CPPUNIT_ASSERT(almost_eq(H[22][22],Interval(0.470524,0.478524),error)); CPPUNIT_ASSERT(almost_eq(H[22][23],Interval(-0.161567,-0.153567),error)); CPPUNIT_ASSERT(almost_eq(H[23][22],Interval(0.371719,0.375719),error)); CPPUNIT_ASSERT(almost_eq(H[23][23],Interval(0.330166,0.334166),error)); CPPUNIT_ASSERT(almost_eq(H[23][24],Interval(-0.377719,-0.369719),error)); CPPUNIT_ASSERT(almost_eq(H[23][25],Interval(-0.336166,-0.328166),error)); CPPUNIT_ASSERT(almost_eq(H[24][14],Interval(-2.19099,-2.18699),error)); CPPUNIT_ASSERT(almost_eq(H[24][15],Interval(-8.20081,-8.19681),error)); CPPUNIT_ASSERT(almost_eq(H[24][24],Interval(2.18499,2.19299),error)); CPPUNIT_ASSERT(almost_eq(H[24][25],Interval(8.19481,8.20281),error)); CPPUNIT_ASSERT(almost_eq(H[25][24],Interval(-3.00621,-3.00221),error)); CPPUNIT_ASSERT(almost_eq(H[25][25],Interval(5.19172,5.19572),error)); CPPUNIT_ASSERT(almost_eq(H[25][26],Interval(3.00021,3.00821),error)); CPPUNIT_ASSERT(almost_eq(H[25][27],Interval(-5.19772,-5.18972),error)); CPPUNIT_ASSERT(almost_eq(H[26][26],Interval(9.998,10.002),error)); CPPUNIT_ASSERT(almost_eq(H[26][27],Interval(-0.002,0.002),error)); CPPUNIT_ASSERT(almost_eq(H[26][28],Interval(-10.004,-9.996),error)); CPPUNIT_ASSERT(almost_eq(H[26][29],Interval(-0.004,0.004),error)); CPPUNIT_ASSERT(almost_eq(H[27][27],Interval(1,1),error)); CPPUNIT_ASSERT(almost_eq(H[28][28],Interval(1,1),error)); CPPUNIT_ASSERT(almost_eq(H[29][29],Interval(1,1),error)); }