cfunc.mod
来自「ngspice又一个电子CAD仿真软件代码.功能更全」· MOD 代码 · 共 78 行
MOD
78 行
/* $Id: cfunc.mod,v 1.4 2005/08/23 08:21:02 pnenzi Exp $ */#define TS 0#define VS 1void ucm_real_to_v (ARGS){ double *t, *v; double *in; /*double out;*/ in = INPUT(in); if(INIT) { t = (void *) cm_event_alloc(TS, 2 * sizeof(double)); v = (void *) cm_event_alloc(VS, 2 * sizeof(double)); t = (void *) cm_event_get_ptr(TS, 0); v = (void *) cm_event_get_ptr(VS, 0); t[0] = -2.0; t[1] = -1.0; v[0] = *in; v[1] = *in; } else { t = (void *) cm_event_get_ptr(TS, 0); v = (void *) cm_event_get_ptr(VS, 0); } switch(CALL_TYPE) { case ANALOG: if(TIME == 0.0) { OUTPUT(out) = *in; v[0] = *in; v[1] = *in; } else { if(TIME <= t[0]) OUTPUT(out) = v[0]; else if(TIME >= t[1]) OUTPUT(out) = v[1]; else { OUTPUT(out) = v[0] + (v[1] - v[0]) * (TIME - t[0]) / (t[1] - t[0]); } } break; case EVENT: if(TIME == 0.0) return; if(TIME >= t[1]) { v[0] = v[1]; v[1] = *in; t[0] = TIME; t[1] = TIME + PARAM(transition_time); } else { v[0] = v[0] + (v[1] - v[0]) * (TIME - t[0]) / (t[1] - t[0]); v[1] = *in; t[0] = TIME; t[1] = TIME + PARAM(transition_time); } break; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?