original_code:
int
B2param(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
{
    B2instance *here = (B2instance*)inst;
    switch(param) {
        case 1:
            here->B2w = value->rValue;
            here->B2wGiven = 1;
            break;
        case 2:
            here->B2l = value->rValue;
            here->B2lGiven = 1;
            break;
        case 14:
            here->B2m = value->rValue;
            here->B2mGiven = 1;
            break;
        case 3:
            here->B2sourceArea = value->rValue;
            here->B2sourceAreaGiven = 1;
            break;
        case 4:
            here->B2drainArea = value->rValue;
            here->B2drainAreaGiven = 1;
            break;
        case 5:
            here->B2sourcePerimeter = value->rValue;
            here->B2sourcePerimeterGiven = 1;
            break;
        case 6:
            here->B2drainPerimeter = value->rValue;
            here->B2drainPerimeterGiven = 1;
            break;
        case 7:
            here->B2sourceSquares = value->rValue;
            here->B2sourceSquaresGiven = 1;
            break;
        case 8:
            here->B2drainSquares = value->rValue;
            here->B2drainSquaresGiven = 1;
            break;
        case 9:
            here->B2off = value->iValue;
            break;
        case 10:
            here->B2icVBS = value->rValue;
            here->B2icVBSGiven = 1;
            break;
        case 11:
            here->B2icVDS = value->rValue;
            here->B2icVDSGiven = 1;
            break;
        case 12:
            here->B2icVGS = value->rValue;
            here->B2icVGSGiven = 1;
            break;
        case 13:
            switch(value->v.numValue){
                case 3:
                    here->B2icVBS = *(value->v.vec.rVec+2);
                    here->B2icVBSGiven = 1;
                case 2:
                    here->B2icVGS = *(value->v.vec.rVec+1);
                    here->B2icVGSGiven = 1;
                case 1:
                    here->B2icVDS = *(value->v.vec.rVec);
                    here->B2icVDSGiven = 1;
                    break;
                default:
                    return(7);
            }
            break;
        default:
            return(7);
    }
    return(0);
}

canonical_original_code:
int B2param(int param, union uIFvalue *value, struct sGENinstance *inst, union uIFvalue *select)
{
    struct sBSIM2instance *here = (B2instance*)inst;
    switch(param) {
        case 1:
            here->B2w = value->rValue;
            here->B2wGiven = 1;
            break;
        case 2:
            here->B2l = value->rValue;
            here->B2lGiven = 1;
            break;
        case 14:
            here->B2m = value->rValue;
            here->B2mGiven = 1;
            break;
        case 3:
            here->B2sourceArea = value->rValue;
            here->B2sourceAreaGiven = 1;
            break;
        case 4:
            here->B2drainArea = value->rValue;
            here->B2drainAreaGiven = 1;
            break;
        case 5:
            here->B2sourcePerimeter = value->rValue;
            here->B2sourcePerimeterGiven = 1;
            break;
        case 6:
            here->B2drainPerimeter = value->rValue;
            here->B2drainPerimeterGiven = 1;
            break;
        case 7:
            here->B2sourceSquares = value->rValue;
            here->B2sourceSquaresGiven = 1;
            break;
        case 8:
            here->B2drainSquares = value->rValue;
            here->B2drainSquaresGiven = 1;
            break;
        case 9:
            here->B2off = value->iValue;
            break;
        case 10:
            here->B2icVBS = value->rValue;
            here->B2icVBSGiven = 1;
            break;
        case 11:
            here->B2icVDS = value->rValue;
            here->B2icVDSGiven = 1;
            break;
        case 12:
            here->B2icVGS = value->rValue;
            here->B2icVGSGiven = 1;
            break;
        case 13:
            switch(value->v.numValue){
                case 3:
                    here->B2icVBS = *(value->v.vec.rVec+2);
                    here->B2icVBSGiven = 1;
                case 2:
                    here->B2icVGS = *(value->v.vec.rVec+1);
                    here->B2icVGSGiven = 1;
                case 1:
                    here->B2icVDS = *(value->v.vec.rVec);
                    here->B2icVDSGiven = 1;
                    break;
                default:
                    return(7);
            }
            break;
        default:
            return(7);
    }
    return(0);
}

variable_types: param int

variable_types: union uIFvalue { int iValue; double rValue; struct sIFcomplex { double real; double imag; } cValue; char *sValue; char *uValue; void *nValue; struct sIFparseTree { int numVars; int *varTypes; union uIFvalue *vars; int (*IFeval)(struct sIFparseTree *, double, double *, double *, double *); } *tValue; struct { int numValue; union { int *iVec; double *rVec; struct sIFcomplex *cVec; char **sVec; char **uVec; void **nVec; } vec; } v; } *

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

variable_types:
select
union uIFvalue *

variable_types: struct sBSIM2instance { struct sBSIM2model { int B2modType; struct sBSIM2model *B2nextModel; struct sBSIM2instance *B2instances; char *B2modName; int B2type; int pad; double B2vfb0; double B2vfbL; double B2vfbW; double B2phi0; double B2phiL; double B2phiW; double B2k10; double B2k1L; double B2k1W; double B2k20; double B2k2L; double B2k2W; double B2eta00; double B2eta0L; double B2eta0W; double B2etaB0; double B2etaBL; double B2etaBW; double B2deltaL; double B2deltaW; double B2mob00; double B2mob0B0; double B2mob0BL; double B2mob0BW; double B2mobs00; double B2mobs0L; double B2mobs0W; double B2mobsB0; double B2mobsBL; double B2mobsBW; double B2mob200; double B2mob20L; double B2mob20W; double B2mob2B0; double B2mob2BL; double B2mob2BW; double B2mob2G0; double B2mob2GL; double B2mob2GW; double B2mob300; double B2mob30L; double B2mob30W; double B2mob3B0; double B2mob3BL; double B2mob3BW; double B2mob3G0; double B2mob3GL; double B2mob3GW; double B2mob400; double B2mob40L; double B2mob40W; double B2mob4B0; double B2mob4BL; double B2mob4BW; double B2mob4G0; double B2mob4GL; double B2mob4GW; double B2ua00; double B2ua0L; double B2ua0W; double B2uaB0; double B2uaBL; double B2uaBW; double B2ub00; double B2ub0L; double B2ub0W; double B2ubB0; double B2ubBL; double B2ubBW; double B2u100; double B2u10L; double B2u10W; double B2u1B0; double B2u1BL; double B2u1BW; double B2u1D0; double B2u1DL; double B2u1DW; double B2n00; double B2n0L; double B2n0W; double B2nB0; double B2nBL; double B2nBW; double B2nD0; double B2nDL; double B2nDW; double B2vof00; double B2vof0L; double B2vof0W; double B2vofB0; double B2vofBL; double B2vofBW; double B2vofD0; double B2vofDL; double B2vofDW; double B2ai00; double B2ai0L; double B2ai0W; double B2aiB0; double B2aiBL; double B2aiBW; double B2bi00; double B2bi0L; double B2bi0W; double B2biB0; double B2biBL; double B2biBW; double B2vghigh0; double B2vghighL; double B2vghighW; double B2vglow0; double B2vglowL; double B2vglowW; double B2tox; double B2Cox; double B2temp; double B2vdd; double B2vdd2; double B2vgg; double B2vgg2; double B2vbb; double B2vbb2; double B2gateSourceOverlapCap; double B2gateDrainOverlapCap; double B2gateBulkOverlapCap; double B2Vtm; double B2sheetResistance; double B2jctSatCurDensity; double B2bulkJctPotential; double B2bulkJctBotGradingCoeff; double B2bulkJctSideGradingCoeff; double B2sidewallJctPotential; double B2unitAreaJctCap; double B2unitLengthSidewallJctCap; double B2defaultWidth; double B2deltaLength; double B2fNcoef; double B2fNexp; struct bsim2SizeDependParam { double Width; double Length; double B2vfb; double B2phi; double B2k1; double B2k2; double B2eta0; double B2etaB; double B2beta0; double B2beta0B; double B2betas0; double B2betasB; double B2beta20; double B2beta2B; double B2beta2G; double B2beta30; double B2beta3B; double B2beta3G; double B2beta40; double B2beta4B; double B2beta4G; double B2ua0; double B2uaB; double B2ub0; double B2ubB; double B2u10; double B2u1B; double B2u1D; double B2n0; double B2nB; double B2nD; double B2vof0; double B2vofB; double B2vofD; double B2ai0; double B2aiB; double B2bi0; double B2biB; double B2vghigh; double B2vglow; double B2GDoverlapCap; double B2GSoverlapCap; double B2GBoverlapCap; double SqrtPhi; double Phis3; double CoxWL; double One_Third_CoxWL; double Two_Third_CoxWL; double Arg; double B2vt0; struct bsim2SizeDependParam *pNext; } *pSizeDependParamKnot; unsigned int B2channelChargePartitionFlag; unsigned int B2vfb0Given; unsigned int B2vfbLGiven; unsigned int B2vfbWGiven; unsigned int B2phi0Given; unsigned int B2phiLGiven; unsigned int B2phiWGiven; unsigned int B2k10Given; unsigned int B2k1LGiven; unsigned int B2k1WGiven; unsigned int B2k20Given; unsigned int B2k2LGiven; unsigned int B2k2WGiven; unsigned int B2eta00Given; unsigned int B2eta0LGiven; unsigned int B2eta0WGiven; unsigned int B2etaB0Given; unsigned int B2etaBLGiven; unsigned int B2etaBWGiven; unsigned int B2deltaLGiven; unsigned int B2deltaWGiven; unsigned int B2mob00Given; unsigned int B2mob0B0Given; unsigned int B2mob0BLGiven; unsigned int B2mob0BWGiven; unsigned int B2mobs00Given; unsigned int B2mobs0LGiven; unsigned int B2mobs0WGiven; unsigned int B2mobsB0Given; unsigned int B2mobsBLGiven; unsigned int B2mobsBWGiven; unsigned int B2mob200Given; unsigned int B2mob20LGiven; unsigned int B2mob20WGiven; unsigned int B2mob2B0Given; unsigned int B2mob2BLGiven; unsigned int B2mob2BWGiven; unsigned int B2mob2G0Given; unsigned int B2mob2GLGiven; unsigned int B2mob2GWGiven; unsigned int B2mob300Given; unsigned int B2mob30LGiven; unsigned int B2mob30WGiven; unsigned int B2mob3B0Given; unsigned int B2mob3BLGiven; unsigned int B2mob3BWGiven; unsigned int B2mob3G0Given; unsigned int B2mob3GLGiven; unsigned int B2mob3GWGiven; unsigned int B2mob400Given; unsigned int B2mob40LGiven; unsigned int B2mob40WGiven; unsigned int B2mob4B0Given; unsigned int B2mob4BLGiven; unsigned int B2mob4BWGiven; unsigned int B2mob4G0Given; unsigned int B2mob4GLGiven; unsigned int B2mob4GWGiven; unsigned int B2ua00Given; unsigned int B2ua0LGiven; unsigned int B2ua0WGiven; unsigned int B2uaB0Given; unsigned int B2uaBLGiven; unsigned int B2uaBWGiven; unsigned int B2ub00Given; unsigned int B2ub0LGiven; unsigned int B2ub0WGiven; unsigned int B2ubB0Given; unsigned int B2ubBLGiven; unsigned int B2ubBWGiven; unsigned int B2u100Given; unsigned int B2u10LGiven; unsigned int B2u10WGiven; unsigned int B2u1B0Given; unsigned int B2u1BLGiven; unsigned int B2u1BWGiven; unsigned int B2u1D0Given; unsigned int B2u1DLGiven; unsigned int B2u1DWGiven; unsigned int B2n00Given; unsigned int B2n0LGiven; unsigned int B2n0WGiven; unsigned int B2nB0Given; unsigned int B2nBLGiven; unsigned int B2nBWGiven; unsigned int B2nD0Given; unsigned int B2nDLGiven; unsigned int B2nDWGiven; unsigned int B2vof00Given; unsigned int B2vof0LGiven; unsigned int B2vof0WGiven; unsigned int B2vofB0Given; unsigned int B2vofBLGiven; unsigned int B2vofBWGiven; unsigned int B2vofD0Given; unsigned int B2vofDLGiven; unsigned int B2vofDWGiven; unsigned int B2ai00Given; unsigned int B2ai0LGiven; unsigned int B2ai0WGiven; unsigned int B2aiB0Given; unsigned int B2aiBLGiven; unsigned int B2aiBWGiven; unsigned int B2bi00Given; unsigned int B2bi0LGiven; unsigned int B2bi0WGiven; unsigned int B2biB0Given; unsigned int B2biBLGiven; unsigned int B2biBWGiven; unsigned int B2vghigh0Given; unsigned int B2vghighLGiven; unsigned int B2vghighWGiven; unsigned int B2vglow0Given; unsigned int B2vglowLGiven; unsigned int B2vglowWGiven; unsigned int B2toxGiven; unsigned int B2tempGiven; unsigned int B2vddGiven; unsigned int B2vggGiven; unsigned int B2vbbGiven; unsigned int B2gateSourceOverlapCapGiven; unsigned int B2gateDrainOverlapCapGiven; unsigned int B2gateBulkOverlapCapGiven; unsigned int B2channelChargePartitionFlagGiven; unsigned int B2sheetResistanceGiven; unsigned int B2jctSatCurDensityGiven; unsigned int B2bulkJctPotentialGiven; unsigned int B2bulkJctBotGradingCoeffGiven; unsigned int B2sidewallJctPotentialGiven; unsigned int B2bulkJctSideGradingCoeffGiven; unsigned int B2unitAreaJctCapGiven; unsigned int B2unitLengthSidewallJctCapGiven; unsigned int B2defaultWidthGiven; unsigned int B2deltaLengthGiven; unsigned int B2fNcoefGiven; unsigned int B2fNexpGiven; unsigned int B2typeGiven; } *B2modPtr; struct sBSIM2instance *B2nextInstance; char *B2name; int B2owner; int B2states; int B2dNode; int B2gNode; int B2sNode; int B2bNode; int B2dNodePrime; int B2sNodePrime; double B2l; double B2w; double B2m; double B2drainArea; double B2sourceArea; double B2drainSquares; double B2sourceSquares; double B2drainPerimeter; double B2sourcePerimeter; double B2sourceConductance; double B2drainConductance; double B2icVBS; double B2icVDS; double B2icVGS; double B2von; double B2vdsat; int B2off; int B2mode; struct bsim2SizeDependParam *pParam; unsigned int B2lGiven; unsigned int B2wGiven; unsigned int B2mGiven; unsigned int B2drainAreaGiven; unsigned int B2sourceAreaGiven; unsigned int B2drainSquaresGiven; unsigned int B2sourceSquaresGiven; unsigned int B2drainPerimeterGiven; unsigned int B2sourcePerimeterGiven; unsigned int B2dNodePrimeSet; unsigned int B2sNodePrimeSet; unsigned int B2icVBSGiven; unsigned int B2icVDSGiven; unsigned int B2icVGSGiven; unsigned int B2vonGiven; unsigned int B2vdsatGiven; double *B2DdPtr; double *B2GgPtr; double *B2SsPtr; double *B2BbPtr; double *B2DPdpPtr; double *B2SPspPtr; double *B2DdpPtr; double *B2GbPtr; double *B2GdpPtr; double *B2GspPtr; double *B2SspPtr; double *B2BdpPtr; double *B2BspPtr; double *B2DPspPtr; double *B2DPdPtr; double *B2BgPtr; double *B2DPgPtr; double *B2SPgPtr; double *B2SPsPtr; double *B2DPbPtr; double *B2SPbPtr; double *B2SPdpPtr; double B2nVar[3][5]; } *

user_defined_types: union uIFvalue { int iValue; double rValue; struct sIFcomplex cValue; char *sValue; char *uValue; void *nValue; struct sIFparseTree *tValue; struct { int numValue; union { int *iVec; double *rVec; struct sIFcomplex *cVec; char **sVec; char **uVec; void **nVec; } vec; } v; }


DIOmParam

repo: gserdyuk/gnucap-a

original_code:
int
DIOmParam(int param, IFvalue *value, GENmodel *inModel)
{
    DIOmodel *model = (DIOmodel*)inModel;
    switch(param) {
        case 101:
            model->DIOsatCur = value->rValue;
            model->DIOsatCurGiven = 1;
            break;
        case 118:
            model->DIOsatSWCur = value->rValue;
            model->DIOsatSWCurGiven = 1;
            break;
        case 115:
            model->DIOnomTemp = value->rValue+(273.15);
            model->DIOnomTempGiven = 1;
            break;
        case 102:
            model->DIOresist = value->rValue;
            model->DIOresistGiven = 1;
            break;
        case 129:
            model->DIOresistTemp1 = value->rValue;
            model->DIOresistTemp1Given = 1;
            break;
        case 130:
            model->DIOresistTemp2 = value->rValue;
            model->DIOresistTemp2Given = 1;
            break;
        case 103:
            model->DIOemissionCoeff = value->rValue;
            model->DIOemissionCoeffGiven = 1;
            break;
        case 104:
            model->DIOtransitTime = value->rValue;
            model->DIOtransitTimeGiven = 1;
            break;
        case 125:
            model->DIOtranTimeTemp1 = value->rValue;
            model->DIOtranTimeTemp1Given = 1;
            break;
        case 126:
            model->DIOtranTimeTemp2 = value->rValue;
            model->DIOtranTimeTemp2Given = 1;
            break;
        case 105:
            model->DIOjunctionCap = value->rValue;
            model->DIOjunctionCapGiven = 1;
            break;
        case 106:
            model->DIOjunctionPot = value->rValue;
            model->DIOjunctionPotGiven = 1;
            break;
        case 107:
            model->DIOgradingCoeff = value->rValue;
            model->DIOgradingCoeffGiven = 1;
            break;
        case 127:
            model->DIOgradCoeffTemp1 = value->rValue;
            model->DIOgradCoeffTemp1Given = 1;
            break;
        case 128:
            model->DIOgradCoeffTemp2 = value->rValue;
            model->DIOgradCoeffTemp2Given = 1;
            break;
        case 119:
            model->DIOjunctionSWCap = value->rValue;
            model->DIOjunctionSWCapGiven = 1;
            break;
        case 120:
            model->DIOjunctionSWPot = value->rValue;
            model->DIOjunctionSWPotGiven = 1;
            break;
        case 121:
            model->DIOgradingSWCoeff = value->rValue;
            model->DIOgradingSWCoeffGiven = 1;
            break;
        case 122:
            model->DIOforwardKneeCurrent = value->rValue;
            model->DIOforwardKneeCurrentGiven = 1;
            break;
        case 123:
            model->DIOreverseKneeCurrent = value->rValue;
            model->DIOreverseKneeCurrentGiven = 1;
            break;
        case 108:
            model->DIOactivationEnergy = value->rValue;
            model->DIOactivationEnergyGiven = 1;
            break;
        case 109:
            model->DIOsaturationCurrentExp = value->rValue;
            model->DIOsaturationCurrentExpGiven = 1;
            break;
        case 110:
            model->DIOdepletionCapCoeff = value->rValue;
            model->DIOdepletionCapCoeffGiven = 1;
            break;
        case 124:
            model->DIOdepletionSWcapCoeff = value->rValue;
            model->DIOdepletionSWcapCoeffGiven = 1;
            break;
 case 111:
            model->DIObreakdownVoltage = value->rValue;
            model->DIObreakdownVoltageGiven = 1;
            break;
        case 112:
            model->DIObreakdownCurrent = value->rValue;
            model->DIObreakdownCurrentGiven = 1;
            break;
        case 113:
            break;
 case 116:
     model->DIOfNcoef = value->rValue;
     model->DIOfNcoefGiven = 1;
     break;
 case 117:
     model->DIOfNexp = value->rValue;
     model->DIOfNexpGiven = 1;
     break;
        default:
            return(7);
    }
    return(0);
}

canonical_original_code:
int DIOmParam(int param, union uIFvalue *value, struct sGENmodel *inModel)
{
    struct sDIOmodel *model = (DIOmodel*)inModel;
    switch(param) {
        case 101:
            model->DIOsatCur = value->rValue;
            model->DIOsatCurGiven = 1;
            break;
        case 118:
            model->DIOsatSWCur = value->rValue;
            model->DIOsatSWCurGiven = 1;
            break;
        case 115:
            model->DIOnomTemp = value->rValue+(273.15);
            model->DIOnomTempGiven = 1;
            break;
        case 102:
            model->DIOresist = value->rValue;
            model->DIOresistGiven = 1;
            break;
        case 129:
            model->DIOresistTemp1 = value->rValue;
            model->DIOresistTemp1Given = 1;
            break;
        case 130:
            model->DIOresistTemp2 = value->rValue;
            model->DIOresistTemp2Given = 1;
            break;
        case 103:
            model->DIOemissionCoeff = value->rValue;
            model->DIOemissionCoeffGiven = 1;
            break;
        case 104:
            model->DIOtransitTime = value->rValue;
            model->DIOtransitTimeGiven = 1;
            break;
        case 125:
            model->DIOtranTimeTemp1 = value->rValue;
            model->DIOtranTimeTemp1Given = 1;
            break;
        case 126:
            model->DIOtranTimeTemp2 = value->rValue;
            model->DIOtranTimeTemp2Given = 1;
            break;
        case 105:
            model->DIOjunctionCap = value->rValue;
            model->DIOjunctionCapGiven = 1;
            break;
        case 106:
            model->DIOjunctionPot = value->rValue;
            model->DIOjunctionPotGiven = 1;
            break;
        case 107:
            model->DIOgradingCoeff = value->rValue;
            model->DIOgradingCoeffGiven = 1;
            break;
        case 127:
            model->DIOgradCoeffTemp1 = value->rValue;
            model->DIOgradCoeffTemp1Given = 1;
            break;
        case 128:
            model->DIOgradCoeffTemp2 = value->rValue;
            model->DIOgradCoeffTemp2Given = 1;
            break;
        case 119:
            model->DIOjunctionSWCap = value->rValue;
            model->DIOjunctionSWCapGiven = 1;
            break;
        case 120:
            model->DIOjunctionSWPot = value->rValue;
            model->DIOjunctionSWPotGiven = 1;
            break;
        case 121:
            model->DIOgradingSWCoeff = value->rValue;
            model->DIOgradingSWCoeffGiven = 1;
            break;
        case 122:
            model->DIOforwardKneeCurrent = value->rValue;
            model->DIOforwardKneeCurrentGiven = 1;
            break;
        case 123:
            model->DIOreverseKneeCurrent = value->rValue;
            model->DIOreverseKneeCurrentGiven = 1;
            break;
        case 108:
            model->DIOactivationEnergy = value->rValue;
            model->DIOactivationEnergyGiven = 1;
            break;
        case 109:
            model->DIOsaturationCurrentExp = value->rValue;
            model->DIOsaturationCurrentExpGiven = 1;
            break;
        case 110:
            model->DIOdepletionCapCoeff = value->rValue;
            model->DIOdepletionCapCoeffGiven = 1;
            break;
        case 124:
            model->DIOdepletionSWcapCoeff = value->rValue;
            model->DIOdepletionSWcapCoeffGiven = 1;
            break;
 case 111:
            model->DIObreakdownVoltage = value->rValue;
            model->DIObreakdownVoltageGiven = 1;
            break;
        case 112:
            model->DIObreakdownCurrent = value->rValue;
            model->DIObreakdownCurrentGiven = 1;
            break;
        case 113:
            break;
 case 116:
     model->DIOfNcoef = value->rValue;
     model->DIOfNcoefGiven = 1;
     break;
 case 117:
     model->DIOfNexp = value->rValue;
     model->DIOfNexpGiven = 1;
     break;
        default:
            return(7);
    }
    return(0);
}

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 sDIOmodel { int DIOmodType; struct sDIOmodel *DIOnextModel; struct sDIOinstance { struct sDIOmodel *DIOmodPtr; struct sDIOinstance *DIOnextInstance; char *DIOname; int DIOowner; int DIOstate; int DIOposNode; int DIOnegNode; int DIOposPrimeNode; double *DIOposPosPrimePtr; double *DIOnegPosPrimePtr; double *DIOposPrimePosPtr; double *DIOposPrimeNegPtr; double *DIOposPosPtr; double *DIOnegNegPtr; double *DIOposPrimePosPrimePtr; double DIOcap; double *DIOsens; int DIOsenParmNo; unsigned int DIOoff; unsigned int DIOareaGiven; unsigned int DIOpjGiven; unsigned int DIOmGiven; unsigned int DIOinitCondGiven; unsigned int DIOsenPertFlag; unsigned int DIOtempGiven; unsigned int DIOdtempGiven; double DIOarea; double DIOpj; double DIOm; double DIOinitCond; double DIOtemp; double DIOdtemp; double DIOtJctPot; double DIOtJctCap; double DIOtJctSWPot; double DIOtJctSWCap; double DIOtTransitTime; double DIOtGradingCoeff; double DIOtConductance; double DIOtDepCap; double DIOtSatCur; double DIOtSatSWCur; double DIOtVcrit; double DIOtF1; double DIOtBrkdwnV; double DIOtF2; double DIOtF3; double DIOtF2SW; double DIOtF3SW; double DIOdCoeffs[6]; double DIOnVar[3][4]; } *DIOinstances; char *DIOmodName; unsigned int DIOsatCurGiven; unsigned int DIOsatSWCurGiven; unsigned int DIOresistGiven; unsigned int DIOresistTemp1Given; unsigned int DIOresistTemp2Given; unsigned int DIOemissionCoeffGiven; unsigned int DIOtransitTimeGiven; unsigned int DIOtranTimeTemp1Given; unsigned int DIOtranTimeTemp2Given; unsigned int DIOjunctionCapGiven; unsigned int DIOjunctionPotGiven; unsigned int DIOgradingCoeffGiven; unsigned int DIOgradCoeffTemp1Given; unsigned int DIOgradCoeffTemp2Given; unsigned int DIOjunctionSWCapGiven; unsigned int DIOjunctionSWPotGiven; unsigned int DIOgradingSWCoeffGiven; unsigned int DIOforwardKneeCurrentGiven; unsigned int DIOreverseKneeCurrentGiven; unsigned int DIOactivationEnergyGiven; unsigned int DIOsaturationCurrentExpGiven; unsigned int DIOdepletionCapCoeffGiven; unsigned int DIOdepletionSWcapCoeffGiven; unsigned int DIObreakdownVoltageGiven; unsigned int DIObreakdownCurrentGiven; unsigned int DIOnomTempGiven; unsigned int DIOfNcoefGiven; unsigned int DIOfNexpGiven; double DIOsatCur; double DIOsatSWCur; double DIOresist; double DIOresistTemp1; double DIOresistTemp2; double DIOconductance; double DIOemissionCoeff; double DIOtransitTime; double DIOtranTimeTemp1; double DIOtranTimeTemp2; double DIOjunctionCap; double DIOjunctionPot; double DIOgradingCoeff; double DIOgradCoeffTemp1; double DIOgradCoeffTemp2; double DIOjunctionSWCap; double DIOjunctionSWPot; double DIOgradingSWCoeff; double DIOforwardKneeCurrent; double DIOreverseKneeCurrent; double DIOactivationEnergy; double DIOsaturationCurrentExp; double DIOdepletionCapCoeff; double DIOdepletionSWcapCoeff; double DIObreakdownVoltage; double DIObreakdownCurrent; double DIOnomTemp; double DIOfNcoef; double DIOfNexp; } *

return_type: int

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

user_defined_types: struct sDIOmodel { int DIOmodType; struct sDIOmodel *DIOnextModel; struct sDIOinstance *DIOinstances; char *DIOmodName; unsigned int DIOsatCurGiven; unsigned int DIOsatSWCurGiven; unsigned int DIOresistGiven; unsigned int DIOresistTemp1Given; unsigned int DIOresistTemp2Given; unsigned int DIOemissionCoeffGiven; unsigned int DIOtransitTimeGiven; unsigned int DIOtranTimeTemp1Given; unsigned int DIOtranTimeTemp2Given; unsigned int DIOjunctionCapGiven; unsigned int DIOjunctionPotGiven; unsigned int DIOgradingCoeffGiven; unsigned int DIOgradCoeffTemp1Given; unsigned int DIOgradCoeffTemp2Given; unsigned int DIOjunctionSWCapGiven; unsigned int DIOjunctionSWPotGiven; unsigned int DIOgradingSWCoeffGiven; unsigned int DIOforwardKneeCurrentGiven; unsigned int DIOreverseKneeCurrentGiven; unsigned int DIOactivationEnergyGiven; unsigned int DIOsaturationCurrentExpGiven; unsigned int DIOdepletionCapCoeffGiven; unsigned int DIOdepletionSWcapCoeffGiven; unsigned int DIObreakdownVoltageGiven; unsigned int DIObreakdownCurrentGiven; unsigned int DIOnomTempGiven; unsigned int DIOfNcoefGiven; unsigned int DIOfNexpGiven; double DIOsatCur; double DIOsatSWCur; double DIOresist; double DIOresistTemp1; double DIOresistTemp2; double DIOconductance; double DIOemissionCoeff; double DIOtransitTime; double DIOtranTimeTemp1; double DIOtranTimeTemp2; double DIOjunctionCap; double DIOjunctionPot; double DIOgradingCoeff; double DIOgradCoeffTemp1; double DIOgradCoeffTemp2; double DIOjunctionSWCap; double DIOjunctionSWPot; double DIOgradingSWCoeff; double DIOforwardKneeCurrent; double DIOreverseKneeCurrent; double DIOactivationEnergy; double DIOsaturationCurrentExp; double DIOdepletionCapCoeff; double DIOdepletionSWcapCoeff; double DIObreakdownVoltage; double DIObreakdownCurrent; double DIOnomTemp; double DIOfNcoef; double DIOfNexp; }

user_defined_types: struct sIFcomplex { double real; double imag; }

user_defined_types: struct sIFparseTree { int numVars; int *varTypes; union uIFvalue *vars; int (*IFeval)(struct sIFparseTree *, double, double *, double *, double *); }