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

Go to the source code of this file.

Macros

#define JOB   char
 

Functions

void PowDeriv (Dderivs *new, Dderivs *old, double emm)
 

Macro Definition Documentation

#define JOB   char

Definition at line 9 of file powderiv.c.

Function Documentation

void PowDeriv ( Dderivs new,
Dderivs old,
double  emm 
)

Definition at line 19 of file powderiv.c.

23 {
24 Dderivs temp;
25 
26 EqualDeriv(&temp, old);
27 
28 new->value = pow(temp.value, emm);
29 new->d1_p = emm*new->value/temp.value*temp.d1_p;
30 new->d1_q = emm*new->value/temp.value*temp.d1_q;
31 new->d1_r = emm*new->value/temp.value*temp.d1_r;
32 new->d2_p2 = emm*new->value/temp.value*((emm-1)/temp.value*temp.d1_p*temp.d1_p + temp.d2_p2);
33 new->d2_q2 = emm*new->value/temp.value*((emm-1)/temp.value*temp.d1_q*temp.d1_q + temp.d2_q2);
34 new->d2_r2 = emm*new->value/temp.value*((emm-1)/temp.value*temp.d1_r*temp.d1_r + temp.d2_r2);
35 new->d2_pq = emm*new->value/temp.value*((emm-1)/temp.value*temp.d1_p*temp.d1_q + temp.d2_pq);
36 new->d2_qr = emm*new->value/temp.value*((emm-1)/temp.value*temp.d1_q*temp.d1_r + temp.d2_qr);
37 new->d2_pr = emm*new->value/temp.value*((emm-1)/temp.value*temp.d1_p*temp.d1_r + temp.d2_pr);
38 new->d3_p3 = emm*(emm-1)*new->value/(temp.value*temp.value)*((emm-2)/temp.value*temp.d1_p*
39  temp.d1_p*temp.d1_p + temp.d1_p*temp.d2_p2 + temp.d1_p*temp.d2_p2 + temp.d1_p
40  *temp.d2_p2) + emm*new->value/temp.value*temp.d3_p3;
41 new->d3_q3 = emm*(emm-1)*new->value/(temp.value*temp.value)*((emm-2)/temp.value*temp.d1_q*
42  temp.d1_q*temp.d1_q + temp.d1_q*temp.d2_q2 + temp.d1_q*temp.d2_q2 + temp.d1_q
43  *temp.d2_q2) + emm*new->value/temp.value*temp.d3_q3;
44 new->d3_r3 = emm*(emm-1)*new->value/(temp.value*temp.value)*((emm-2)/temp.value*temp.d1_r*
45  temp.d1_r*temp.d1_r + temp.d1_r*temp.d2_r2 + temp.d1_r*temp.d2_r2 + temp.d1_r
46  *temp.d2_r2) + emm*new->value/temp.value*temp.d3_r3;
47 new->d3_p2r = emm*(emm-1)*new->value/(temp.value*temp.value)*((emm-2)/temp.value*temp.d1_p*
48  temp.d1_p*temp.d1_r + temp.d1_p*temp.d2_pr + temp.d1_p*temp.d2_pr + temp.d1_r
49  *temp.d2_p2) + emm*new->value/temp.value*temp.d3_p2r;
50 new->d3_p2q = emm*(emm-1)*new->value/(temp.value*temp.value)*((emm-2)/temp.value*temp.d1_p*
51  temp.d1_p*temp.d1_q + temp.d1_p*temp.d2_pq + temp.d1_p*temp.d2_pq + temp.d1_q
52  *temp.d2_p2) + emm*new->value/temp.value*temp.d3_p2q;
53 new->d3_q2r = emm*(emm-1)*new->value/(temp.value*temp.value)*((emm-2)/temp.value*temp.d1_q*
54  temp.d1_q*temp.d1_r + temp.d1_q*temp.d2_qr + temp.d1_q*temp.d2_qr + temp.d1_r
55  *temp.d2_q2) + emm*new->value/temp.value*temp.d3_q2r;
56 new->d3_pq2 = emm*(emm-1)*new->value/(temp.value*temp.value)*((emm-2)/temp.value*temp.d1_q*
57  temp.d1_q*temp.d1_p + temp.d1_q*temp.d2_pq + temp.d1_q*temp.d2_pq + temp.d1_p
58  *temp.d2_q2) + emm*new->value/temp.value*temp.d3_pq2;
59 new->d3_pr2 = emm*(emm-1)*new->value/(temp.value*temp.value)*((emm-2)/temp.value*temp.d1_r*
60  temp.d1_r*temp.d1_p + temp.d1_r*temp.d2_pr + temp.d1_r*temp.d2_pr + temp.d1_p
61  *temp.d2_r2) + emm*new->value/temp.value*temp.d3_pr2;
62 new->d3_qr2 = emm*(emm-1)*new->value/(temp.value*temp.value)*((emm-2)/temp.value*temp.d1_r*
63  temp.d1_r*temp.d1_q + temp.d1_r*temp.d2_qr + temp.d1_r*temp.d2_qr + temp.d1_q
64  *temp.d2_r2) + emm*new->value/temp.value*temp.d3_qr2;
65 new->d3_pqr = emm*(emm-1)*new->value/(temp.value*temp.value)*((emm-2)/temp.value*temp.d1_p*
66  temp.d1_q*temp.d1_r + temp.d1_p*temp.d2_qr + temp.d1_q*temp.d2_pr + temp.d1_r
67  *temp.d2_pq) + emm*new->value/temp.value*temp.d3_pqr;
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