powderiv.c

来自「ngspice又一个电子CAD仿真软件代码.功能更全」· C语言 代码 · 共 82 行

C
82
字号
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1989 Jaijeet S. Roychowdhury**********/#include "ngspice.h"#include "distodef.h"#include "suffix.h"/* * PowDeriv computes the partial derivatives of the x^^m * function where the argument to the function is itself a * function of three variables p, q, and r. m is a constant. */void PowDeriv(Dderivs *new, Dderivs *old, double emm){    Dderivs temp;    EqualDeriv(&temp, old);    new->value = pow(temp.value, emm);    new->d1_p = emm * new->value / temp.value * temp.d1_p;    new->d1_q = emm * new->value / temp.value * temp.d1_q;    new->d1_r = emm * new->value / temp.value * temp.d1_r;    new->d2_p2 = emm * new->value / temp.value *	((emm-1) / temp.value * temp.d1_p * temp.d1_p + temp.d2_p2);    new->d2_q2 = emm * new->value / temp.value *	((emm-1) / temp.value * temp.d1_q * temp.d1_q + temp.d2_q2);    new->d2_r2 = emm * new->value / temp.value *	((emm-1) / temp.value * temp.d1_r * temp.d1_r + temp.d2_r2);    new->d2_pq = emm * new->value / temp.value *	((emm-1) / temp.value * temp.d1_p * temp.d1_q + temp.d2_pq);    new->d2_qr = emm * new->value / temp.value *	((emm-1) / temp.value * temp.d1_q * temp.d1_r + temp.d2_qr);    new->d2_pr = emm * new->value / temp.value *	((emm-1) / temp.value * temp.d1_p * temp.d1_r + temp.d2_pr);    new->d3_p3 = emm * (emm-1) * new->value / (temp.value * temp.value) *	((emm-2) / temp.value * temp.d1_p * 	 temp.d1_p * temp.d1_p + temp.d1_p * temp.d2_p2 + temp.d1_p *	 temp.d2_p2 + temp.d1_p * temp.d2_p2) + emm * new->value /	temp.value * temp.d3_p3;    new->d3_q3 = emm * (emm-1) * new->value / (temp.value * temp.value) *	((emm-2) / temp.value * temp.d1_q * 	 temp.d1_q * temp.d1_q + temp.d1_q * temp.d2_q2 + temp.d1_q *	 temp.d2_q2 + temp.d1_q * temp.d2_q2) + emm * new->value /	temp.value * temp.d3_q3;    new->d3_r3 = emm * (emm-1) * new->value / (temp.value * temp.value) *	((emm-2) / temp.value * temp.d1_r *temp.d1_r * temp.d1_r +	 temp.d1_r * temp.d2_r2 + temp.d1_r * temp.d2_r2 + temp.d1_r *	 temp.d2_r2) + emm * new->value / temp.value * temp.d3_r3;    new->d3_p2r = emm * (emm-1) * new->value / (temp.value * temp.value) *	((emm-2) / temp.value * temp.d1_p * temp.d1_p * temp.d1_r +	 temp.d1_p * temp.d2_pr + temp.d1_p * temp.d2_pr + temp.d1_r *	 temp.d2_p2) + emm * new->value / temp.value * temp.d3_p2r;    new->d3_p2q = emm * (emm-1) * new->value / (temp.value * temp.value) *	((emm-2) / temp.value * temp.d1_p * temp.d1_p * temp.d1_q +	 temp.d1_p * temp.d2_pq + temp.d1_p * temp.d2_pq + temp.d1_q *	 temp.d2_p2) + emm * new->value / temp.value * temp.d3_p2q;    new->d3_q2r = emm * (emm-1) * new->value / (temp.value * temp.value) *	((emm-2) / temp.value * temp.d1_q * temp.d1_q * temp.d1_r +	 temp.d1_q * temp.d2_qr + temp.d1_q * temp.d2_qr + temp.d1_r *	 temp.d2_q2) + emm * new->value / temp.value * temp.d3_q2r;    new->d3_pq2 = emm * (emm-1) * new->value / (temp.value * temp.value) *	((emm-2) / temp.value * temp.d1_q * temp.d1_q * temp.d1_p +	 temp.d1_q * temp.d2_pq + temp.d1_q * temp.d2_pq + temp.d1_p *	 temp.d2_q2) + emm * new->value / temp.value * temp.d3_pq2;    new->d3_pr2 = emm * (emm-1) * new->value / (temp.value * temp.value) *	((emm-2) / temp.value * temp.d1_r * temp.d1_r * temp.d1_p +	 temp.d1_r * temp.d2_pr + temp.d1_r * temp.d2_pr + temp.d1_p *	 temp.d2_r2) + emm * new->value / temp.value * temp.d3_pr2;    new->d3_qr2 = emm * (emm-1) * new->value / (temp.value * temp.value) *	((emm-2) / temp.value * temp.d1_r * temp.d1_r * temp.d1_q +	 temp.d1_r * temp.d2_qr + temp.d1_r * temp.d2_qr + temp.d1_q *	 temp.d2_r2) + emm * new->value / temp.value * temp.d3_qr2;    new->d3_pqr = emm * (emm-1) * new->value / (temp.value * temp.value) *	((emm-2) / temp.value * temp.d1_p * temp.d1_q * temp.d1_r +	 temp.d1_p * temp.d2_qr + temp.d1_q * temp.d2_pr + temp.d1_r *	 temp.d2_pq) + emm * new->value / temp.value * temp.d3_pqr;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?