repo: gserdyuk/gnucap-a

decompiled_code:
__int64 __fastcall B3SOInoise(int a1, int a2, __int64 a3, __int64 a4, __int64 a5, double *a6)
{
__int64 v9; // rbp
__int64 result; // rax
void **v11; // r12
__int64 v12; // rax
void (__fastcall *v13)(__int64, __int64, _QWORD, char *, __int64, _QWORD); // r10
int v14; // edx
const char **v15; // r12
const char *v16; // r15
__int64 v17; // rax
void (__fastcall *v18)(__int64, __int64, _QWORD, char *, __int64, _QWORD); // r10
int v19; // edx
__int64 v20; // rax
void (__fastcall *v21)(__int64, __int64, _QWORD, char *, __int64, _QWORD); // r10
int v22; // edx
__int64 v23; // r12
int v24; // eax
double v25; // xmm0_8
int v26; // eax
double v27; // xmm0_8
double v28; // xmm0_8
__int64 i; // rax
_QWORD *v30; // rax
double v31; // xmm0_8
double v32; // r13
double v33; // xmm0_8
double v34; // xmm6_8
double v35; // r13
double v36; // xmm0_8
__int64 v37; // rdx
__int64 v38; // rax
double v39; // xmm4_8
double v40; // r12
double v41; // xmm0_8
double v42; // r13
double v43; // xmm0_8
double *v44; // r12
double *v45; // r13
double *v46; // r15
double v47; // xmm0_8
char *v48; // rdx
__int64 v49; // rcx
int v50; // eax
_QWORD *v51; // rax
__int64 v52; // rcx
int v53; // edx
__int64 v54; // rcx
int v55; // edx
__int64 v56; // [rsp+8h] [rbp-100h]
double v58; // [rsp+18h] [rbp-F0h]
double v59; // [rsp+18h] [rbp-F0h]
double v60; // [rsp+18h] [rbp-F0h]
double v61; // [rsp+18h] [rbp-F0h]
__int64 v62; // [rsp+30h] [rbp-D8h] BYREF
char v63[8]; // [rsp+38h] [rbp-D0h] BYREF
char v64[8]; // [rsp+40h] [rbp-C8h] BYREF
double v65; // [rsp+48h] [rbp-C0h]
char v66[8]; // [rsp+50h] [rbp-B8h] BYREF
double v67; // [rsp+58h] [rbp-B0h]
double v68; // [rsp+60h] [rbp-A8h] BYREF
double v69; // [rsp+68h] [rbp-A0h] BYREF
double v70; // [rsp+70h] [rbp-98h] BYREF
double v71; // [rsp+78h] [rbp-90h] BYREF
double v72; // [rsp+80h] [rbp-88h] BYREF
double v73; // [rsp+88h] [rbp-80h]
char s[120]; // [rsp+90h] [rbp-78h] BYREF

v56 = a3;
if ( !a3 )
return 0LL;
while ( 1 )
{
v9 = *(_QWORD *)(v56 + 16);
if ( v9 )
break;
LABEL_3:
result = *(_QWORD *)(v56 + 8);
v56 = result;
if ( !result )
return result;
}
while ( 1 )
{
if ( a2 == 2 )
{
if ( a1 != 1 )
{
if ( a1 == 2 && *(_DWORD *)(*(_QWORD *)(a4 + 984) + 104LL) )
{
v51 = (_QWORD *)(v9 + 1752);
do
{
v52 = *(_QWORD *)(a5 + 96);
v53 = *(_DWORD *)(a5 + 80);
*(_DWORD *)(a5 + 80) = v53 + 1;
*(_QWORD *)(v52 + 8LL * v53) = *v51;
v54 = *(_QWORD *)(a5 + 96);
v55 = *(_DWORD *)(a5 + 80);
*(_DWORD *)(a5 + 80) = v55 + 1;
*(_QWORD *)(v54 + 8LL * v55) = v51[6];
++v51;
}
while ( v51 != (_QWORD *)(v9 + 1800) );
}
goto LABEL_11;
}
v23 = *(_QWORD *)(v9 + 1168);
NevalSrc(&v68, &v62, a4, 2LL, *(unsigned int *)(v9 + 56), *(unsigned int *)(v9 + 28), *(double *)(v9 + 472));
NevalSrc(&v69, v63, a4, 2LL, *(unsigned int *)(v9 + 60), *(unsigned int *)(v9 + 36), *(double *)(v9 + 464));
v24 = *(_DWORD *)(v56 + 44);
if ( v24 != 3 )
{
if ( v24 > 3 )
{
if ( v24 != 4 )
goto LABEL_31;
goto LABEL_27;
}
if ( v24 != 1 )
{
if ( v24 != 2 )
goto LABEL_31;
LABEL_27:
v25 = *(double *)(v9 + 712) / (*(double *)(v23 + 1080) * *(double *)(v23 + 1080));
if ( v25 < 0.0 )
*(_QWORD *)&v25 ^= LC12;
NevalSrc(
&v70,
v64,
a4,
2LL,
*(unsigned int *)(v9 + 56),
*(unsigned int *)(v9 + 60),
v25 * *(double *)(v9 + 168));
goto LABEL_31;
}
}
v31 = *(double *)(v9 + 800) + *(double *)(v9 + 824) + *(double *)(v9 + 832);
if ( v31 < 0.0 )
*(_QWORD *)&v31 ^= LC12;
NevalSrc(&v70, v64, a4, 2LL, *(unsigned int *)(v9 + 56), *(unsigned int *)(v9 + 60), v31 * 0.6666666666666666);
LABEL_31:
NevalSrc(&v71, 0LL, a4, 3LL, *(unsigned int *)(v9 + 56), *(unsigned int *)(v9 + 60), 0.0);
v26 = *(_DWORD *)(v56 + 44);
if ( v26 > 3 )
{
if ( v26 != 4 )
goto LABEL_34;
}
else
{
if ( v26 > 1 )
{
v37 = *(_QWORD *)(a4 + 264);
v38 = *(int *)(v9 + 24) + 2LL;
v39 = *(double *)(v37 + 8 * v38);
v40 = *(double *)(v37 + 8 * v38 + 8);
if ( v40 < 0.0 )
{
v39 = v39 - v40;
*(_QWORD *)&v40 ^= LC12;
}
if ( v39 < *(double *)(v9 + 184) + 0.1 )
{
v42 = 0.00008619999999999999 * *(double *)(v56 + 3808) * *(double *)(a4 + 400);
v59 = *(double *)(*(_QWORD *)(v9 + 1168) + 1088LL) * *(double *)(*(_QWORD *)(v9 + 1168) + 1080LL);
v60 = v42
/ (pow(*(double *)a5, *(double *)(v56 + 3840))
* v59
* 4.0e36)
* *(double *)(v9 + 720)
* *(double *)(v9 + 720);
v43 = B3SOIStrongInversionNoiseEval(
(double *)v56,
v9,
*(double *)(v9 + 184) + 0.1,
v40,
*(double *)a5,
*(double *)(a4 + 400));
if ( v60 + v43 <= 0.0 )
v71 = 0.0 * v71;
else
v71 = v43 * v60 / (v60 + v43) * v71;
}
else
{
v41 = B3SOIStrongInversionNoiseEval((double *)v56, v9, v39, v40, *(double *)a5, *(double *)(a4 + 400));
v71 = v41 * v71;
}
goto LABEL_34;
}
if ( v26 != 1 )
{
LABEL_34:
v27 = v71;
if ( v71 <= 1.0e-38 )
v27 = LC0;
v65 = log(v27);
NevalSrc(
&v72,
v66,
a4,
1LL,
*(unsigned int *)(v9 + 60),
*(unsigned int *)(v9 + 48),
(*(double *)(v56 + 3864) + *(double *)(v56 + 3864)) * *(double *)(v9 + 240));
v28 = v68 + v69 + v70 + v71 + v72;
v73 = v28;
if ( v28 <= 1.0e-38 )
v28 = LC0;
v67 = log(v28);
*a6 = *a6 + v73;
if ( *(double *)(a5 + 16) == 0.0 )
{
for ( i = 0LL; i != 48; i += 8LL )
*(_QWORD *)(v9 + i + 1704) = *(__int64 *)((char *)&v62 + i);
if ( *(double *)a5 == *(double *)(*(_QWORD *)(a4 + 984) + 48LL) )
{
v30 = (_QWORD *)(v9 + 1752);
do
{
*v30 = 0LL;
v30[6] = 0LL;
++v30;
}
while ( (_QWORD *)(v9 + 1800) != v30 );
}
}
else
{
v44 = (double *)(v9 + 1704);
v45 = (double *)&v62;
v46 = &v68;
do
{
v61 = Nintegrate(a5, *v46, *v45, *v44);
v47 = Nintegrate(
a5,
*v46 * *(double *)(a5 + 40),
*(double *)(a5 + 48) + *v45,
*(double *)(a5 + 48) + *v44);
*v44 = *v45;
*(double *)(a5 + 24) = v61 + *(double *)(a5 + 24);
*(double *)(a5 + 32) = v47 + *(double *)(a5 + 32);
if ( *(_DWORD *)(*(_QWORD *)(a4 + 984) + 104LL) )
{
v44[6] = v61 + v44[6];
*(double *)(v9 + 1792) = v61 + *(double *)(v9 + 1792);
v44[12] = v47 + v44[12];
*(double *)(v9 + 1840) = v47 + *(double *)(v9 + 1840);
}
++v44;
++v45;
++v46;
}
while ( v44 != (double *)(v9 + 1744) );
a2 = 2;
}
if ( *(_DWORD *)(a5 + 88) )
{
v48 = (char *)&v68;
do
{
v49 = *(_QWORD *)(a5 + 96);
v50 = *(_DWORD *)(a5 + 80);
*(_DWORD *)(a5 + 80) = v50 + 1;
*(_QWORD *)(v49 + 8LL * v50) = *(_QWORD *)v48;
v48 += 8;
}
while ( v48 != s );
}
goto LABEL_11;
}
}
v58 = *(double *)(v56 + 3856);
v33 = *(double *)(v9 + 720);
if ( v33 < 0.0 )
{
if ( v33 >= -1.0e-38 )
{
v33 = LC0;
goto LABEL_55;
}
}
else
{
if ( v33 <= 1.0e-38 )
{
v33 = LC0;
goto LABEL_55;
}
if ( v33 >= 0.0 )
{
LABEL_55:
v32 = *(double *)(v56 + 3848);
v34 = v32 * log(v33);
v35 = exp(v34);
v36 = pow(*(double *)a5, *(double *)(v56 + 3840));
v71 = v35 * v58 / (*(double *)(v23 + 1080) * (v36 * *(double *)(v23 + 1080)) * *(double *)(v56 + 3752)) * v71;
goto LABEL_34;
}
}
*(_QWORD *)&v33 ^= LC12;
goto LABEL_55;
}
if ( a2 == 3 )
return 0LL;
if ( a2 != 1 || !*(_DWORD *)(*(_QWORD *)(a4 + 984) + 104LL) )
goto LABEL_11;
if ( a1 == 1 )
break;
if ( a1 == 2 )
{
v15 = (const char **)B3SOInNames_0;
while ( 1 )
{
v16 = *v15;
sprintf(s, "onoise_total.%s%s", *(const char **)(v9 + 16), *v15);
v17 = trealloc(*(_QWORD *)(a5 + 112), 8LL * (*(_DWORD *)(a5 + 84) + 1));
*(_QWORD *)(a5 + 112) = v17;
if ( !v17 )
return 8LL;
v18 = (void (__fastcall *)(__int64, __int64, _QWORD, char *, __int64, _QWORD))*SPfrontEnd;
v19 = *(_DWORD *)(a5 + 84);
*(_DWORD *)(a5 + 84) = v19 + 1;
v18(a4, v17 + 8LL * v19, 0LL, s, 32LL, 0LL);
sprintf(s, "inoise_total.%s%s", *(const char **)(v9 + 16), v16);
v20 = trealloc(*(_QWORD *)(a5 + 112), 8LL * (*(_DWORD *)(a5 + 84) + 1));
*(_QWORD *)(a5 + 112) = v20;
if ( !v20 )
return 8LL;
v21 = (void (__fastcall *)(__int64, __int64, _QWORD, char *, __int64, _QWORD))*SPfrontEnd;
v22 = *(_DWORD *)(a5 + 84);
*(_DWORD *)(a5 + 84) = v22 + 1;
v21(a4, v20 + 8LL * v22, 0LL, s, 32LL, 0LL);
if ( &off_D08 + 1 == (void **)++v15 )
{
a2 = 1;
break;
}
}
}
LABEL_11:
v9 = *(_QWORD *)(v9 + 8);
if ( !v9 )
goto LABEL_3;
}
v11 = (void **)B3SOInNames_0;
while ( 1 )
{
sprintf(s, "onoise.%s%s", *(const char **)(v9 + 16), (const char *)*v11);
v12 = trealloc(*(_QWORD *)(a5 + 112), 8LL * (*(_DWORD *)(a5 + 84) + 1));
*(_QWORD *)(a5 + 112) = v12;
if ( !v12 )
return 8LL;
v13 = (void (__fastcall *)(__int64, __int64, _QWORD, char *, __int64, _QWORD))*SPfrontEnd;
v14 = *(_DWORD *)(a5 + 84);
*(_DWORD *)(a5 + 84) = v14 + 1;
v13(a4, v12 + 8LL * v14, 0LL, s, 32LL, 0LL);
if ( &off_D08 + 1 == ++v11 )
goto LABEL_11;
}
}

canonical_decompiled_code:
__int64 __fastcall func1(int a1, int a2, __int64 a3, __int64 a4, __int64 a5, double *a6)
{
__int64 v9; // rbp
__int64 result; // rax
void **v11; // r12
__int64 v12; // rax
void (__fastcall *v13)(__int64, __int64, _QWORD, char *, __int64, _QWORD); // r10
int v14; // edx
const char **v15; // r12
const char *v16; // r15
__int64 v17; // rax
void (__fastcall *v18)(__int64, __int64, _QWORD, char *, __int64, _QWORD); // r10
int v19; // edx
__int64 v20; // rax
void (__fastcall *v21)(__int64, __int64, _QWORD, char *, __int64, _QWORD); // r10
int v22; // edx
__int64 v23; // r12
int v24; // eax
double v25; // xmm0_8
int v26; // eax
double v27; // xmm0_8
double v28; // xmm0_8
__int64 i; // rax
_QWORD *v30; // rax
double v31; // xmm0_8
double v32; // r13
double v33; // xmm0_8
double v34; // xmm6_8
double v35; // r13
double v36; // xmm0_8
__int64 v37; // rdx
__int64 v38; // rax
double v39; // xmm4_8
double v40; // r12
double v41; // xmm0_8
double v42; // r13
double v43; // xmm0_8
double *v44; // r12
double *v45; // r13
double *v46; // r15
double v47; // xmm0_8
char *v48; // rdx
__int64 v49; // rcx
int v50; // eax
_QWORD *v51; // rax
__int64 v52; // rcx
int v53; // edx
__int64 v54; // rcx
int v55; // edx
__int64 v56; // [rsp+8h] [rbp-100h]
double v58; // [rsp+18h] [rbp-F0h]
double v59; // [rsp+18h] [rbp-F0h]
double v60; // [rsp+18h] [rbp-F0h]
double v61; // [rsp+18h] [rbp-F0h]
__int64 v62; // [rsp+30h] [rbp-D8h] BYREF
char v63[8]; // [rsp+38h] [rbp-D0h] BYREF
char v64[8]; // [rsp+40h] [rbp-C8h] BYREF
double v65; // [rsp+48h] [rbp-C0h]
char v66[8]; // [rsp+50h] [rbp-B8h] BYREF
double v67; // [rsp+58h] [rbp-B0h]
double v68; // [rsp+60h] [rbp-A8h] BYREF
double v69; // [rsp+68h] [rbp-A0h] BYREF
double v70; // [rsp+70h] [rbp-98h] BYREF
double v71; // [rsp+78h] [rbp-90h] BYREF
double v72; // [rsp+80h] [rbp-88h] BYREF
double v73; // [rsp+88h] [rbp-80h]
char s[120]; // [rsp+90h] [rbp-78h] BYREF

v56 = a3;
if ( !a3 )
return 0LL;
while ( 1 )
{
v9 = *(_QWORD *)(v56 + 16);
if ( v9 )
break;
LABEL_3:
result = *(_QWORD *)(v56 + 8);
v56 = result;
if ( !result )
return result;
}
while ( 1 )
{
if ( a2 == 2 )
{
if ( a1 != 1 )
{
if ( a1 == 2 && *(_DWORD *)(*(_QWORD *)(a4 + 984) + 104LL) )
{
v51 = (_QWORD *)(v9 + 1752);
do
{
v52 = *(_QWORD *)(a5 + 96);
v53 = *(_DWORD *)(a5 + 80);
*(_DWORD *)(a5 + 80) = v53 + 1;
*(_QWORD *)(v52 + 8LL * v53) = *v51;
v54 = *(_QWORD *)(a5 + 96);
v55 = *(_DWORD *)(a5 + 80);
*(_DWORD *)(a5 + 80) = v55 + 1;
*(_QWORD *)(v54 + 8LL * v55) = v51[6];
++v51;
}
while ( v51 != (_QWORD *)(v9 + 1800) );
}
goto LABEL_11;
}
v23 = *(_QWORD *)(v9 + 1168);
NevalSrc(&v68, &v62, a4, 2LL, *(unsigned int *)(v9 + 56), *(unsigned int *)(v9 + 28), *(double *)(v9 + 472));
NevalSrc(&v69, v63, a4, 2LL, *(unsigned int *)(v9 + 60), *(unsigned int *)(v9 + 36), *(double *)(v9 + 464));
v24 = *(_DWORD *)(v56 + 44);
if ( v24 != 3 )
{
if ( v24 > 3 )
{
if ( v24 != 4 )
goto LABEL_31;
goto LABEL_27;
}
if ( v24 != 1 )
{
if ( v24 != 2 )
goto LABEL_31;
LABEL_27:
v25 = *(double *)(v9 + 712) / (*(double *)(v23 + 1080) * *(double *)(v23 + 1080));
if ( v25 < 0.0 )
*(_QWORD *)&v25 ^= LC12;
NevalSrc(
&v70,
v64,
a4,
2LL,
*(unsigned int *)(v9 + 56),
*(unsigned int *)(v9 + 60),
v25 * *(double *)(v9 + 168));
goto LABEL_31;
}
}
v31 = *(double *)(v9 + 800) + *(double *)(v9 + 824) + *(double *)(v9 + 832);
if ( v31 < 0.0 )
*(_QWORD *)&v31 ^= LC12;
NevalSrc(&v70, v64, a4, 2LL, *(unsigned int *)(v9 + 56), *(unsigned int *)(v9 + 60), v31 * 0.6666666666666666);
LABEL_31:
NevalSrc(&v71, 0LL, a4, 3LL, *(unsigned int *)(v9 + 56), *(unsigned int *)(v9 + 60), 0.0);
v26 = *(_DWORD *)(v56 + 44);
if ( v26 > 3 )
{
if ( v26 != 4 )
goto LABEL_34;
}
else
{
if ( v26 > 1 )
{
v37 = *(_QWORD *)(a4 + 264);
v38 = *(int *)(v9 + 24) + 2LL;
v39 = *(double *)(v37 + 8 * v38);
v40 = *(double *)(v37 + 8 * v38 + 8);
if ( v40 < 0.0 )
{
v39 = v39 - v40;
*(_QWORD *)&v40 ^= LC12;
}
if ( v39 < *(double *)(v9 + 184) + 0.1 )
{
v42 = 0.00008619999999999999 * *(double *)(v56 + 3808) * *(double *)(a4 + 400);
v59 = *(double *)(*(_QWORD *)(v9 + 1168) + 1088LL) * *(double *)(*(_QWORD *)(v9 + 1168) + 1080LL);
v60 = v42
/ (pow(*(double *)a5, *(double *)(v56 + 3840))
* v59
* 4.0e36)
* *(double *)(v9 + 720)
* *(double *)(v9 + 720);
v43 = func0(
(double *)v56,
v9,
*(double *)(v9 + 184) + 0.1,
v40,
*(double *)a5,
*(double *)(a4 + 400));
if ( v60 + v43 <= 0.0 )
v71 = 0.0 * v71;
else
v71 = v43 * v60 / (v60 + v43) * v71;
}
else
{
v41 = func0((double *)v56, v9, v39, v40, *(double *)a5, *(double *)(a4 + 400));
v71 = v41 * v71;
}
goto LABEL_34;
}
if ( v26 != 1 )
{
LABEL_34:
v27 = v71;
if ( v71 <= 1.0e-38 )
v27 = LC0;
v65 = log(v27);
NevalSrc(
&v72,
v66,
a4,
1LL,
*(unsigned int *)(v9 + 60),
*(unsigned int *)(v9 + 48),
(*(double *)(v56 + 3864) + *(double *)(v56 + 3864)) * *(double *)(v9 + 240));
v28 = v68 + v69 + v70 + v71 + v72;
v73 = v28;
if ( v28 <= 1.0e-38 )
v28 = LC0;
v67 = log(v28);
*a6 = *a6 + v73;
if ( *(double *)(a5 + 16) == 0.0 )
{
for ( i = 0LL; i != 48; i += 8LL )
*(_QWORD *)(v9 + i + 1704) = *(__int64 *)((char *)&v62 + i);
if ( *(double *)a5 == *(double *)(*(_QWORD *)(a4 + 984) + 48LL) )
{
v30 = (_QWORD *)(v9 + 1752);
do
{
*v30 = 0LL;
v30[6] = 0LL;
++v30;
}
while ( (_QWORD *)(v9 + 1800) != v30 );
}
}
else
{
v44 = (double *)(v9 + 1704);
v45 = (double *)&v62;
v46 = &v68;
do
{
v61 = Nintegrate(a5, *v46, *v45, *v44);
v47 = Nintegrate(
a5,
*v46 * *(double *)(a5 + 40),
*(double *)(a5 + 48) + *v45,
*(double *)(a5 + 48) + *v44);
*v44 = *v45;
*(double *)(a5 + 24) = v61 + *(double *)(a5 + 24);
*(double *)(a5 + 32) = v47 + *(double *)(a5 + 32);
if ( *(_DWORD *)(*(_QWORD *)(a4 + 984) + 104LL) )
{
v44[6] = v61 + v44[6];
*(double *)(v9 + 1792) = v61 + *(double *)(v9 + 1792);
v44[12] = v47 + v44[12];
*(double *)(v9 + 1840) = v47 + *(double *)(v9 + 1840);
}
++v44;
++v45;
++v46;
}
while ( v44 != (double *)(v9 + 1744) );
a2 = 2;
}
if ( *(_DWORD *)(a5 + 88) )
{
v48 = (char *)&v68;
do
{
v49 = *(_QWORD *)(a5 + 96);
v50 = *(_DWORD *)(a5 + 80);
*(_DWORD *)(a5 + 80) = v50 + 1;
*(_QWORD *)(v49 + 8LL * v50) = *(_QWORD *)v48;
v48 += 8;
}
while ( v48 != s );
}
goto LABEL_11;
}
}
v58 = *(double *)(v56 + 3856);
v33 = *(double *)(v9 + 720);
if ( v33 < 0.0 )
{
if ( v33 >= -1.0e-38 )
{
v33 = LC0;
goto LABEL_55;
}
}
else
{
if ( v33 <= 1.0e-38 )
{
v33 = LC0;
goto LABEL_55;
}
if ( v33 >= 0.0 )
{
LABEL_55:
v32 = *(double *)(v56 + 3848);
v34 = v32 * log(v33);
v35 = exp(v34);
v36 = pow(*(double *)a5, *(double *)(v56 + 3840));
v71 = v35 * v58 / (*(double *)(v23 + 1080) * (v36 * *(double *)(v23 + 1080)) * *(double *)(v56 + 3752)) * v71;
goto LABEL_34;
}
}
*(_QWORD *)&v33 ^= LC12;
goto LABEL_55;
}
if ( a2 == 3 )
return 0LL;
if ( a2 != 1 || !*(_DWORD *)(*(_QWORD *)(a4 + 984) + 104LL) )
goto LABEL_11;
if ( a1 == 1 )
break;
if ( a1 == 2 )
{
v15 = (const char **)B3SOInNames_0;
while ( 1 )
{
v16 = *v15;
sprintf(s, "onoise_total.%s%s", *(const char **)(v9 + 16), *v15);
v17 = trealloc(*(_QWORD *)(a5 + 112), 8LL * (*(_DWORD *)(a5 + 84) + 1));
*(_QWORD *)(a5 + 112) = v17;
if ( !v17 )
return 8LL;
v18 = (void (__fastcall *)(__int64, __int64, _QWORD, char *, __int64, _QWORD))*SPfrontEnd;
v19 = *(_DWORD *)(a5 + 84);
*(_DWORD *)(a5 + 84) = v19 + 1;
v18(a4, v17 + 8LL * v19, 0LL, s, 32LL, 0LL);
sprintf(s, "inoise_total.%s%s", *(const char **)(v9 + 16), v16);
v20 = trealloc(*(_QWORD *)(a5 + 112), 8LL * (*(_DWORD *)(a5 + 84) + 1));
*(_QWORD *)(a5 + 112) = v20;
if ( !v20 )
return 8LL;
v21 = (void (__fastcall *)(__int64, __int64, _QWORD, char *, __int64, _QWORD))*SPfrontEnd;
v22 = *(_DWORD *)(a5 + 84);
*(_DWORD *)(a5 + 84) = v22 + 1;
v21(a4, v20 + 8LL * v22, 0LL, s, 32LL, 0LL);
if ( &off_D08 + 1 == (void **)++v15 )
{
a2 = 1;
break;
}
}
}
LABEL_11:
v9 = *(_QWORD *)(v9 + 8);
if ( !v9 )
goto LABEL_3;
}
v11 = (void **)B3SOInNames_0;
while ( 1 )
{
sprintf(s, "onoise.%s%s", *(const char **)(v9 + 16), (const char *)*v11);
v12 = trealloc(*(_QWORD *)(a5 + 112), 8LL * (*(_DWORD *)(a5 + 84) + 1));
*(_QWORD *)(a5 + 112) = v12;
if ( !v12 )
return 8LL;
v13 = (void (__fastcall *)(__int64, __int64, _QWORD, char *, __int64, _QWORD))*SPfrontEnd;
v14 = *(_DWORD *)(a5 + 84);
*(_DWORD *)(a5 + 84) = v14 + 1;
v13(a4, v12 + 8LL * v14, 0LL, s, 32LL, 0LL);
if ( &off_D08 + 1 == ++v11 )
goto LABEL_11;
}
}

original_code:
int
B3SOInoise (int mode, int operation, GENmodel *inModel, CKTcircuit *ckt,
            Ndata *data, double *OnDens)
{
B3SOImodel *model = (B3SOImodel *)inModel;
B3SOIinstance *here;
struct b3soiSizeDependParam *pParam;
char name[64];
double tempOnoise;
double tempInoise;
double noizDens[6];
double lnNdens[6];
double vgs, vds, Slimit;
double T1, T10, T11;
double Ssi, Swi;
int i;
    static char *B3SOInNames[6] =
    {
 ".rd",
 ".rs",
 ".id",
 ".1overf",
        ".fb",
 ""
    };
    for (; model != ((void *)0); model = model->B3SOInextModel)
    { for (here = model->B3SOIinstances; here != ((void *)0);
       here = here->B3SOInextInstance)
  {
       if (here->B3SOIowner != ARCHme)
               continue;
       pParam = here->pParam;
       switch (operation)
       { case 1:
        if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0)
        { switch (mode)
     { case 1:
             for (i = 0; i < 6; i++)
      { (void) sprintf(name, "onoise.%s%s",
                   here->B3SOIname,
            B3SOInNames[i]);
                                       data->namelist = (IFuid *) trealloc(
          (char *) data->namelist,
          (data->numPlots + 1)
          * sizeof(IFuid));
                                       if (!data->namelist)
        return(8);
                         (*(SPfrontEnd->IFnewUid)) (ckt,
                     &(data->namelist[data->numPlots++]),
                     (IFuid) ((void *)0), name, 0x20,
       (void **) ((void *)0));
             }
             break;
               case 2:
             for (i = 0; i < 6; i++)
      { (void) sprintf(name, "onoise_total.%s%s",
            here->B3SOIname,
            B3SOInNames[i]);
                                       data->namelist = (IFuid *) trealloc(
          (char *) data->namelist,
          (data->numPlots + 1)
          * sizeof(IFuid));
                                       if (!data->namelist)
        return(8);
                         (*(SPfrontEnd->IFnewUid)) (ckt,
                     &(data->namelist[data->numPlots++]),
                     (IFuid) ((void *)0), name, 0x20,
       (void **) ((void *)0));
                  (void) sprintf(name, "inoise_total.%s%s",
            here->B3SOIname,
            B3SOInNames[i]);
                                       data->namelist = (IFuid *) trealloc(
          (char *) data->namelist,
          (data->numPlots + 1)
          * sizeof(IFuid));
                                       if (!data->namelist)
        return(8);
                         (*(SPfrontEnd->IFnewUid)) (ckt,
                     &(data->namelist[data->numPlots++]),
                     (IFuid) ((void *)0), name, 0x20,
       (void **)((void *)0));
             }
             break;
            }
        }
        break;
          case 2:
        switch (mode)
        { case 1:
                NevalSrc(&noizDens[0],
           &lnNdens[0], ckt, 2,
           here->B3SOIdNodePrime, here->B3SOIdNode,
           here->B3SOIdrainConductance * here->B3SOIm);
                NevalSrc(&noizDens[1],
           &lnNdens[1], ckt, 2,
           here->B3SOIsNodePrime, here->B3SOIsNode,
           here->B3SOIsourceConductance * here->B3SOIm);
                              switch( model->B3SOInoiMod )
         { case 1:
            case 3:
                 NevalSrc(&noizDens[2],
                   &lnNdens[2], ckt,
            2, here->B3SOIdNodePrime,
                   here->B3SOIsNodePrime,
                                               (2.0 / 3.0 * fabs( here->B3SOIm *
            (here->B3SOIgm
                   + here->B3SOIgds
            + here->B3SOIgmbs))));
          break;
            case 2:
            case 4:
                        NevalSrc(&noizDens[2],
                   &lnNdens[2], ckt,
            2, here->B3SOIdNodePrime,
                                               here->B3SOIsNodePrime,
            (here->B3SOIueff
            * fabs((here->B3SOIqinv * here->B3SOIm)
            / (pParam->B3SOIleff
            * pParam->B3SOIleff+
       here->B3SOIueff*fabs
       (here->B3SOIqinv * here->B3SOIm) *
        (here->B3SOIrds / here->B3SOIm)))));
          break;
         }
                NevalSrc(&noizDens[3], (double*) ((void *)0),
           ckt, 3, here->B3SOIdNodePrime,
           here->B3SOIsNodePrime, (double) 0.0);
                              switch( model->B3SOInoiMod )
         { case 1:
            case 4:
                 noizDens[3] *= model->B3SOIkf
         * exp(model->B3SOIaf
         * log(((fabs(here->B3SOIm * here->B3SOIcd)) > (1E-38) ? (fabs(here->B3SOIm * here->B3SOIcd)) : (1E-38))))
         / (pow(data->freq, model->B3SOIef)
         * pParam->B3SOIleff
                * pParam->B3SOIleff
         * model->B3SOIcox);
          break;
            case 2:
            case 3:
                 vgs = *(ckt->CKTstates[0] + here->B3SOIstates+ 2);
                        vds = *(ckt->CKTstates[0] + here->B3SOIstates+ 3);
                 if (vds < 0.0)
                 { vds = -vds;
              vgs = vgs + vds;
                 }
                                      if (vgs >= here->B3SOIvon + 0.1)
                 { Ssi = B3SOIStrongInversionNoiseEval(vgs,
           vds, model, here, data->freq,
           ckt->CKTtemp);
                                          noizDens[3] *= Ssi;
                 }
                                      else
                 { pParam = here->pParam;
              T10 = model->B3SOIoxideTrapDensityA
           * 8.62e-5 * ckt->CKTtemp;
                            T11 = pParam->B3SOIweff * here->B3SOIm
           * pParam->B3SOIleff
                  * pow(data->freq, model->B3SOIef)
                  * 4.0e36;
                            Swi = T10 / T11 * here->B3SOIcd * here->B3SOIm
                  * here->B3SOIcd * here->B3SOIm;
                                          Slimit = B3SOIStrongInversionNoiseEval(
                   here->B3SOIvon + 0.1, vds, model,
            here, data->freq, ckt->CKTtemp);
              T1 = Swi + Slimit;
              if (T1 > 0.0)
                                              noizDens[3] *= (Slimit
            * Swi) / T1;
              else
                                              noizDens[3] *= 0.0;
                 }
          break;
         }
                lnNdens[3] =
         log(((noizDens[3]) > (1E-38) ? (noizDens[3]) : (1E-38)));
                NevalSrc(&noizDens[4], &lnNdens[4],
              ckt, 1, here->B3SOIsNodePrime,
              here->B3SOIbNode,
                                          2.0 * model->B3SOInoif * here->B3SOIibs * here->B3SOIm);
                noizDens[5] = noizDens[0]
           + noizDens[1]
           + noizDens[2]
           + noizDens[3]
           + noizDens[4];
                lnNdens[5] =
         log(((noizDens[5]) > (1E-38) ? (noizDens[5]) : (1E-38)));
                *OnDens += noizDens[5];
                if (data->delFreq == 0.0)
         {
             for (i = 0; i < 6; i++)
      { here->B3SOInVar[0][i] =
          lnNdens[i];
             }
             if (data->freq ==
          ((NOISEAN*) ckt->CKTcurJob)->NstartFreq)
      { for (i = 0; i < 6; i++)
          { here->B3SOInVar[1][i] = 0.0;
               here->B3SOInVar[2][i] = 0.0;
                 }
             }
                }
         else
         {
             for (i = 0; i < 6; i++)
      { if (i != 5)
           { tempOnoise = Nintegrate(noizDens[i],
      lnNdens[i],
                    here->B3SOInVar[0][i],
      data);
               tempInoise = Nintegrate(noizDens[i]
      * data->GainSqInv, lnNdens[i]
      + data->lnGainInv,
                    here->B3SOInVar[0][i]
      + data->lnGainInv, data);
               here->B3SOInVar[0][i] =
      lnNdens[i];
               data->outNoiz += tempOnoise;
               data->inNoise += tempInoise;
               if (((NOISEAN*)
            ckt->CKTcurJob)->NStpsSm != 0)
        { here->B3SOInVar[1][i]
           += tempOnoise;
                   here->B3SOInVar[1][5]
           += tempOnoise;
                   here->B3SOInVar[2][i]
           += tempInoise;
                   here->B3SOInVar[2][5]
           += tempInoise;
                                           }
                  }
             }
                }
                if (data->prtSummary)
         { for (i = 0; i < 6; i++)
      {
                  data->outpVector[data->outNumber++]
          = noizDens[i];
             }
                }
                break;
           case 2:
                if (((NOISEAN*)ckt->CKTcurJob)->NStpsSm != 0)
         { for (i = 0; i < 6; i++)
      { data->outpVector[data->outNumber++]
          = here->B3SOInVar[1][i];
                  data->outpVector[data->outNumber++]
          = here->B3SOInVar[2][i];
             }
                }
                break;
        }
        break;
          case 3:
        return (0);
        break;
       }
  }
    }
    return(0);
}

canonical_original_code:
int B3SOInoise(int mode, int operation, struct sGENmodel *inModel, struct CKTcircuit *ckt, struct Ndata *data, double *OnDens)
{
struct sB3SOImodel *model = (B3SOImodel *)inModel;
struct sB3SOIinstance *here;
struct b3soiSizeDependParam *pParam;
char name[64];
double tempOnoise;
double tempInoise;
double noizDens[6];
double lnNdens[6];
double vgs; double vds; double Slimit;
double T1; double T10; double T11;
double Ssi; double Swi;
int i;
    static char *B3SOInNames[6] = {
 ".rd",
 ".rs",
 ".id",
 ".1overf",
        ".fb",
 ""
    };
    for (; model != ((void *)0); model = model->B3SOInextModel)
    { for (here = model->B3SOIinstances; here != ((void *)0);
       here = here->B3SOInextInstance)
  {
       if (here->B3SOIowner != ARCHme)
               continue;
       pParam = here->pParam;
       switch (operation)
       { case 1:
        if (((struct NOISEAN *)ckt->CKTcurJob)->NStpsSm != 0)
        { switch (mode)
     { case 1:
             for (i = 0; i < 6; i++)
      { (void) sprintf(name, "onoise.%s%s",
                   here->B3SOIname,
            B3SOInNames[i]);
                                       data->namelist = (char **) trealloc(
          (char *) data->namelist,
          (data->numPlots + 1)
          * sizeof(IFuid));
                                       if (!data->namelist)
        return(8);
                         (*(SPfrontEnd->IFnewUid)) (ckt,
                     &(data->namelist[data->numPlots++]),
                     (IFuid) ((void *)0), name, 0x20,
       (void **) ((void *)0));
             }
             break;
               case 2:
             for (i = 0; i < 6; i++)
      { (void) sprintf(name, "onoise_total.%s%s",
            here->B3SOIname,
            B3SOInNames[i]);
                                       data->namelist = (char **) trealloc(
          (char *) data->namelist,
          (data->numPlots + 1)
          * sizeof(IFuid));
                                       if (!data->namelist)
        return(8);
                         (*(SPfrontEnd->IFnewUid)) (ckt,
                     &(data->namelist[data->numPlots++]),
                     (IFuid) ((void *)0), name, 0x20,
       (void **) ((void *)0));
                  (void) sprintf(name, "inoise_total.%s%s",
            here->B3SOIname,
            B3SOInNames[i]);
                                       data->namelist = (char **) trealloc(
          (char *) data->namelist,
          (data->numPlots + 1)
          * sizeof(IFuid));
                                       if (!data->namelist)
        return(8);
                         (*(SPfrontEnd->IFnewUid)) (ckt,
                     &(data->namelist[data->numPlots++]),
                     (IFuid) ((void *)0), name, 0x20,
       (void **)((void *)0));
             }
             break;
            }
        }
        break;
          case 2:
        switch (mode)
        { case 1:
                NevalSrc(&noizDens[0],
           &lnNdens[0], ckt, 2,
           here->B3SOIdNodePrime, here->B3SOIdNode,
           here->B3SOIdrainConductance * here->B3SOIm);
                NevalSrc(&noizDens[1],
           &lnNdens[1], ckt, 2,
           here->B3SOIsNodePrime, here->B3SOIsNode,
           here->B3SOIsourceConductance * here->B3SOIm);
                              switch( model->B3SOInoiMod )
         { case 1:
            case 3:
                 NevalSrc(&noizDens[2],
                   &lnNdens[2], ckt,
            2, here->B3SOIdNodePrime,
                   here->B3SOIsNodePrime,
                                               (2.0 / 3.0 * fabs( here->B3SOIm *
            (here->B3SOIgm
                   + here->B3SOIgds
            + here->B3SOIgmbs))));
          break;
            case 2:
            case 4:
                        NevalSrc(&noizDens[2],
                   &lnNdens[2], ckt,
            2, here->B3SOIdNodePrime,
                                               here->B3SOIsNodePrime,
            (here->B3SOIueff
            * fabs((here->B3SOIqinv * here->B3SOIm)
            / (pParam->B3SOIleff
            * pParam->B3SOIleff+
       here->B3SOIueff*fabs
       (here->B3SOIqinv * here->B3SOIm) *
        (here->B3SOIrds / here->B3SOIm)))));
          break;
         }
                NevalSrc(&noizDens[3], (double *) ((void *)0),
           ckt, 3, here->B3SOIdNodePrime,
           here->B3SOIsNodePrime, (double) 0.0);
                              switch( model->B3SOInoiMod )
         { case 1:
            case 4:
                 noizDens[3] *= model->B3SOIkf
         * exp(model->B3SOIaf
         * log(((fabs(here->B3SOIm * here->B3SOIcd)) > (1E-38) ? (fabs(here->B3SOIm * here->B3SOIcd)) : (1E-38))))
         / (pow(data->freq, model->B3SOIef)
         * pParam->B3SOIleff
                * pParam->B3SOIleff
         * model->B3SOIcox);
          break;
            case 2:
            case 3:
                 vgs = *(ckt->CKTstates[0] + here->B3SOIstates+ 2);
                        vds = *(ckt->CKTstates[0] + here->B3SOIstates+ 3);
                 if (vds < 0.0)
                 { vds = -vds;
              vgs = vgs + vds;
                 }
                                      if (vgs >= here->B3SOIvon + 0.1)
                 { Ssi = B3SOIStrongInversionNoiseEval(vgs,
           vds, model, here, data->freq,
           ckt->CKTtemp);
                                          noizDens[3] *= Ssi;
                 }
                                      else
                 { pParam = here->pParam;
              T10 = model->B3SOIoxideTrapDensityA
           * 8.62e-5 * ckt->CKTtemp;
                            T11 = pParam->B3SOIweff * here->B3SOIm
           * pParam->B3SOIleff
                  * pow(data->freq, model->B3SOIef)
                  * 4.0e36;
                            Swi = T10 / T11 * here->B3SOIcd * here->B3SOIm
                  * here->B3SOIcd * here->B3SOIm;
                                          Slimit = B3SOIStrongInversionNoiseEval(
                   here->B3SOIvon + 0.1, vds, model,
            here, data->freq, ckt->CKTtemp);
              T1 = Swi + Slimit;
              if (T1 > 0.0)
                                              noizDens[3] *= (Slimit
            * Swi) / T1;
              else
                                              noizDens[3] *= 0.0;
                 }
          break;
         }
                lnNdens[3] =
         log(((noizDens[3]) > (1E-38) ? (noizDens[3]) : (1E-38)));
                NevalSrc(&noizDens[4], &lnNdens[4],
              ckt, 1, here->B3SOIsNodePrime,
              here->B3SOIbNode,
                                          2.0 * model->B3SOInoif * here->B3SOIibs * here->B3SOIm);
                noizDens[5] = noizDens[0]
           + noizDens[1]
           + noizDens[2]
           + noizDens[3]
           + noizDens[4];
                lnNdens[5] =
         log(((noizDens[5]) > (1E-38) ? (noizDens[5]) : (1E-38)));
                *OnDens += noizDens[5];
                if (data->delFreq == 0.0)
         {
             for (i = 0; i < 6; i++)
      { here->B3SOInVar[0][i] =
          lnNdens[i];
             }
             if (data->freq ==
          ((struct NOISEAN *) ckt->CKTcurJob)->NstartFreq)
      { for (i = 0; i < 6; i++)
          { here->B3SOInVar[1][i] = 0.0;
               here->B3SOInVar[2][i] = 0.0;
                 }
             }
                }
         else
         {
             for (i = 0; i < 6; i++)
      { if (i != 5)
           { tempOnoise = Nintegrate(noizDens[i],
      lnNdens[i],
                    here->B3SOInVar[0][i],
      data);
               tempInoise = Nintegrate(noizDens[i]
      * data->GainSqInv, lnNdens[i]
      + data->lnGainInv,
                    here->B3SOInVar[0][i]
      + data->lnGainInv, data);
               here->B3SOInVar[0][i] =
      lnNdens[i];
               data->outNoiz += tempOnoise;
               data->inNoise += tempInoise;
               if (((struct NOISEAN *)
            ckt->CKTcurJob)->NStpsSm != 0)
        { here->B3SOInVar[1][i]
           += tempOnoise;
                   here->B3SOInVar[1][5]
           += tempOnoise;
                   here->B3SOInVar[2][i]
           += tempInoise;
                   here->B3SOInVar[2][5]
           += tempInoise;
                                           }
                  }
             }
                }
                if (data->prtSummary)
         { for (i = 0; i < 6; i++)
      {
                  data->outpVector[data->outNumber++]
          = noizDens[i];
             }
                }
                break;
           case 2:
                if (((struct NOISEAN *)ckt->CKTcurJob)->NStpsSm != 0)
         { for (i = 0; i < 6; i++)
      { data->outpVector[data->outNumber++]
          = here->B3SOInVar[1][i];
                  data->outpVector[data->outNumber++]
          = here->B3SOInVar[2][i];
             }
                }
                break;
        }
        break;
          case 3:
        return (0);
        break;
       }
  }
    }
    return(0);
}

variable_types: mode int

variable_types: operation int

variable_types: struct sGENmodel { int GENmodType; struct sGENmodel *GENnextModel; struct sGENinstance { struct sGENmodel *GENmodPtr; struct sGENinstance *GENnextInstance; char *GENname; int GENowner; int GENstate; int GENnode1; int GENnode2; int GENnode3; int GENnode4; int GENnode5; int GENnode6; int GENnode7; } *GENinstances; char *GENmodName; } *

variable_types: struct CKTcircuit { struct sGENmodel **CKThead; struct STATistics { int STATnumIter; int STATtranIter; int STAToldIter; int STATtimePts; int STATaccepted; int STATrejected; double STATtotAnalTime; double STATloadTime; double STATdecompTime; double STATsolveTime; double STATreorderTime; double STATcombineTime; double STATsyncTime; double STATtranTime; double STATtranDecompTime; double STATtranSolveTime; double STATtranLoadTime; double STATtranTruncTime; double STATtranCombTime; double STATtranSyncTime; double STATacTime; double STATacDecompTime; double STATacSolveTime; double STATacLoadTime; double STATacCombTime; double STATacSyncTime; } *CKTstat; double *CKTstates[8]; double CKTtime; double CKTdelta; double CKTdeltaOld[7]; double CKTtemp; double CKTnomTemp; double CKTvt; double CKTag[7]; double CKTagp[7]; int CKTorder; int CKTmaxOrder; int CKTintegrateMethod; void *CKTmatrix; int CKTniState; double *CKTrhs; double *CKTrhsOld; double *CKTrhsSpare; double *CKTirhs; double *CKTirhsOld; double *CKTirhsSpare; double *CKTpred; double *CKTsols[8]; double *CKTrhsOp; double *CKTsenRhs; double *CKTseniRhs; int CKTmaxEqNum; int CKTcurrentAnalysis; struct sCKTnode { char *name; int type; int number; double ic; double nodeset; double *ptr; struct sCKTnode *next; unsigned int icGiven; unsigned int nsGiven; } *CKTnodes; struct sCKTnode *CKTlastNode; int CKTnumStates; long CKTmode; int CKTbypass; int CKTdcMaxIter; int CKTdcTrcvMaxIter; int CKTtranMaxIter; int CKTbreakSize; int CKTbreak; double CKTsaveDelta; double CKTminBreak; double *CKTbreaks; double CKTabstol; double CKTpivotAbsTol; double CKTpivotRelTol; double CKTreltol; double CKTchgtol; double CKTvoltTol; double CKTgmin; double CKTgshunt; double CKTdelmin; double CKTtrtol; double CKTfinalTime; double CKTstep; double CKTmaxStep; double CKTinitTime; double CKTomega; double CKTsrcFact; double CKTdiagGmin; int CKTnumSrcSteps; int CKTnumGminSteps; double CKTgminFactor; int CKTnoncon; double CKTdefaultMosM; double CKTdefaultMosL; double CKTdefaultMosW; double CKTdefaultMosAD; double CKTdefaultMosAS; unsigned int CKThadNodeset; unsigned int CKTfixLimit; unsigned int CKTnoOpIter; unsigned int CKTisSetup; struct sJOB { int JOBtype; struct sJOB *JOBnextJob; char *JOBname; } *CKTcurJob; struct SENstruct { int JOBtype; struct sJOB *JOBnextJob; char *JOBname; int SENnumVal; char **SENdevices; char **SENparmNames; unsigned int SENinitflag; unsigned int SENicflag; unsigned int SENstatus; unsigned int SENacpertflag; int SENmode; int SENparms; double SENpertfac; double **SEN_Sap; double **SEN_RHS; double **SEN_iRHS; int SENsize; void *SEN_Jacmat; double *SEN_parmVal; char **SEN_parmName; } *CKTsenInfo; double *CKTtimePoints; double *CKTdeltaList; int CKTtimeListSize; int CKTtimeIndex; int CKTsizeIncr; unsigned int CKTtryToCompact; unsigned int CKTbadMos3; unsigned int CKTkeepOpInfo; unsigned int CKTcopyNodesets; unsigned int CKTnodeDamping; double CKTabsDv; double CKTrelDv; int CKTtroubleNode; struct sGENinstance *CKTtroubleElt; } *

variable_types: struct Ndata { double freq; double lstFreq; double delFreq; double outNoiz; double inNoise; double GainSqInv; double lnGainInv; double lnFreq; double lnLastFreq; double delLnFreq; int outNumber; int numPlots; unsigned int prtSummary; double *outpVector; void *NplotPtr; char **namelist; } *

variable_types:
OnDens
double *

variable_types: struct sB3SOIinstance { struct sB3SOImodel { int B3SOImodType; struct sB3SOImodel *B3SOInextModel; struct sB3SOIinstance *B3SOIinstances; char *B3SOImodName; int B3SOItype; int B3SOImobMod; int B3SOIcapMod; int B3SOInoiMod; int B3SOIshMod; int B3SOIbinUnit; int B3SOIparamChk; double B3SOIversion; double B3SOItox; double B3SOIdtoxcv; double B3SOIcdsc; double B3SOIcdscb; double B3SOIcdscd; double B3SOIcit; double B3SOInfactor; double B3SOIvsat; double B3SOIat; double B3SOIa0; double B3SOIags; double B3SOIa1; double B3SOIa2; double B3SOIketa; double B3SOInsub; double B3SOInpeak; double B3SOIngate; double B3SOIgamma1; double B3SOIgamma2; double B3SOIvbx; double B3SOIvbm; double B3SOIxt; double B3SOIk1; double B3SOIkt1; double B3SOIkt1l; double B3SOIkt2; double B3SOIk2; double B3SOIk3; double B3SOIk3b; double B3SOIw0; double B3SOInlx; double B3SOIdvt0; double B3SOIdvt1; double B3SOIdvt2; double B3SOIdvt0w; double B3SOIdvt1w; double B3SOIdvt2w; double B3SOIdrout; double B3SOIdsub; double B3SOIvth0; double B3SOIua; double B3SOIua1; double B3SOIub; double B3SOIub1; double B3SOIuc; double B3SOIuc1; double B3SOIu0; double B3SOIute; double B3SOIvoff; double B3SOIdelta; double B3SOIrdsw; double B3SOIprwg; double B3SOIprwb; double B3SOIprt; double B3SOIeta0; double B3SOIetab; double B3SOIpclm; double B3SOIpdibl1; double B3SOIpdibl2; double B3SOIpdiblb; double B3SOIpvag; double B3SOIwr; double B3SOIdwg; double B3SOIdwb; double B3SOIb0; double B3SOIb1; double B3SOIalpha0; double B3SOItbox; double B3SOItsi; double B3SOIxj; double B3SOIkb1; double B3SOIrth0; double B3SOIcth0; double B3SOIngidl; double B3SOIagidl; double B3SOIbgidl; double B3SOIndiode; double B3SOIistun; double B3SOIxbjt; double B3SOIxdif; double B3SOIxrec; double B3SOIxtun; double B3SOIsoiMod; double B3SOIvbsa; double B3SOInofffd; double B3SOIvofffd; double B3SOIk1b; double B3SOIk2b; double B3SOIdk2b; double B3SOIdvbd0; double B3SOIdvbd1; double B3SOImoinFD; int B3SOIigbMod; int B3SOIigcMod; double B3SOIaigc; double B3SOIbigc; double B3SOIcigc; double B3SOIaigsd; double B3SOIbigsd; double B3SOIcigsd; double B3SOInigc; double B3SOIpigcd; double B3SOIpoxedge; double B3SOIdlcig; double B3SOIwth0; double B3SOIrhalo; double B3SOIntox; double B3SOItoxref; double B3SOIebg; double B3SOIvevb; double B3SOIalphaGB1; double B3SOIbetaGB1; double B3SOIvgb1; double B3SOIvecb; double B3SOIalphaGB2; double B3SOIbetaGB2; double B3SOIvgb2; double B3SOItoxqm; double B3SOIvoxh; double B3SOIdeltavox; double B3SOIk1w1; double B3SOIk1w2; double B3SOIketas; double B3SOIdwbc; double B3SOIbeta0; double B3SOIbeta1; double B3SOIbeta2; double B3SOIvdsatii0; double B3SOItii; double B3SOIlii; double B3SOIsii0; double B3SOIsii1; double B3SOIsii2; double B3SOIsiid; double B3SOIfbjtii; double B3SOIesatii; double B3SOIntun; double B3SOInrecf0; double B3SOInrecr0; double B3SOIisbjt; double B3SOIisdif; double B3SOIisrec; double B3SOIln; double B3SOIvrec0; double B3SOIvtun0; double B3SOInbjt; double B3SOIlbjt0; double B3SOIldif0; double B3SOIvabjt; double B3SOIaely; double B3SOIahli; double B3SOIrbody; double B3SOIrbsh; double B3SOItt; double B3SOIndif; double B3SOIvsdfb; double B3SOIvsdth; double B3SOIcsdmin; double B3SOIasd; double B3SOIntrecf; double B3SOIntrecr; double B3SOIdlcb; double B3SOIfbody; double B3SOItcjswg; double B3SOItpbswg; double B3SOIacde; double B3SOImoin; double B3SOIdelvt; double B3SOIdlbg; double B3SOIcgsl; double B3SOIcgdl; double B3SOIckappa; double B3SOIcf; double B3SOIclc; double B3SOIcle; double B3SOIdwc; double B3SOIdlc; double B3SOItnom; double B3SOIcgso; double B3SOIcgdo; double B3SOIcgeo; double B3SOIxpart; double B3SOIcFringOut; double B3SOIcFringMax; double B3SOIsheetResistance; double B3SOIbodyJctGateSideGradingCoeff; double B3SOIGatesidewallJctPotential; double B3SOIunitLengthGateSidewallJctCap; double B3SOIcsdesw; double B3SOILint; double B3SOILl; double B3SOILlc; double B3SOILln; double B3SOILw; double B3SOILwc; double B3SOILwn; double B3SOILwl; double B3SOILwlc; double B3SOILmin; double B3SOILmax; double B3SOIWint; double B3SOIWl; double B3SOIWlc; double B3SOIWln; double B3SOIWw; double B3SOIWwc; double B3SOIWwn; double B3SOIWwl; double B3SOIWwlc; double B3SOIWmin; double B3SOIWmax; double B3SOIlaigc; double B3SOIlbigc; double B3SOIlcigc; double B3SOIlaigsd; double B3SOIlbigsd; double B3SOIlcigsd; double B3SOIlnigc; double B3SOIlpigcd; double B3SOIlpoxedge; double B3SOIlnpeak; double B3SOIlnsub; double B3SOIlngate; double B3SOIlvth0; double B3SOIlk1; double B3SOIlk1w1; double B3SOIlk1w2; double B3SOIlk2; double B3SOIlk3; double B3SOIlk3b; double B3SOIlkb1; double B3SOIlw0; double B3SOIlnlx; double B3SOIldvt0; double B3SOIldvt1; double B3SOIldvt2; double B3SOIldvt0w; double B3SOIldvt1w; double B3SOIldvt2w; double B3SOIlu0; double B3SOIlua; double B3SOIlub; double B3SOIluc; double B3SOIlvsat; double B3SOIla0; double B3SOIlags; double B3SOIlb0; double B3SOIlb1; double B3SOIlketa; double B3SOIlketas; double B3SOIla1; double B3SOIla2; double B3SOIlrdsw; double B3SOIlprwb; double B3SOIlprwg; double B3SOIlwr; double B3SOIlnfactor; double B3SOIldwg; double B3SOIldwb; double B3SOIlvoff; double B3SOIleta0; double B3SOIletab; double B3SOIldsub; double B3SOIlcit; double B3SOIlcdsc; double B3SOIlcdscb; double B3SOIlcdscd; double B3SOIlpclm; double B3SOIlpdibl1; double B3SOIlpdibl2; double B3SOIlpdiblb; double B3SOIldrout; double B3SOIlpvag; double B3SOIldelta; double B3SOIlalpha0; double B3SOIlfbjtii; double B3SOIlbeta0; double B3SOIlbeta1; double B3SOIlbeta2; double B3SOIlvdsatii0; double B3SOIllii; double B3SOIlesatii; double B3SOIlsii0; double B3SOIlsii1; double B3SOIlsii2; double B3SOIlsiid; double B3SOIlagidl; double B3SOIlbgidl; double B3SOIlngidl; double B3SOIlntun; double B3SOIlndiode; double B3SOIlnrecf0; double B3SOIlnrecr0; double B3SOIlisbjt; double B3SOIlisdif; double B3SOIlisrec; double B3SOIlistun; double B3SOIlvrec0; double B3SOIlvtun0; double B3SOIlnbjt; double B3SOIllbjt0; double B3SOIlvabjt; double B3SOIlaely; double B3SOIlahli; double B3SOIlvsdfb; double B3SOIlvsdth; double B3SOIldelvt; double B3SOIlacde; double B3SOIlmoin; double B3SOIwaigc; double B3SOIwbigc; double B3SOIwcigc; double B3SOIwaigsd; double B3SOIwbigsd; double B3SOIwcigsd; double B3SOIwnigc; double B3SOIwpigcd; double B3SOIwpoxedge; double B3SOIwnpeak; double B3SOIwnsub; double B3SOIwngate; double B3SOIwvth0; double B3SOIwk1; double B3SOIwk1w1; double B3SOIwk1w2; double B3SOIwk2; double B3SOIwk3; double B3SOIwk3b; double B3SOIwkb1; double B3SOIww0; double B3SOIwnlx; double B3SOIwdvt0; double B3SOIwdvt1; double B3SOIwdvt2; double B3SOIwdvt0w; double B3SOIwdvt1w; double B3SOIwdvt2w; double B3SOIwu0; double B3SOIwua; double B3SOIwub; double B3SOIwuc; double B3SOIwvsat; double B3SOIwa0; double B3SOIwags; double B3SOIwb0; double B3SOIwb1; double B3SOIwketa; double B3SOIwketas; double B3SOIwa1; double B3SOIwa2; double B3SOIwrdsw; double B3SOIwprwb; double B3SOIwprwg; double B3SOIwwr; double B3SOIwnfactor; double B3SOIwdwg; double B3SOIwdwb; double B3SOIwvoff; double B3SOIweta0; double B3SOIwetab; double B3SOIwdsub; double B3SOIwcit; double B3SOIwcdsc; double B3SOIwcdscb; double B3SOIwcdscd; double B3SOIwpclm; double B3SOIwpdibl1; double B3SOIwpdibl2; double B3SOIwpdiblb; double B3SOIwdrout; double B3SOIwpvag; double B3SOIwdelta; double B3SOIwalpha0; double B3SOIwfbjtii; double B3SOIwbeta0; double B3SOIwbeta1; double B3SOIwbeta2; double B3SOIwvdsatii0; double B3SOIwlii; double B3SOIwesatii; double B3SOIwsii0; double B3SOIwsii1; double B3SOIwsii2; double B3SOIwsiid; double B3SOIwagidl; double B3SOIwbgidl; double B3SOIwngidl; double B3SOIwntun; double B3SOIwndiode; double B3SOIwnrecf0; double B3SOIwnrecr0; double B3SOIwisbjt; double B3SOIwisdif; double B3SOIwisrec; double B3SOIwistun; double B3SOIwvrec0; double B3SOIwvtun0; double B3SOIwnbjt; double B3SOIwlbjt0; double B3SOIwvabjt; double B3SOIwaely; double B3SOIwahli; double B3SOIwvsdfb; double B3SOIwvsdth; double B3SOIwdelvt; double B3SOIwacde; double B3SOIwmoin; double B3SOIpaigc; double B3SOIpbigc; double B3SOIpcigc; double B3SOIpaigsd; double B3SOIpbigsd; double B3SOIpcigsd; double B3SOIpnigc; double B3SOIppigcd; double B3SOIppoxedge; double B3SOIpnpeak; double B3SOIpnsub; double B3SOIpngate; double B3SOIpvth0; double B3SOIpk1; double B3SOIpk1w1; double B3SOIpk1w2; double B3SOIpk2; double B3SOIpk3; double B3SOIpk3b; double B3SOIpkb1; double B3SOIpw0; double B3SOIpnlx; double B3SOIpdvt0; double B3SOIpdvt1; double B3SOIpdvt2; double B3SOIpdvt0w; double B3SOIpdvt1w; double B3SOIpdvt2w; double B3SOIpu0; double B3SOIpua; double B3SOIpub; double B3SOIpuc; double B3SOIpvsat; double B3SOIpa0; double B3SOIpags; double B3SOIpb0; double B3SOIpb1; double B3SOIpketa; double B3SOIpketas; double B3SOIpa1; double B3SOIpa2; double B3SOIprdsw; double B3SOIpprwb; double B3SOIpprwg; double B3SOIpwr; double B3SOIpnfactor; double B3SOIpdwg; double B3SOIpdwb; double B3SOIpvoff; double B3SOIpeta0; double B3SOIpetab; double B3SOIpdsub; double B3SOIpcit; double B3SOIpcdsc; double B3SOIpcdscb; double B3SOIpcdscd; double B3SOIppclm; double B3SOIppdibl1; double B3SOIppdibl2; double B3SOIppdiblb; double B3SOIpdrout; double B3SOIppvag; double B3SOIpdelta; double B3SOIpalpha0; double B3SOIpfbjtii; double B3SOIpbeta0; double B3SOIpbeta1; double B3SOIpbeta2; double B3SOIpvdsatii0; double B3SOIplii; double B3SOIpesatii; double B3SOIpsii0; double B3SOIpsii1; double B3SOIpsii2; double B3SOIpsiid; double B3SOIpagidl; double B3SOIpbgidl; double B3SOIpngidl; double B3SOIpntun; double B3SOIpndiode; double B3SOIpnrecf0; double B3SOIpnrecr0; double B3SOIpisbjt; double B3SOIpisdif; double B3SOIpisrec; double B3SOIpistun; double B3SOIpvrec0; double B3SOIpvtun0; double B3SOIpnbjt; double B3SOIplbjt0; double B3SOIpvabjt; double B3SOIpaely; double B3SOIpahli; double B3SOIpvsdfb; double B3SOIpvsdth; double B3SOIpdelvt; double B3SOIpacde; double B3SOIpmoin; double B3SOIcbox; double B3SOIcsi; double B3SOIcsieff; double B3SOIcoxt; double B3SOInfb; double B3SOIadice; double B3SOIqsi; double B3SOIqsieff; double B3SOIeg0; double B3SOIvtm; double B3SOIcox; double B3SOIcof1; double B3SOIcof2; double B3SOIcof3; double B3SOIcof4; double B3SOIvcrit; double B3SOIfactor1; double B3SOIoxideTrapDensityA; double B3SOIoxideTrapDensityB; double B3SOIoxideTrapDensityC; double B3SOIem; double B3SOIef; double B3SOIaf; double B3SOIkf; double B3SOInoif; struct b3soiSizeDependParam { double Width; double Length; double Rth0; double Cth0; double B3SOIcdsc; double B3SOIcdscb; double B3SOIcdscd; double B3SOIcit; double B3SOInfactor; double B3SOIvsat; double B3SOIat; double B3SOIa0; double B3SOIags; double B3SOIa1; double B3SOIa2; double B3SOIketa; double B3SOInpeak; double B3SOInsub; double B3SOIngate; double B3SOIgamma1; double B3SOIgamma2; double B3SOIvbx; double B3SOIvbi; double B3SOIvbm; double B3SOIvbsc; double B3SOIxt; double B3SOIphi; double B3SOIlitl; double B3SOIk1; double B3SOIkt1; double B3SOIkt1l; double B3SOIkt2; double B3SOIk2; double B3SOIk3; double B3SOIk3b; double B3SOIw0; double B3SOInlx; double B3SOIdvt0; double B3SOIdvt1; double B3SOIdvt2; double B3SOIdvt0w; double B3SOIdvt1w; double B3SOIdvt2w; double B3SOIdrout; double B3SOIdsub; double B3SOIvth0; double B3SOIua; double B3SOIua1; double B3SOIub; double B3SOIub1; double B3SOIuc; double B3SOIuc1; double B3SOIu0; double B3SOIute; double B3SOIvoff; double B3SOIvfb; double B3SOIuatemp; double B3SOIubtemp; double B3SOIuctemp; double B3SOIrbody; double B3SOIrth; double B3SOIcth; double B3SOIrds0denom; double B3SOIvfbb; double B3SOIjbjt; double B3SOIjdif; double B3SOIjrec; double B3SOIjtun; double B3SOIsdt1; double B3SOIst2; double B3SOIst3; double B3SOIdt2; double B3SOIdt3; double B3SOIdelta; double B3SOIrdsw; double B3SOIrds0; double B3SOIprwg; double B3SOIprwb; double B3SOIprt; double B3SOIeta0; double B3SOIetab; double B3SOIpclm; double B3SOIpdibl1; double B3SOIpdibl2; double B3SOIpdiblb; double B3SOIpvag; double B3SOIwr; double B3SOIdwg; double B3SOIdwb; double B3SOIb0; double B3SOIb1; double B3SOIalpha0; double B3SOIbeta0; double B3SOIaigc; double B3SOIbigc; double B3SOIcigc; double B3SOIaigsd; double B3SOIbigsd; double B3SOIcigsd; double B3SOInigc; double B3SOIpigcd; double B3SOIpoxedge; double B3SOIdlcig; double B3SOIcgsl; double B3SOIcgdl; double B3SOIckappa; double B3SOIcf; double B3SOIclc; double B3SOIcle; double B3SOIkb1; double B3SOIk1w1; double B3SOIk1w2; double B3SOIketas; double B3SOIfbjtii; double B3SOIbeta1; double B3SOIbeta2; double B3SOIvdsatii0; double B3SOIlii; double B3SOIesatii; double B3SOIsii0; double B3SOIsii1; double B3SOIsii2; double B3SOIsiid; double B3SOIagidl; double B3SOIbgidl; double B3SOIngidl; double B3SOIntun; double B3SOIndiode; double B3SOInrecf0; double B3SOInrecr0; double B3SOIisbjt; double B3SOIisdif; double B3SOIisrec; double B3SOIistun; double B3SOIvrec0; double B3SOIvtun0; double B3SOInbjt; double B3SOIlbjt0; double B3SOIvabjt; double B3SOIaely; double B3SOIvsdfb; double B3SOIvsdth; double B3SOIdelvt; double B3SOIdw; double B3SOIdl; double B3SOIleff; double B3SOIweff; double B3SOIdwc; double B3SOIdlc; double B3SOIleffCV; double B3SOIweffCV; double B3SOIabulkCVfactor; double B3SOIcgso; double B3SOIcgdo; double B3SOIcgeo; double B3SOIu0temp; double B3SOIvsattemp; double B3SOIsqrtPhi; double B3SOIphis3; double B3SOIXdep0; double B3SOIsqrtXdep0; double B3SOItheta0vb0; double B3SOIthetaRout; double B3SOIoxideRatio; double B3SOIk1eff; double B3SOIwdios; double B3SOIwdiod; double B3SOIwdiodCV; double B3SOIwdiosCV; double B3SOIarfabjt; double B3SOIlratio; double B3SOIlratiodif; double B3SOIvearly; double B3SOIahli; double B3SOIahli0; double B3SOIvfbzb; double B3SOIldeb; double B3SOIacde; double B3SOImoin; double B3SOIleffCVb; double B3SOIleffCVbg; double B3SOIcof1; double B3SOIcof2; double B3SOIcof3; double B3SOIcof4; double B3SOIcdep0; double B3SOIToxRatio; double B3SOIAechvb; double B3SOIBechvb; double B3SOIToxRatioEdge; double B3SOIAechvbEdge; double B3SOIBechvbEdge; double B3SOIvfbsd; struct b3soiSizeDependParam *pNext; } *pSizeDependParamKnot; unsigned int B3SOIsoimodGiven; unsigned int B3SOIvbsaGiven; unsigned int B3SOInofffdGiven; unsigned int B3SOIvofffdGiven; unsigned int B3SOIk1bGiven; unsigned int B3SOIk2bGiven; unsigned int B3SOIdk2bGiven; unsigned int B3SOIdvbd0Given; unsigned int B3SOIdvbd1Given; unsigned int B3SOImoinFDGiven; unsigned int B3SOItboxGiven; unsigned int B3SOItsiGiven; unsigned int B3SOIxjGiven; unsigned int B3SOIkb1Given; unsigned int B3SOIrth0Given; unsigned int B3SOIcth0Given; unsigned int B3SOIngidlGiven; unsigned int B3SOIagidlGiven; unsigned int B3SOIbgidlGiven; unsigned int B3SOIndiodeGiven; unsigned int B3SOIxbjtGiven; unsigned int B3SOIxdifGiven; unsigned int B3SOIxrecGiven; unsigned int B3SOIxtunGiven; unsigned int B3SOIttGiven; unsigned int B3SOIvsdfbGiven; unsigned int B3SOIvsdthGiven; unsigned int B3SOIasdGiven; unsigned int B3SOIcsdminGiven; unsigned int B3SOImobModGiven; unsigned int B3SOIbinUnitGiven; unsigned int B3SOIcapModGiven; unsigned int B3SOIparamChkGiven; unsigned int B3SOInoiModGiven; unsigned int B3SOIshModGiven; unsigned int B3SOItypeGiven; unsigned int B3SOItoxGiven; unsigned int B3SOIdtoxcvGiven; unsigned int B3SOIversionGiven; unsigned int B3SOIcdscGiven; unsigned int B3SOIcdscbGiven; unsigned int B3SOIcdscdGiven; unsigned int B3SOIcitGiven; unsigned int B3SOInfactorGiven; unsigned int B3SOIvsatGiven; unsigned int B3SOIatGiven; unsigned int B3SOIa0Given; unsigned int B3SOIagsGiven; unsigned int B3SOIa1Given; unsigned int B3SOIa2Given; unsigned int B3SOIketaGiven; unsigned int B3SOInsubGiven; unsigned int B3SOInpeakGiven; unsigned int B3SOIngateGiven; unsigned int B3SOIgamma1Given; unsigned int B3SOIgamma2Given; unsigned int B3SOIvbxGiven; unsigned int B3SOIvbmGiven; unsigned int B3SOIxtGiven; unsigned int B3SOIk1Given; unsigned int B3SOIkt1Given; unsigned int B3SOIkt1lGiven; unsigned int B3SOIkt2Given; unsigned int B3SOIk2Given; unsigned int B3SOIk3Given; unsigned int B3SOIk3bGiven; unsigned int B3SOIw0Given; unsigned int B3SOInlxGiven; unsigned int B3SOIdvt0Given; unsigned int B3SOIdvt1Given; unsigned int B3SOIdvt2Given; unsigned int B3SOIdvt0wGiven; unsigned int B3SOIdvt1wGiven; unsigned int B3SOIdvt2wGiven; unsigned int B3SOIdroutGiven; unsigned int B3SOIdsubGiven; unsigned int B3SOIvth0Given; unsigned int B3SOIuaGiven; unsigned int B3SOIua1Given; unsigned int B3SOIubGiven; unsigned int B3SOIub1Given; unsigned int B3SOIucGiven; unsigned int B3SOIuc1Given; unsigned int B3SOIu0Given; unsigned int B3SOIuteGiven; unsigned int B3SOIvoffGiven; unsigned int B3SOIrdswGiven; unsigned int B3SOIprwgGiven; unsigned int B3SOIprwbGiven; unsigned int B3SOIprtGiven; unsigned int B3SOIeta0Given; unsigned int B3SOIetabGiven; unsigned int B3SOIpclmGiven; unsigned int B3SOIpdibl1Given; unsigned int B3SOIpdibl2Given; unsigned int B3SOIpdiblbGiven; unsigned int B3SOIpvagGiven; unsigned int B3SOIdeltaGiven; unsigned int B3SOIwrGiven; unsigned int B3SOIdwgGiven; unsigned int B3SOIdwbGiven; unsigned int B3SOIb0Given; unsigned int B3SOIb1Given; unsigned int B3SOIalpha0Given; unsigned int B3SOIwth0Given; unsigned int B3SOIrhaloGiven; unsigned int B3SOIntoxGiven; unsigned int B3SOItoxrefGiven; unsigned int B3SOIebgGiven; unsigned int B3SOIvevbGiven; unsigned int B3SOIalphaGB1Given; unsigned int B3SOIbetaGB1Given; unsigned int B3SOIvgb1Given; unsigned int B3SOIvecbGiven; unsigned int B3SOIalphaGB2Given; unsigned int B3SOIbetaGB2Given; unsigned int B3SOIvgb2Given; unsigned int B3SOItoxqmGiven; unsigned int B3SOIigbModGiven; unsigned int B3SOIvoxhGiven; unsigned int B3SOIdeltavoxGiven; unsigned int B3SOIigcModGiven; unsigned int B3SOIaigcGiven; unsigned int B3SOIbigcGiven; unsigned int B3SOIcigcGiven; unsigned int B3SOIaigsdGiven; unsigned int B3SOIbigsdGiven; unsigned int B3SOIcigsdGiven; unsigned int B3SOInigcGiven; unsigned int B3SOIpigcdGiven; unsigned int B3SOIpoxedgeGiven; unsigned int B3SOIdlcigGiven; unsigned int B3SOIk1w1Given; unsigned int B3SOIk1w2Given; unsigned int B3SOIketasGiven; unsigned int B3SOIdwbcGiven; unsigned int B3SOIbeta0Given; unsigned int B3SOIbeta1Given; unsigned int B3SOIbeta2Given; unsigned int B3SOIvdsatii0Given; unsigned int B3SOItiiGiven; unsigned int B3SOIliiGiven; unsigned int B3SOIsii0Given; unsigned int B3SOIsii1Given; unsigned int B3SOIsii2Given; unsigned int B3SOIsiidGiven; unsigned int B3SOIfbjtiiGiven; unsigned int B3SOIesatiiGiven; unsigned int B3SOIntunGiven; unsigned int B3SOInrecf0Given; unsigned int B3SOInrecr0Given; unsigned int B3SOIisbjtGiven; unsigned int B3SOIisdifGiven; unsigned int B3SOIisrecGiven; unsigned int B3SOIistunGiven; unsigned int B3SOIlnGiven; unsigned int B3SOIvrec0Given; unsigned int B3SOIvtun0Given; unsigned int B3SOInbjtGiven; unsigned int B3SOIlbjt0Given; unsigned int B3SOIldif0Given; unsigned int B3SOIvabjtGiven; unsigned int B3SOIaelyGiven; unsigned int B3SOIahliGiven; unsigned int B3SOIrbodyGiven; unsigned int B3SOIrbshGiven; unsigned int B3SOIndifGiven; unsigned int B3SOIntrecfGiven; unsigned int B3SOIntrecrGiven; unsigned int B3SOIdlcbGiven; unsigned int B3SOIfbodyGiven; unsigned int B3SOItcjswgGiven; unsigned int B3SOItpbswgGiven; unsigned int B3SOIacdeGiven; unsigned int B3SOImoinGiven; unsigned int B3SOIdelvtGiven; unsigned int B3SOIdlbgGiven; unsigned int B3SOIcgslGiven; unsigned int B3SOIcgdlGiven; unsigned int B3SOIckappaGiven; unsigned int B3SOIcfGiven; unsigned int B3SOIclcGiven; unsigned int B3SOIcleGiven; unsigned int B3SOIdwcGiven; unsigned int B3SOIdlcGiven; unsigned int B3SOIlaigcGiven; unsigned int B3SOIlbigcGiven; unsigned int B3SOIlcigcGiven; unsigned int B3SOIlaigsdGiven; unsigned int B3SOIlbigsdGiven; unsigned int B3SOIlcigsdGiven; unsigned int B3SOIlnigcGiven; unsigned int B3SOIlpigcdGiven; unsigned int B3SOIlpoxedgeGiven; unsigned int B3SOIlnpeakGiven; unsigned int B3SOIlnsubGiven; unsigned int B3SOIlngateGiven; unsigned int B3SOIlvth0Given; unsigned int B3SOIlk1Given; unsigned int B3SOIlk1w1Given; unsigned int B3SOIlk1w2Given; unsigned int B3SOIlk2Given; unsigned int B3SOIlk3Given; unsigned int B3SOIlk3bGiven; unsigned int B3SOIlkb1Given; unsigned int B3SOIlw0Given; unsigned int B3SOIlnlxGiven; unsigned int B3SOIldvt0Given; unsigned int B3SOIldvt1Given; unsigned int B3SOIldvt2Given; unsigned int B3SOIldvt0wGiven; unsigned int B3SOIldvt1wGiven; unsigned int B3SOIldvt2wGiven; unsigned int B3SOIlu0Given; unsigned int B3SOIluaGiven; unsigned int B3SOIlubGiven; unsigned int B3SOIlucGiven; unsigned int B3SOIlvsatGiven; unsigned int B3SOIla0Given; unsigned int B3SOIlagsGiven; unsigned int B3SOIlb0Given; unsigned int B3SOIlb1Given; unsigned int B3SOIlketaGiven; unsigned int B3SOIlketasGiven; unsigned int B3SOIla1Given; unsigned int B3SOIla2Given; unsigned int B3SOIlrdswGiven; unsigned int B3SOIlprwbGiven; unsigned int B3SOIlprwgGiven; unsigned int B3SOIlwrGiven; unsigned int B3SOIlnfactorGiven; unsigned int B3SOIldwgGiven; unsigned int B3SOIldwbGiven; unsigned int B3SOIlvoffGiven; unsigned int B3SOIleta0Given; unsigned int B3SOIletabGiven; unsigned int B3SOIldsubGiven; unsigned int B3SOIlcitGiven; unsigned int B3SOIlcdscGiven; unsigned int B3SOIlcdscbGiven; unsigned int B3SOIlcdscdGiven; unsigned int B3SOIlpclmGiven; unsigned int B3SOIlpdibl1Given; unsigned int B3SOIlpdibl2Given; unsigned int B3SOIlpdiblbGiven; unsigned int B3SOIldroutGiven; unsigned int B3SOIlpvagGiven; unsigned int B3SOIldeltaGiven; unsigned int B3SOIlalpha0Given; unsigned int B3SOIlfbjtiiGiven; unsigned int B3SOIlbeta0Given; unsigned int B3SOIlbeta1Given; unsigned int B3SOIlbeta2Given; unsigned int B3SOIlvdsatii0Given; unsigned int B3SOIlliiGiven; unsigned int B3SOIlesatiiGiven; unsigned int B3SOIlsii0Given; unsigned int B3SOIlsii1Given; unsigned int B3SOIlsii2Given; unsigned int B3SOIlsiidGiven; unsigned int B3SOIlagidlGiven; unsigned int B3SOIlbgidlGiven; unsigned int B3SOIlngidlGiven; unsigned int B3SOIlntunGiven; unsigned int B3SOIlndiodeGiven; unsigned int B3SOIlnrecf0Given; unsigned int B3SOIlnrecr0Given; unsigned int B3SOIlisbjtGiven; unsigned int B3SOIlisdifGiven; unsigned int B3SOIlisrecGiven; unsigned int B3SOIlistunGiven; unsigned int B3SOIlvrec0Given; unsigned int B3SOIlvtun0Given; unsigned int B3SOIlnbjtGiven; unsigned int B3SOIllbjt0Given; unsigned int B3SOIlvabjtGiven; unsigned int B3SOIlaelyGiven; unsigned int B3SOIlahliGiven; unsigned int B3SOIlvsdfbGiven; unsigned int B3SOIlvsdthGiven; unsigned int B3SOIldelvtGiven; unsigned int B3SOIlacdeGiven; unsigned int B3SOIlmoinGiven; unsigned int B3SOIwaigcGiven; unsigned int B3SOIwbigcGiven; unsigned int B3SOIwcigcGiven; unsigned int B3SOIwaigsdGiven; unsigned int B3SOIwbigsdGiven; unsigned int B3SOIwcigsdGiven; unsigned int B3SOIwnigcGiven; unsigned int B3SOIwpigcdGiven; unsigned int B3SOIwpoxedgeGiven; unsigned int B3SOIwnpeakGiven; unsigned int B3SOIwnsubGiven; unsigned int B3SOIwngateGiven; unsigned int B3SOIwvth0Given; unsigned int B3SOIwk1Given; unsigned int B3SOIwk1w1Given; unsigned int B3SOIwk1w2Given; unsigned int B3SOIwk2Given; unsigned int B3SOIwk3Given; unsigned int B3SOIwk3bGiven; unsigned int B3SOIwkb1Given; unsigned int B3SOIww0Given; unsigned int B3SOIwnlxGiven; unsigned int B3SOIwdvt0Given; unsigned int B3SOIwdvt1Given; unsigned int B3SOIwdvt2Given; unsigned int B3SOIwdvt0wGiven; unsigned int B3SOIwdvt1wGiven; unsigned int B3SOIwdvt2wGiven; unsigned int B3SOIwu0Given; unsigned int B3SOIwuaGiven; unsigned int B3SOIwubGiven; unsigned int B3SOIwucGiven; unsigned int B3SOIwvsatGiven; unsigned int B3SOIwa0Given; unsigned int B3SOIwagsGiven; unsigned int B3SOIwb0Given; unsigned int B3SOIwb1Given; unsigned int B3SOIwketaGiven; unsigned int B3SOIwketasGiven; unsigned int B3SOIwa1Given; unsigned int B3SOIwa2Given; unsigned int B3SOIwrdswGiven; unsigned int B3SOIwprwbGiven; unsigned int B3SOIwprwgGiven; unsigned int B3SOIwwrGiven; unsigned int B3SOIwnfactorGiven; unsigned int B3SOIwdwgGiven; unsigned int B3SOIwdwbGiven; unsigned int B3SOIwvoffGiven; unsigned int B3SOIweta0Given; unsigned int B3SOIwetabGiven; unsigned int B3SOIwdsubGiven; unsigned int B3SOIwcitGiven; unsigned int B3SOIwcdscGiven; unsigned int B3SOIwcdscbGiven; unsigned int B3SOIwcdscdGiven; unsigned int B3SOIwpclmGiven; unsigned int B3SOIwpdibl1Given; unsigned int B3SOIwpdibl2Given; unsigned int B3SOIwpdiblbGiven; unsigned int B3SOIwdroutGiven; unsigned int B3SOIwpvagGiven; unsigned int B3SOIwdeltaGiven; unsigned int B3SOIwalpha0Given; unsigned int B3SOIwfbjtiiGiven; unsigned int B3SOIwbeta0Given; unsigned int B3SOIwbeta1Given; unsigned int B3SOIwbeta2Given; unsigned int B3SOIwvdsatii0Given; unsigned int B3SOIwliiGiven; unsigned int B3SOIwesatiiGiven; unsigned int B3SOIwsii0Given; unsigned int B3SOIwsii1Given; unsigned int B3SOIwsii2Given; unsigned int B3SOIwsiidGiven; unsigned int B3SOIwagidlGiven; unsigned int B3SOIwbgidlGiven; unsigned int B3SOIwngidlGiven; unsigned int B3SOIwntunGiven; unsigned int B3SOIwndiodeGiven; unsigned int B3SOIwnrecf0Given; unsigned int B3SOIwnrecr0Given; unsigned int B3SOIwisbjtGiven; unsigned int B3SOIwisdifGiven; unsigned int B3SOIwisrecGiven; unsigned int B3SOIwistunGiven; unsigned int B3SOIwvrec0Given; unsigned int B3SOIwvtun0Given; unsigned int B3SOIwnbjtGiven; unsigned int B3SOIwlbjt0Given; unsigned int B3SOIwvabjtGiven; unsigned int B3SOIwaelyGiven; unsigned int B3SOIwahliGiven; unsigned int B3SOIwvsdfbGiven; unsigned int B3SOIwvsdthGiven; unsigned int B3SOIwdelvtGiven; unsigned int B3SOIwacdeGiven; unsigned int B3SOIwmoinGiven; unsigned int B3SOIpaigcGiven; unsigned int B3SOIpbigcGiven; unsigned int B3SOIpcigcGiven; unsigned int B3SOIpaigsdGiven; unsigned int B3SOIpbigsdGiven; unsigned int B3SOIpcigsdGiven; unsigned int B3SOIpnigcGiven; unsigned int B3SOIppigcdGiven; unsigned int B3SOIppoxedgeGiven; unsigned int B3SOIpnpeakGiven; unsigned int B3SOIpnsubGiven; unsigned int B3SOIpngateGiven; unsigned int B3SOIpvth0Given; unsigned int B3SOIpk1Given; unsigned int B3SOIpk1w1Given; unsigned int B3SOIpk1w2Given; unsigned int B3SOIpk2Given; unsigned int B3SOIpk3Given; unsigned int B3SOIpk3bGiven; unsigned int B3SOIpkb1Given; unsigned int B3SOIpw0Given; unsigned int B3SOIpnlxGiven; unsigned int B3SOIpdvt0Given; unsigned int B3SOIpdvt1Given; unsigned int B3SOIpdvt2Given; unsigned int B3SOIpdvt0wGiven; unsigned int B3SOIpdvt1wGiven; unsigned int B3SOIpdvt2wGiven; unsigned int B3SOIpu0Given; unsigned int B3SOIpuaGiven; unsigned int B3SOIpubGiven; unsigned int B3SOIpucGiven; unsigned int B3SOIpvsatGiven; unsigned int B3SOIpa0Given; unsigned int B3SOIpagsGiven; unsigned int B3SOIpb0Given; unsigned int B3SOIpb1Given; unsigned int B3SOIpketaGiven; unsigned int B3SOIpketasGiven; unsigned int B3SOIpa1Given; unsigned int B3SOIpa2Given; unsigned int B3SOIprdswGiven; unsigned int B3SOIpprwbGiven; unsigned int B3SOIpprwgGiven; unsigned int B3SOIpwrGiven; unsigned int B3SOIpnfactorGiven; unsigned int B3SOIpdwgGiven; unsigned int B3SOIpdwbGiven; unsigned int B3SOIpvoffGiven; unsigned int B3SOIpeta0Given; unsigned int B3SOIpetabGiven; unsigned int B3SOIpdsubGiven; unsigned int B3SOIpcitGiven; unsigned int B3SOIpcdscGiven; unsigned int B3SOIpcdscbGiven; unsigned int B3SOIpcdscdGiven; unsigned int B3SOIppclmGiven; unsigned int B3SOIppdibl1Given; unsigned int B3SOIppdibl2Given; unsigned int B3SOIppdiblbGiven; unsigned int B3SOIpdroutGiven; unsigned int B3SOIppvagGiven; unsigned int B3SOIpdeltaGiven; unsigned int B3SOIpalpha0Given; unsigned int B3SOIpfbjtiiGiven; unsigned int B3SOIpbeta0Given; unsigned int B3SOIpbeta1Given; unsigned int B3SOIpbeta2Given; unsigned int B3SOIpvdsatii0Given; unsigned int B3SOIpliiGiven; unsigned int B3SOIpesatiiGiven; unsigned int B3SOIpsii0Given; unsigned int B3SOIpsii1Given; unsigned int B3SOIpsii2Given; unsigned int B3SOIpsiidGiven; unsigned int B3SOIpagidlGiven; unsigned int B3SOIpbgidlGiven; unsigned int B3SOIpngidlGiven; unsigned int B3SOIpntunGiven; unsigned int B3SOIpndiodeGiven; unsigned int B3SOIpnrecf0Given; unsigned int B3SOIpnrecr0Given; unsigned int B3SOIpisbjtGiven; unsigned int B3SOIpisdifGiven; unsigned int B3SOIpisrecGiven; unsigned int B3SOIpistunGiven; unsigned int B3SOIpvrec0Given; unsigned int B3SOIpvtun0Given; unsigned int B3SOIpnbjtGiven; unsigned int B3SOIplbjt0Given; unsigned int B3SOIpvabjtGiven; unsigned int B3SOIpaelyGiven; unsigned int B3SOIpahliGiven; unsigned int B3SOIpvsdfbGiven; unsigned int B3SOIpvsdthGiven; unsigned int B3SOIpdelvtGiven; unsigned int B3SOIpacdeGiven; unsigned int B3SOIpmoinGiven; unsigned int B3SOIuseFringeGiven; unsigned int B3SOItnomGiven; unsigned int B3SOIcgsoGiven; unsigned int B3SOIcgdoGiven; unsigned int B3SOIcgeoGiven; unsigned int B3SOIxpartGiven; unsigned int B3SOIsheetResistanceGiven; unsigned int B3SOIGatesidewallJctPotentialGiven; unsigned int B3SOIbodyJctGateSideGradingCoeffGiven; unsigned int B3SOIunitLengthGateSidewallJctCapGiven; unsigned int B3SOIcsdeswGiven; unsigned int B3SOIoxideTrapDensityAGiven; unsigned int B3SOIoxideTrapDensityBGiven; unsigned int B3SOIoxideTrapDensityCGiven; unsigned int B3SOIemGiven; unsigned int B3SOIefGiven; unsigned int B3SOIafGiven; unsigned int B3SOIkfGiven; unsigned int B3SOInoifGiven; unsigned int B3SOILintGiven; unsigned int B3SOILlGiven; unsigned int B3SOILlcGiven; unsigned int B3SOILlnGiven; unsigned int B3SOILwGiven; unsigned int B3SOILwcGiven; unsigned int B3SOILwnGiven; unsigned int B3SOILwlGiven; unsigned int B3SOILwlcGiven; unsigned int B3SOILminGiven; unsigned int B3SOILmaxGiven; unsigned int B3SOIWintGiven; unsigned int B3SOIWlGiven; unsigned int B3SOIWlcGiven; unsigned int B3SOIWlnGiven; unsigned int B3SOIWwGiven; unsigned int B3SOIWwcGiven; unsigned int B3SOIWwnGiven; unsigned int B3SOIWwlGiven; unsigned int B3SOIWwlcGiven; unsigned int B3SOIWminGiven; unsigned int B3SOIWmaxGiven; } *B3SOImodPtr; struct sB3SOIinstance *B3SOInextInstance; char *B3SOIname; int B3SOIowner; int B3SOIstates; int B3SOIdNode; int B3SOIgNode; int B3SOIsNode; int B3SOIeNode; int B3SOIpNode; int B3SOIbNode; int B3SOItempNode; int B3SOIdNodePrime; int B3SOIsNodePrime; int B3SOIvbsNode; int B3SOIidsNode; int B3SOIicNode; int B3SOIibsNode; int B3SOIibdNode; int B3SOIiiiNode; int B3SOIigNode; int B3SOIgiggNode; int B3SOIgigdNode; int B3SOIgigbNode; int B3SOIigidlNode; int B3SOIitunNode; int B3SOIibpNode; int B3SOIcbbNode; int B3SOIcbdNode; int B3SOIcbgNode; int B3SOIqbfNode; int B3SOIqjsNode; int B3SOIqjdNode; double B3SOIphi; double B3SOIvtm; double B3SOIni; double B3SOIueff; double B3SOIthetavth; double B3SOIvon; double B3SOIvdsat; double B3SOIcgdo; double B3SOIcgso; double B3SOIcgeo; double B3SOIids; double B3SOIic; double B3SOIibs; double B3SOIibd; double B3SOIiii; double B3SOIig; double B3SOIgigg; double B3SOIgigd; double B3SOIgigb; double B3SOIgige; double B3SOIigidl; double B3SOIitun; double B3SOIibp; double B3SOIabeff; double B3SOIvbseff; double B3SOIcbg; double B3SOIcbb; double B3SOIcbd; double B3SOIqb; double B3SOIqbf; double B3SOIqjs; double B3SOIqjd; int B3SOIfloat; double B3SOIl; double B3SOIw; double B3SOIm; double B3SOIdrainArea; double B3SOIsourceArea; double B3SOIdrainSquares; double B3SOIsourceSquares; double B3SOIdrainPerimeter; double B3SOIsourcePerimeter; double B3SOIsourceConductance; double B3SOIdrainConductance; double B3SOIicVBS; double B3SOIicVDS; double B3SOIicVGS; double B3SOIicVES; double B3SOIicVPS; int B3SOIbjtoff; int B3SOIbodyMod; int B3SOIdebugMod; double B3SOIrth0; double B3SOIcth0; double B3SOIbodySquares; double B3SOIrbodyext; double B3SOIfrbody; double B3SOInbc; double B3SOInseg; double B3SOIpdbcp; double B3SOIpsbcp; double B3SOIagbcp; double B3SOIaebcp; double B3SOIvbsusr; int B3SOItnodeout; double B3SOIcsesw; double B3SOIcdesw; double B3SOIcsbox; double B3SOIcdbox; double B3SOIcsmin; double B3SOIcdmin; double B3SOIst4; double B3SOIdt4; int B3SOIoff; int B3SOImode; double B3SOIqinv; double B3SOIcd; double B3SOIcjs; double B3SOIcjd; double B3SOIcbody; double B3SOIcgate; double B3SOIgigs; double B3SOIgigT; double B3SOIcbodcon; double B3SOIcth; double B3SOIcsubstrate; double B3SOIgm; double B3SOIgme; double B3SOIcb; double B3SOIcdrain; double B3SOIgds; double B3SOIgmbs; double B3SOIgmT; double B3SOIgbbs; double B3SOIgbgs; double B3SOIgbds; double B3SOIgbes; double B3SOIgbps; double B3SOIgbT; double B3SOIIgcs; double B3SOIgIgcsg; double B3SOIgIgcsd; double B3SOIgIgcss; double B3SOIgIgcsb; double B3SOIIgcd; double B3SOIgIgcdg; double B3SOIgIgcdd; double B3SOIgIgcds; double B3SOIgIgcdb; double B3SOIIgs; double B3SOIgIgsg; double B3SOIgIgss; double B3SOIIgd; double B3SOIgIgdg; double B3SOIgIgdd; double B3SOIgjsd; double B3SOIgjsb; double B3SOIgjsg; double B3SOIgjsT; double B3SOIgjdb; double B3SOIgjdd; double B3SOIgjdg; double B3SOIgjde; double B3SOIgjdT; double B3SOIgbpbs; double B3SOIgbpps; double B3SOIgbpT; double B3SOIgtempb; double B3SOIgtempg; double B3SOIgtempd; double B3SOIgtempe; double B3SOIgtempT; double B3SOIcggb; double B3SOIcgdb; double B3SOIcgsb; double B3SOIcgT; double B3SOIcbgb; double B3SOIcbdb; double B3SOIcbsb; double B3SOIcbeb; double B3SOIcbT; double B3SOIcdgb; double B3SOIcddb; double B3SOIcdsb; double B3SOIcdeb; double B3SOIcdT; double B3SOIceeb; double B3SOIceT; double B3SOIqse; double B3SOIgcse; double B3SOIqde; double B3SOIgcde; double B3SOIrds; double B3SOIVgsteff; double B3SOIVdseff; double B3SOIAbovVgst2Vtm; struct b3soiSizeDependParam *pParam; unsigned int B3SOIlGiven; unsigned int B3SOIwGiven; unsigned int B3SOImGiven; unsigned int B3SOIdrainAreaGiven; unsigned int B3SOIsourceAreaGiven; unsigned int B3SOIdrainSquaresGiven; unsigned int B3SOIsourceSquaresGiven; unsigned int B3SOIdrainPerimeterGiven; unsigned int B3SOIsourcePerimeterGiven; unsigned int B3SOIdNodePrimeSet; unsigned int B3SOIsNodePrimeSet; unsigned int B3SOIicVBSGiven; unsigned int B3SOIicVDSGiven; unsigned int B3SOIicVGSGiven; unsigned int B3SOIicVESGiven; unsigned int B3SOIicVPSGiven; unsigned int B3SOIbjtoffGiven; unsigned int B3SOIdebugModGiven; unsigned int B3SOIrth0Given; unsigned int B3SOIcth0Given; unsigned int B3SOIbodySquaresGiven; unsigned int B3SOIfrbodyGiven; unsigned int B3SOInbcGiven; unsigned int B3SOInsegGiven; unsigned int B3SOIpdbcpGiven; unsigned int B3SOIpsbcpGiven; unsigned int B3SOIagbcpGiven; unsigned int B3SOIaebcpGiven; unsigned int B3SOIvbsusrGiven; unsigned int B3SOItnodeoutGiven; unsigned int B3SOIoffGiven; double *B3SOIGePtr; double *B3SOIDPePtr; double *B3SOISPePtr; double *B3SOIEePtr; double *B3SOIEbPtr; double *B3SOIBePtr; double *B3SOIEgPtr; double *B3SOIEdpPtr; double *B3SOIEspPtr; double *B3SOITemptempPtr; double *B3SOITempdpPtr; double *B3SOITempspPtr; double *B3SOITempgPtr; double *B3SOITempbPtr; double *B3SOITempePtr; double *B3SOIGtempPtr; double *B3SOIDPtempPtr; double *B3SOISPtempPtr; double *B3SOIEtempPtr; double *B3SOIBtempPtr; double *B3SOIPtempPtr; double *B3SOIBpPtr; double *B3SOIPbPtr; double *B3SOIPpPtr; double *B3SOIDdPtr; double *B3SOIGgPtr; double *B3SOISsPtr; double *B3SOIBbPtr; double *B3SOIDPdpPtr; double *B3SOISPspPtr; double *B3SOIDdpPtr; double *B3SOIGbPtr; double *B3SOIGdpPtr; double *B3SOIGspPtr; double *B3SOISspPtr; double *B3SOIBdpPtr; double *B3SOIBspPtr; double *B3SOIDPspPtr; double *B3SOIDPdPtr; double *B3SOIBgPtr; double *B3SOIDPgPtr; double *B3SOISPgPtr; double *B3SOISPsPtr; double *B3SOIDPbPtr; double *B3SOISPbPtr; double *B3SOISPdpPtr; double *B3SOIVbsPtr; double *B3SOIIdsPtr; double *B3SOIIcPtr; double *B3SOIIbsPtr; double *B3SOIIbdPtr; double *B3SOIIiiPtr; double *B3SOIIgPtr; double *B3SOIGiggPtr; double *B3SOIGigdPtr; double *B3SOIGigbPtr; double *B3SOIIgidlPtr; double *B3SOIItunPtr; double *B3SOIIbpPtr; double *B3SOICbbPtr; double *B3SOICbdPtr; double *B3SOICbgPtr; double *B3SOIqbPtr; double *B3SOIQbfPtr; double *B3SOIQjsPtr; double *B3SOIQjdPtr; double B3SOInVar[3][6]; } *

variable_types:
name
char [64]

variable_types: tempOnoise double

variable_types: tempInoise double

variable_types:
noizDens
double [6]

variable_types:
lnNdens
double [6]

variable_types: Slimit double

variable_types: Swi double

variable_types: i int

return_type: int

user_defined_types: struct sGENmodel { int GENmodType; struct sGENmodel *GENnextModel; struct sGENinstance *GENinstances; char *GENmodName; }

user_defined_types: struct CKTcircuit { struct sGENmodel **CKThead; struct STATistics *CKTstat; double *CKTstates[8]; double CKTtime; double CKTdelta; double CKTdeltaOld[7]; double CKTtemp; double CKTnomTemp; double CKTvt; double CKTag[7]; double CKTagp[7]; int CKTorder; int CKTmaxOrder; int CKTintegrateMethod; void *CKTmatrix; int CKTniState; double *CKTrhs; double *CKTrhsOld; double *CKTrhsSpare; double *CKTirhs; double *CKTirhsOld; double *CKTirhsSpare; double *CKTpred; double *CKTsols[8]; double *CKTrhsOp; double *CKTsenRhs; double *CKTseniRhs; int CKTmaxEqNum; int CKTcurrentAnalysis; struct sCKTnode *CKTnodes; struct sCKTnode *CKTlastNode; int CKTnumStates; long CKTmode; int CKTbypass; int CKTdcMaxIter; int CKTdcTrcvMaxIter; int CKTtranMaxIter; int CKTbreakSize; int CKTbreak; double CKTsaveDelta; double CKTminBreak; double *CKTbreaks; double CKTabstol; double CKTpivotAbsTol; double CKTpivotRelTol; double CKTreltol; double CKTchgtol; double CKTvoltTol; double CKTgmin; double CKTgshunt; double CKTdelmin; double CKTtrtol; double CKTfinalTime; double CKTstep; double CKTmaxStep; double CKTinitTime; double CKTomega; double CKTsrcFact; double CKTdiagGmin; int CKTnumSrcSteps; int CKTnumGminSteps; double CKTgminFactor; int CKTnoncon; double CKTdefaultMosM; double CKTdefaultMosL; double CKTdefaultMosW; double CKTdefaultMosAD; double CKTdefaultMosAS; unsigned int CKThadNodeset; unsigned int CKTfixLimit; unsigned int CKTnoOpIter; unsigned int CKTisSetup; struct sJOB *CKTcurJob; struct SENstruct *CKTsenInfo; double *CKTtimePoints; double *CKTdeltaList; int CKTtimeListSize; int CKTtimeIndex; int CKTsizeIncr; unsigned int CKTtryToCompact; unsigned int CKTbadMos3; unsigned int CKTkeepOpInfo; unsigned int CKTcopyNodesets; unsigned int CKTnodeDamping; double CKTabsDv; double CKTrelDv; int CKTtroubleNode; struct sGENinstance *CKTtroubleElt; }

user_defined_types: struct NOISEAN { int JOBtype; struct sJOB *JOBnextJob; char *JOBname; void *output; void *outputRef; char *input; double NstartFreq; double NstopFreq; double NfreqDelta; double NsavFstp; double NsavOnoise; double NsavInoise; int NstpType; int NnumSteps; int NStpsSm; }