ADMB Documentation  11.5.3197
 All Classes Files Functions Variables Typedefs Friends Defines
dvect6.cpp
Go to the documentation of this file.
00001 /*
00002  * $Id$
00003  *
00004  * Author: David Fournier
00005  * Copyright (c) 2008-2012 Regents of the University of California
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  }