Changeset 3672
 Timestamp:
 Apr 12, 2015 10:43:04 AM (5 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

trunk/omh/wish_list.omh
r3607 r3672 4 4 5 5 CppAD is distributed under multiple licenses. This distribution is under 6 the terms of the 6 the terms of the 7 7 Eclipse Public License Version 1.0. 8 8 … … 37 37 Atan 38 38 cppad 39 atanh 40 asinh 41 acosh 39 42 $$ 40 43 … … 44 47 $index features, new$$ 45 48 49 $head Standard Math Functions$$ 50 The following functions are part of the C++11 standard math library 51 and could be added to CppAD: 52 $code atanh$$, $code asinh$$, $code acosh$$. 53 54 $subhead atan2$$ 55 The $cref/atan2/Atan2/$$ function could be made faster by adding 56 a special operator for it. 57 46 58 $head Adolc$$ 47 59 $index adolc$$ … … 49 61 CppAD commands. 50 62 51 $head Atan2$$52 $index atan2$$53 The $cref/atan2/Atan2/$$ function could be made faster by adding54 a special operator for it.55 56 63 $head BenderQuad$$ 57 See the $cref/problem/BenderQuad/Problem/$$ with the 64 See the $cref/problem/BenderQuad/Problem/$$ with the 58 65 current $code BenderQuad$$ specifications. 59 66 60 67 $head Checkpointing$$ 61 68 $index checkpoint$$ 62 It would be more flexible to also have a 63 $cref/checkpoint constructor/checkpoint/constructor/$$ 69 It would be more flexible to also have a 70 $cref/checkpoint constructor/checkpoint/constructor/$$ 64 71 that passed in an $cref ADFun$$ object instead of a algorithm. 65 72 Perhaps the syntax would be … … 68 75 %$$ 69 76 where $icode copy$$ would determine if a separate copy of $icode ad_fun$$ 70 was made or if a pointer was used. 77 was made or if a pointer was used. 71 78 Note that if a pointer is used, it becomes invalid when the destructor 72 79 for $icode ad_fun$$ is called. … … 82 89 $$ 83 90 only two of the expressions 84 $code true_x$$, $code false_x$$, $code true_y$$, $code false_y$$ 85 will be evaluated 91 $code true_x$$, $code false_x$$, $code true_y$$, $code false_y$$ 92 will be evaluated 86 93 (two will be skipped depending on the result of $code left_z == right_z$$). 87 94 Not all of the expressions corresponding to 88 95 $code left_x$$, $code right_x$$, $code left_y$$, $code right_y$$ need to be 89 96 evaluate, but they are. 90 The optimizer could be improved to skip two more expressions 97 The optimizer could be improved to skip two more expressions 91 98 (depending on the result of $code left_z == right_z$$). 92 99 93 100 $subhead Sparsity$$ 94 The $cref/optimizer/optimize/$$ uses 101 The $cref/optimizer/optimize/$$ uses 95 102 $cref/atomic reverse jacobian sparsity/atomic_rev_sparse_jac/$$ 96 103 to determine which arguments affect the value of the results … … 104 111 $icode right$$. 105 112 The $cref checkpoint$$ functions use the value true for 106 $cref/nz_compare/RevSparseJac/nz_compare/$$ when computing 113 $cref/nz_compare/RevSparseJac/nz_compare/$$ when computing 107 114 reverse jacobian sparsity patterns. 108 115 This enables the optimizer to properly track the dependencies. … … 113 120 $index forward$$ 114 121 If the results of $cref forward_order$$ have already been computed and are still 115 stored in the $cref ADFun$$ object (see $cref size_order$$), 122 stored in the $cref ADFun$$ object (see $cref size_order$$), 116 123 then they do not need to be recomputed and the results can just be returned. 117 124 … … 163 170 $index sequence, operation$$ 164 171 $index operation, sequence$$ 165 It is possible to detect if the 166 AD of $icode Base$$ 167 $cref/operation sequence/glossary/Operation/Sequence/$$ 172 It is possible to detect if the 173 AD of $icode Base$$ 174 $cref/operation sequence/glossary/Operation/Sequence/$$ 168 175 does not depend on any of the 169 176 $cref/independent variable/glossary/Tape/Independent Variable/$$ values. … … 180 187 They are now taped so that the $cref compare_change$$ interface 181 188 works even for compiler optimize code. 182 This caused a significant slow down in the 189 This caused a significant slow down in the 183 190 $cref cppad_det_lu.cpp$$ speed test (with no options specified). 184 191 Perhaps there should be an option to skip the comparison taping. … … 188 195 hash codes are used to detect expressions that have already 189 196 been computed. 190 Perhaps this should be done during the original forward mode recording. 197 Perhaps this should be done during the original forward mode recording. 191 198 192 199 $subhead Variable Pairs$$ 193 Suppose that $icode x$$ is a variable 200 Suppose that $icode x$$ is a variable 194 201 and $codei%sin(%x%)%$$ is used in an expression. 195 202 The extra expression $codei%cos(%x%)%$$ is also computed … … 197 204 This is because the derivative of the original expression 198 205 is expressed in terms of the values of the other expression. 199 In general, 200 the representation of the derivative of an expression to order $icode p$$ 206 In general, 207 the representation of the derivative of an expression to order $icode p$$ 201 208 may include the derivative of another expression to order $icode%p%1%$$. 202 In our example, if only the value $codei%sin(%x%)%$$ 209 In our example, if only the value $codei%sin(%x%)%$$ 203 210 is requested, it is not necessary to compute $codei%cos(%x%)%$$. 204 We should remove the computation of extra expressions derivatives that are 205 not need to compute the requested derivative of the original expression. 211 We should remove the computation of extra expressions derivatives that are 212 not need to compute the requested derivative of the original expression. 206 213 207 214 $head Preprocessor Symbols$$ … … 219 226 220 227 $list number$$ 221 Names (except as noted below) 228 Names (except as noted below) 222 229 should be all lowercase, with words separated by underscores. 223 For example, acronyms should be treated as ordinary names 230 For example, acronyms should be treated as ordinary names 224 231 (xml_parser instead of XML_parser). 225 232 … … 228 235 229 236 $lnext 230 Use spaces rather than tabs. 237 Use spaces rather than tabs. 231 238 Currently, CppAD uses a tabs stops at column multiples of 5. 232 239 Five columns were chosen to avoid high levels of indenting and to allow for … … 237 244 $$ 238 245 with a tab after the else. 239 Automatic conversion to actual spaces should be easy. 246 Automatic conversion to actual spaces should be easy. 240 247 241 248 $lend … … 246 253 $index tracing, operation sequence$$ 247 254 Add tracing the operation sequence to the user API and documentation. 248 Tracing the operation sequence is currently done by changing the CppAD 255 Tracing the operation sequence is currently done by changing the CppAD 249 256 source code. Use the command 250 257 $codep
Note: See TracChangeset
for help on using the changeset viewer.