00001 #ifndef MATRIX_INTEGRATE_H
00002 #define MATRIX_INTEGRATE_H
00003
00004 #include "barray.h"
00005
00008 namespace PLib {
00009
00010 template <class T> void cdft(int n, T wr, T wi, BasicArray<T> &a) ;
00011 template <class T> void rdft(int n, T wr, T wi, BasicArray<T> &a) ;
00012 template <class T> void ddct(int n, T wr, T wi, BasicArray<T> &a) ;
00013 template <class T> void ddst(int n, T wr, T wi, BasicArray<T> &a) ;
00014 template <class T> void dfct(int n, T wr, T wi, BasicArray<T> &a) ;
00015 template <class T> void dfst(int n, T wr, T wi, BasicArray<T> &a) ;
00016
00017
00018 template <class T> void chebexp(double (*f)(T), T a, T b, T eps,
00019 BasicArray<T> &c, T &err) ;
00020 template <class T> void chebexp(double (*f)(T,void*), void*, T a, T b,
00021 T eps, BasicArray<T> &c, T &err) ;
00022 template <class T> T chebeval(T x, const BasicArray<T> &c) ;
00023
00024
00025 template <class T> void intccini(BasicArray<T> &w) ;
00026
00027
00028 template <class T>
00029 struct ClassPO {
00030 virtual T operator()(T a) =0;
00031 };
00032
00033 template <class T>
00034 struct ClassPOvoid {
00035 virtual T operator()(T a, void*) =0;
00036 };
00037
00038
00039
00040
00041
00042
00043 template <class T, class POPtr> T integrate(POPtr f, T a, T b, T eps, int n, T &err) ;
00044 template <class T, class POPtr> T intcc(POPtr f, T a, T b, T eps, BasicArray<T> &w, T &err);
00045 template <class T, class POPtr> T integrate2(POPtr f, T a, T b, T eps, int n, T &err) ;
00046 template <class T, class POPtr> T intcc2(POPtr f, T a, T b, T eps, BasicArray<T> w, T &err);
00047
00048
00049
00050
00051
00052
00053 template <class T, class POvPtr> T integrate(POvPtr f,void*, T a, T b, T eps, int n, T &err) ;
00054 template <class T, class POvPtr> T intcc(POvPtr,void*, T a, T b, T eps, BasicArray<T> &w, T &err) ;
00055 template <class T, class POvPtr> T integrate2(POvPtr f,void*, T a, T b, T eps, int n, T &err) ;
00056 template <class T, class POvPtr> T intcc2(POvPtr,void*, T a, T b, T eps, BasicArray<T> w, T &err) ;
00057
00058 }
00059
00060 #ifdef INCLUDE_TEMPLATE_SOURCE
00061 #include "fft.cpp"
00062 #include "chebexp.cpp"
00063 #include "intccq.cpp"
00064 #endif
00065
00066 #endif