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

Go to the source code of this file.

Macros

#define JOB   char
 

Functions

void DivDeriv (Dderivs *new, Dderivs *old1, Dderivs *old2)
 

Macro Definition Documentation

#define JOB   char

Definition at line 9 of file divderiv.c.

Function Documentation

void DivDeriv ( Dderivs new,
Dderivs old1,
Dderivs old2 
)

Definition at line 19 of file divderiv.c.

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 }
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