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