ADMB Documentation  -a65f1c97
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
df1b2fun.cpp
Go to the documentation of this file.
1 /*
2  * $Id$
3  *
4  * Author: David Fournier
5  * Copyright (c) 2008-2012 Regents of the University of California
6  */
11 #include <df1b2fun.h>
12 
13 extern "C"
14 {
15  int kbhit(void) { return 0;}
16 }
17 
18 class df1b2_gradlist;
19 //df1b2_gradlist * f1b2gradlist = NULL;
20 
21 //int df1b2variable::noallocate=0;
22 
23 //initial_df1b2params ** initial_df1b2params::varsptr
24 // =new P_INITIAL_DF1B2PARAMS[1000];
25 //int initial_df1b2params::num_initial_df1b2params=0; // array
26 
27 //int initial_df1b2params::num_initial_df1b2params_sav=0; // array
28 //initial_df1b2params ** initial_df1b2params::varsptr_sav=0;
29 
30 //int initial_df1b2params::current_phase=0;
31 
32 #if defined(__DERCHECK__)
33 int mydercheckercounter=0;
34 #endif
35 
41 {
43  {
44  cerr << "overflow in save_adpool_pointer" << endl;
45  ad_exit(1);
46  }
49 }
50 
56 {
57  if (adpool_stack_pointer<=0)
58  {
59  cerr << "underflow in save_adpool_pointer" << endl;
60  ad_exit(1);
61  }
64 }
65 
71 {
73 
75  if (varsptr == 0)
76  {
77  cerr << "error allocating memory for "
78  "initial_df1b2params::varsptr " << endl;
79  ad_exit(1);
80  }
81 
84 }
85 
91 {
92  if (num_initial_df1b2params == 0)
93  {
94  if (varsptr)
95  {
96  delete [] varsptr;
97  varsptr=0;
98  }
100  varsptr_sav=0;
101 
104  }
105  else
106  {
108  > 1000)
109  {
110  cerr << "maximum numver of iitial_df1b2params is 1000 "
111  << endl;
112  ad_exit(1);
113  }
114 
115  for (int i=0;i<num_initial_df1b2params_sav;i++)
116  {
118  }
120  delete varsptr_sav;
121  varsptr_sav=0;
122  num_initial_df1b2params_sav=0;
123  }
124 }
125 
131 {
132  scalefactor=0.0;
133  phase_start=1;
134  phase_save=1;
135  add_to_list();
136 }
137 
138 typedef void (**ADprfptr)(void);
139 typedef void (*ADrfptr)(void);
140 
145 void df1b2_gradcalc1(void)
146 {
147  //smartlist & list=f1b2gradlist->list;
150  //ADrfptr rf2;
151  int xcount=0;
152  int tmpcount;
153  int tcount=f1b2gradlist->ncount;
154 
155  //int check_pool_flag3=0;
157  {
158  case 1:
161  case 3:
162 #if defined(__DERCHECK__)
163  // derchecker->counter=f1b2gradlist->ncount;
164  mydercheckercounter=f1b2gradlist->ncount;
165 #endif
170 
172  {
179  }
180  tmpcount=ncount;
181  do
182  {
183  tmpcount--;
184  /*
185  if (!(tmpcount %100))
186  {
187  cout << "B " << tmpcount << endl;
188  }
189  if (tmpcount < 2)
190  {
191  cout << "B " << tmpcount << endl;
192  }
193  */
194  //nlist-=sizeof(char*);
195  --nlist;
196  if (nlist.eof())
197  break;
198  ADrfptr rf=nlist.bptr->pf;
199  (*rf)();
200  /*
201  if (check_pool_flag3)
202  {
203  if (xcount > 722)
204  {
205  cout << xcount << " ";
206  //check_pool_depths();
207  }
208  }
209  */
210 #if defined(__DERCHECK__)
211  //derchecker->counter--;
212  mydercheckercounter--;
213 #endif
214  xcount++;
215  tcount--;
216  if (xcount > 99999999) cout << xcount << endl;
217  //if (tcount == 6599 )
218  // cout << tcount << endl;
219  /*
220  if (initial_df1b2params::current_phase==2)
221  {
222  tcount--;
223  if (rf2 != (nlist.buffer+122)->pf || xcount > 12488)
224  cout << tcount << " " << xcount << " "
225  << (nlist.buffer+122)->pf << endl;
226  }
227  */
228  }
229  while(nlist.bptr>=nlist.buffer);
230  break;
231  case 2:
232  {
239 #if defined(__DERCHECK__)
240  // derchecker->counter=0;
241  mydercheckercounter=0;
242 #endif
247 
248  //nlist.reset(); // set pointer to beginning of list
249  --(f1b2gradlist->nlist2); // backup one record
250  int icount=0;
251  do
252  {
253 #if defined(__DERCHECK__)
254  // derchecker->counter++;
255  mydercheckercounter++;
256 #endif
257  //ADrfptr rf=*ADprfptr(nlist.bptr);
258  ADrfptr rf=nlist.bptr->pf;
259  (*rf)();
260  ++nlist;
261 
262  /*
263  if (initial_df1b2params::current_phase==2)
264  {
265  if (icount >=4579)
266  {
267  cout << icount << endl;
268  }
269  }
270 
271  if (icount>28115)
272  {
273  cout << "icount = " << icount << endl;
274  }
275  */
276  }
277  while(++icount<ncount);
278  // need this to get pointer right for step 3?
279  // nlist-=sizeof(int); // set nlist to point to second record;
280  //nlist++;
281 
282  break;
283  }
284 
285  default:
286  cerr << "illega value for df1b2variable::passnumber "
287  " value = " << df1b2variable::passnumber << endl;
288  }
289 }
290 
291 
292 
293 double nsin(double x) {return -sin(x);}
294 double ncos(double x) {return -cos(x);}
295 
296 double ADmult_add_fun(double x,double y);
297 df1b2function1 ADf1b2_sin(::sin,::cos,::nsin,::ncos,"sin");
299 df1b2function1 ADf1b2_exp(::exp,::exp,::exp,::exp,"exp");
300 
305 double AD_df1_atan(double x)
306 {
307  return double(1.0)/(1+square(x));
308 }
309 
314 double AD_df2_atan(double x)
315 {
316  return double(-2.0)*x/square(1+square(x));
317 }
318 
323 double AD_df1_tan(double x)
324 {
325  return double(1.0)+square(tan(x));
326 }
327 
332 double AD_df2_tan(double x)
333 {
334  double y=tan(x);
335  return double(2.0)*y*(double(1.0)+square(y));
336 }
337 
342 double AD_df3_atan(double x)
343 {
344  return double(-2.0)/square(double(1)+square(x))
345  + double(12.0)*square(x)/cube(double(1)+square(x));
346 }
347 
352 double AD_df3_tan(double x)
353 {
354  double y=square(tan(x));
355 
356  return double(2.0) * (double(1.0)+double(3.0)*y) * (double(1) + y);
357 }
358 
360 
362  "atan");
363 
368 double AD_arg_inv(double x)
369 {
370  return double(1.0)/x;
371 }
372 
377 double AD_minus_arg_inv2(double x)
378 {
379  return double(-1.0)/(x*x);
380 }
381 
386 double AD_2arg_inv3(double x)
387 {
388  return double(2.0)/(x*x*x);
389 }
390 
395 double AD_minus6_arg_inv4(double x)
396 {
397  return double(-6.0)/(x*x*x*x);
398 }
399 
402 
404 
405 /*
406 df1b2variable sin(const df1b2variable& x)
407 {
408  return ADf1b2_sin(x);
409 }
410 */
411 
417 {
418  return ADf1b2_atan(x);
419 }
420 
426 {
427  return ADf1b2_tan(x);
428 }
429 
435 {
436  return *this=*this*v;
437 }
438 
444 {
445  return *this=*this/v;
446 }
447 
448 
449 /*
450 df1b2variable cos(const df1b2variable& x)
451 {
452  cout << "cos not implemented yet" << endl;
453  ad_exit(1);
454  return ADf1b2_sin(x);
455 }
456 */
457 
463 {
464  return ADf1b2_exp(x);
465 }
466 
472 {
473  double b=60;
474  if (value(x)<=b && value(x)>=-b)
475  {
476  return ADf1b2_exp(x);
477  }
478  else if (value(x)>b)
479  {
480  return exp(b)*(double(1.)+double(2.)*(x-b))/(double(1.)+x-b);
481  }
482  else
483  {
484  return exp(-b)*(double(1.)-x-b)/(double(1.)+double(2.)*(-x-b));
485  }
486 }
487 
493 {
494  if (value(x)<=b && value(x)>=-b)
495  {
496  return ADf1b2_exp(x);
497  }
498  else if (value(x)>b)
499  {
500  return exp(b)*(double(1.)+double(2.)*(x-b))/(double(1.)+x-b);
501  }
502  else
503  {
504  return exp(-b)*(double(1.)-x-b)/(double(1.)+double(2.)*(-x-b));
505  }
506 }
507 
513 {
514  return ADf1b2_log(x);
515 }
516 
522 {
523  return ADf1b2_inv(x);
524 }
525 
530 double ADproduct_fun(double x,double y)
531 {
532  return x*y;
533 }
534 
539 double ADmult_add_fun(double x,double y)
540 {
541  return x*y+x;
542 }
543 
548 double ADdiv_fun(double x,double y)
549 {
550  return x/y;
551 }
552 
557 double ADsum_fun(double x,double y)
558 {
559  return x+y;
560 }
561 
566 double ADdiff_fun(double x,double y)
567 {
568  return x-y;
569 }
570 
575 double ADzero_fun(double x,double y)
576 {
577  return 0.0;
578 }
579 
584 double ADzero_fun(double x)
585 {
586  return 0.0;
587 }
588 
593 double AD1_fun(double x)
594 {
595  return 1.0;
596 }
597 
602 double AD1_fun(double x,double y)
603 {
604  return 1.0;
605 }
606 
611 double ADm1_fun(double x,double y)
612 {
613  return -1.0;
614 }
615 
620 double AD_id(double x)
621 {
622  return x;
623 }
624 
629 double ADfirst_arg(double x,double y)
630 {
631  return x;
632 }
633 
638 double ADsecond_arg_plus1(double x,double y)
639 {
640  return y+1;
641 }
642 
647 double ADsecond_arg(double x,double y)
648 {
649  return y;
650 }
651 
656 double AD_div_1(double x,double y)
657 {
658  return 1.0/y;
659 }
660 
665 double AD_div_2(double x,double y)
666 {
667  return -x/(y*y);
668 }
669 
674 double AD_div_22(double x,double y)
675 {
676  return 2.0*x/(y*y*y);
677 }
678 
683 double AD_div_122(double x,double y)
684 {
685  return 2.0/(y*y*y);
686 }
687 
692 double AD_div_12(double x,double y)
693 {
694  return -1.0/(y*y);
695 }
696 
701 double AD_div_11(double x,double y)
702 {
703  return 0.0;
704 }
705 
710 double AD_div_111(double x,double y)
711 {
712  return 0.0;
713 }
714 
719 double AD_div_112(double x,double y)
720 {
721  return 0.0;
722 }
723 
728 double AD_div_222(double x,double y)
729 {
730  return -6.0*x/(y*y*y*y);
731 }
732 
737  AD_div_222);
738 
743  ADzero_fun,"mult_add");
744 
750 {
751  return ADf1b2_mult_add(x,y);
752 }
753 
754 
759  ADzero_fun,"product");
760 
765  ADzero_fun);
766 
771 double ADsquare_fun(double x)
772 {
773  return x*x;
774 }
775 
780 double ADthree_square_fun(double x)
781 {
782  return 3.0*x*x;
783 }
784 
789 double ADcube_fun(double x)
790 {
791  return x*x*x;
792 }
793 
798 double ADtwo_id_fun(double x)
799 {
800  return 2.0*x;
801 }
802 
807 double ADsix_id_fun(double x)
808 {
809  return 6.0*x;
810 }
811 
816 double ADsix_fun(double x)
817 {
818  return 6.0;
819 }
820 
825 double ADtwo_fun(double x)
826 {
827  return 2.0;
828 }
829 
830 
832  "square");
833 
839 {
840  return ADf1b2_square(x);
841 }
842 
844  "cube");
845 
851 {
852  return ADf1b2_cube(x);
853 }
854 
855 /*
856 df1b2variable fourth(const df1b2variable& _z)
857 {
858  ADUNCONST(df1b2variable,z)
859  df1b2variable u;
860  double x=*z.get_u();
861  tmp.get_u()=x3*x.get_u();
862  double dfx=4.0*cube(x);
863  double d2fx=12.0*square(x);
864  double d3fx=24.0*x;
865 
866  double * xd=z.get_u_dot();
867  double * zd=u.get_u_dot();
868  *u.get_u()=f;
869  for (int i=0;i<df1b2variable::nvar;i++)
870  {
871  *zd++ =dfx * *xd++;
872  }
873 
874  if (!df1b2_gradlist::no_derivatives)
875  f1b2gradlist->write_pass1(&z,&u,dfx,d2f,d3f);
876  return(u);
877 }
878 */
879 
880 /*
881 df1b2variable operator * (const df1b2variable& x,const df1b2variable& y)
882 {
883  return ADf1b2_product(x,y);
884 }
885 
886 
887 df1b2variable operator / (const df1b2variable& x,const df1b2variable& y)
888 {
889  return ADf1b2_div(x,y);
890 }
891 */
892 
893 
894 /*
895 df1b2variable operator - (const df1b2variable& x,const df1b2variable& y)
896 {
897  return ADf1b2_diff(x,y);
898 }
899 */
900 
901 /*
902 df1b2variable operator * (double x,const df1b2variable& y)
903 {
904  return ADf1b2_product(x,y);
905 }
906 */
907 /*
908 df1b2variable operator * (const df1b2variable& x,double y)
909 {
910  return ADf1b2_product(y,x);
911 }
912 */
913 
914 // the boilerplate for defining the + operator
915 
920 /*
921 mydf1b2function2 ADf1b2_mysum(ADsum_fun,
922  AD1_fun,AD1_fun,
923  ADzero_fun,ADzero_fun,ADzero_fun,
924  ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun);
925 */
926 
928 
929 /*
930 df1b2function1 ADf1b2_pluseq(AD_id,AD1_fun,ADzero_fun,ADzero_fun);
931 
932 df1b2variable& df1b2variable::operator += (const df1b2variable& y)
933 {
934  return ADf1b2_pluseq(*this,y,1); // 1 so that special function is used
935 }
936 
937 
938 df1b2variable operator + (const df1b2variable& x,const df1b2variable& y)
939 {
940  return ADf1b2_sum(x,y);
941 }
942 */
943 
944 
945 
946 /*
947 df1b2variable mysum(const df1b2variable& x,const df1b2variable& y)
948 {
949  return ADf1b2_mysum(x,y);
950 }
951 */
952 
953 /*
954 df1b2variable operator + (double x,const df1b2variable& y)
955 {
956  return ADf1b2_sum(x,y);
957 }
958 */
959 /*
960 df1b2variable operator + (const df1b2variable& x,double y)
961 {
962  return ADf1b2_sum(x,y);
963 }
964 */
double ADthree_square_fun(double x)
Description not yet available.
Definition: df1b2fun.cpp:780
void set_reverse(void)
Definition: df1b2fun.h:714
static int num_initial_df1b2params_sav
Definition: df1b2fun.h:1370
static adpool * pool
Definition: df1b2fun.h:273
d3_array tan(const d3_array &arr3)
Returns d3_array results with computed tan from elements in arr3.
Definition: d3arr2a.cpp:73
df1b2_gradlist * f1b2gradlist
Definition: df1b2glo.cpp:49
initial_df1b2params(void)
Description not yet available.
Definition: df1b2fun.cpp:130
double ADtwo_id_fun(double x)
Description not yet available.
Definition: df1b2fun.cpp:798
virtual void add_to_list(void)
Description not yet available.
Definition: df1b2f15.cpp:36
void set_reverse(void)
Definition: df1b2fun.h:646
df1b2function2 ADf1b2_product(ADproduct_fun, ADsecond_arg, ADfirst_arg, ADzero_fun, AD1_fun, ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun,"product")
double AD_div_12(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:692
double ADzero_fun(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:575
double AD_minus_arg_inv2(double x)
Description not yet available.
Definition: df1b2fun.cpp:377
#define x
void rewind(void)
Rewind buffer.
Definition: df1b2f13.cpp:120
static const int adpool_stack_size
Definition: df1b2fun.h:281
double AD_df3_tan(double x)
Description not yet available.
Definition: df1b2fun.cpp:352
static void save_adpool_pointer(void)
Description not yet available.
Definition: df1b2fun.cpp:40
double AD_minus6_arg_inv4(double x)
Description not yet available.
Definition: df1b2fun.cpp:395
static int passnumber
Definition: df1b2fun.h:289
double AD_div_1(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:656
double ADfirst_arg(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:629
void set_reverse(void)
Definition: df1b2fun.h:567
double ADsecond_arg_plus1(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:638
void restore_end(void)
Restore end.
Definition: df1b2f13.cpp:195
df1_one_variable atan(const df1_one_variable &x)
Definition: df11fun.cpp:312
double ADdiff_fun(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:566
double ADsecond_arg(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:647
double AD_div_22(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:674
d3_array sin(const d3_array &arr3)
Returns d3_array results with computed sin from elements in arr3.
Definition: d3arr2a.cpp:43
double AD_div_222(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:728
void save_end(void)
Description not yet available.
Definition: df1b2f10.cpp:225
exitptr ad_exit
Definition: gradstrc.cpp:53
double ADsquare_fun(double x)
Description not yet available.
Definition: df1b2fun.cpp:771
void save_end(void)
Description not yet available.
Definition: df1b2f14.cpp:214
Description not yet available.
Definition: df1b2fun.h:745
d3_array cube(const d3_array &m)
Description not yet available.
Definition: d3arr5.cpp:17
static initial_df1b2params ** varsptr
Definition: df1b2fun.h:1367
double AD1_fun(double x)
Description not yet available.
Definition: df1b2fun.cpp:593
double ADsum_fun(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:557
double AD_div_122(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:683
double AD_df2_tan(double x)
Description not yet available.
Definition: df1b2fun.cpp:332
double ADdiv_fun(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:548
double ADm1_fun(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:611
df1b2function1 ADf1b2_assign(AD_id, AD1_fun, ADzero_fun, ADzero_fun)
df1b2variable & operator/=(const df1b2variable &v)
Description not yet available.
Definition: df1b2fun.cpp:443
Description not yet available.
Definition: df1b2fun.h:266
double AD_2arg_inv3(double x)
Description not yet available.
Definition: df1b2fun.cpp:386
static void save_varsptr(void)
Description not yet available.
Definition: df1b2fun.cpp:70
This is a function object for a function of one variable which stores the functions which calculate t...
Definition: df1b2fun.h:407
static int adpool_stack_pointer
Definition: df1b2fun.h:285
double ADproduct_fun(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:530
fixed_smartlist nlist
Definition: df1b2fun.h:754
d3_array mfexp(const d3_array &m)
Author: David Fournier Copyright (c) 2008-2012 Regents of the University of California.
Definition: d3arr7.cpp:10
double AD_df1_tan(double x)
Description not yet available.
Definition: df1b2fun.cpp:323
static int num_initial_df1b2params
Definition: df1b2fun.h:1369
df1b2function1 ADf1b2_inv(AD_arg_inv, AD_minus_arg_inv2, AD_2arg_inv3, AD_minus6_arg_inv4)
double ADsix_id_fun(double x)
Description not yet available.
Definition: df1b2fun.cpp:807
Description not yet available.
Definition: df1b2fun.h:602
prnstream & endl(prnstream &)
df1b2function1 ADf1b2_cube(ADcube_fun, ADthree_square_fun, ADsix_id_fun, ADsix_fun,"cube")
test_smartlist list
Definition: df1b2fun.h:753
df1b2variable & operator*=(const df1b2variable &v)
Description not yet available.
Definition: df1b2fun.cpp:434
double AD_div_2(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:665
void restore_end(void)
Set to end of file ptr.
Definition: df1b2f14.cpp:192
ADrfptr pf
Definition: df1b2fun.h:595
df1b2function2 ADf1b2_sum(ADsum_fun, AD1_fun, AD1_fun, ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun,"sum")
double AD_div_112(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:719
fixed_smartlist2 nlist3
Definition: df1b2fun.h:758
fixed_list_entry * buffer
Definition: df1b2fun.h:624
df1b2variable mult_add(const df1b2variable &x, const df1b2variable &y)
Description not yet available.
Definition: df1b2fun.cpp:749
df1b2function2 ADf1b2_mult_add(ADmult_add_fun, ADsecond_arg_plus1, ADfirst_arg, ADzero_fun, AD1_fun, ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun,"mult_add")
fixed_smartlist2 nlist2
Definition: df1b2fun.h:756
df1b2function1 ADf1b2_square(ADsquare_fun, ADtwo_id_fun, ADtwo_fun, ADzero_fun,"square")
d3_array exp(const d3_array &arr3)
Returns d3_array results with computed exp from elements in arr3.
Definition: d3arr2a.cpp:28
double ncos(double x)
Definition: df1b2fun.cpp:294
double ADmult_add_fun(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:539
double AD_df2_atan(double x)
Description not yet available.
Definition: df1b2fun.cpp:314
void set_forward(void)
Definition: df1b2fun.h:644
double AD_id(double x)
Description not yet available.
Definition: df1b2fun.cpp:620
Description not yet available.
Definition: df1b2fun.h:431
double ADtwo_fun(double x)
Description not yet available.
Definition: df1b2fun.cpp:825
double AD_df1_atan(double x)
Description not yet available.
Definition: df1b2fun.cpp:305
void(** ADprfptr)(void)
Definition: df1b2fun.cpp:138
test_smartlist list3
Definition: df1b2fun.h:757
d3_array cos(const d3_array &arr3)
Returns d3_array results with computed cos from elements in arr3.
Definition: d3arr2a.cpp:58
double ADsix_fun(double x)
Description not yet available.
Definition: df1b2fun.cpp:816
static unsigned int nvar
Definition: df1b2fun.h:290
void(* ADrfptr)(void)
Definition: df1b2fun.cpp:139
df1b2function2 ADf1b2_diff(ADdiff_fun, AD1_fun, ADm1_fun, ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun, ADzero_fun)
int eof(void)
Definition: df1b2fun.h:636
df1b2function1 ADf1b2_log(::log, AD_arg_inv, AD_minus_arg_inv2, AD_2arg_inv3)
Description not yet available.
fixed_list_entry * bptr
Definition: df1b2fun.h:626
double ADcube_fun(double x)
Description not yet available.
Definition: df1b2fun.cpp:789
double nsin(double x)
Definition: df1b2fun.cpp:293
static unsigned int adpool_nvar_stack[]
Definition: df1b2fun.h:284
double AD_arg_inv(double x)
Description not yet available.
Definition: df1b2fun.cpp:368
double AD_div_11(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:701
void save_end(void)
Description not yet available.
Definition: df1b2f13.cpp:220
df1b2function1 ADf1b2_atan(::atan,::AD_df1_atan,::AD_df2_atan,::AD_df3_atan,"atan")
df1b2function1 ADf1b2_tan(::tan,::AD_df1_tan,::AD_df2_tan,::AD_df3_tan,"tan")
Description not yet available.
Definition: df1b2fun.h:1346
static initial_df1b2params ** varsptr_sav
Definition: df1b2fun.h:1368
dvector value(const df1_one_vector &v)
Definition: df11fun.cpp:69
df1b2function1 ADf1b2_exp(::exp,::exp,::exp,::exp,"exp")
void set_forward(void)
Definition: df1b2fun.h:565
df1b2function1 ADf1b2_cos(::cos,::nsin,::ncos,::sin)
static adpool * adpool_stack[]
Definition: df1b2fun.h:283
df1b2function1 ADf1b2_sin(::sin,::cos,::nsin,::ncos,"sin")
df1b2function2 ADf1b2_div(ADdiv_fun, AD_div_1, AD_div_2, AD_div_11, AD_div_12, AD_div_22, AD_div_111, AD_div_112, AD_div_122, AD_div_222)
static void restore_varsptr(void)
Description not yet available.
Definition: df1b2fun.cpp:90
double AD_div_111(double x, double y)
Description not yet available.
Definition: df1b2fun.cpp:710
double AD_df3_atan(double x)
Description not yet available.
Definition: df1b2fun.cpp:342
test_smartlist list2
Definition: df1b2fun.h:755
double square(const double value)
Return square of value; constant object.
Definition: d3arr4.cpp:16
df1_one_variable inv(const df1_one_variable &x)
Definition: df11fun.cpp:384
void restore_end(void)
Description not yet available.
Definition: df1b2f10.cpp:209
d3_array log(const d3_array &arr3)
Author: David Fournier Copyright (c) 2008-2012 Regents of the University of California.
Definition: d3arr2a.cpp:13
void df1b2_gradcalc1(void)
Description not yet available.
Definition: df1b2fun.cpp:145
static void restore_adpool_pointer(void)
Description not yet available.
Definition: df1b2fun.cpp:55
int kbhit(void)
Definition: df1b2fun.cpp:15
void rewind(void)
Description not yet available.
Definition: df1b2f10.cpp:127