Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00011 #include <fvar.hpp>
00012
00013 #ifdef __TURBOC__
00014 #pragma hdrstop
00015 #include <iostream.h>
00016 #endif
00017
00018 #ifdef __ZTC__
00019 #include <iostream.hpp>
00020 #endif
00021
00022 #include <math.h>
00023
00028 double var(const dvector& v)
00029 {
00030 double tmp;
00031 tmp=norm(v)/sqrt(double(v.size()));
00032 double tmp1;
00033 tmp1=mean(v);
00034 return(tmp*tmp-tmp1*tmp1);
00035 }
00036
00041 double std_dev(const dvector& v)
00042 {
00043 double tmp;
00044 tmp=norm(v)/sqrt(double(v.size()));
00045 double tmp1;
00046 tmp1=mean(v);
00047 return(sqrt(tmp*tmp-tmp1*tmp1));
00048 }
00049
00054 double mean(const dvector& v)
00055 {
00056 double tmp=0;
00057 for (int i=v.indexmin(); i<=v.indexmax(); i++)
00058 {
00059 tmp+=v.elem(i);
00060 }
00061 return(tmp/v.size());
00062 }
00063
00068 void dvector::fill_seqadd(const double base, const double offset)
00069 {
00070 double temp=0;
00071 for (int i=indexmin(); i<=indexmax(); i++)
00072 {
00073 elem(i)=base+temp;
00074 temp=temp+offset;
00075 }
00076 }
00077
00082 void ivector::fill_seqadd(int base, int offset)
00083 {
00084 int temp=0;
00085 for (int i=indexmin(); i<=indexmax(); i++)
00086 {
00087 elem(i)=base+temp;
00088 temp=temp+offset;
00089 }
00090 }
00091
00096 void lvector::fill_seqadd(const AD_LONG_INT& base, const AD_LONG_INT& offset)
00097 {
00098 long int temp=0;
00099 for (int i=indexmin(); i<=indexmax(); i++)
00100 {
00101 elem(i)=base+temp;
00102 temp=temp+offset;
00103 }
00104 }
00105
00110 void dmatrix::colfill_seqadd(const int& j, const double base,
00111 const double offset)
00112 {
00113 double temp=0;
00114 for (int i=rowmin(); i<=rowmax(); i++)
00115 {
00116 elem(i,j)=base+temp;
00117 temp=temp+offset;
00118 }
00119 }
00120
00125 void dmatrix::colfill(int j, const dvector& v)
00126 {
00127 for (int i=rowmin(); i<=rowmax(); i++)
00128 {
00129 (*this)[i][j]=v[i];
00130 }
00131 }
00132
00137 void dmatrix::rowfill(int i, const dvector& v)
00138 {
00139 for (int j=colmin(); j<=colmax(); j++)
00140 {
00141 (*this)[i][j]=v[j];
00142 }
00143 }
00144
00149 void dmatrix::rowfill_seqadd(const int& i, const double base,
00150 const double offset)
00151 {
00152 double temp=0;
00153 for (int j=colmin(); j<=colmax(); j++)
00154 {
00155 elem(i,j)=base+temp;
00156 temp=temp+offset;
00157 }
00158 }