Jspice3
Main Page
Data Structures
Files
File List
Globals
divderiv.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
* DivDeriv computes the partial derivatives of the division
14
* function where the arguments to the function are
15
* functions of three variables p, q, and r.
16
*/
17
18
void
19
DivDeriv
(
new
, old1, old2)
20
Dderivs
*new, *old1, *old2;
21
{
22
23
Dderivs
num, den;
24
25
EqualDeriv
(&num, old1);
26
EqualDeriv
(&den, old2);
27
28
new
->value = num.
value
/den.
value
;
29
new
->d1_p = (num.
d1_p
- num.
value
*den.
d1_p
/den.
value
)/den.
value
;
30
new->d1_q = (num.
d1_q
- num.
value
*den.
d1_q
/den.
value
)/den.
value
;
31
new
->d1_r = (num.
d1_r
- num.
value
*den.
d1_r
/den.
value
)/den.
value
;
32
new->d2_p2 = (num.
d2_p2
- den.
d1_p
*new->d1_p - new->value*den.
d2_p2
+ den.
d1_p
*(new->value*den.
d1_p
- num.
d1_p
)/den.
value
)/den.
value
;
33
new->d2_q2 = (num.
d2_q2
- den.
d1_q
*new->d1_q - new->value*den.
d2_q2
+ den.
d1_q
*(new->value*den.
d1_q
- num.
d1_q
)/den.
value
)/den.
value
;
34
new->d2_r2 = (num.
d2_r2
- den.
d1_r
*new->d1_r - new->value*den.
d2_r2
+ den.
d1_r
*(new->value*den.
d1_r
- num.
d1_r
)/den.
value
)/den.
value
;
35
new->d2_pq = (num.
d2_pq
- den.
d1_q
*new->d1_p - new->value*den.
d2_pq
+ den.
d1_p
*(new->value*den.
d1_q
- num.
d1_q
)/den.
value
)/den.
value
;
36
new->d2_qr = (num.
d2_qr
- den.
d1_r
*new->d1_q - new->value*den.
d2_qr
+ den.
d1_q
*(new->value*den.
d1_r
- num.
d1_r
)/den.
value
)/den.
value
;
37
new->d2_pr = (num.
d2_pr
- den.
d1_r
*new->d1_p - new->value*den.
d2_pr
+ den.
d1_p
*(new->value*den.
d1_r
- num.
d1_r
)/den.
value
)/den.
value
;
38
new->d3_p3 = (-den.
d1_p
*new->d2_p2 + num.
d3_p3
-den.
d2_p2
*new->d1_p - den.
d1_p
*new->d2_p2 - new->d1_p*den.
d2_p2
- new->value*den.
d3_p3
+
39
(den.
d1_p
*(new->d1_p*den.
d1_p
+ new->value*den.
d2_p2
- num.
d2_p2
) + (
new
->value*
40
den.
d1_p
- num.
d1_p
)*(den.
d2_p2
- den.
d1_p
*den.
d1_p
/den.
value
))/den.
value
)/den.
value
;
41
new
->d3_q3 = (-den.
d1_q
*
new
->d2_q2 + num.
d3_q3
-den.
d2_q2
*
new
->d1_q - den.
d1_q
*
new
->d2_q2 -
new
->d1_q*den.
d2_q2
-
new
->value*den.
d3_q3
+
42
(den.
d1_q
*(
new
->d1_q*den.
d1_q
+
new
->value*den.
d2_q2
- num.
d2_q2
) + (new->value*
43
den.
d1_q
- num.
d1_q
)*(den.
d2_q2
- den.
d1_q
*den.
d1_q
/den.
value
))/den.
value
)/den.
value
;
44
new->d3_r3 = (-den.
d1_r
*new->d2_r2 + num.
d3_r3
-den.
d2_r2
*new->d1_r - den.
d1_r
*new->d2_r2 - new->d1_r*den.
d2_r2
- new->value*den.
d3_r3
+
45
(den.
d1_r
*(new->d1_r*den.
d1_r
+ new->value*den.
d2_r2
- num.
d2_r2
) + (
new
->value*
46
den.
d1_r
- num.
d1_r
)*(den.
d2_r2
- den.
d1_r
*den.
d1_r
/den.
value
))/den.
value
)/den.
value
;
47
new
->d3_p2r = (-den.
d1_r
*
new
->d2_p2 + num.
d3_p2r
-den.
d2_pr
*
new
->d1_p - den.
d1_p
*
new
->d2_pr -
new
->d1_r*den.
d2_p2
-
new
->value*den.
d3_p2r
+
48
(den.
d1_p
*(
new
->d1_r*den.
d1_p
+
new
->value*den.
d2_pr
- num.
d2_pr
) + (new->value*
49
den.
d1_p
- num.
d1_p
)*(den.
d2_pr
- den.
d1_p
*den.
d1_r
/den.
value
))/den.
value
)/den.
value
;
50
new->d3_p2q = (-den.
d1_q
*new->d2_p2 + num.
d3_p2q
-den.
d2_pq
*new->d1_p - den.
d1_p
*new->d2_pq - new->d1_q*den.
d2_p2
- new->value*den.
d3_p2q
+
51
(den.
d1_p
*(new->d1_q*den.
d1_p
+ new->value*den.
d2_pq
- num.
d2_pq
) + (
new
->value*
52
den.
d1_p
- num.
d1_p
)*(den.
d2_pq
- den.
d1_p
*den.
d1_q
/den.
value
))/den.
value
)/den.
value
;
53
new
->d3_q2r = (-den.
d1_r
*
new
->d2_q2 + num.
d3_q2r
-den.
d2_qr
*
new
->d1_q - den.
d1_q
*
new
->d2_qr -
new
->d1_r*den.
d2_q2
-
new
->value*den.
d3_q2r
+
54
(den.
d1_q
*(
new
->d1_r*den.
d1_q
+
new
->value*den.
d2_qr
- num.
d2_qr
) + (new->value*
55
den.
d1_q
- num.
d1_q
)*(den.
d2_qr
- den.
d1_q
*den.
d1_r
/den.
value
))/den.
value
)/den.
value
;
56
new->d3_pq2 = (-den.
d1_p
*new->d2_q2 + num.
d3_pq2
-den.
d2_pq
*new->d1_q - den.
d1_q
*new->d2_pq - new->d1_p*den.
d2_q2
- new->value*den.
d3_pq2
+
57
(den.
d1_q
*(new->d1_p*den.
d1_q
+ new->value*den.
d2_pq
- num.
d2_pq
) + (
new
->value*
58
den.
d1_q
- num.
d1_q
)*(den.
d2_pq
- den.
d1_q
*den.
d1_p
/den.
value
))/den.
value
)/den.
value
;
59
new
->d3_pr2 = (-den.
d1_p
*
new
->d2_r2 + num.
d3_pr2
-den.
d2_pr
*
new
->d1_r - den.
d1_r
*
new
->d2_pr -
new
->d1_p*den.
d2_r2
-
new
->value*den.
d3_pr2
+
60
(den.
d1_r
*(
new
->d1_p*den.
d1_r
+
new
->value*den.
d2_pr
- num.
d2_pr
) + (new->value*
61
den.
d1_r
- num.
d1_r
)*(den.
d2_pr
- den.
d1_r
*den.
d1_p
/den.
value
))/den.
value
)/den.
value
;
62
new->d3_qr2 = (-den.
d1_q
*new->d2_r2 + num.
d3_qr2
-den.
d2_qr
*new->d1_r - den.
d1_r
*new->d2_qr - new->d1_q*den.
d2_r2
- new->value*den.
d3_qr2
+
63
(den.
d1_r
*(new->d1_q*den.
d1_r
+ new->value*den.
d2_qr
- num.
d2_qr
) + (
new
->value*
64
den.
d1_r
- num.
d1_r
)*(den.
d2_qr
- den.
d1_r
*den.
d1_q
/den.
value
))/den.
value
)/den.
value
;
65
new
->d3_pqr = (-den.
d1_r
*
new
->d2_pq + num.
d3_pqr
-den.
d2_qr
*
new
->d1_p - den.
d1_q
*
new
->d2_pr -
new
->d1_r*den.
d2_pq
-
new
->value*den.
d3_pqr
+
66
(den.
d1_p
*(
new
->d1_r*den.
d1_q
+
new
->value*den.
d2_qr
- num.
d2_qr
) + (new->value*
67
den.
d1_q
- num.
d1_q
)*(den.
d2_pr
- den.
d1_p
*den.
d1_r
/den.
value
))/den.
value
)/den.
value
;
68
}
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
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
DivDeriv
void DivDeriv(Dderivs *new, Dderivs *old1, Dderivs *old2)
Definition:
divderiv.c:19
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
divderiv.c
Generated by
1.8.11