#ifndef macrolib_ibis_t_ideal_INCLUDED
#define macrolib_ibis_t_ideal_INCLUDED
#include "macrolib_ibis_t.hpp"
#if defined(__GNUC__) && defined(unix)
#  pragma interface "macrolib_ibis_t_ideal.hpp"
#endif
#ifndef macrolib_ibis_t_ideal_export
#  if defined(_WIN32) && !defined(unix)
#    define macrolib_ibis_t_ideal_export __declspec(dllimport)
#  else
#    define macrolib_ibis_t_ideal_export
#  endif
#endif
#include "std_standard.hpp"
using namespace STD;
namespace MACROLIB {
class macrolib_ibis_t_ideal_export IBIS_T_IDEAL : public IBIS_T {
public:
ELECTRICAL_SYSTEMS_VOLTAGE VEND1;
ELECTRICAL_SYSTEMS_VOLTAGE mM1_VEND1;
ELECTRICAL_SYSTEMS_CURRENT IEND1;
ELECTRICAL_SYSTEMS_CURRENT mM1_IEND1;
ELECTRICAL_SYSTEMS_VOLTAGE VEND2;
ELECTRICAL_SYSTEMS_VOLTAGE mM1_VEND2;
ELECTRICAL_SYSTEMS_CURRENT IEND2;
ELECTRICAL_SYSTEMS_CURRENT mM1_IEND2;
STANDARD_REAL I12;
STANDARD_REAL mM1_I12;
STANDARD_REAL I21;
STANDARD_REAL mM1_I21;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN1_through_qN1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN1_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN1_through_qIEND1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportN1_through_qIEND1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tREF1_through_qREF1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tREF1_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tREF1_through_qIEND1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportREF1_through_qIEND1_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN2_through_qN2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN2_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tN2_through_qIEND2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportN2_through_qIEND2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tREF2_through_qREF2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tREF2_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tREF2_through_qIEND2_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tportREF2_through_qIEND2_smp;
double *exp_N1_1[7];
double *exp_REF1_2[7];
double *exp_N2_3[7];
double *exp_REF2_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_e6_q7_STANDARD_REAL_Identifier
#define ELECTRICAL_SYSTEMS_CURRENT_e6_q7_STANDARD_REAL_Identifier
typedef STANDARD_REAL_MatrixPointer ELECTRICAL_SYSTEMS_CURRENT_e6_q7_STANDARD_REAL_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_CURRENT_e6_q8_STANDARD_REAL_Identifier
#define ELECTRICAL_SYSTEMS_CURRENT_e6_q8_STANDARD_REAL_Identifier
typedef STANDARD_REAL_MatrixPointer ELECTRICAL_SYSTEMS_CURRENT_e6_q8_STANDARD_REAL_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_CURRENT_e10_q9_ELECTRICAL_SYSTEMS_CURRENT_Identifier
#define ELECTRICAL_SYSTEMS_CURRENT_e10_q9_ELECTRICAL_SYSTEMS_CURRENT_Identifier
typedef ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer ELECTRICAL_SYSTEMS_CURRENT_e10_q9_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_CURRENT_e10_q11_STANDARD_REAL_Identifier
#define ELECTRICAL_SYSTEMS_CURRENT_e10_q11_STANDARD_REAL_Identifier
typedef STANDARD_REAL_MatrixPointer ELECTRICAL_SYSTEMS_CURRENT_e10_q11_STANDARD_REAL_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_CURRENT_e10_q12_STANDARD_REAL_Identifier
#define ELECTRICAL_SYSTEMS_CURRENT_e10_q12_STANDARD_REAL_Identifier
typedef STANDARD_REAL_MatrixPointer ELECTRICAL_SYSTEMS_CURRENT_e10_q12_STANDARD_REAL_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_q7_STANDARD_REAL_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e14_q7_STANDARD_REAL_Identifier
typedef STANDARD_REAL_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e14_q7_STANDARD_REAL_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_VOLTAGE_e14_q5_ELECTRICAL_SYSTEMS_CURRENT_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e14_q5_ELECTRICAL_SYSTEMS_CURRENT_Identifier
typedef ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e14_q5_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_VOLTAGE_e16_q15_ELECTRICAL_SYSTEMS_VOLTAGE_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e16_q15_ELECTRICAL_SYSTEMS_VOLTAGE_Identifier
typedef ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e16_q15_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_VOLTAGE_e16_q11_STANDARD_REAL_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e16_q11_STANDARD_REAL_Identifier
typedef STANDARD_REAL_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e16_q11_STANDARD_REAL_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_VOLTAGE_e16_q9_ELECTRICAL_SYSTEMS_CURRENT_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e16_q9_ELECTRICAL_SYSTEMS_CURRENT_Identifier
typedef ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e16_q9_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer;
#endif
STANDARD_REAL I21_DELAYED_8;
STANDARD_REAL I12_DELAYED_12;
STANDARD_REAL_QDELAYED_LIST I21_DELAYED_8_LIST;
STANDARD_REAL mM1_I21_DELAYED_8;
STANDARD_REAL_MatrixPointer I21_DELAYED_8_I21_DELAYED_8q11_smp;
STANDARD_REAL_MatrixPointer I21_DELAYED_8_I21q11_smp;
STANDARD_REAL_QDELAYED_LIST I12_DELAYED_12_LIST;
STANDARD_REAL mM1_I12_DELAYED_12;
STANDARD_REAL_MatrixPointer I12_DELAYED_12_I12_DELAYED_12q7_smp;
STANDARD_REAL_MatrixPointer I12_DELAYED_12_I12q7_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VEND1_across_VEND1_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VEND1_across_N1_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VEND1_across_REF1_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VEND2_across_VEND2_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VEND2_across_N2_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VEND2_across_REF2_smp;
ELECTRICAL_SYSTEMS_CURRENT_e6_q5_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e6_IEND1q5_smp;
ELECTRICAL_SYSTEMS_CURRENT_e6_q7_STANDARD_REAL_MatrixPointer e6_I12q7_smp;
ELECTRICAL_SYSTEMS_CURRENT_e6_q8_STANDARD_REAL_MatrixPointer e6_I21_DELAYED_8q8_smp;
ELECTRICAL_SYSTEMS_CURRENT_e10_q9_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e10_IEND2q9_smp;
ELECTRICAL_SYSTEMS_CURRENT_e10_q11_STANDARD_REAL_MatrixPointer e10_I21q11_smp;
ELECTRICAL_SYSTEMS_CURRENT_e10_q12_STANDARD_REAL_MatrixPointer e10_I12_DELAYED_12q12_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e14_q13_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer e14_VEND1q13_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e14_q7_STANDARD_REAL_MatrixPointer e14_I12q7_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e14_q5_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e14_IEND1q5_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e16_q15_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer e16_VEND2q15_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e16_q11_STANDARD_REAL_MatrixPointer e16_I21q11_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e16_q9_ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer e16_IEND2q9_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_T_IDEAL();
virtual ~IBIS_T_IDEAL();
};
extern "C" macrolib_ibis_t_ideal_export short MACROLIB_IBIS_T_IDEAL_Elaborate(T_B3CIHandle *, const char *, long);
extern "C" macrolib_ibis_t_ideal_export short MACROLIB_IBIS_T_IDEAL_Initialize(T_B3CIHandle, long, double *);
extern "C" macrolib_ibis_t_ideal_export short MACROLIB_IBIS_T_IDEAL_Finalize(T_B3CIHandle inInstance);
extern "C" macrolib_ibis_t_ideal_export short MACROLIB_IBIS_T_IDEAL_AmsLink(T_B3CIHandle, long, long **);
extern "C" macrolib_ibis_t_ideal_export short MACROLIB_IBIS_T_IDEAL_AmsBim(T_B3CIHandle, long, TRANS_PARAM_BIM *, long **);
extern "C" macrolib_ibis_t_ideal_export short MACROLIB_IBIS_T_IDEAL_AmsConverge(T_B3CIHandle, long, long **, double *, unsigned char *, ANALYSISTYPE);
}
#endif /* macrolib_ibis_t_ideal_INCLUDED */
