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 }
Generated on Tue Mar 8 2016 19:51:33 for ADMB Documentation by 1.8.0 |