Implement dependencies on interval arithmetic functions (+,-,*,/,inv,power), fix problems on trigonometric functions
This commit is contained in:
parent
176b1fccf7
commit
fce26a824e
2 changed files with 601 additions and 369 deletions
|
@ -178,20 +178,38 @@ public:
|
|||
interval & operator*=(interval<T> const & o);
|
||||
interval & operator/=(interval<T> const & o);
|
||||
|
||||
template<bool compute_intv = true, bool compute_deps = false>
|
||||
interval & add(interval<T> const & o, interval_deps & deps = dummy);
|
||||
template<bool compute_intv = true, bool compute_deps = false>
|
||||
interval & sub(interval<T> const & o, interval_deps & deps = dummy);
|
||||
template<bool compute_intv = true, bool compute_deps = false>
|
||||
interval & mul(interval<T> const & o, interval_deps & deps = dummy);
|
||||
template<bool compute_intv = true, bool compute_deps = false>
|
||||
interval & div(interval<T> const & o, interval_deps & deps = dummy);
|
||||
|
||||
void add_jst (interval<T> const & o, interval_deps & deps);
|
||||
void sub_jst (interval<T> const & o, interval_deps & deps);
|
||||
void mul_jst (interval<T> const & o, interval_deps & deps);
|
||||
void div_jst (interval<T> const & o, interval_deps & deps);
|
||||
|
||||
interval & operator+=(T const & o);
|
||||
interval & operator-=(T const & o);
|
||||
interval & operator*=(T const & o);
|
||||
interval & operator/=(T const & o);
|
||||
|
||||
void inv();
|
||||
template<bool compute_intv = true, bool compute_deps = false> void inv(interval_deps & deps = dummy);
|
||||
void inv_jst (interval_deps & deps);
|
||||
friend interval<T> inv(interval<T> o) { o.inv(); return o; }
|
||||
|
||||
void fmod(interval<T> y);
|
||||
void fmod(T y);
|
||||
friend interval<T> inv(interval<T> o, interval<T> y) { o.fmod(y); return o; }
|
||||
friend interval<T> inv(interval<T> o, T y) { o.fmod(y); return o; }
|
||||
friend interval<T> fmod(interval<T> o, interval<T> y) { o.fmod(y); return o; }
|
||||
friend interval<T> fmod(interval<T> o, T y) { o.fmod(y); return o; }
|
||||
|
||||
void power(unsigned n);
|
||||
template<bool compute_intv = true, bool compute_deps = false>
|
||||
void power(unsigned n, interval_deps & deps = dummy);
|
||||
void power_jst(unsigned n, interval_deps & deps);
|
||||
friend interval<T> power(interval<T> o, unsigned k) { o.power(k); return o; }
|
||||
|
||||
template<bool compute_intv = true, bool compute_deps = false> void exp(interval_deps & deps = dummy);
|
||||
template<bool compute_intv = true, bool compute_deps = false> void exp2(interval_deps & deps = dummy);
|
||||
|
@ -237,8 +255,6 @@ public:
|
|||
void acosh_jst(interval_deps & deps);
|
||||
void atanh_jst(interval_deps & deps);
|
||||
|
||||
friend interval<T> power(interval<T> o, unsigned k) { o.power(k); return o; }
|
||||
|
||||
friend interval<T> exp (interval<T> o) { o.exp(); return o; }
|
||||
friend interval<T> exp (interval<T> o, interval_deps & deps) { o.exp(deps); return o; }
|
||||
friend interval<T> exp_jst(interval<T> o, interval_deps & deps) { o.exp_jst(deps); return o; }
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue