Jspice3
atander.c File Reference
#include "spice.h"
#include <math.h>
#include "distodef.h"
Include dependency graph for atander.c:

Go to the source code of this file.

Macros

#define JOB   char
 

Functions

void AtanDeriv (Dderivs *new, Dderivs *old)
 

Macro Definition Documentation

#define JOB   char

Definition at line 9 of file atander.c.

Function Documentation

void AtanDeriv ( Dderivs new,
Dderivs old 
)

Definition at line 18 of file atander.c.

20 {
21 
22 Dderivs temp;
23 
24 EqualDeriv(&temp, old);
25 
26 new->value = atan( temp.value);
27 new->d1_p = temp.d1_p/(1+temp.value*temp.value);
28 new->d1_q = temp.d1_q/(1+temp.value*temp.value);
29 new->d1_r = temp.d1_r/(1+temp.value*temp.value);
30 new->d2_p2 = temp.d2_p2/(1+temp.value*temp.value) - 2*temp.value*new->d1_p*new->d1_p;
31 new->d2_q2 = temp.d2_q2/(1+temp.value*temp.value) - 2*temp.value*new->d1_q*new->d1_q;
32 new->d2_r2 = temp.d2_r2/(1+temp.value*temp.value) - 2*temp.value*new->d1_r*new->d1_r;
33 new->d2_pq = temp.d2_pq/(1+temp.value*temp.value) - 2*temp.value*new->d1_p*new->d1_q;
34 new->d2_qr = temp.d2_qr/(1+temp.value*temp.value) - 2*temp.value*new->d1_q*new->d1_r;
35 new->d2_pr = temp.d2_pr/(1+temp.value*temp.value) - 2*temp.value*new->d1_p*new->d1_r;
36 new->d3_p3 = (temp.d3_p3 - temp.d2_p2*new->d1_p*2*temp.value)
37  /(1+temp.value*temp.value) - 2*(new->d1_p*new->d1_p*temp.d1_p + temp.value*(
38  new->d2_p2*new->d1_p + new->d2_p2*new->d1_p));
39 new->d3_q3 = (temp.d3_q3 - temp.d2_q2*new->d1_q*2*temp.value)
40  /(1+temp.value*temp.value) - 2*(new->d1_q*new->d1_q*temp.d1_q + temp.value*(
41  new->d2_q2*new->d1_q + new->d2_q2*new->d1_q));
42 new->d3_r3 = (temp.d3_r3 - temp.d2_r2*new->d1_r*2*temp.value)
43  /(1+temp.value*temp.value) - 2*(new->d1_r*new->d1_r*temp.d1_r + temp.value*(
44  new->d2_r2*new->d1_r + new->d2_r2*new->d1_r));
45 new->d3_p2r = (temp.d3_p2r - temp.d2_p2*new->d1_r*2*temp.value)
46  /(1+temp.value*temp.value) - 2*(new->d1_p*new->d1_p*temp.d1_r + temp.value*(
47  new->d2_pr*new->d1_p + new->d2_pr*new->d1_p));
48 new->d3_p2q = (temp.d3_p2q - temp.d2_p2*new->d1_q*2*temp.value)
49  /(1+temp.value*temp.value) - 2*(new->d1_p*new->d1_p*temp.d1_q + temp.value*(
50  new->d2_pq*new->d1_p + new->d2_pq*new->d1_p));
51 new->d3_q2r = (temp.d3_q2r - temp.d2_q2*new->d1_r*2*temp.value)
52  /(1+temp.value*temp.value) - 2*(new->d1_q*new->d1_q*temp.d1_r + temp.value*(
53  new->d2_qr*new->d1_q + new->d2_qr*new->d1_q));
54 new->d3_pq2 = (temp.d3_pq2 - temp.d2_q2*new->d1_p*2*temp.value)
55  /(1+temp.value*temp.value) - 2*(new->d1_q*new->d1_q*temp.d1_p + temp.value*(
56  new->d2_pq*new->d1_q + new->d2_pq*new->d1_q));
57 new->d3_pr2 = (temp.d3_pr2 - temp.d2_r2*new->d1_p*2*temp.value)
58  /(1+temp.value*temp.value) - 2*(new->d1_r*new->d1_r*temp.d1_p + temp.value*(
59  new->d2_pr*new->d1_r + new->d2_pr*new->d1_r));
60 new->d3_qr2 = (temp.d3_qr2 - temp.d2_r2*new->d1_q*2*temp.value)
61  /(1+temp.value*temp.value) - 2*(new->d1_r*new->d1_r*temp.d1_q + temp.value*(
62  new->d2_qr*new->d1_r + new->d2_qr*new->d1_r));
63 new->d3_pqr = (temp.d3_pqr - temp.d2_pq*new->d1_r*2*temp.value)
64  /(1+temp.value*temp.value) - 2*(new->d1_p*new->d1_q*temp.d1_r + temp.value*(
65  new->d2_pr*new->d1_q + new->d2_qr*new->d1_p));
66  }
double d2_pr
Definition: distodef.h:75
double d3_pr2
Definition: distodef.h:83
double d3_pq2
Definition: distodef.h:81
double d3_p3
Definition: distodef.h:76
double d1_q
Definition: distodef.h:68
double d2_pq
Definition: distodef.h:73
double d3_pqr
Definition: distodef.h:85
double d2_r2
Definition: distodef.h:72
double d3_p2r
Definition: distodef.h:80
double d2_qr
Definition: distodef.h:74
double d1_r
Definition: distodef.h:69
double d1_p
Definition: distodef.h:67
double d3_qr2
Definition: distodef.h:84
double d3_q3
Definition: distodef.h:77
double d3_q2r
Definition: distodef.h:82
double value
Definition: distodef.h:66
double d3_r3
Definition: distodef.h:78
double d3_p2q
Definition: distodef.h:79
double d2_q2
Definition: distodef.h:71
double d2_p2
Definition: distodef.h:70
void EqualDeriv(Dderivs *new, Dderivs *old)
Definition: equalder.c:17