00001
00020 #ifndef _NEWUTIL_H
00021
00022 #define _NEWUTIL_H 1
00023
00024 #include <queue>
00025
00026 using namespace std;
00027
00028 #define WANT_STREAM // include.h will get stream fns
00029 #define WANT_MATH // include.h will get math fns
00030 #define SETUP_C_SUBSCRIPTS
00031
00032 #define USING_DOUBLE
00033
00034 #include <realea/newmat/newmat.h>
00035 #include <realea/newmat/newmatap.h>
00036 #include <realea/newmat/newmatio.h>
00037
00038 #ifdef use_namespace
00039 using namespace NEWMAT;
00040 #endif
00041
00042 typedef Matrix MyMatrix;
00043 typedef ReturnMatrix MyReturnMatrix;
00044
00045 MyReturnMatrix sqrt(const MyMatrix &mat);
00046
00047 double norm(const MyMatrix &mat);
00048
00049 MyReturnMatrix eye(int N);
00050
00051 Real min(ColumnVector &mat);
00052 Real max(ColumnVector &mat);
00053
00054 double pow2(double x);
00055 double sqrt_double(double x);
00056 double log_double(double x);
00057
00058 MyReturnMatrix log(const MyMatrix &mat);
00059
00063 Real mean(const ColumnVector &mat);
00064
00065 MyReturnMatrix pow(const ColumnVector &mat, double exp);
00066
00067 double pow2_double(double x);
00068
00069 MyReturnMatrix pow2(ColumnVector &weights);
00070 MyReturnMatrix pow2(RowVector &weights);
00071
00072 MyReturnMatrix log(const MyMatrix &mat);
00073
00074 MyReturnMatrix pow2_m(const MyMatrix &mat);
00075
00076 void set_sort_matrix(Matrix *mat);
00077
00078 bool sort_index_matrix(int i, int j);
00082 Real mean_diag(const DiagonalMatrix &mat);
00083
00088 Real median(const ColumnVector &mat);
00089 Real median(const RowVector &mat);
00090
00094 MyReturnMatrix DivVectors(ColumnVector &A, const ColumnVector &B);
00095
00101 MyReturnMatrix myprctile(RowVector &inar, int *perc, int nperc);
00102
00103 void copyRow(queue<Real> num, RowVector &row);
00104
00105 void copyColumn(DiagonalMatrix diag, ColumnVector &row);
00106 void copyFromColumn(ColumnVector &row, DiagonalMatrix &diag);
00107
00108 MyReturnMatrix DotVectors(ColumnVector &A, const ColumnVector &B);
00109
00110 MyReturnMatrix DivVectors(ColumnVector &A, const ColumnVector &B);
00111
00112 Real min_positive(queue<Real> num);
00113
00114 void range(int min, int max, int *Rang);
00115
00119 void getColumns(Matrix &m, int *cols, int num, Matrix &result);
00120
00121 #endif