#ifndef macrolib_ibis_k_ideal_INCLUDED
#define macrolib_ibis_k_ideal_INCLUDED
#include "macrolib_ibis_k.hpp"
#if defined(__GNUC__) && defined(unix)
#  pragma interface "macrolib_ibis_k_ideal.hpp"
#endif
#ifndef macrolib_ibis_k_ideal_export
#  if defined(_WIN32) && !defined(unix)
#    define macrolib_ibis_k_ideal_export __declspec(dllimport)
#  else
#    define macrolib_ibis_k_ideal_export
#  endif
#endif
#include "std_standard.hpp"
using namespace STD;
namespace MACROLIB {
class macrolib_ibis_k_ideal_export IBIS_K_IDEAL : public IBIS_K {
public:
ELECTRICAL_SYSTEMS_VOLTAGE VOUT1;
ELECTRICAL_SYSTEMS_VOLTAGE mM1_VOUT1;
ELECTRICAL_SYSTEMS_CURRENT IOUT1;
ELECTRICAL_SYSTEMS_CURRENT mM1_IOUT1;
ELECTRICAL_SYSTEMS_VOLTAGE VOUT2;
ELECTRICAL_SYSTEMS_VOLTAGE mM1_VOUT2;
ELECTRICAL_SYSTEMS_CURRENT IOUT2;
ELECTRICAL_SYSTEMS_CURRENT mM1_IOUT2;
const STANDARD_REAL M;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tP1_through_qP1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tP1_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tP1_through_qIOUT1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportP1_through_qIOUT1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN1_through_qN1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN1_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN1_through_qIOUT1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportN1_through_qIOUT1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tP2_through_qP2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tP2_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tP2_through_qIOUT2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportP2_through_qIOUT2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN2_through_qN2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN2_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN2_through_qIOUT2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportN2_through_qIOUT2_smp;
double *exp_P1_1[7];
double *exp_N1_2[7];
double *exp_P2_3[7];
double *exp_N2_4[7];
#ifndef ELECTRICAL_SYSTEMS_CURRENT_e6_q5_ELECTRICAL_SYSTEMS_CURRENT_Identifier
#define ELECTRICAL_SYSTEMS_CURRENT_e6_q5_ELECTRICAL_SYSTEMS_CURRENT_Identifier
typedef ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer ELECTRICAL_SYSTEMS_CURRENT_e6_q5_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_CURRENT_e8_q7_ELECTRICAL_SYSTEMS_CURRENT_Identifier
#define ELECTRICAL_SYSTEMS_CURRENT_e8_q7_ELECTRICAL_SYSTEMS_CURRENT_Identifier
typedef ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer ELECTRICAL_SYSTEMS_CURRENT_e8_q7_ELECTRICAL_SYSTEMS_CURRENT_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_VOLTAGE_e10_q11_ELECTRICAL_SYSTEMS_CURRENT_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e10_q11_ELECTRICAL_SYSTEMS_CURRENT_Identifier
typedef ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e10_q11_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_VOLTAGE_e10_q12_ELECTRICAL_SYSTEMS_CURRENT_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e10_q12_ELECTRICAL_SYSTEMS_CURRENT_Identifier
typedef ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e10_q12_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_VOLTAGE_e14_q13_ELECTRICAL_SYSTEMS_VOLTAGE_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e14_q13_ELECTRICAL_SYSTEMS_VOLTAGE_Identifier
typedef ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e14_q13_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_VOLTAGE_e14_q15_ELECTRICAL_SYSTEMS_CURRENT_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e14_q15_ELECTRICAL_SYSTEMS_CURRENT_Identifier
typedef ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e14_q15_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_VOLTAGE_e14_q16_ELECTRICAL_SYSTEMS_CURRENT_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e14_q16_ELECTRICAL_SYSTEMS_CURRENT_Identifier
typedef ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e14_q16_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer;
#endif
ELECTRICAL_SYSTEMS_CURRENT IOUT1_DOT;
ELECTRICAL_SYSTEMS_CURRENT mM1_IOUT1_DOT;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer IOUT1_DOT_IOUT1_DOTq5_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer IOUT1_DOT_IOUT1q5_smp;
ELECTRICAL_SYSTEMS_CURRENT IOUT2_DOT;
ELECTRICAL_SYSTEMS_CURRENT mM1_IOUT2_DOT;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer IOUT2_DOT_IOUT2_DOTq7_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer IOUT2_DOT_IOUT2q7_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VOUT1_across_VOUT1_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VOUT1_across_P1_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VOUT1_across_N1_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VOUT2_across_VOUT2_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VOUT2_across_P2_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VOUT2_across_N2_smp;
ELECTRICAL_SYSTEMS_CURRENT_e6_q5_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e6_IOUT1q5_smp;
ELECTRICAL_SYSTEMS_CURRENT_e8_q7_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e8_IOUT2q7_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e10_q9_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer e10_VOUT1q9_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e10_q11_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e10_IOUT1_DOTq11_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e10_q12_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e10_IOUT2_DOTq12_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e14_q13_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer e14_VOUT2q13_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e14_q15_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e14_IOUT2_DOTq15_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e14_q16_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e14_IOUT1_DOTq16_smp;
static double *t_DEFAULT_CURRENT_Dot;
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_K_IDEAL();
virtual ~IBIS_K_IDEAL();
};
extern "C" macrolib_ibis_k_ideal_export short MACROLIB_IBIS_K_IDEAL_Elaborate(T_B3CIHandle *, const char *, long);
extern "C" macrolib_ibis_k_ideal_export short MACROLIB_IBIS_K_IDEAL_Initialize(T_B3CIHandle, long, double *);
extern "C" macrolib_ibis_k_ideal_export short MACROLIB_IBIS_K_IDEAL_Finalize(T_B3CIHandle inInstance);
extern "C" macrolib_ibis_k_ideal_export short MACROLIB_IBIS_K_IDEAL_AmsLink(T_B3CIHandle, long, long **);
extern "C" macrolib_ibis_k_ideal_export short MACROLIB_IBIS_K_IDEAL_AmsBim(T_B3CIHandle, long, TRANS_PARAM_BIM *, long **);
extern "C" macrolib_ibis_k_ideal_export short MACROLIB_IBIS_K_IDEAL_AmsConverge(T_B3CIHandle, long, long **, double *, unsigned char *, ANALYSISTYPE);
}
#endif /* macrolib_ibis_k_ideal_INCLUDED */
