ADMB Documentation  11.5.3197
 All Classes Files Functions Variables Typedefs Friends Defines
fvar_m44.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 void dfmattrans(void);
00014 
00019 dvar_matrix trans(const dvar_matrix& m1)
00020 {
00021   int rmin=m1.indexmin();
00022   int rmax=m1.indexmax();
00023   int cmin=m1.colmin();
00024   int cmax=m1.colmax();
00025   dvar_matrix t1(cmin,cmax,rmin,rmax);
00026 
00027   for (int i=rmin; i<=rmax; i++)
00028   {
00029     for (int j=cmin; j<=cmax; j++)
00030     {
00031       t1.elem_value(j,i)=m1.elem_value(i,j);
00032     }
00033   }
00034   save_identifier_string("uu");
00035   m1.save_dvar_matrix_position();
00036   t1.save_dvar_matrix_position();
00037   save_identifier_string("vv");
00038   gradient_structure::GRAD_STACK1->
00039       set_gradient_stack(dfmattrans);
00040   return (t1);
00041 }
00042 
00047 void dfmattrans(void)
00048 {
00049   verify_identifier_string("vv");
00050   dvar_matrix_position t1pos=restore_dvar_matrix_position();
00051   dvar_matrix_position m1pos=restore_dvar_matrix_position();
00052   verify_identifier_string("uu");
00053   dmatrix dftmp=restore_dvar_matrix_derivatives(t1pos);
00054   dmatrix dfm1(m1pos);
00055   int rmin=dfm1.indexmin();
00056   int rmax=dfm1.indexmax();
00057   int cmin=dfm1.colmin();
00058   int cmax=dfm1.colmax();
00059 
00060   for (int i=rmin; i<=rmax; i++)
00061   {
00062     for (int j=cmin; j<=cmax; j++)
00063     {
00064       //t1.elem_value(j,i)=m1.elem_value(i,j);
00065       dfm1(i,j)=dftmp(j,i);
00066     }
00067   }
00068   dfm1.save_dmatrix_derivatives(m1pos);
00069 }