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 #endif
00016
00017 #include <math.h>
00018
00019 void shape_check(const dvector& v1, const dvector& v2,
00020 const char *function_name);
00021
00026 dvector sin(const dvector& v1)
00027 {
00028 dvector tmp(v1.indexmin(),v1.indexmax());
00029 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00030 {
00031 tmp.elem(i)=sin(v1.elem(i));
00032 }
00033 return(tmp);
00034 }
00035
00040 dvector cos(const dvector& v1)
00041 {
00042 dvector tmp(v1.indexmin(),v1.indexmax());
00043 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00044 {
00045 tmp.elem(i)=cos(v1.elem(i));
00046 }
00047 return(tmp);
00048 }
00049
00054 dvector tan(const dvector& v1)
00055 {
00056 dvector tmp(v1.indexmin(),v1.indexmax());
00057 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00058 {
00059 tmp.elem(i)=tan(v1.elem(i));
00060 }
00061 return(tmp);
00062 }
00063
00068 dvector sinh(const dvector& v1)
00069 {
00070 dvector tmp(v1.indexmin(),v1.indexmax());
00071 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00072 {
00073 tmp.elem(i)=sinh(v1.elem(i));
00074 }
00075 return(tmp);
00076 }
00077
00082 dvector cosh(const dvector& v1)
00083 {
00084 dvector tmp(v1.indexmin(),v1.indexmax());
00085 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00086 {
00087 tmp.elem(i)=cosh(v1.elem(i));
00088 }
00089 return(tmp);
00090 }
00091
00096 dvector tanh(const dvector& v1)
00097 {
00098 dvector tmp(v1.indexmin(),v1.indexmax());
00099 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00100 {
00101 tmp.elem(i)=tanh(v1.elem(i));
00102 }
00103 return(tmp);
00104 }
00105
00110 dvector pow(const dvector& v1, const double x)
00111 {
00112 dvector tmp(v1.indexmin(),v1.indexmax());
00113 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00114 {
00115 tmp.elem(i)=pow(v1.elem(i),x);
00116 }
00117 return(tmp);
00118 }
00119
00124 dvector pow(const dvector& v1, int x)
00125 {
00126 dvector tmp(v1.indexmin(),v1.indexmax());
00127 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00128 {
00129 tmp.elem(i)=pow(v1.elem(i),x);
00130 }
00131 return(tmp);
00132 }
00133
00138 dvector pow(const dvector& v1, const dvector& v2)
00139 {
00140 shape_check(v1,v2,"dvector pow(const dvector& v1,constdvector& v2)");
00141
00142 dvector tmp(v1.indexmin(),v1.indexmax());
00143 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00144 {
00145 tmp.elem(i)=pow(v1.elem(i),v2.elem(i));
00146 }
00147 return(tmp);
00148 }
00149
00154 dvector pow(const double x, const dvector& v2)
00155 {
00156 dvector tmp(v2.indexmin(),v2.indexmax());
00157 for (int i=v2.indexmin();i<=v2.indexmax();i++)
00158 {
00159 tmp.elem(i)=pow(x,v2.elem(i));
00160 }
00161 return(tmp);
00162 }
00163
00168 dvector asin(const dvector& v1)
00169 {
00170 dvector tmp(v1.indexmin(),v1.indexmax());
00171 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00172 {
00173 tmp.elem(i)=asin(v1.elem(i));
00174 }
00175 return(tmp);
00176 }
00177
00182 dvector acos(const dvector& v1)
00183 {
00184 dvector tmp(v1.indexmin(),v1.indexmax());
00185 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00186 {
00187 tmp.elem(i)=acos(v1.elem(i));
00188 }
00189 return(tmp);
00190 }
00191
00196 dvector atan(const dvector& v1)
00197 {
00198 dvector tmp(v1.indexmin(),v1.indexmax());
00199 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00200 {
00201 tmp.elem(i)=atan(v1.elem(i));
00202 }
00203 return(tmp);
00204 }
00205
00210 dvector log10(const dvector& v1)
00211 {
00212 dvector tmp(v1.indexmin(),v1.indexmax());
00213 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00214 {
00215 tmp.elem(i)=log10(v1.elem(i));
00216 }
00217 return(tmp);
00218 }
00219
00224 dvector sqrt(const dvector& v1)
00225 {
00226 dvector tmp(v1.indexmin(),v1.indexmax());
00227 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00228 {
00229 tmp.elem(i)=sqrt(v1.elem(i));
00230 }
00231 return(tmp);
00232 }
00233
00238 dvector sqr(const dvector& v1)
00239 {
00240 dvector tmp(v1.indexmin(),v1.indexmax());
00241 for (int i=v1.indexmin();i<=v1.indexmax();i++)
00242 {
00243 tmp.elem(i)=sqrt(v1.elem(i));
00244 }
00245 return(tmp);
00246 }