Jspice3
Main Page
Data Structures
Files
File List
Globals
atander.c
Go to the documentation of this file.
1
/**********
2
Copyright 1990 Regents of the University of California. All rights reserved.
3
Author: 1989 Jaijeet S. Roychowdhury
4
**********/
5
6
#include "
spice.h
"
7
#include <math.h>
8
9
#define JOB char
10
#include "
distodef.h
"
11
12
/*
13
* AtanDeriv computes the partial derivatives of the arctangent
14
* function where the argument to the atan function is itself a
15
* function of three variables p, q, and r.
16
*/
17
18
void
AtanDeriv
(
new
, old)
19
Dderivs
*new, *old;
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
}
Dderivs::d2_pr
double d2_pr
Definition:
distodef.h:75
Dderivs::d3_pr2
double d3_pr2
Definition:
distodef.h:83
distodef.h
Dderivs::d3_pq2
double d3_pq2
Definition:
distodef.h:81
Dderivs::d3_p3
double d3_p3
Definition:
distodef.h:76
Dderivs::d1_q
double d1_q
Definition:
distodef.h:68
Dderivs::d2_pq
double d2_pq
Definition:
distodef.h:73
Dderivs::d3_pqr
double d3_pqr
Definition:
distodef.h:85
Dderivs::d2_r2
double d2_r2
Definition:
distodef.h:72
AtanDeriv
void AtanDeriv(Dderivs *new, Dderivs *old)
Definition:
atander.c:18
Dderivs::d3_p2r
double d3_p2r
Definition:
distodef.h:80
Dderivs::d2_qr
double d2_qr
Definition:
distodef.h:74
Dderivs::d1_r
double d1_r
Definition:
distodef.h:69
Dderivs::d1_p
double d1_p
Definition:
distodef.h:67
Dderivs::d3_qr2
double d3_qr2
Definition:
distodef.h:84
Dderivs::d3_q3
double d3_q3
Definition:
distodef.h:77
spice.h
Dderivs::d3_q2r
double d3_q2r
Definition:
distodef.h:82
Dderivs::value
double value
Definition:
distodef.h:66
Dderivs
Definition:
distodef.h:64
Dderivs::d3_r3
double d3_r3
Definition:
distodef.h:78
Dderivs::d3_p2q
double d3_p2q
Definition:
distodef.h:79
Dderivs::d2_q2
double d2_q2
Definition:
distodef.h:71
Dderivs::d2_p2
double d2_p2
Definition:
distodef.h:70
EqualDeriv
void EqualDeriv(Dderivs *new, Dderivs *old)
Definition:
equalder.c:17
src
lib
dev
disto
atander.c
Generated by
1.8.11