00001
00012 #ifndef CONDITION_H
00013 #define CONDITION_H
00014
00015 #include <lurupa/Lurupa.h>
00016 #include <lurupa/Lp.h>
00017 #include <lurupa/globals.h>
00018 #include <IntervalVector.h>
00019
00029 class Condition {
00030 public:
00031 Condition(Lurupa *lurupa, Report *report);
00032 ~Condition();
00033
00035 void rho_p(const Lp *lp, INTERVAL &enclosure);
00037 void rho_d(const Lp *lp, INTERVAL &enclosure);
00039 void cond(const Lp *lp, INTERVAL &enclosure);
00040
00041 private:
00042 Lurupa *lurupa;
00043 Report *preport;
00046 void swap(int *rg, int i, int iT);
00048 void rot(int *rg, int i1, int i2, int i3);
00049
00051 Lp *generate_lp_rho_p(const Lp *lp);
00053 Lp *generate_lp_rho_d(const Lp *lp);
00054
00056 int norm(const Lp *lp, INTERVAL &enclosure);
00057
00059 INTERVAL norm_1(const INTERVAL_VECTOR &ix);
00061 INTERVAL norm_11(const INTERVAL_MATRIX &IA, const INTERVAL_MATRIX &IB);
00063 INTERVAL norm_F(const INTERVAL_MATRIX &IA, const INTERVAL_MATRIX &IB);
00065 INTERVAL norm_L1(const INTERVAL_MATRIX &IA, const INTERVAL_MATRIX &IB);
00066
00067 #if 0
00068
00069
00070 VECTOR x_hat(const INTERVAL_MATRIX &IA);
00071 #endif
00072 };
00073
00074 #endif