/*
 * MATLAB Compiler: 3.0
 * Date: Fri Jul 01 18:53:14 2005
 * Arguments: "-B" "macro_default" "-O" "all" "-O" "fold_scalar_mxarrays:on"
 * "-O" "fold_non_scalar_mxarrays:on" "-O" "optimize_integer_for_loops:on" "-O"
 * "array_indexing:on" "-O" "optimize_conditionals:on" "-m" "-W" "main" "-L"
 * "C" "-t" "-T" "link:exe" "-h" "libmmfile.mlib" "iactiva.m" 
 */
#include "iactiva.h"
#include "libmatlbm.h"
#include "libmmfile.h"

static mxChar _array1_[8] = { 'p', 'a', 't', 'h', '.', 't', 'x', 't' };
static mxArray * _mxarray0_;

static mxChar _array3_[1] = { 0x005c };
static mxArray * _mxarray2_;

static mxChar _array5_[9] = { 'p', 'u', 'n', 't', 'o', '.', 't', 'x', 't' };
static mxArray * _mxarray4_;

static mxChar _array7_[1] = { ';' };
static mxArray * _mxarray6_;
static mxArray * _mxarray8_;

static mxChar _array10_[9] = { 'f', 'a', 's', 'e', 's', '.', 't', 'x', 't' };
static mxArray * _mxarray9_;
static mxArray * _mxarray11_;
static mxArray * _mxarray12_;
static mxArray * _mxarray13_;
static mxArray * _mxarray14_;
static mxArray * _mxarray15_;
static mxArray * _mxarray16_;
static mxArray * _mxarray17_;
static mxArray * _mxarray18_;
static mxArray * _mxarray19_;

static mxChar _array21_[11] = { 'l', 'a', 'z', 'o', 'A', 'c',
                                't', '.', 't', 'x', 't' };
static mxArray * _mxarray20_;
static mxArray * _mxarray22_;

static mxChar _array24_[12] = { 'I', 'o', 'p', 't', 'i', 'm',
                                'a', '1', '.', 't', 'x', 't' };
static mxArray * _mxarray23_;

static mxChar _array26_[1] = { 'w' };
static mxArray * _mxarray25_;

static mxChar _array28_[2] = { '%', 's' };
static mxArray * _mxarray27_;

static mxChar _array30_[12] = { 'I', 'o', 'p', 't', 'i', 'm',
                                'a', '2', '.', 't', 'x', 't' };
static mxArray * _mxarray29_;

void InitializeModule_iactiva(void) {
    _mxarray0_ = mclInitializeString(8, _array1_);
    _mxarray2_ = mclInitializeString(1, _array3_);
    _mxarray4_ = mclInitializeString(9, _array5_);
    _mxarray6_ = mclInitializeString(1, _array7_);
    _mxarray8_ = mclInitializeDouble(1.0);
    _mxarray9_ = mclInitializeString(9, _array10_);
    _mxarray11_ = mclInitializeDouble(2.0);
    _mxarray12_ = mclInitializeDouble(3.0);
    _mxarray13_ = mclInitializeDouble(4.0);
    _mxarray14_ = mclInitializeDouble(0.0);
    _mxarray15_ = mclInitializeDoubleVector(0, 0, (double *)NULL);
    _mxarray16_ = mclInitializeDouble(2e-07);
    _mxarray17_ = mclInitializeDouble(3.141592653589793);
    _mxarray18_ = mclInitializeDouble(180.0);
    _mxarray19_ = mclInitializeComplex(0.0, 1.0);
    _mxarray20_ = mclInitializeString(11, _array21_);
    _mxarray22_ = mclInitializeDouble(.01);
    _mxarray23_ = mclInitializeString(12, _array24_);
    _mxarray25_ = mclInitializeString(1, _array26_);
    _mxarray27_ = mclInitializeString(2, _array28_);
    _mxarray29_ = mclInitializeString(12, _array30_);
}

void TerminateModule_iactiva(void) {
    mxDestroyArray(_mxarray29_);
    mxDestroyArray(_mxarray27_);
    mxDestroyArray(_mxarray25_);
    mxDestroyArray(_mxarray23_);
    mxDestroyArray(_mxarray22_);
    mxDestroyArray(_mxarray20_);
    mxDestroyArray(_mxarray19_);
    mxDestroyArray(_mxarray18_);
    mxDestroyArray(_mxarray17_);
    mxDestroyArray(_mxarray16_);
    mxDestroyArray(_mxarray15_);
    mxDestroyArray(_mxarray14_);
    mxDestroyArray(_mxarray13_);
    mxDestroyArray(_mxarray12_);
    mxDestroyArray(_mxarray11_);
    mxDestroyArray(_mxarray9_);
    mxDestroyArray(_mxarray8_);
    mxDestroyArray(_mxarray6_);
    mxDestroyArray(_mxarray4_);
    mxDestroyArray(_mxarray2_);
    mxDestroyArray(_mxarray0_);
}

static void Miactiva(void);

_mexLocalFunctionTable _local_function_table_iactiva
  = { 0, (mexFunctionTableEntry *)NULL };

/*
 * The function "mlfIactiva" contains the normal interface for the "iactiva"
 * M-function from file "c:\matlab6p5\work\ioptlazoactivo\iactiva.m" (lines
 * 1-198). This function processes any input arguments and passes them to the
 * implementation version of the function, appearing above.
 */
void mlfIactiva(void) {
    mlfEnterNewContext(0, 0);
    Miactiva();
    mlfRestorePreviousContext(0, 0);
}

/*
 * The function "mlxIactiva" contains the feval interface for the "iactiva"
 * M-function from file "c:\matlab6p5\work\ioptlazoactivo\iactiva.m" (lines
 * 1-198). The feval function calls the implementation version of iactiva
 * through this function. This function processes any input arguments and
 * passes them to the implementation version of the function, appearing above.
 */
void mlxIactiva(int nlhs, mxArray * plhs[], int nrhs, mxArray * prhs[]) {
    if (nlhs > 0) {
        mlfError(
          mxCreateString(
            "Run-time Error: File: iactiva Line: 1 Column: "
            "1 The function \"iactiva\" was called with mor"
            "e than the declared number of outputs (0)."),
          NULL);
    }
    if (nrhs > 0) {
        mlfError(
          mxCreateString(
            "Run-time Error: File: iactiva Line: 1 Column:"
            " 1 The function \"iactiva\" was called with m"
            "ore than the declared number of inputs (0)."),
          NULL);
    }
    mlfEnterNewContext(0, 0);
    Miactiva();
    mlfRestorePreviousContext(0, 0);
}

/*
 * The function "Miactiva" is the implementation version of the "iactiva"
 * M-function from file "c:\matlab6p5\work\ioptlazoactivo\iactiva.m" (lines
 * 1-198). It contains the actual compiled code for that M-function. It is a
 * static function and must only be called from one of the interface functions,
 * appearing below.
 */
/*
 * function Iactiva
 */
static void Miactiva(void) {
    mexLocalFunctionTable save_local_function_table_
      = mclSetCurrentLocalFunctionTable(&_local_function_table_iactiva);
    mxArray * I2 = NULL;
    mxArray * ImI2 = NULL;
    mxArray * ReI2 = NULL;
    mxArray * grabar = NULL;
    mxArray * I1 = NULL;
    mxArray * ImI1 = NULL;
    mxArray * ReI1 = NULL;
    mxArray * by = NULL;
    mxArray * bx = NULL;
    mxArray * y2 = NULL;
    mxArray * x2 = NULL;
    mxArray * y1 = NULL;
    mxArray * x1 = NULL;
    mxArray * tipo = NULL;
    mxArray * cadena = NULL;
    mxArray * By = NULL;
    mxArray * Bx = NULL;
    mxArray * m = NULL;
    mxArray * Byi = NULL;
    mxArray * Byr = NULL;
    mxArray * Bxi = NULL;
    mxArray * Bxr = NULL;
    mxArray * fases = NULL;
    mxArray * mifila = NULL;
    mxArray * yp = NULL;
    mxArray * xp = NULL;
    mxArray * indices = NULL;
    mxArray * s = NULL;
    mxArray * ans = NULL;
    mxArray * path = NULL;
    mxArray * fid = NULL;
    /*
     * 
     * % Esta funcion recibe las fases de la linea generadora y la posicion de los
     * % conductores del lazo activo y devuelve la intensidad optima a inyectar.
     * 
     * % Leemos el path donde se quiere el archivo de salida
     * fid=fopen('path.txt');
     */
    mlfAssign(&fid, mlfFopen(NULL, NULL, _mxarray0_, NULL, NULL));
    /*
     * path=strcat(fgets(fid),'\');
     */
    mlfAssign(
      &path,
      mlfStrcat(mlfFgets(NULL, mclVv(fid, "fid"), NULL), _mxarray2_, NULL));
    /*
     * fclose(fid);
     */
    mclAssignAns(&ans, mlfFclose(mclVv(fid, "fid")));
    /*
     * 
     * % Leemos el punto en el que hay que optimizar y lo guardamos en (x,altura).
     * 
     * fid=fopen('punto.txt');
     */
    mlfAssign(&fid, mlfFopen(NULL, NULL, _mxarray4_, NULL, NULL));
    /*
     * s=fgets(fid);
     */
    mlfAssign(&s, mlfFgets(NULL, mclVv(fid, "fid"), NULL));
    /*
     * indices=strfind(s,';');
     */
    mlfAssign(&indices, mlfStrfind(mclVv(s, "s"), _mxarray6_));
    /*
     * xp=str2double(s(1:indices(1)-1));
     */
    mlfAssign(
      &xp,
      mlfStr2double(
        mclArrayRef1(
          mclVv(s, "s"),
          mlfColon(
            _mxarray8_,
            mclMinus(mclIntArrayRef1(mclVv(indices, "indices"), 1), _mxarray8_),
            NULL))));
    /*
     * yp=str2double(s(indices(1)+1:length(s)));
     */
    mlfAssign(
      &yp,
      mlfStr2double(
        mclArrayRef1(
          mclVv(s, "s"),
          mlfColon(
            mclPlus(mclIntArrayRef1(mclVv(indices, "indices"), 1), _mxarray8_),
            mlfScalar(mclLengthInt(mclVv(s, "s"))),
            NULL))));
    /*
     * fclose(fid);
     */
    mclAssignAns(&ans, mlfFclose(mclVv(fid, "fid")));
    /*
     * 
     * % Tenemos que meter en 'fases' las fases de la linea.
     * 
     * fid=fopen('fases.txt');
     */
    mlfAssign(&fid, mlfFopen(NULL, NULL, _mxarray9_, NULL, NULL));
    /*
     * mifila=1;
     */
    mlfAssign(&mifila, _mxarray8_);
    /*
     * 
     * while(~feof(fid))
     */
    while (mclNotBool(mlfFeof(mclVv(fid, "fid")))) {
        /*
         * 
         * s=fgets(fid);
         */
        mlfAssign(&s, mlfFgets(NULL, mclVv(fid, "fid"), NULL));
        /*
         * indices=strfind(s,';');
         */
        mlfAssign(&indices, mlfStrfind(mclVv(s, "s"), _mxarray6_));
        /*
         * 
         * fases(mifila,1)=str2double(s(1:indices(1)-1));
         */
        mclArrayAssign2(
          &fases,
          mlfStr2double(
            mclArrayRef1(
              mclVv(s, "s"),
              mlfColon(
                _mxarray8_,
                mclMinus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 1), _mxarray8_),
                NULL))),
          mclVv(mifila, "mifila"),
          _mxarray8_);
        /*
         * fases(mifila,2)=str2double(s(indices(1)+1:indices(2)-1));
         */
        mclArrayAssign2(
          &fases,
          mlfStr2double(
            mclArrayRef1(
              mclVv(s, "s"),
              mlfColon(
                mclPlus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 1), _mxarray8_),
                mclMinus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 2), _mxarray8_),
                NULL))),
          mclVv(mifila, "mifila"),
          _mxarray11_);
        /*
         * fases(mifila,3)=str2double(s(indices(2)+1:indices(3)-1));
         */
        mclArrayAssign2(
          &fases,
          mlfStr2double(
            mclArrayRef1(
              mclVv(s, "s"),
              mlfColon(
                mclPlus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 2), _mxarray8_),
                mclMinus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 3), _mxarray8_),
                NULL))),
          mclVv(mifila, "mifila"),
          _mxarray12_);
        /*
         * fases(mifila,4)=str2double(s(indices(3)+1:indices(4)-1));
         */
        mclArrayAssign2(
          &fases,
          mlfStr2double(
            mclArrayRef1(
              mclVv(s, "s"),
              mlfColon(
                mclPlus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 3), _mxarray8_),
                mclMinus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 4), _mxarray8_),
                NULL))),
          mclVv(mifila, "mifila"),
          _mxarray13_);
        /*
         * 
         * mifila=mifila+1;
         */
        mlfAssign(&mifila, mclPlus(mclVv(mifila, "mifila"), _mxarray8_));
    /*
     * 
     * end
     */
    }
    /*
     * 
     * fclose(fid);
     */
    mclAssignAns(&ans, mlfFclose(mclVv(fid, "fid")));
    /*
     * 
     * % Campo creado por la linea
     * 
     * Bxr=0;
     */
    mlfAssign(&Bxr, _mxarray14_);
    /*
     * Bxi=0;
     */
    mlfAssign(&Bxi, _mxarray14_);
    /*
     * Byr=0;
     */
    mlfAssign(&Byr, _mxarray14_);
    /*
     * Byi=0;
     */
    mlfAssign(&Byi, _mxarray14_);
    /*
     * 
     * for m=1:size(fases,1)
     */
    {
        int v_ = mclForIntStart(1);
        int e_
          = mclForIntEnd(
              mlfSize(mclValueVarargout(), mclVv(fases, "fases"), _mxarray8_));
        if (v_ > e_) {
            mlfAssign(&m, _mxarray15_);
        } else {
            /*
             * 
             * % Contribucion fase i        
             * Bxr=Bxr+2e-7*(yp-fases(m,2))*fases(m,3)*cos(fases(m,4)*pi/180)/((yp-fases(m,2))^2+(xp-fases(m,1))^2);
             * Bxi=Bxi+2e-7*(yp-fases(m,2))*fases(m,3)*sin(fases(m,4)*pi/180)/((yp-fases(m,2))^2+(xp-fases(m,1))^2);
             * Byr=Byr+2e-7*(xp-fases(m,1))*fases(m,3)*cos(fases(m,4)*pi/180)/((yp-fases(m,2))^2+(xp-fases(m,1))^2);
             * Byi=Byi+2e-7*(xp-fases(m,1))*fases(m,3)*sin(fases(m,4)*pi/180)/((yp-fases(m,2))^2+(xp-fases(m,1))^2);        
             * 
             * end
             */
            for (; ; ) {
                mlfAssign(
                  &Bxr,
                  mclPlus(
                    mclVv(Bxr, "Bxr"),
                    mclMrdivide(
                      mclMtimes(
                        mclMtimes(
                          mclMtimes(
                            _mxarray16_,
                            mclMinus(
                              mclVv(yp, "yp"),
                              mclIntArrayRef2(mclVv(fases, "fases"), v_, 2))),
                          mclIntArrayRef2(mclVv(fases, "fases"), v_, 3)),
                        mlfCos(
                          mclMrdivide(
                            mclMtimes(
                              mclIntArrayRef2(mclVv(fases, "fases"), v_, 4),
                              _mxarray17_),
                            _mxarray18_))),
                      mclPlus(
                        mclMpower(
                          mclMinus(
                            mclVv(yp, "yp"),
                            mclIntArrayRef2(mclVv(fases, "fases"), v_, 2)),
                          _mxarray11_),
                        mclMpower(
                          mclMinus(
                            mclVv(xp, "xp"),
                            mclIntArrayRef2(mclVv(fases, "fases"), v_, 1)),
                          _mxarray11_)))));
                mlfAssign(
                  &Bxi,
                  mclPlus(
                    mclVv(Bxi, "Bxi"),
                    mclMrdivide(
                      mclMtimes(
                        mclMtimes(
                          mclMtimes(
                            _mxarray16_,
                            mclMinus(
                              mclVv(yp, "yp"),
                              mclIntArrayRef2(mclVv(fases, "fases"), v_, 2))),
                          mclIntArrayRef2(mclVv(fases, "fases"), v_, 3)),
                        mlfSin(
                          mclMrdivide(
                            mclMtimes(
                              mclIntArrayRef2(mclVv(fases, "fases"), v_, 4),
                              _mxarray17_),
                            _mxarray18_))),
                      mclPlus(
                        mclMpower(
                          mclMinus(
                            mclVv(yp, "yp"),
                            mclIntArrayRef2(mclVv(fases, "fases"), v_, 2)),
                          _mxarray11_),
                        mclMpower(
                          mclMinus(
                            mclVv(xp, "xp"),
                            mclIntArrayRef2(mclVv(fases, "fases"), v_, 1)),
                          _mxarray11_)))));
                mlfAssign(
                  &Byr,
                  mclPlus(
                    mclVv(Byr, "Byr"),
                    mclMrdivide(
                      mclMtimes(
                        mclMtimes(
                          mclMtimes(
                            _mxarray16_,
                            mclMinus(
                              mclVv(xp, "xp"),
                              mclIntArrayRef2(mclVv(fases, "fases"), v_, 1))),
                          mclIntArrayRef2(mclVv(fases, "fases"), v_, 3)),
                        mlfCos(
                          mclMrdivide(
                            mclMtimes(
                              mclIntArrayRef2(mclVv(fases, "fases"), v_, 4),
                              _mxarray17_),
                            _mxarray18_))),
                      mclPlus(
                        mclMpower(
                          mclMinus(
                            mclVv(yp, "yp"),
                            mclIntArrayRef2(mclVv(fases, "fases"), v_, 2)),
                          _mxarray11_),
                        mclMpower(
                          mclMinus(
                            mclVv(xp, "xp"),
                            mclIntArrayRef2(mclVv(fases, "fases"), v_, 1)),
                          _mxarray11_)))));
                mlfAssign(
                  &Byi,
                  mclPlus(
                    mclVv(Byi, "Byi"),
                    mclMrdivide(
                      mclMtimes(
                        mclMtimes(
                          mclMtimes(
                            _mxarray16_,
                            mclMinus(
                              mclVv(xp, "xp"),
                              mclIntArrayRef2(mclVv(fases, "fases"), v_, 1))),
                          mclIntArrayRef2(mclVv(fases, "fases"), v_, 3)),
                        mlfSin(
                          mclMrdivide(
                            mclMtimes(
                              mclIntArrayRef2(mclVv(fases, "fases"), v_, 4),
                              _mxarray17_),
                            _mxarray18_))),
                      mclPlus(
                        mclMpower(
                          mclMinus(
                            mclVv(yp, "yp"),
                            mclIntArrayRef2(mclVv(fases, "fases"), v_, 2)),
                          _mxarray11_),
                        mclMpower(
                          mclMinus(
                            mclVv(xp, "xp"),
                            mclIntArrayRef2(mclVv(fases, "fases"), v_, 1)),
                          _mxarray11_)))));
                if (v_ == e_) {
                    break;
                }
                ++v_;
            }
            mlfAssign(&m, mlfScalar(v_));
        }
    }
    /*
     * 
     * % Campo equivalente
     * Bx=Bxr+i*Bxi;
     */
    mlfAssign(
      &Bx,
      mclPlus(mclVv(Bxr, "Bxr"), mclMtimes(_mxarray19_, mclVv(Bxi, "Bxi"))));
    /*
     * By=Byr+i*Byi;
     */
    mlfAssign(
      &By,
      mclPlus(mclVv(Byr, "Byr"), mclMtimes(_mxarray19_, mclVv(Byi, "Byi"))));
    /*
     * 
     * % Ahora calculamos bx y by.
     * % Leemos el lazo para saber si es simple o doble
     * 
     * fid=fopen('lazoAct.txt');
     */
    mlfAssign(&fid, mlfFopen(NULL, NULL, _mxarray20_, NULL, NULL));
    /*
     * cadena=fgets(fid);
     */
    mlfAssign(&cadena, mlfFgets(NULL, mclVv(fid, "fid"), NULL));
    /*
     * fclose(fid);
     */
    mclAssignAns(&ans, mlfFclose(mclVv(fid, "fid")));
    /*
     * 
     * indices=strfind(cadena,';');
     */
    mlfAssign(&indices, mlfStrfind(mclVv(cadena, "cadena"), _mxarray6_));
    /*
     * 
     * tipo=str2double(cadena(1:indices(1)-1));
     */
    mlfAssign(
      &tipo,
      mlfStr2double(
        mclArrayRef1(
          mclVv(cadena, "cadena"),
          mlfColon(
            _mxarray8_,
            mclMinus(mclIntArrayRef1(mclVv(indices, "indices"), 1), _mxarray8_),
            NULL))));
    /*
     * 
     * if tipo==2
     */
    if (mclEqBool(mclVv(tipo, "tipo"), _mxarray11_)) {
        /*
         * 
         * x1=str2double(cadena(indices(1)+1:indices(2)-1));
         */
        mlfAssign(
          &x1,
          mlfStr2double(
            mclArrayRef1(
              mclVv(cadena, "cadena"),
              mlfColon(
                mclPlus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 1), _mxarray8_),
                mclMinus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 2), _mxarray8_),
                NULL))));
        /*
         * y1=str2double(cadena(indices(2)+1:indices(3)-1));
         */
        mlfAssign(
          &y1,
          mlfStr2double(
            mclArrayRef1(
              mclVv(cadena, "cadena"),
              mlfColon(
                mclPlus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 2), _mxarray8_),
                mclMinus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 3), _mxarray8_),
                NULL))));
        /*
         * x2=str2double(cadena(indices(3)+1:indices(4)-1));
         */
        mlfAssign(
          &x2,
          mlfStr2double(
            mclArrayRef1(
              mclVv(cadena, "cadena"),
              mlfColon(
                mclPlus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 3), _mxarray8_),
                mclMinus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 4), _mxarray8_),
                NULL))));
        /*
         * y2=str2double(cadena(indices(4)+1:indices(5)-1));
         */
        mlfAssign(
          &y2,
          mlfStr2double(
            mclArrayRef1(
              mclVv(cadena, "cadena"),
              mlfColon(
                mclPlus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 4), _mxarray8_),
                mclMinus(
                  mclIntArrayRef1(mclVv(indices, "indices"), 5), _mxarray8_),
                NULL))));
        /*
         * 
         * bx=2e-7*((yp-y1)/((xp-x1)^2+(yp-y1)^2)-(yp-y2)/((yp-y2)^2+(xp-x2)^2));
         */
        mlfAssign(
          &bx,
          mclMtimes(
            _mxarray16_,
            mclMinus(
              mclMrdivide(
                mclMinus(mclVv(yp, "yp"), mclVv(y1, "y1")),
                mclPlus(
                  mclMpower(
                    mclMinus(mclVv(xp, "xp"), mclVv(x1, "x1")), _mxarray11_),
                  mclMpower(
                    mclMinus(mclVv(yp, "yp"), mclVv(y1, "y1")), _mxarray11_))),
              mclMrdivide(
                mclMinus(mclVv(yp, "yp"), mclVv(y2, "y2")),
                mclPlus(
                  mclMpower(
                    mclMinus(mclVv(yp, "yp"), mclVv(y2, "y2")), _mxarray11_),
                  mclMpower(
                    mclMinus(mclVv(xp, "xp"), mclVv(x2, "x2")),
                    _mxarray11_))))));
        /*
         * by=2e-7*((xp-x1)/((xp-x1)^2+(yp-y1)^2)-(xp-x2)/((yp-y2)^2+(xp-x2)^2));
         */
        mlfAssign(
          &by,
          mclMtimes(
            _mxarray16_,
            mclMinus(
              mclMrdivide(
                mclMinus(mclVv(xp, "xp"), mclVv(x1, "x1")),
                mclPlus(
                  mclMpower(
                    mclMinus(mclVv(xp, "xp"), mclVv(x1, "x1")), _mxarray11_),
                  mclMpower(
                    mclMinus(mclVv(yp, "yp"), mclVv(y1, "y1")), _mxarray11_))),
              mclMrdivide(
                mclMinus(mclVv(xp, "xp"), mclVv(x2, "x2")),
                mclPlus(
                  mclMpower(
                    mclMinus(mclVv(yp, "yp"), mclVv(y2, "y2")), _mxarray11_),
                  mclMpower(
                    mclMinus(mclVv(xp, "xp"), mclVv(x2, "x2")),
                    _mxarray11_))))));
        /*
         * 
         * ReI1=(-bx*real(Bx)-by*real(By))/(bx^2+by^2);
         */
        mlfAssign(
          &ReI1,
          mclMrdivide(
            mclMinus(
              mclMtimes(mclUminus(mclVv(bx, "bx")), mlfReal(mclVv(Bx, "Bx"))),
              mclMtimes(mclVv(by, "by"), mlfReal(mclVv(By, "By")))),
            mclPlus(
              mclMpower(mclVv(bx, "bx"), _mxarray11_),
              mclMpower(mclVv(by, "by"), _mxarray11_))));
        /*
         * ImI1=(-bx*imag(Bx)-by*imag(By))/(bx^2+by^2);
         */
        mlfAssign(
          &ImI1,
          mclMrdivide(
            mclMinus(
              mclMtimes(mclUminus(mclVv(bx, "bx")), mlfImag(mclVv(Bx, "Bx"))),
              mclMtimes(mclVv(by, "by"), mlfImag(mclVv(By, "By")))),
            mclPlus(
              mclMpower(mclVv(bx, "bx"), _mxarray11_),
              mclMpower(mclVv(by, "by"), _mxarray11_))));
        /*
         * 
         * if abs(ReI1)<0.01 
         */
        if (mclLtBool(mlfAbs(mclVv(ReI1, "ReI1")), _mxarray22_)) {
            /*
             * 
             * I1=i*ImI1;        
             */
            mlfAssign(&I1, mclMtimes(_mxarray19_, mclVv(ImI1, "ImI1")));
        /*
         * 
         * else if abs(ImI1)<0.01
         */
        } else {
            if (mclLtBool(mlfAbs(mclVv(ImI1, "ImI1")), _mxarray22_)) {
                /*
                 * 
                 * I1=ReI1;
                 */
                mlfAssign(&I1, mclVv(ReI1, "ReI1"));
            /*
             * 
             * else if (abs(ReI1)<0.01 & abs(ImI1)<0.01)
             */
            } else {
                mxArray * a_
                  = mclInitialize(
                      mclLt(mlfAbs(mclVv(ReI1, "ReI1")), _mxarray22_));
                if (mlfTobool(a_)
                    && mlfTobool(
                         mclAnd(
                           a_,
                           mclLt(mlfAbs(mclVv(ImI1, "ImI1")), _mxarray22_)))) {
                    mxDestroyArray(a_);
                    /*
                     * 
                     * I1=0;
                     */
                    mlfAssign(&I1, _mxarray14_);
                /*
                 * 
                 * else
                 */
                } else {
                    mxDestroyArray(a_);
                    /*
                     * 
                     * I1=ReI1+i*ImI1;
                     */
                    mlfAssign(
                      &I1,
                      mclPlus(
                        mclVv(ReI1, "ReI1"),
                        mclMtimes(_mxarray19_, mclVv(ImI1, "ImI1"))));
                }
            /*
             * end
             * end
             */
            }
        /*
         * end
         */
        }
        /*
         * 
         * fid=fopen(strcat(path,'Ioptima1.txt'),'w');
         */
        mlfAssign(
          &fid,
          mlfFopen(
            NULL,
            NULL,
            mlfStrcat(mclVv(path, "path"), _mxarray23_, NULL),
            _mxarray25_,
            NULL));
        /*
         * grabar=strcat(num2str(abs(I1)),';',num2str(angle(I1)));
         */
        mlfAssign(
          &grabar,
          mlfStrcat(
            mlfNum2str(mlfAbs(mclVv(I1, "I1")), NULL),
            _mxarray6_,
            mlfNum2str(mlfAngle(mclVv(I1, "I1")), NULL),
            NULL));
        /*
         * fprintf(fid,'%s',grabar);
         */
        mclAssignAns(
          &ans,
          mlfNFprintf(
            0, mclVv(fid, "fid"), _mxarray27_, mclVv(grabar, "grabar"), NULL));
        /*
         * fclose(fid);
         */
        mclAssignAns(&ans, mlfFclose(mclVv(fid, "fid")));
    /*
     * 
     * elseif tipo==3 | tipo==4 % Si es tipo 3 o 4, tenemos dos juegos de coordenadas
     */
    } else {
        mxArray * a_ = mclInitialize(mclEq(mclVv(tipo, "tipo"), _mxarray12_));
        if (mlfTobool(a_)
            || mlfTobool(mclOr(a_, mclEq(mclVv(tipo, "tipo"), _mxarray13_)))) {
            mxDestroyArray(a_);
            /*
             * 
             * % LAZO 1
             * x1=str2double(cadena(indices(1)+1:indices(2)-1));
             */
            mlfAssign(
              &x1,
              mlfStr2double(
                mclArrayRef1(
                  mclVv(cadena, "cadena"),
                  mlfColon(
                    mclPlus(
                      mclIntArrayRef1(mclVv(indices, "indices"), 1),
                      _mxarray8_),
                    mclMinus(
                      mclIntArrayRef1(mclVv(indices, "indices"), 2),
                      _mxarray8_),
                    NULL))));
            /*
             * y1=str2double(cadena(indices(2)+1:indices(3)-1));
             */
            mlfAssign(
              &y1,
              mlfStr2double(
                mclArrayRef1(
                  mclVv(cadena, "cadena"),
                  mlfColon(
                    mclPlus(
                      mclIntArrayRef1(mclVv(indices, "indices"), 2),
                      _mxarray8_),
                    mclMinus(
                      mclIntArrayRef1(mclVv(indices, "indices"), 3),
                      _mxarray8_),
                    NULL))));
            /*
             * x2=str2double(cadena(indices(3)+1:indices(4)-1));
             */
            mlfAssign(
              &x2,
              mlfStr2double(
                mclArrayRef1(
                  mclVv(cadena, "cadena"),
                  mlfColon(
                    mclPlus(
                      mclIntArrayRef1(mclVv(indices, "indices"), 3),
                      _mxarray8_),
                    mclMinus(
                      mclIntArrayRef1(mclVv(indices, "indices"), 4),
                      _mxarray8_),
                    NULL))));
            /*
             * y2=str2double(cadena(indices(4)+1:indices(5)-1));
             */
            mlfAssign(
              &y2,
              mlfStr2double(
                mclArrayRef1(
                  mclVv(cadena, "cadena"),
                  mlfColon(
                    mclPlus(
                      mclIntArrayRef1(mclVv(indices, "indices"), 4),
                      _mxarray8_),
                    mclMinus(
                      mclIntArrayRef1(mclVv(indices, "indices"), 5),
                      _mxarray8_),
                    NULL))));
            /*
             * 
             * bx=2e-7*((yp-y1)/((xp-x1)^2+(yp-y1)^2)-(yp-y2)/((yp-y2)^2+(xp-x2)^2));
             */
            mlfAssign(
              &bx,
              mclMtimes(
                _mxarray16_,
                mclMinus(
                  mclMrdivide(
                    mclMinus(mclVv(yp, "yp"), mclVv(y1, "y1")),
                    mclPlus(
                      mclMpower(
                        mclMinus(mclVv(xp, "xp"), mclVv(x1, "x1")),
                        _mxarray11_),
                      mclMpower(
                        mclMinus(mclVv(yp, "yp"), mclVv(y1, "y1")),
                        _mxarray11_))),
                  mclMrdivide(
                    mclMinus(mclVv(yp, "yp"), mclVv(y2, "y2")),
                    mclPlus(
                      mclMpower(
                        mclMinus(mclVv(yp, "yp"), mclVv(y2, "y2")),
                        _mxarray11_),
                      mclMpower(
                        mclMinus(mclVv(xp, "xp"), mclVv(x2, "x2")),
                        _mxarray11_))))));
            /*
             * by=2e-7*((xp-x1)/((xp-x1)^2+(yp-y1)^2)-(xp-x2)/((yp-y2)^2+(xp-x2)^2));
             */
            mlfAssign(
              &by,
              mclMtimes(
                _mxarray16_,
                mclMinus(
                  mclMrdivide(
                    mclMinus(mclVv(xp, "xp"), mclVv(x1, "x1")),
                    mclPlus(
                      mclMpower(
                        mclMinus(mclVv(xp, "xp"), mclVv(x1, "x1")),
                        _mxarray11_),
                      mclMpower(
                        mclMinus(mclVv(yp, "yp"), mclVv(y1, "y1")),
                        _mxarray11_))),
                  mclMrdivide(
                    mclMinus(mclVv(xp, "xp"), mclVv(x2, "x2")),
                    mclPlus(
                      mclMpower(
                        mclMinus(mclVv(yp, "yp"), mclVv(y2, "y2")),
                        _mxarray11_),
                      mclMpower(
                        mclMinus(mclVv(xp, "xp"), mclVv(x2, "x2")),
                        _mxarray11_))))));
            /*
             * 
             * ReI1=(-bx*real(Bx)-by*real(By))/(bx^2+by^2);
             */
            mlfAssign(
              &ReI1,
              mclMrdivide(
                mclMinus(
                  mclMtimes(
                    mclUminus(mclVv(bx, "bx")), mlfReal(mclVv(Bx, "Bx"))),
                  mclMtimes(mclVv(by, "by"), mlfReal(mclVv(By, "By")))),
                mclPlus(
                  mclMpower(mclVv(bx, "bx"), _mxarray11_),
                  mclMpower(mclVv(by, "by"), _mxarray11_))));
            /*
             * ImI1=(-bx*imag(Bx)-by*imag(By))/(bx^2+by^2);
             */
            mlfAssign(
              &ImI1,
              mclMrdivide(
                mclMinus(
                  mclMtimes(
                    mclUminus(mclVv(bx, "bx")), mlfImag(mclVv(Bx, "Bx"))),
                  mclMtimes(mclVv(by, "by"), mlfImag(mclVv(By, "By")))),
                mclPlus(
                  mclMpower(mclVv(bx, "bx"), _mxarray11_),
                  mclMpower(mclVv(by, "by"), _mxarray11_))));
            /*
             * 
             * % LAZO 2
             * if tipo==3
             */
            if (mclEqBool(mclVv(tipo, "tipo"), _mxarray12_)) {
                /*
                 * 
                 * x1=str2double(cadena(indices(3)+1:indices(4)-1));
                 */
                mlfAssign(
                  &x1,
                  mlfStr2double(
                    mclArrayRef1(
                      mclVv(cadena, "cadena"),
                      mlfColon(
                        mclPlus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 3),
                          _mxarray8_),
                        mclMinus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 4),
                          _mxarray8_),
                        NULL))));
                /*
                 * y1=str2double(cadena(indices(4)+1:indices(5)-1));
                 */
                mlfAssign(
                  &y1,
                  mlfStr2double(
                    mclArrayRef1(
                      mclVv(cadena, "cadena"),
                      mlfColon(
                        mclPlus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 4),
                          _mxarray8_),
                        mclMinus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 5),
                          _mxarray8_),
                        NULL))));
                /*
                 * x2=str2double(cadena(indices(5)+1:indices(6)-1));
                 */
                mlfAssign(
                  &x2,
                  mlfStr2double(
                    mclArrayRef1(
                      mclVv(cadena, "cadena"),
                      mlfColon(
                        mclPlus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 5),
                          _mxarray8_),
                        mclMinus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 6),
                          _mxarray8_),
                        NULL))));
                /*
                 * y2=str2double(cadena(indices(6)+1:indices(7)-1));
                 */
                mlfAssign(
                  &y2,
                  mlfStr2double(
                    mclArrayRef1(
                      mclVv(cadena, "cadena"),
                      mlfColon(
                        mclPlus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 6),
                          _mxarray8_),
                        mclMinus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 7),
                          _mxarray8_),
                        NULL))));
            /*
             * 
             * else
             */
            } else {
                /*
                 * 
                 * x1=str2double(cadena(indices(5)+1:indices(6)-1));
                 */
                mlfAssign(
                  &x1,
                  mlfStr2double(
                    mclArrayRef1(
                      mclVv(cadena, "cadena"),
                      mlfColon(
                        mclPlus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 5),
                          _mxarray8_),
                        mclMinus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 6),
                          _mxarray8_),
                        NULL))));
                /*
                 * y1=str2double(cadena(indices(6)+1:indices(7)-1));
                 */
                mlfAssign(
                  &y1,
                  mlfStr2double(
                    mclArrayRef1(
                      mclVv(cadena, "cadena"),
                      mlfColon(
                        mclPlus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 6),
                          _mxarray8_),
                        mclMinus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 7),
                          _mxarray8_),
                        NULL))));
                /*
                 * x2=str2double(cadena(indices(7)+1:indices(8)-1));
                 */
                mlfAssign(
                  &x2,
                  mlfStr2double(
                    mclArrayRef1(
                      mclVv(cadena, "cadena"),
                      mlfColon(
                        mclPlus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 7),
                          _mxarray8_),
                        mclMinus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 8),
                          _mxarray8_),
                        NULL))));
                /*
                 * y2=str2double(cadena(indices(8)+1:indices(9)-1));
                 */
                mlfAssign(
                  &y2,
                  mlfStr2double(
                    mclArrayRef1(
                      mclVv(cadena, "cadena"),
                      mlfColon(
                        mclPlus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 8),
                          _mxarray8_),
                        mclMinus(
                          mclIntArrayRef1(mclVv(indices, "indices"), 9),
                          _mxarray8_),
                        NULL))));
            /*
             * 
             * end
             */
            }
            /*
             * 
             * bx=2e-7*((yp-y1)/((xp-x1)^2+(yp-y1)^2)-(yp-y2)/((yp-y2)^2+(xp-x2)^2));
             */
            mlfAssign(
              &bx,
              mclMtimes(
                _mxarray16_,
                mclMinus(
                  mclMrdivide(
                    mclMinus(mclVv(yp, "yp"), mclVv(y1, "y1")),
                    mclPlus(
                      mclMpower(
                        mclMinus(mclVv(xp, "xp"), mclVv(x1, "x1")),
                        _mxarray11_),
                      mclMpower(
                        mclMinus(mclVv(yp, "yp"), mclVv(y1, "y1")),
                        _mxarray11_))),
                  mclMrdivide(
                    mclMinus(mclVv(yp, "yp"), mclVv(y2, "y2")),
                    mclPlus(
                      mclMpower(
                        mclMinus(mclVv(yp, "yp"), mclVv(y2, "y2")),
                        _mxarray11_),
                      mclMpower(
                        mclMinus(mclVv(xp, "xp"), mclVv(x2, "x2")),
                        _mxarray11_))))));
            /*
             * by=2e-7*((xp-x1)/((xp-x1)^2+(yp-y1)^2)-(xp-x2)/((yp-y2)^2+(xp-x2)^2));
             */
            mlfAssign(
              &by,
              mclMtimes(
                _mxarray16_,
                mclMinus(
                  mclMrdivide(
                    mclMinus(mclVv(xp, "xp"), mclVv(x1, "x1")),
                    mclPlus(
                      mclMpower(
                        mclMinus(mclVv(xp, "xp"), mclVv(x1, "x1")),
                        _mxarray11_),
                      mclMpower(
                        mclMinus(mclVv(yp, "yp"), mclVv(y1, "y1")),
                        _mxarray11_))),
                  mclMrdivide(
                    mclMinus(mclVv(xp, "xp"), mclVv(x2, "x2")),
                    mclPlus(
                      mclMpower(
                        mclMinus(mclVv(yp, "yp"), mclVv(y2, "y2")),
                        _mxarray11_),
                      mclMpower(
                        mclMinus(mclVv(xp, "xp"), mclVv(x2, "x2")),
                        _mxarray11_))))));
            /*
             * 
             * ReI2=(-bx*real(Bx)-by*real(By))/(bx^2+by^2);
             */
            mlfAssign(
              &ReI2,
              mclMrdivide(
                mclMinus(
                  mclMtimes(
                    mclUminus(mclVv(bx, "bx")), mlfReal(mclVv(Bx, "Bx"))),
                  mclMtimes(mclVv(by, "by"), mlfReal(mclVv(By, "By")))),
                mclPlus(
                  mclMpower(mclVv(bx, "bx"), _mxarray11_),
                  mclMpower(mclVv(by, "by"), _mxarray11_))));
            /*
             * ImI2=(-bx*imag(Bx)-by*imag(By))/(bx^2+by^2);
             */
            mlfAssign(
              &ImI2,
              mclMrdivide(
                mclMinus(
                  mclMtimes(
                    mclUminus(mclVv(bx, "bx")), mlfImag(mclVv(Bx, "Bx"))),
                  mclMtimes(mclVv(by, "by"), mlfImag(mclVv(By, "By")))),
                mclPlus(
                  mclMpower(mclVv(bx, "bx"), _mxarray11_),
                  mclMpower(mclVv(by, "by"), _mxarray11_))));
            /*
             * 
             * if abs(ReI1)<0.01 
             */
            if (mclLtBool(mlfAbs(mclVv(ReI1, "ReI1")), _mxarray22_)) {
                /*
                 * 
                 * I1=i*ImI1;
                 */
                mlfAssign(&I1, mclMtimes(_mxarray19_, mclVv(ImI1, "ImI1")));
            /*
             * 
             * else if abs(ImI1)<0.01
             */
            } else {
                if (mclLtBool(mlfAbs(mclVv(ImI1, "ImI1")), _mxarray22_)) {
                    /*
                     * 
                     * I1=ReI1;
                     */
                    mlfAssign(&I1, mclVv(ReI1, "ReI1"));
                /*
                 * 
                 * else if (abs(ReI1)<0.01 & abs(ImI1)<0.01)
                 */
                } else {
                    mxArray * a_0
                      = mclInitialize(
                          mclLt(mlfAbs(mclVv(ReI1, "ReI1")), _mxarray22_));
                    if (mlfTobool(a_0)
                        && mlfTobool(
                             mclAnd(
                               a_0,
                               mclLt(
                                 mlfAbs(mclVv(ImI1, "ImI1")), _mxarray22_)))) {
                        mxDestroyArray(a_0);
                        /*
                         * 
                         * I1=0;
                         */
                        mlfAssign(&I1, _mxarray14_);
                    /*
                     * 
                     * else
                     */
                    } else {
                        mxDestroyArray(a_0);
                        /*
                         * 
                         * I1=ReI1+i*ImI1;
                         */
                        mlfAssign(
                          &I1,
                          mclPlus(
                            mclVv(ReI1, "ReI1"),
                            mclMtimes(_mxarray19_, mclVv(ImI1, "ImI1"))));
                    }
                /*
                 * end
                 * end
                 */
                }
            /*
             * end
             */
            }
            /*
             * 
             * if abs(ReI2)<0.01 
             */
            if (mclLtBool(mlfAbs(mclVv(ReI2, "ReI2")), _mxarray22_)) {
                /*
                 * 
                 * I2=i*ImI2;
                 */
                mlfAssign(&I2, mclMtimes(_mxarray19_, mclVv(ImI2, "ImI2")));
            /*
             * 
             * else if abs(ImI2)<0.01
             */
            } else {
                if (mclLtBool(mlfAbs(mclVv(ImI2, "ImI2")), _mxarray22_)) {
                    /*
                     * 
                     * I2=ReI2;
                     */
                    mlfAssign(&I2, mclVv(ReI2, "ReI2"));
                /*
                 * 
                 * else if (abs(ReI2)<0.01 & abs(ImI2)<0.01)
                 */
                } else {
                    mxArray * a_1
                      = mclInitialize(
                          mclLt(mlfAbs(mclVv(ReI2, "ReI2")), _mxarray22_));
                    if (mlfTobool(a_1)
                        && mlfTobool(
                             mclAnd(
                               a_1,
                               mclLt(
                                 mlfAbs(mclVv(ImI2, "ImI2")), _mxarray22_)))) {
                        mxDestroyArray(a_1);
                        /*
                         * 
                         * I2=0;
                         */
                        mlfAssign(&I2, _mxarray14_);
                    /*
                     * 
                     * else
                     */
                    } else {
                        mxDestroyArray(a_1);
                        /*
                         * 
                         * I2=ReI2+i*ImI2;
                         */
                        mlfAssign(
                          &I2,
                          mclPlus(
                            mclVv(ReI2, "ReI2"),
                            mclMtimes(_mxarray19_, mclVv(ImI2, "ImI2"))));
                    }
                /*
                 * end
                 * end
                 */
                }
            /*
             * end
             */
            }
            /*
             * 
             * % Grabamos las intensidades en fichero
             * fid=fopen(strcat(path,'Ioptima1.txt'),'w');
             */
            mlfAssign(
              &fid,
              mlfFopen(
                NULL,
                NULL,
                mlfStrcat(mclVv(path, "path"), _mxarray23_, NULL),
                _mxarray25_,
                NULL));
            /*
             * grabar=strcat(num2str(abs(I1)),';',num2str(angle(I1)));
             */
            mlfAssign(
              &grabar,
              mlfStrcat(
                mlfNum2str(mlfAbs(mclVv(I1, "I1")), NULL),
                _mxarray6_,
                mlfNum2str(mlfAngle(mclVv(I1, "I1")), NULL),
                NULL));
            /*
             * fprintf(fid,'%s',grabar);
             */
            mclAssignAns(
              &ans,
              mlfNFprintf(
                0,
                mclVv(fid, "fid"),
                _mxarray27_,
                mclVv(grabar, "grabar"),
                NULL));
            /*
             * fclose(fid);
             */
            mclAssignAns(&ans, mlfFclose(mclVv(fid, "fid")));
            /*
             * 
             * fid=fopen(strcat(path,'Ioptima2.txt'),'w');    
             */
            mlfAssign(
              &fid,
              mlfFopen(
                NULL,
                NULL,
                mlfStrcat(mclVv(path, "path"), _mxarray29_, NULL),
                _mxarray25_,
                NULL));
            /*
             * grabar=strcat(num2str(abs(I2)),';',num2str(angle(I2)));
             */
            mlfAssign(
              &grabar,
              mlfStrcat(
                mlfNum2str(mlfAbs(mclVv(I2, "I2")), NULL),
                _mxarray6_,
                mlfNum2str(mlfAngle(mclVv(I2, "I2")), NULL),
                NULL));
            /*
             * fprintf(fid,'%s',grabar);
             */
            mclAssignAns(
              &ans,
              mlfNFprintf(
                0,
                mclVv(fid, "fid"),
                _mxarray27_,
                mclVv(grabar, "grabar"),
                NULL));
            /*
             * fclose(fid);
             */
            mclAssignAns(&ans, mlfFclose(mclVv(fid, "fid")));
        } else {
            mxDestroyArray(a_);
        }
    /*
     * 
     * end
     */
    }
    mxDestroyArray(fid);
    mxDestroyArray(path);
    mxDestroyArray(ans);
    mxDestroyArray(s);
    mxDestroyArray(indices);
    mxDestroyArray(xp);
    mxDestroyArray(yp);
    mxDestroyArray(mifila);
    mxDestroyArray(fases);
    mxDestroyArray(Bxr);
    mxDestroyArray(Bxi);
    mxDestroyArray(Byr);
    mxDestroyArray(Byi);
    mxDestroyArray(m);
    mxDestroyArray(Bx);
    mxDestroyArray(By);
    mxDestroyArray(cadena);
    mxDestroyArray(tipo);
    mxDestroyArray(x1);
    mxDestroyArray(y1);
    mxDestroyArray(x2);
    mxDestroyArray(y2);
    mxDestroyArray(bx);
    mxDestroyArray(by);
    mxDestroyArray(ReI1);
    mxDestroyArray(ImI1);
    mxDestroyArray(I1);
    mxDestroyArray(grabar);
    mxDestroyArray(ReI2);
    mxDestroyArray(ImI2);
    mxDestroyArray(I2);
    mclSetCurrentLocalFunctionTable(save_local_function_table_);
    /*
     * 
     */
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
	<head>
            <title>e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.</title>

                <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="description" content="Buscador de proyectos ETSI" />
<meta name="author" content="Daniel Callejo"/>
<meta name="author" content="Federico L&oacute;pez"/>
<meta name="author" content="Juli&aacute;n P&eacute;rez"/>
<meta name="author" content="Jos&eacute; Mar&iacute;a Vidal Vidal"/>
<base href="/bibing/proyectos/" /><link rel="shortcut icon" href="./favicon.ico" />
<link rel="stylesheet" href="./publico/css/estructura.css" type="text/css" />
<link rel="stylesheet" href="./publico/css/bootstrap.css" type="text/css" media="screen"/>
<link rel="stylesheet" href="./publico/css/enlaces-capas.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/pestanas.css" type="text/css"  /> 
<link rel="stylesheet" href="./publico/css/formularios.css" type="text/css" />
<link rel="stylesheet" href="./publico/css/lightbox.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/autocompleter.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/resultados.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/milista.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/explorador.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/ultimos.css" type="text/css"  />
<link rel="stylesheet" href="./publico/css/contactar.css" type="text/css"  />
<!-- <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" /> -->
<script src="./publico/javascript/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="./publico/javascript/bootstrap.js" type="text/javascript"></script>

<script src="./publico/javascript/mootools-1.2.4-core.js" type="text/javascript"></script>
<script src="./publico/javascript/mootools-1-1.2.4.2-more.js" type="text/javascript"></script>
<script src="./publico/javascript/targetbl.js" type="text/javascript"></script>
<script src="./publico/javascript/mensajes.js" type="text/javascript"></script>
<script src="./publico/javascript/form.js" type="text/javascript"></script>
<script src="./publico/javascript/autocompleter/Observer.js" type="text/javascript"></script>
<script src="./publico/javascript/autocompleter/Autocompleter.js" type="text/javascript"></script>
<script src="./publico/javascript/autocompleter/Autocompleter.Request.js" type="text/javascript"></script>
<script src="./publico/javascript/domready.js" type="text/javascript"></script>

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-8T1TSNC1QY"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-8T1TSNC1QY');
</script>



<script type="text/javascript">
function seleccionar_todo(){
   for (i=0;i<document.formulario_marcados.elements.length;i++)
      if(document.formulario_marcados.elements[i].type == "checkbox")
         document.formulario_marcados.elements[i].checked=1
}
function deseleccionar_todo(){
   for (i=0;i<document.formulario_marcados.elements.length;i++)
      if(document.formulario_marcados.elements[i].type == "checkbox")
         document.formulario_marcados.elements[i].checked=0
} 
</script>
	</head>
    <body style="min-width: 960px; background-color: #e2e2e2; height: 100%">	
		<a name="arriba"></a>
<div>
<div id="header">
    <table id="Tabla_01" height="105" border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td>
            <img src="./publico/imagenes/cabecera/banner_new2_01.jpg" width="3" height="105" alt="">
        </td>
        <td>
            <img src="./publico/imagenes/cabecera/banner_new2_02.jpg" width="100" height="105" alt="">
        </td>
        <td width="100%" align="right"  style="min-width: 613px; background-repeat: no-repeat; background-position: top right; font-size: medium; font-weight: bold; color: white;">
            <table width="100%" height="105" border="0">
                <tr>
                    <td style=" vertical-align: top; width: 547px">
                        <!-- <a style="text-decoration: none" href="./"><img src="./publico/imagenes/cabecera/banner_new2_03.jpg"alt=""></a> -->
                        <a style="text-decoration: none" href="/bibing/proyectos/"><img src="./publico/imagenes/cabecera/banner_new2_03.jpg"alt=""></a>
                     </td>
                     <td  background="./publico/imagenes/cabecera/banner_new2_04.jpg" style="background-repeat: no-repeat; background-color: #c6d4e8;"><br><br><br>
                         &nbsp;
                        </td>
                    </tr>
             </table>
        </td>
    </tr>
    <tr style="border-top: 1px solid #ffffff;">
        <td colspan="3" id="menu_sup" style="font-size: small; text-align: right; background-color: #9c1f2f; vertical-align: bottom">
             
					<a href="/bibing/proyectos/" class="enlace " style=" color: #ffffff">Inicio&nbsp;&nbsp;|</a>
					<a href="/bibing/proyectos/acerca/" style=" color: #ffffff" class="enlace ">&nbsp;&nbsp;Acerca de&nbsp;&nbsp;|</a>
					
					<a href="/bibing/proyectos/contactar/" style=" color: #ffffff" class="enlace ">&nbsp;&nbsp;Contactar&nbsp;&nbsp;</a>
			 <!--       <a href="/bibing/proyectos/ayuda/" style=" color: #ffffff" class="enlace  ">&nbsp;&nbsp;Ayuda&nbsp;&nbsp;|</a> -->
					<!-- <form id="idioma" class=""  method="post" action="">
					<div class="inline" style="color: white">
					<input type="submit" class="tipo_letra " style=" color: #ffffff"name="idioma" value="Castellanossss" />&nbsp;&nbsp;
					</div>	
					</form> -->
			        </td>

    </tr>
    </table>
</div>
<br><br>
<div class="colmask rightmenu">
<div class="panel panel-default" style="margin:20px">
            <div class="panel-heading"><h4>PROGRAMA DE DISEÑO DE LAZOS ACTIVOS/PASIVOS PARA AMORTIGUAMIENTO DEL CAMPO MAGNÉTICO EN LÍNEAS ELÉCTRICAS AÉREAS DE ALTA TENSIÓN</h4><h5 style="color:grey"><span class="glyphicon glyphicon-user""></span> : <b>CASAS PÉREZ, JOSÉ EDUARDO DE LAS</b><br><span class="glyphicon glyphicon-book""></span>  :<b> Ingenier&iacute;a Industrial</b></h5></div><div class="panel-body"><div class="contenido_proyecto"><div class="titulo2_explorador">Contenido del proyecto:</div><div class="ruta"><a href="abreproy/3941">Directorio ra&iacute;z</a>&nbsp;&nbsp;>&nbsp;&nbsp;<a href="abreproy/3941/direccion/Programa%252F">Programa</a>&nbsp;&nbsp;>&nbsp;&nbsp;<a href="abreproy/3941/direccion/Programa%252FInstalacion%252F">Instalacion</a>&nbsp;&nbsp;>&nbsp;&nbsp;<a href="abreproy/3941/direccion/Programa%252FInstalacion%252Fcalculos%252F">calculos</a>&nbsp;&nbsp;>&nbsp;&nbsp;<a href="abreproy/3941/direccion/Programa%252FInstalacion%252Fcalculos%252Fiactiva.c%252F">iactiva.c</a></div><div class="listing"></div></div></div></div>
</div>
</div>

        
	</body>
 
 
<!-- Inicio Google Analytics -->
<!--
	<script type="text/javascript">
		var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
		document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
	</script>
	
	<script type="text/javascript">
		try {
		var pageTracker = _gat._getTracker("UA-7789620-1");
		pageTracker._trackPageview();
	} 
		catch(err) {}
	</script>
-->
<!-- Fin Google Analytics -->

</html>

