#ifndef macrolib_ibis_cccs_max_ideal_INCLUDED
#define macrolib_ibis_cccs_max_ideal_INCLUDED
#include "macrolib_ibis_cccs_max.hpp"
#if defined(__GNUC__) && defined(unix)
#  pragma interface "macrolib_ibis_cccs_max_ideal.hpp"
#endif
#ifndef macrolib_ibis_cccs_max_ideal_export
#  if defined(_WIN32) && !defined(unix)
#    define macrolib_ibis_cccs_max_ideal_export __declspec(dllimport)
#  else
#    define macrolib_ibis_cccs_max_ideal_export
#  endif
#endif
#include "std_standard.hpp"
using namespace STD;
namespace MACROLIB {
class macrolib_ibis_cccs_max_ideal_export IBIS_CCCS_MAX_IDEAL : public IBIS_CCCS_MAX {
public:
ELECTRICAL_SYSTEMS_VOLTAGE VOUT;
ELECTRICAL_SYSTEMS_VOLTAGE mM1_VOUT;
ELECTRICAL_SYSTEMS_CURRENT IOUT;
ELECTRICAL_SYSTEMS_CURRENT mM1_IOUT;
ELECTRICAL_SYSTEMS_VOLTAGE VIN1;
ELECTRICAL_SYSTEMS_VOLTAGE mM1_VIN1;
ELECTRICAL_SYSTEMS_CURRENT IIN1;
ELECTRICAL_SYSTEMS_CURRENT mM1_IIN1;
ELECTRICAL_SYSTEMS_VOLTAGE VIN2;
ELECTRICAL_SYSTEMS_VOLTAGE mM1_VIN2;
ELECTRICAL_SYSTEMS_CURRENT IIN2;
ELECTRICAL_SYSTEMS_CURRENT mM1_IIN2;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tP_through_qP_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tP_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tP_through_qIOUT_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportP_through_qIOUT_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN_through_qN_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN_through_qIOUT_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportN_through_qIOUT_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tPS1_through_qPS1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tPS1_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tPS1_through_qIIN1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportPS1_through_qIIN1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tNS1_through_qNS1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tNS1_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tNS1_through_qIIN1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportNS1_through_qIIN1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tPS2_through_qPS2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tPS2_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tPS2_through_qIIN2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportPS2_through_qIIN2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tNS2_through_qNS2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tNS2_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tNS2_through_qIIN2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportNS2_through_qIIN2_smp;
double *exp_P_1[7];
double *exp_N_2[7];
double *exp_PS1_3[7];
double *exp_NS1_4[7];
double *exp_PS2_5[7];
double *exp_NS2_6[7];
#ifndef ELECTRICAL_SYSTEMS_VOLTAGE_e8_q7_ELECTRICAL_SYSTEMS_VOLTAGE_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e8_q7_ELECTRICAL_SYSTEMS_VOLTAGE_Identifier
typedef ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e8_q7_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_VOLTAGE_e10_q9_ELECTRICAL_SYSTEMS_VOLTAGE_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e10_q9_ELECTRICAL_SYSTEMS_VOLTAGE_Identifier
typedef ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e10_q9_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_CURRENT_e12_q11_ELECTRICAL_SYSTEMS_CURRENT_Identifier
#define ELECTRICAL_SYSTEMS_CURRENT_e12_q11_ELECTRICAL_SYSTEMS_CURRENT_Identifier
typedef ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer ELECTRICAL_SYSTEMS_CURRENT_e12_q11_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_CURRENT_e12_q13_ELECTRICAL_SYSTEMS_CURRENT_Identifier
#define ELECTRICAL_SYSTEMS_CURRENT_e12_q13_ELECTRICAL_SYSTEMS_CURRENT_Identifier
typedef ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer ELECTRICAL_SYSTEMS_CURRENT_e12_q13_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_CURRENT_e12_q14_ELECTRICAL_SYSTEMS_CURRENT_Identifier
#define ELECTRICAL_SYSTEMS_CURRENT_e12_q14_ELECTRICAL_SYSTEMS_CURRENT_Identifier
typedef ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer ELECTRICAL_SYSTEMS_CURRENT_e12_q14_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer;
#endif
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VOUT_across_VOUT_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VOUT_across_P_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VOUT_across_N_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VIN1_across_VIN1_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VIN1_across_PS1_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VIN1_across_NS1_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VIN2_across_VIN2_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VIN2_across_PS2_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VIN2_across_NS2_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e8_q7_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer e8_VIN1q7_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e10_q9_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer e10_VIN2q9_smp;
ELECTRICAL_SYSTEMS_CURRENT_e12_q11_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e12_IOUTq11_smp;
ELECTRICAL_SYSTEMS_CURRENT_e12_q13_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e12_IIN1q13_smp;
ELECTRICAL_SYSTEMS_CURRENT_e12_q14_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e12_IIN2q14_smp;
short Elaborate(const char *, long);
short ElaborateDrivers(void);
virtual short ElaborateConfiguration(const char *, long);
short Initialize(long, double *);
short Finalize(void);
short AmsLink(long, long **);
short AmsBim(long, TRANS_PARAM_BIM *, long **);
short AmsConverge(long, long **, double *, unsigned char *, ANALYSISTYPE);
public:
IBIS_CCCS_MAX_IDEAL();
virtual ~IBIS_CCCS_MAX_IDEAL();
};
extern "C" macrolib_ibis_cccs_max_ideal_export short MACROLIB_IBIS_CCCS_MAX_IDEAL_Elaborate(T_B3CIHandle *, const char *, long);
extern "C" macrolib_ibis_cccs_max_ideal_export short MACROLIB_IBIS_CCCS_MAX_IDEAL_Initialize(T_B3CIHandle, long, double *);
extern "C" macrolib_ibis_cccs_max_ideal_export short MACROLIB_IBIS_CCCS_MAX_IDEAL_Finalize(T_B3CIHandle inInstance);
extern "C" macrolib_ibis_cccs_max_ideal_export short MACROLIB_IBIS_CCCS_MAX_IDEAL_AmsLink(T_B3CIHandle, long, long **);
extern "C" macrolib_ibis_cccs_max_ideal_export short MACROLIB_IBIS_CCCS_MAX_IDEAL_AmsBim(T_B3CIHandle, long, TRANS_PARAM_BIM *, long **);
extern "C" macrolib_ibis_cccs_max_ideal_export short MACROLIB_IBIS_CCCS_MAX_IDEAL_AmsConverge(T_B3CIHandle, long, long **, double *, unsigned char *, ANALYSISTYPE);
}
#endif /* macrolib_ibis_cccs_max_ideal_INCLUDED */
