#ifndef macrolib_ibis_vcvs_abs_ideal_INCLUDED
#define macrolib_ibis_vcvs_abs_ideal_INCLUDED
#include "macrolib_ibis_vcvs_abs.hpp"
#if defined(__GNUC__) && defined(unix)
#  pragma interface "macrolib_ibis_vcvs_abs_ideal.hpp"
#endif
#ifndef macrolib_ibis_vcvs_abs_ideal_export
#  if defined(_WIN32) && !defined(unix)
#    define macrolib_ibis_vcvs_abs_ideal_export __declspec(dllimport)
#  else
#    define macrolib_ibis_vcvs_abs_ideal_export
#  endif
#endif
#include "std_standard.hpp"
using namespace STD;
namespace MACROLIB {
class macrolib_ibis_vcvs_abs_ideal_export IBIS_VCVS_ABS_IDEAL : public IBIS_VCVS_ABS {
public:
ELECTRICAL_SYSTEMS_VOLTAGE VOUT;
ELECTRICAL_SYSTEMS_VOLTAGE mM1_VOUT;
ELECTRICAL_SYSTEMS_CURRENT IOUT;
ELECTRICAL_SYSTEMS_CURRENT mM1_IOUT;
ELECTRICAL_SYSTEMS_VOLTAGE VIN;
ELECTRICAL_SYSTEMS_VOLTAGE mM1_VIN;
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 tPS_through_qPS_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tPS_root_exp_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tNS_through_qNS_smp;
ELECTRICAL_SYSTEMS_CURRENT_MatrixPointer tNS_root_exp_smp;
double *exp_P_1[7];
double *exp_N_2[7];
double *exp_PS_3[7];
double *exp_NS_4[7];
#ifndef ELECTRICAL_SYSTEMS_VOLTAGE_e6_q5_ELECTRICAL_SYSTEMS_VOLTAGE_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e6_q5_ELECTRICAL_SYSTEMS_VOLTAGE_Identifier
typedef ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e6_q5_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer;
#endif
#ifndef ELECTRICAL_SYSTEMS_VOLTAGE_e6_q7_ELECTRICAL_SYSTEMS_VOLTAGE_Identifier
#define ELECTRICAL_SYSTEMS_VOLTAGE_e6_q7_ELECTRICAL_SYSTEMS_VOLTAGE_Identifier
typedef ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer ELECTRICAL_SYSTEMS_VOLTAGE_e6_q7_ELECTRICAL_SYSTEMS_VOLTAGE_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 VIN_across_VIN_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VIN_across_PS_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer VIN_across_NS_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e6_q5_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer e6_VOUTq5_smp;
ELECTRICAL_SYSTEMS_VOLTAGE_e6_q7_ELECTRICAL_SYSTEMS_VOLTAGE_MatrixPointer e6_VINq7_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_VCVS_ABS_IDEAL();
virtual ~IBIS_VCVS_ABS_IDEAL();
};
extern "C" macrolib_ibis_vcvs_abs_ideal_export short MACROLIB_IBIS_VCVS_ABS_IDEAL_Elaborate(T_B3CIHandle *, const char *, long);
extern "C" macrolib_ibis_vcvs_abs_ideal_export short MACROLIB_IBIS_VCVS_ABS_IDEAL_Initialize(T_B3CIHandle, long, double *);
extern "C" macrolib_ibis_vcvs_abs_ideal_export short MACROLIB_IBIS_VCVS_ABS_IDEAL_Finalize(T_B3CIHandle inInstance);
extern "C" macrolib_ibis_vcvs_abs_ideal_export short MACROLIB_IBIS_VCVS_ABS_IDEAL_AmsLink(T_B3CIHandle, long, long **);
extern "C" macrolib_ibis_vcvs_abs_ideal_export short MACROLIB_IBIS_VCVS_ABS_IDEAL_AmsBim(T_B3CIHandle, long, TRANS_PARAM_BIM *, long **);
extern "C" macrolib_ibis_vcvs_abs_ideal_export short MACROLIB_IBIS_VCVS_ABS_IDEAL_AmsConverge(T_B3CIHandle, long, long **, double *, unsigned char *, ANALYSISTYPE);
}
#endif /* macrolib_ibis_vcvs_abs_ideal_INCLUDED */
